drm/amdgpu/powerplay: add core support for pre-SOC15 baco
This adds core support for BACO on pre-vega asics. Reviewed-by: Evan Quan <evan.quan@amd.com> Acked-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
5d934ac0d0
commit
42e547efe2
@ -79,6 +79,25 @@ static bool baco_cmd_handler(struct pp_hwmgr *hwmgr, u32 command, u32 reg, u32 m
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool baco_program_registers(struct pp_hwmgr *hwmgr,
|
||||
const struct baco_cmd_entry *entry,
|
||||
const u32 array_size)
|
||||
{
|
||||
u32 i, reg = 0;
|
||||
|
||||
for (i = 0; i < array_size; i++) {
|
||||
if ((entry[i].cmd == CMD_WRITE) ||
|
||||
(entry[i].cmd == CMD_READMODIFYWRITE) ||
|
||||
(entry[i].cmd == CMD_WAITFOR))
|
||||
reg = entry[i].reg_offset;
|
||||
if (!baco_cmd_handler(hwmgr, entry[i].cmd, reg, entry[i].mask,
|
||||
entry[i].shift, entry[i].val, entry[i].timeout))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool soc15_baco_program_registers(struct pp_hwmgr *hwmgr,
|
||||
const struct soc15_baco_cmd_entry *entry,
|
||||
const u32 array_size)
|
||||
|
@ -33,6 +33,15 @@ enum baco_cmd_type {
|
||||
CMD_DELAY_US,
|
||||
};
|
||||
|
||||
struct baco_cmd_entry {
|
||||
enum baco_cmd_type cmd;
|
||||
uint32_t reg_offset;
|
||||
uint32_t mask;
|
||||
uint32_t shift;
|
||||
uint32_t timeout;
|
||||
uint32_t val;
|
||||
};
|
||||
|
||||
struct soc15_baco_cmd_entry {
|
||||
enum baco_cmd_type cmd;
|
||||
uint32_t hwip;
|
||||
@ -44,6 +53,10 @@ struct soc15_baco_cmd_entry {
|
||||
uint32_t timeout;
|
||||
uint32_t val;
|
||||
};
|
||||
|
||||
extern bool baco_program_registers(struct pp_hwmgr *hwmgr,
|
||||
const struct baco_cmd_entry *entry,
|
||||
const u32 array_size);
|
||||
extern bool soc15_baco_program_registers(struct pp_hwmgr *hwmgr,
|
||||
const struct soc15_baco_cmd_entry *entry,
|
||||
const u32 array_size);
|
||||
|
Loading…
x
Reference in New Issue
Block a user