summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/radeon/si_dpm.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/radeon/si_dpm.c')
-rw-r--r--drivers/gpu/drm/radeon/si_dpm.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/drivers/gpu/drm/radeon/si_dpm.c b/drivers/gpu/drm/radeon/si_dpm.c
index 9deb91970d4d..b4aa49b1ac63 100644
--- a/drivers/gpu/drm/radeon/si_dpm.c
+++ b/drivers/gpu/drm/radeon/si_dpm.c
@@ -2419,7 +2419,7 @@ static int si_initialize_smc_dte_tables(struct radeon_device *rdev)
if (dte_data->k <= 0)
return -EINVAL;
- dte_tables = kzalloc(sizeof(Smc_SIslands_DTE_Configuration), GFP_KERNEL);
+ dte_tables = kzalloc_obj(Smc_SIslands_DTE_Configuration);
if (dte_tables == NULL) {
si_pi->enable_dte = false;
return -ENOMEM;
@@ -2599,7 +2599,7 @@ static int si_initialize_smc_cac_tables(struct radeon_device *rdev)
if (ni_pi->enable_cac == false)
return 0;
- cac_tables = kzalloc(sizeof(PP_SIslands_CacConfig), GFP_KERNEL);
+ cac_tables = kzalloc_obj(PP_SIslands_CacConfig);
if (!cac_tables)
return -ENOMEM;
@@ -2794,7 +2794,7 @@ static int si_init_smc_spll_table(struct radeon_device *rdev)
if (si_pi->spll_table_start == 0)
return -EINVAL;
- spll_table = kzalloc(sizeof(SMC_SISLANDS_SPLL_DIV_TABLE), GFP_KERNEL);
+ spll_table = kzalloc_obj(SMC_SISLANDS_SPLL_DIV_TABLE);
if (spll_table == NULL)
return -ENOMEM;
@@ -2925,6 +2925,11 @@ static void si_apply_state_adjust_rules(struct radeon_device *rdev,
max_sclk = 60000;
max_mclk = 80000;
}
+ if ((rdev->pdev->device == 0x666f) &&
+ (rdev->pdev->revision == 0x00)) {
+ max_sclk = 80000;
+ max_mclk = 95000;
+ }
} else if (rdev->family == CHIP_OLAND) {
if ((rdev->pdev->revision == 0xC7) ||
(rdev->pdev->revision == 0x80) ||
@@ -5474,7 +5479,7 @@ static int si_initialize_mc_reg_table(struct radeon_device *rdev)
u8 module_index = rv770_get_memory_module_index(rdev);
int ret;
- table = kzalloc(sizeof(struct atom_mc_reg_table), GFP_KERNEL);
+ table = kzalloc_obj(struct atom_mc_reg_table);
if (!table)
return -ENOMEM;
@@ -6773,9 +6778,8 @@ static int si_parse_power_table(struct radeon_device *rdev)
(mode_info->atom_context->bios + data_offset +
le16_to_cpu(power_info->pplib.usNonClockInfoArrayOffset));
- rdev->pm.dpm.ps = kcalloc(state_array->ucNumEntries,
- sizeof(struct radeon_ps),
- GFP_KERNEL);
+ rdev->pm.dpm.ps = kzalloc_objs(struct radeon_ps,
+ state_array->ucNumEntries);
if (!rdev->pm.dpm.ps)
return -ENOMEM;
power_state_offset = (u8 *)state_array->states;
@@ -6787,7 +6791,7 @@ static int si_parse_power_table(struct radeon_device *rdev)
&non_clock_info_array->nonClockInfo[non_clock_array_index];
if (!rdev->pm.power_state[i].clock_info)
return -EINVAL;
- ps = kzalloc(sizeof(struct ni_ps), GFP_KERNEL);
+ ps = kzalloc_obj(struct ni_ps);
if (ps == NULL) {
kfree(rdev->pm.dpm.ps);
return -ENOMEM;
@@ -6844,7 +6848,7 @@ int si_dpm_init(struct radeon_device *rdev)
struct pci_dev *root = rdev->pdev->bus->self;
int ret;
- si_pi = kzalloc(sizeof(struct si_power_info), GFP_KERNEL);
+ si_pi = kzalloc_obj(struct si_power_info);
if (si_pi == NULL)
return -ENOMEM;
rdev->pm.dpm.priv = si_pi;
@@ -6894,9 +6898,7 @@ int si_dpm_init(struct radeon_device *rdev)
return ret;
rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries =
- kcalloc(4,
- sizeof(struct radeon_clock_voltage_dependency_entry),
- GFP_KERNEL);
+ kzalloc_objs(struct radeon_clock_voltage_dependency_entry, 4);
if (!rdev->pm.dpm.dyn_state.vddc_dependency_on_dispclk.entries) {
r600_free_extended_power_table(rdev);
return -ENOMEM;