Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1060029f authored by Jammy Zhou's avatar Jammy Zhou Committed by Alex Deucher
Browse files

drm/amd/powerplay: Add Tonga SMU support



The SMU manager handles firmware loading for other IP
blocks (GFX, SDMA, etc.).  This implements it for Tonga.

v3: delete peci sub-module
v2: use cgs interface directly

Signed-off-by: default avatarYoung Yang <Young.Yang@amd.com>
Signed-off-by: default avatarJammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 306d8db3
Loading
Loading
Loading
Loading
+40 −0
Original line number Diff line number Diff line

/*
 * Copyright 2015 Advanced Micro Devices, Inc.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a
 * copy of this software and associated documentation files (the "Software"),
 * to deal in the Software without restriction, including without limitation
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 * and/or sell copies of the Software, and to permit persons to whom the
 * Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 * OTHER DEALINGS IN THE SOFTWARE.
 *
 */
#ifndef PP_DEBUG_H
#define PP_DEBUG_H

#include <linux/types.h>
#include <linux/kernel.h>
#include <linux/slab.h>

#define PP_ASSERT_WITH_CODE(cond, msg, code)	\
	do {					\
		if (!(cond)) {			\
			printk(msg);	\
			code;			\
		}				\
	} while (0)

#endif
+1 −1
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
# Makefile for the 'smu manager' sub-component of powerplay.
# It provides the smu management services for the driver.

SMU_MGR = smumgr.o cz_smumgr.o
SMU_MGR = smumgr.o cz_smumgr.o tonga_smumgr.o

AMD_PP_SMUMGR = $(addprefix $(AMD_PP_PATH)/smumgr/,$(SMU_MGR))

+8 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@
#include "cgs_common.h"
#include "linux/delay.h"
#include "cz_smumgr.h"
#include "tonga_smumgr.h"

int smum_init(struct amd_pp_init *pp_init, struct pp_instance *handle)
{
@@ -53,7 +54,13 @@ int smum_init(struct amd_pp_init *pp_init, struct pp_instance *handle)
		cz_smum_init(smumgr);
		break;
	case AMD_FAMILY_VI:
		/* TODO */
		switch (smumgr->chip_id) {
		case CHIP_TONGA:
			tonga_smum_init(smumgr);
			break;
		default:
			return -EINVAL;
		}
		break;
	default:
		kfree(smumgr);
+819 −0

File added.

Preview size limit exceeded, changes collapsed.

+53 −0

File added.

Preview size limit exceeded, changes collapsed.