|
81 | 81 | #define EPSILON 1
|
82 | 82 |
|
83 | 83 | #define smnPCIE_ESM_CTRL 0x193D0
|
84 |
| -#define smnPCIE_LC_LINK_WIDTH_CNTL 0x1ab40288 |
| 84 | +#define smnPCIE_LC_LINK_WIDTH_CNTL 0x1a340288 |
85 | 85 | #define PCIE_LC_LINK_WIDTH_CNTL__LC_LINK_WIDTH_RD_MASK 0x00000070L
|
86 | 86 | #define PCIE_LC_LINK_WIDTH_CNTL__LC_LINK_WIDTH_RD__SHIFT 0x4
|
| 87 | +#define MAX_LINK_WIDTH 6 |
87 | 88 |
|
88 | 89 | static const struct cmn2asic_msg_mapping smu_v13_0_6_message_map[SMU_MSG_MAX_COUNT] = {
|
89 | 90 | MSG_MAP(TestMessage, PPSMC_MSG_TestMessage, 0),
|
@@ -1947,6 +1948,7 @@ static ssize_t smu_v13_0_6_get_gpu_metrics(struct smu_context *smu, void **table
|
1947 | 1948 | struct amdgpu_device *adev = smu->adev;
|
1948 | 1949 | int ret = 0, inst0, xcc0;
|
1949 | 1950 | MetricsTable_t *metrics;
|
| 1951 | + u16 link_width_level; |
1950 | 1952 |
|
1951 | 1953 | inst0 = adev->sdma.instance[0].aid_id;
|
1952 | 1954 | xcc0 = GET_INST(GC, 0);
|
@@ -1997,8 +1999,12 @@ static ssize_t smu_v13_0_6_get_gpu_metrics(struct smu_context *smu, void **table
|
1997 | 1999 | gpu_metrics->throttle_status = 0;
|
1998 | 2000 |
|
1999 | 2001 | if (!(adev->flags & AMD_IS_APU)) {
|
| 2002 | + link_width_level = smu_v13_0_6_get_current_pcie_link_width_level(smu); |
| 2003 | + if (link_width_level > MAX_LINK_WIDTH) |
| 2004 | + link_width_level = 0; |
| 2005 | + |
2000 | 2006 | gpu_metrics->pcie_link_width =
|
2001 |
| - smu_v13_0_6_get_current_pcie_link_width_level(smu); |
| 2007 | + DECODE_LANE_WIDTH(link_width_level); |
2002 | 2008 | gpu_metrics->pcie_link_speed =
|
2003 | 2009 | smu_v13_0_6_get_current_pcie_link_speed(smu);
|
2004 | 2010 | }
|
|
0 commit comments