Skip to content

Commit b9a24d8

Browse files
Evan Quanalexdeucher
authored andcommitted
drm/amd/pm: correct the pcie link state check for SMU13
Update the driver implementations to fit those data exposed by PMFW. Signed-off-by: Evan Quan <[email protected]> Acked-by: Alex Deucher <[email protected]> Signed-off-by: Alex Deucher <[email protected]> Cc: [email protected] # 6.1.x
1 parent 85e0689 commit b9a24d8

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,12 @@
6161
#define CTF_OFFSET_HOTSPOT 5
6262
#define CTF_OFFSET_MEM 5
6363

64+
static const int pmfw_decoded_link_speed[5] = {1, 2, 3, 4, 5};
65+
static const int pmfw_decoded_link_width[7] = {0, 1, 2, 4, 8, 12, 16};
66+
67+
#define DECODE_GEN_SPEED(gen_speed_idx) (pmfw_decoded_link_speed[gen_speed_idx])
68+
#define DECODE_LANE_WIDTH(lane_width_idx) (pmfw_decoded_link_width[lane_width_idx])
69+
6470
struct smu_13_0_max_sustainable_clocks {
6571
uint32_t display_clock;
6672
uint32_t phy_clock;

drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_0_ppt.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1144,8 +1144,8 @@ static int smu_v13_0_0_print_clk_levels(struct smu_context *smu,
11441144
(pcie_table->pcie_lane[i] == 5) ? "x12" :
11451145
(pcie_table->pcie_lane[i] == 6) ? "x16" : "",
11461146
pcie_table->clk_freq[i],
1147-
((gen_speed - 1) == pcie_table->pcie_gen[i]) &&
1148-
(lane_width == link_width[pcie_table->pcie_lane[i]]) ?
1147+
(gen_speed == DECODE_GEN_SPEED(pcie_table->pcie_gen[i])) &&
1148+
(lane_width == DECODE_LANE_WIDTH(link_width[pcie_table->pcie_lane[i]])) ?
11491149
"*" : "");
11501150
break;
11511151

drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0_7_ppt.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1133,8 +1133,8 @@ static int smu_v13_0_7_print_clk_levels(struct smu_context *smu,
11331133
(pcie_table->pcie_lane[i] == 5) ? "x12" :
11341134
(pcie_table->pcie_lane[i] == 6) ? "x16" : "",
11351135
pcie_table->clk_freq[i],
1136-
(gen_speed == pcie_table->pcie_gen[i]) &&
1137-
(lane_width == pcie_table->pcie_lane[i]) ?
1136+
(gen_speed == DECODE_GEN_SPEED(pcie_table->pcie_gen[i])) &&
1137+
(lane_width == DECODE_LANE_WIDTH(pcie_table->pcie_lane[i])) ?
11381138
"*" : "");
11391139
break;
11401140

0 commit comments

Comments
 (0)