Commit 43fa561f authored by Rex Zhu's avatar Rex Zhu Committed by Alex Deucher

drm/amdgpu: remove duplicate cg/pg wrapper functions

Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Acked-by: Christian König<christian.koenig@amd.com>
Signed-off-by: default avatarRex Zhu <Rex.Zhu@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 10b3f45c
...@@ -222,10 +222,10 @@ enum amdgpu_kiq_irq { ...@@ -222,10 +222,10 @@ enum amdgpu_kiq_irq {
AMDGPU_CP_KIQ_IRQ_LAST AMDGPU_CP_KIQ_IRQ_LAST
}; };
int amdgpu_device_ip_set_clockgating_state(struct amdgpu_device *adev, int amdgpu_device_ip_set_clockgating_state(void *dev,
enum amd_ip_block_type block_type, enum amd_ip_block_type block_type,
enum amd_clockgating_state state); enum amd_clockgating_state state);
int amdgpu_device_ip_set_powergating_state(struct amdgpu_device *adev, int amdgpu_device_ip_set_powergating_state(void *dev,
enum amd_ip_block_type block_type, enum amd_ip_block_type block_type,
enum amd_powergating_state state); enum amd_powergating_state state);
void amdgpu_device_ip_get_clockgating_state(struct amdgpu_device *adev, void amdgpu_device_ip_get_clockgating_state(struct amdgpu_device *adev,
......
...@@ -108,48 +108,6 @@ static void amdgpu_cgs_write_ind_register(struct cgs_device *cgs_device, ...@@ -108,48 +108,6 @@ static void amdgpu_cgs_write_ind_register(struct cgs_device *cgs_device,
WARN(1, "Invalid indirect register space"); WARN(1, "Invalid indirect register space");
} }
static int amdgpu_cgs_set_clockgating_state(struct cgs_device *cgs_device,
enum amd_ip_block_type block_type,
enum amd_clockgating_state state)
{
CGS_FUNC_ADEV;
int i, r = -1;
for (i = 0; i < adev->num_ip_blocks; i++) {
if (!adev->ip_blocks[i].status.valid)
continue;
if (adev->ip_blocks[i].version->type == block_type) {
r = adev->ip_blocks[i].version->funcs->set_clockgating_state(
(void *)adev,
state);
break;
}
}
return r;
}
static int amdgpu_cgs_set_powergating_state(struct cgs_device *cgs_device,
enum amd_ip_block_type block_type,
enum amd_powergating_state state)
{
CGS_FUNC_ADEV;
int i, r = -1;
for (i = 0; i < adev->num_ip_blocks; i++) {
if (!adev->ip_blocks[i].status.valid)
continue;
if (adev->ip_blocks[i].version->type == block_type) {
r = adev->ip_blocks[i].version->funcs->set_powergating_state(
(void *)adev,
state);
break;
}
}
return r;
}
static uint32_t fw_type_convert(struct cgs_device *cgs_device, uint32_t fw_type) static uint32_t fw_type_convert(struct cgs_device *cgs_device, uint32_t fw_type)
{ {
CGS_FUNC_ADEV; CGS_FUNC_ADEV;
...@@ -490,8 +448,6 @@ static const struct cgs_ops amdgpu_cgs_ops = { ...@@ -490,8 +448,6 @@ static const struct cgs_ops amdgpu_cgs_ops = {
.read_ind_register = amdgpu_cgs_read_ind_register, .read_ind_register = amdgpu_cgs_read_ind_register,
.write_ind_register = amdgpu_cgs_write_ind_register, .write_ind_register = amdgpu_cgs_write_ind_register,
.get_firmware_info = amdgpu_cgs_get_firmware_info, .get_firmware_info = amdgpu_cgs_get_firmware_info,
.set_powergating_state = amdgpu_cgs_set_powergating_state,
.set_clockgating_state = amdgpu_cgs_set_clockgating_state,
}; };
struct cgs_device *amdgpu_cgs_create_device(struct amdgpu_device *adev) struct cgs_device *amdgpu_cgs_create_device(struct amdgpu_device *adev)
......
...@@ -1039,10 +1039,11 @@ static const struct vga_switcheroo_client_ops amdgpu_switcheroo_ops = { ...@@ -1039,10 +1039,11 @@ static const struct vga_switcheroo_client_ops amdgpu_switcheroo_ops = {
* the hardware IP specified. * the hardware IP specified.
* Returns the error code from the last instance. * Returns the error code from the last instance.
*/ */
int amdgpu_device_ip_set_clockgating_state(struct amdgpu_device *adev, int amdgpu_device_ip_set_clockgating_state(void *dev,
enum amd_ip_block_type block_type, enum amd_ip_block_type block_type,
enum amd_clockgating_state state) enum amd_clockgating_state state)
{ {
struct amdgpu_device *adev = dev;
int i, r = 0; int i, r = 0;
for (i = 0; i < adev->num_ip_blocks; i++) { for (i = 0; i < adev->num_ip_blocks; i++) {
...@@ -1072,10 +1073,11 @@ int amdgpu_device_ip_set_clockgating_state(struct amdgpu_device *adev, ...@@ -1072,10 +1073,11 @@ int amdgpu_device_ip_set_clockgating_state(struct amdgpu_device *adev,
* the hardware IP specified. * the hardware IP specified.
* Returns the error code from the last instance. * Returns the error code from the last instance.
*/ */
int amdgpu_device_ip_set_powergating_state(struct amdgpu_device *adev, int amdgpu_device_ip_set_powergating_state(void *dev,
enum amd_ip_block_type block_type, enum amd_ip_block_type block_type,
enum amd_powergating_state state) enum amd_powergating_state state)
{ {
struct amdgpu_device *adev = dev;
int i, r = 0; int i, r = 0;
for (i = 0; i < adev->num_ip_blocks; i++) { for (i = 0; i < adev->num_ip_blocks; i++) {
......
...@@ -42,20 +42,6 @@ enum cgs_ind_reg { ...@@ -42,20 +42,6 @@ enum cgs_ind_reg {
CGS_IND_REG__AUDIO_ENDPT CGS_IND_REG__AUDIO_ENDPT
}; };
/**
* enum cgs_engine - Engines that can be statically power-gated
*/
enum cgs_engine {
CGS_ENGINE__UVD,
CGS_ENGINE__VCE,
CGS_ENGINE__VP8,
CGS_ENGINE__ACP_DMA,
CGS_ENGINE__ACP_DSP0,
CGS_ENGINE__ACP_DSP1,
CGS_ENGINE__ISP,
/* ... */
};
/* /*
* enum cgs_ucode_id - Firmware types for different IPs * enum cgs_ucode_id - Firmware types for different IPs
*/ */
...@@ -152,15 +138,6 @@ typedef int (*cgs_get_firmware_info)(struct cgs_device *cgs_device, ...@@ -152,15 +138,6 @@ typedef int (*cgs_get_firmware_info)(struct cgs_device *cgs_device,
enum cgs_ucode_id type, enum cgs_ucode_id type,
struct cgs_firmware_info *info); struct cgs_firmware_info *info);
typedef int(*cgs_set_powergating_state)(struct cgs_device *cgs_device,
enum amd_ip_block_type block_type,
enum amd_powergating_state state);
typedef int(*cgs_set_clockgating_state)(struct cgs_device *cgs_device,
enum amd_ip_block_type block_type,
enum amd_clockgating_state state);
struct cgs_ops { struct cgs_ops {
/* MMIO access */ /* MMIO access */
cgs_read_register_t read_register; cgs_read_register_t read_register;
...@@ -169,9 +146,6 @@ struct cgs_ops { ...@@ -169,9 +146,6 @@ struct cgs_ops {
cgs_write_ind_register_t write_ind_register; cgs_write_ind_register_t write_ind_register;
/* Firmware Info */ /* Firmware Info */
cgs_get_firmware_info get_firmware_info; cgs_get_firmware_info get_firmware_info;
/* cg pg interface*/
cgs_set_powergating_state set_powergating_state;
cgs_set_clockgating_state set_clockgating_state;
}; };
struct cgs_os_ops; /* To be define in OS-specific CGS header */ struct cgs_os_ops; /* To be define in OS-specific CGS header */
...@@ -200,10 +174,5 @@ struct cgs_device ...@@ -200,10 +174,5 @@ struct cgs_device
#define cgs_get_firmware_info(dev, type, info) \ #define cgs_get_firmware_info(dev, type, info) \
CGS_CALL(get_firmware_info, dev, type, info) CGS_CALL(get_firmware_info, dev, type, info)
#define cgs_set_powergating_state(dev, block_type, state) \
CGS_CALL(set_powergating_state, dev, block_type, state)
#define cgs_set_clockgating_state(dev, block_type, state) \
CGS_CALL(set_clockgating_state, dev, block_type, state)
#endif /* _CGS_COMMON_H */ #endif /* _CGS_COMMON_H */
...@@ -288,10 +288,10 @@ static void pp_dpm_en_umd_pstate(struct pp_hwmgr *hwmgr, ...@@ -288,10 +288,10 @@ static void pp_dpm_en_umd_pstate(struct pp_hwmgr *hwmgr,
if (*level & profile_mode_mask) { if (*level & profile_mode_mask) {
hwmgr->saved_dpm_level = hwmgr->dpm_level; hwmgr->saved_dpm_level = hwmgr->dpm_level;
hwmgr->en_umd_pstate = true; hwmgr->en_umd_pstate = true;
cgs_set_clockgating_state(hwmgr->device, amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_GFX, AMD_IP_BLOCK_TYPE_GFX,
AMD_CG_STATE_UNGATE); AMD_CG_STATE_UNGATE);
cgs_set_powergating_state(hwmgr->device, amdgpu_device_ip_set_powergating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_GFX, AMD_IP_BLOCK_TYPE_GFX,
AMD_PG_STATE_UNGATE); AMD_PG_STATE_UNGATE);
} }
...@@ -301,10 +301,10 @@ static void pp_dpm_en_umd_pstate(struct pp_hwmgr *hwmgr, ...@@ -301,10 +301,10 @@ static void pp_dpm_en_umd_pstate(struct pp_hwmgr *hwmgr,
if (*level == AMD_DPM_FORCED_LEVEL_PROFILE_EXIT) if (*level == AMD_DPM_FORCED_LEVEL_PROFILE_EXIT)
*level = hwmgr->saved_dpm_level; *level = hwmgr->saved_dpm_level;
hwmgr->en_umd_pstate = false; hwmgr->en_umd_pstate = false;
cgs_set_clockgating_state(hwmgr->device, amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_GFX, AMD_IP_BLOCK_TYPE_GFX,
AMD_CG_STATE_GATE); AMD_CG_STATE_GATE);
cgs_set_powergating_state(hwmgr->device, amdgpu_device_ip_set_powergating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_GFX, AMD_IP_BLOCK_TYPE_GFX,
AMD_PG_STATE_GATE); AMD_PG_STATE_GATE);
} }
......
...@@ -147,20 +147,20 @@ void smu7_powergate_uvd(struct pp_hwmgr *hwmgr, bool bgate) ...@@ -147,20 +147,20 @@ void smu7_powergate_uvd(struct pp_hwmgr *hwmgr, bool bgate)
data->uvd_power_gated = bgate; data->uvd_power_gated = bgate;
if (bgate) { if (bgate) {
cgs_set_powergating_state(hwmgr->device, amdgpu_device_ip_set_powergating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_UVD, AMD_IP_BLOCK_TYPE_UVD,
AMD_PG_STATE_GATE); AMD_PG_STATE_GATE);
cgs_set_clockgating_state(hwmgr->device, amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_UVD, AMD_IP_BLOCK_TYPE_UVD,
AMD_CG_STATE_GATE); AMD_CG_STATE_GATE);
smu7_update_uvd_dpm(hwmgr, true); smu7_update_uvd_dpm(hwmgr, true);
smu7_powerdown_uvd(hwmgr); smu7_powerdown_uvd(hwmgr);
} else { } else {
smu7_powerup_uvd(hwmgr); smu7_powerup_uvd(hwmgr);
cgs_set_clockgating_state(hwmgr->device, amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_UVD, AMD_IP_BLOCK_TYPE_UVD,
AMD_CG_STATE_UNGATE); AMD_CG_STATE_UNGATE);
cgs_set_powergating_state(hwmgr->device, amdgpu_device_ip_set_powergating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_UVD, AMD_IP_BLOCK_TYPE_UVD,
AMD_PG_STATE_UNGATE); AMD_PG_STATE_UNGATE);
smu7_update_uvd_dpm(hwmgr, false); smu7_update_uvd_dpm(hwmgr, false);
...@@ -175,20 +175,20 @@ void smu7_powergate_vce(struct pp_hwmgr *hwmgr, bool bgate) ...@@ -175,20 +175,20 @@ void smu7_powergate_vce(struct pp_hwmgr *hwmgr, bool bgate)
data->vce_power_gated = bgate; data->vce_power_gated = bgate;
if (bgate) { if (bgate) {
cgs_set_powergating_state(hwmgr->device, amdgpu_device_ip_set_powergating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_VCE, AMD_IP_BLOCK_TYPE_VCE,
AMD_PG_STATE_GATE); AMD_PG_STATE_GATE);
cgs_set_clockgating_state(hwmgr->device, amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_VCE, AMD_IP_BLOCK_TYPE_VCE,
AMD_CG_STATE_GATE); AMD_CG_STATE_GATE);
smu7_update_vce_dpm(hwmgr, true); smu7_update_vce_dpm(hwmgr, true);
smu7_powerdown_vce(hwmgr); smu7_powerdown_vce(hwmgr);
} else { } else {
smu7_powerup_vce(hwmgr); smu7_powerup_vce(hwmgr);
cgs_set_clockgating_state(hwmgr->device, amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_VCE, AMD_IP_BLOCK_TYPE_VCE,
AMD_CG_STATE_UNGATE); AMD_CG_STATE_UNGATE);
cgs_set_powergating_state(hwmgr->device, amdgpu_device_ip_set_powergating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_VCE, AMD_IP_BLOCK_TYPE_VCE,
AMD_PG_STATE_UNGATE); AMD_PG_STATE_UNGATE);
smu7_update_vce_dpm(hwmgr, false); smu7_update_vce_dpm(hwmgr, false);
......
...@@ -1892,20 +1892,20 @@ static void smu8_dpm_powergate_uvd(struct pp_hwmgr *hwmgr, bool bgate) ...@@ -1892,20 +1892,20 @@ static void smu8_dpm_powergate_uvd(struct pp_hwmgr *hwmgr, bool bgate)
data->uvd_power_gated = bgate; data->uvd_power_gated = bgate;
if (bgate) { if (bgate) {
cgs_set_powergating_state(hwmgr->device, amdgpu_device_ip_set_powergating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_UVD, AMD_IP_BLOCK_TYPE_UVD,
AMD_PG_STATE_GATE); AMD_PG_STATE_GATE);
cgs_set_clockgating_state(hwmgr->device, amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_UVD, AMD_IP_BLOCK_TYPE_UVD,
AMD_CG_STATE_GATE); AMD_CG_STATE_GATE);
smu8_dpm_update_uvd_dpm(hwmgr, true); smu8_dpm_update_uvd_dpm(hwmgr, true);
smu8_dpm_powerdown_uvd(hwmgr); smu8_dpm_powerdown_uvd(hwmgr);
} else { } else {
smu8_dpm_powerup_uvd(hwmgr); smu8_dpm_powerup_uvd(hwmgr);
cgs_set_clockgating_state(hwmgr->device, amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_UVD, AMD_IP_BLOCK_TYPE_UVD,
AMD_CG_STATE_UNGATE); AMD_CG_STATE_UNGATE);
cgs_set_powergating_state(hwmgr->device, amdgpu_device_ip_set_powergating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_UVD, AMD_IP_BLOCK_TYPE_UVD,
AMD_PG_STATE_UNGATE); AMD_PG_STATE_UNGATE);
smu8_dpm_update_uvd_dpm(hwmgr, false); smu8_dpm_update_uvd_dpm(hwmgr, false);
...@@ -1918,12 +1918,10 @@ static void smu8_dpm_powergate_vce(struct pp_hwmgr *hwmgr, bool bgate) ...@@ -1918,12 +1918,10 @@ static void smu8_dpm_powergate_vce(struct pp_hwmgr *hwmgr, bool bgate)
struct smu8_hwmgr *data = hwmgr->backend; struct smu8_hwmgr *data = hwmgr->backend;
if (bgate) { if (bgate) {
cgs_set_powergating_state( amdgpu_device_ip_set_powergating_state(hwmgr->adev,
hwmgr->device,
AMD_IP_BLOCK_TYPE_VCE, AMD_IP_BLOCK_TYPE_VCE,
AMD_PG_STATE_GATE); AMD_PG_STATE_GATE);
cgs_set_clockgating_state( amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
hwmgr->device,
AMD_IP_BLOCK_TYPE_VCE, AMD_IP_BLOCK_TYPE_VCE,
AMD_CG_STATE_GATE); AMD_CG_STATE_GATE);
smu8_enable_disable_vce_dpm(hwmgr, false); smu8_enable_disable_vce_dpm(hwmgr, false);
...@@ -1932,12 +1930,10 @@ static void smu8_dpm_powergate_vce(struct pp_hwmgr *hwmgr, bool bgate) ...@@ -1932,12 +1930,10 @@ static void smu8_dpm_powergate_vce(struct pp_hwmgr *hwmgr, bool bgate)
} else { } else {
smu8_dpm_powerup_vce(hwmgr); smu8_dpm_powerup_vce(hwmgr);
data->vce_power_gated = false; data->vce_power_gated = false;
cgs_set_clockgating_state( amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
hwmgr->device,
AMD_IP_BLOCK_TYPE_VCE, AMD_IP_BLOCK_TYPE_VCE,
AMD_CG_STATE_UNGATE); AMD_CG_STATE_UNGATE);
cgs_set_powergating_state( amdgpu_device_ip_set_powergating_state(hwmgr->adev,
hwmgr->device,
AMD_IP_BLOCK_TYPE_VCE, AMD_IP_BLOCK_TYPE_VCE,
AMD_PG_STATE_UNGATE); AMD_PG_STATE_UNGATE);
smu8_dpm_update_vce_dpm(hwmgr); smu8_dpm_update_vce_dpm(hwmgr);
......
...@@ -306,13 +306,13 @@ static int fiji_start_smu(struct pp_hwmgr *hwmgr) ...@@ -306,13 +306,13 @@ static int fiji_start_smu(struct pp_hwmgr *hwmgr)
} }
/* To initialize all clock gating before RLC loaded and running.*/ /* To initialize all clock gating before RLC loaded and running.*/
cgs_set_clockgating_state(hwmgr->device, amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_GFX, AMD_CG_STATE_GATE); AMD_IP_BLOCK_TYPE_GFX, AMD_CG_STATE_GATE);
cgs_set_clockgating_state(hwmgr->device, amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_GMC, AMD_CG_STATE_GATE); AMD_IP_BLOCK_TYPE_GMC, AMD_CG_STATE_GATE);
cgs_set_clockgating_state(hwmgr->device, amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_SDMA, AMD_CG_STATE_GATE); AMD_IP_BLOCK_TYPE_SDMA, AMD_CG_STATE_GATE);
cgs_set_clockgating_state(hwmgr->device, amdgpu_device_ip_set_clockgating_state(hwmgr->adev,
AMD_IP_BLOCK_TYPE_COMMON, AMD_CG_STATE_GATE); AMD_IP_BLOCK_TYPE_COMMON, AMD_CG_STATE_GATE);
/* Setup SoftRegsStart here for register lookup in case /* Setup SoftRegsStart here for register lookup in case
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment