mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-05 09:36:39 -04:00
drm/amd/pm: revise the pcie dpm parameters
revise the pcie dpm parameters Signed-off-by: Kenneth Feng <kenneth.feng@amd.com> Reviewed-by: Yang Wang <kevinyang.wang@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
009bfc5ec5
commit
1b92cb40b4
@@ -2456,8 +2456,12 @@ static int navi10_update_pcie_parameters(struct smu_context *smu,
|
||||
for (i = 0; i < NUM_LINK_LEVELS; i++) {
|
||||
if (pptable->PcieGenSpeed[i] > pcie_gen_cap ||
|
||||
pptable->PcieLaneCount[i] > pcie_width_cap) {
|
||||
dpm_context->dpm_tables.pcie_table.pcie_gen[i] = pcie_gen_cap;
|
||||
dpm_context->dpm_tables.pcie_table.pcie_lane[i] = pcie_width_cap;
|
||||
dpm_context->dpm_tables.pcie_table.pcie_gen[i] =
|
||||
pptable->PcieGenSpeed[i] > pcie_gen_cap ?
|
||||
pcie_gen_cap : pptable->PcieGenSpeed[i];
|
||||
dpm_context->dpm_tables.pcie_table.pcie_lane[i] =
|
||||
pptable->PcieLaneCount[i] > pcie_width_cap ?
|
||||
pcie_width_cap : pptable->PcieLaneCount[i];
|
||||
smu_pcie_arg = i << 16;
|
||||
smu_pcie_arg |= pcie_gen_cap << 8;
|
||||
smu_pcie_arg |= pcie_width_cap;
|
||||
|
||||
@@ -3193,8 +3193,10 @@ static int smu_v13_0_0_update_pcie_parameters(struct smu_context *smu,
|
||||
for (i = 0; i < num_of_levels; i++) {
|
||||
if (pcie_table->pcie_gen[i] > pcie_gen_cap ||
|
||||
pcie_table->pcie_lane[i] > pcie_width_cap) {
|
||||
pcie_table->pcie_gen[i] = pcie_gen_cap;
|
||||
pcie_table->pcie_lane[i] = pcie_width_cap;
|
||||
pcie_table->pcie_gen[i] = pcie_table->pcie_gen[i] > pcie_gen_cap ?
|
||||
pcie_gen_cap : pcie_table->pcie_gen[i];
|
||||
pcie_table->pcie_lane[i] = pcie_table->pcie_lane[i] > pcie_width_cap ?
|
||||
pcie_width_cap : pcie_table->pcie_lane[i];
|
||||
smu_pcie_arg = i << 16;
|
||||
smu_pcie_arg |= pcie_table->pcie_gen[i] << 8;
|
||||
smu_pcie_arg |= pcie_table->pcie_lane[i];
|
||||
|
||||
@@ -2781,8 +2781,10 @@ static int smu_v13_0_7_update_pcie_parameters(struct smu_context *smu,
|
||||
for (i = 0; i < num_of_levels; i++) {
|
||||
if (pcie_table->pcie_gen[i] > pcie_gen_cap ||
|
||||
pcie_table->pcie_lane[i] > pcie_width_cap) {
|
||||
pcie_table->pcie_gen[i] = pcie_gen_cap;
|
||||
pcie_table->pcie_lane[i] = pcie_width_cap;
|
||||
pcie_table->pcie_gen[i] = pcie_table->pcie_gen[i] > pcie_gen_cap ?
|
||||
pcie_gen_cap : pcie_table->pcie_gen[i];
|
||||
pcie_table->pcie_lane[i] = pcie_table->pcie_lane[i] > pcie_width_cap ?
|
||||
pcie_width_cap : pcie_table->pcie_lane[i];
|
||||
smu_pcie_arg = i << 16;
|
||||
smu_pcie_arg |= pcie_table->pcie_gen[i] << 8;
|
||||
smu_pcie_arg |= pcie_table->pcie_lane[i];
|
||||
|
||||
@@ -1518,8 +1518,10 @@ static int smu_v14_0_2_update_pcie_parameters(struct smu_context *smu,
|
||||
for (i = 0; i < num_of_levels; i++) {
|
||||
if (pcie_table->pcie_gen[i] > pcie_gen_cap ||
|
||||
pcie_table->pcie_lane[i] > pcie_width_cap) {
|
||||
pcie_table->pcie_gen[i] = pcie_gen_cap;
|
||||
pcie_table->pcie_lane[i] = pcie_width_cap;
|
||||
pcie_table->pcie_gen[i] = pcie_table->pcie_gen[i] > pcie_gen_cap ?
|
||||
pcie_gen_cap : pcie_table->pcie_gen[i];
|
||||
pcie_table->pcie_lane[i] = pcie_table->pcie_lane[i] > pcie_width_cap ?
|
||||
pcie_width_cap : pcie_table->pcie_lane[i];
|
||||
smu_pcie_arg = i << 16;
|
||||
smu_pcie_arg |= pcie_table->pcie_gen[i] << 8;
|
||||
smu_pcie_arg |= pcie_table->pcie_lane[i];
|
||||
|
||||
Reference in New Issue
Block a user