drm/amd/powerplay: add firmware loading interface

This patch adds firmware loading interface for smu.

Signed-off-by: Huang Rui <ray.huang@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Huang Rui 2018-12-02 18:12:10 +08:00 committed by Alex Deucher
parent 0784552664
commit 3d2f5200a7
3 changed files with 15 additions and 0 deletions

View File

@ -96,6 +96,12 @@ static int smu_hw_init(void *handle)
if (adev->asic_type < CHIP_VEGA20)
return -EINVAL;
if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP) {
ret = smu_load_microcode(smu);
if (ret)
return ret;
}
mutex_lock(&smu->mutex);
/* TODO */

View File

@ -35,10 +35,13 @@ struct smu_context
struct smu_funcs
{
int (*init_microcode)(struct smu_context *smu);
int (*load_microcode)(struct smu_context *smu);
};
#define smu_init_microcode(smu) \
((smu)->funcs->init_microcode ? (smu)->funcs->init_microcode((smu)) : 0)
#define smu_load_microcode(smu) \
((smu)->funcs->load_microcode ? (smu)->funcs->load_microcode((smu)) : 0)
extern const struct amd_ip_funcs smu_ip_funcs;

View File

@ -32,8 +32,14 @@ static int smu_v11_0_init_microcode(struct smu_context *smu)
return 0;
}
static int smu_v11_0_load_microcode(struct smu_context *smu)
{
return 0;
}
static const struct smu_funcs smu_v11_0_funcs = {
.init_microcode = smu_v11_0_init_microcode,
.load_microcode = smu_v11_0_load_microcode,
};
void smu_v11_0_set_smu_funcs(struct smu_context *smu)