On 1/22/2024 8:44 PM, Lazar, Lijo wrote: > > > On 1/22/2024 2:12 PM, Ma Jun wrote: >> Replace the hard-coded numbers with macro definition >> >> Signed-off-by: Ma Jun <Jun.Ma2@xxxxxxx> >> --- >> .../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_0.h | 11 +---------- >> .../pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h | 11 ----------- >> drivers/gpu/drm/amd/pm/swsmu/inc/smu_v11_0.h | 5 +++++ >> drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h | 10 ++++++++++ >> drivers/gpu/drm/amd/pm/swsmu/inc/smu_v14_0.h | 2 ++ >> drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 10 +++++----- >> drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c | 14 +++++++------- >> drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c | 2 +- >> 8 files changed, 31 insertions(+), 34 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_0.h b/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_0.h >> index b114d14fc053..c6b7f904e742 100644 >> --- a/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_0.h >> +++ b/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_0.h >> @@ -1618,15 +1618,6 @@ typedef struct { >> #define TABLE_WIFIBAND 12 >> #define TABLE_COUNT 13 >> >> -//IH Interupt ID >> -#define IH_INTERRUPT_ID_TO_DRIVER 0xFE >> -#define IH_INTERRUPT_CONTEXT_ID_BACO 0x2 >> -#define IH_INTERRUPT_CONTEXT_ID_AC 0x3 >> -#define IH_INTERRUPT_CONTEXT_ID_DC 0x4 >> -#define IH_INTERRUPT_CONTEXT_ID_AUDIO_D0 0x5 >> -#define IH_INTERRUPT_CONTEXT_ID_AUDIO_D3 0x6 >> -#define IH_INTERRUPT_CONTEXT_ID_THERMAL_THROTTLING 0x7 >> -#define IH_INTERRUPT_CONTEXT_ID_FAN_ABNORMAL 0x8 >> -#define IH_INTERRUPT_CONTEXT_ID_FAN_RECOVERY 0x9 >> + >> >> #endif >> diff --git a/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h b/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h >> index 8b1496f8ce58..33937c1d984f 100644 >> --- a/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h >> +++ b/drivers/gpu/drm/amd/pm/swsmu/inc/pmfw_if/smu13_driver_if_v13_0_7.h >> @@ -1608,15 +1608,4 @@ typedef struct { >> #define TABLE_WIFIBAND 12 >> #define TABLE_COUNT 13 >> >> -//IH Interupt ID >> -#define IH_INTERRUPT_ID_TO_DRIVER 0xFE >> -#define IH_INTERRUPT_CONTEXT_ID_BACO 0x2 >> -#define IH_INTERRUPT_CONTEXT_ID_AC 0x3 >> -#define IH_INTERRUPT_CONTEXT_ID_DC 0x4 >> -#define IH_INTERRUPT_CONTEXT_ID_AUDIO_D0 0x5 >> -#define IH_INTERRUPT_CONTEXT_ID_AUDIO_D3 0x6 >> -#define IH_INTERRUPT_CONTEXT_ID_THERMAL_THROTTLING 0x7 >> -#define IH_INTERRUPT_CONTEXT_ID_FAN_ABNORMAL 0x8 >> -#define IH_INTERRUPT_CONTEXT_ID_FAN_RECOVERY 0x9 >> - >> #endif >> diff --git a/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v11_0.h b/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v11_0.h >> index a0e5ad0381d6..9fe26497e75e 100644 >> --- a/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v11_0.h >> +++ b/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v11_0.h >> @@ -63,6 +63,11 @@ >> #define LINK_WIDTH_MAX 6 >> #define LINK_SPEED_MAX 3 >> >> +#define IH_INTERRUPT_ID_TO_DRIVER 0xFE >> +#define IH_INTERRUPT_CONTEXT_ID_AC 0x3 >> +#define IH_INTERRUPT_CONTEXT_ID_DC 0x4 >> +#define IH_INTERRUPT_CONTEXT_ID_THERMAL_THROTTLING 0x7 >> + >> static const __maybe_unused uint16_t link_width[] = {0, 1, 2, 4, 8, 12, 16}; >> >> static const >> diff --git a/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h b/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h >> index 46b972f36666..436705a18e99 100644 >> --- a/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h >> +++ b/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v13_0.h >> @@ -59,6 +59,16 @@ extern const int pmfw_decoded_link_width[7]; >> #define DECODE_GEN_SPEED(gen_speed_idx) (pmfw_decoded_link_speed[gen_speed_idx]) >> #define DECODE_LANE_WIDTH(lane_width_idx) (pmfw_decoded_link_width[lane_width_idx]) >> >> +#define IH_INTERRUPT_ID_TO_DRIVER 0xFE >> +#define IH_INTERRUPT_CONTEXT_ID_BACO 0x2 >> +#define IH_INTERRUPT_CONTEXT_ID_AC 0x3 >> +#define IH_INTERRUPT_CONTEXT_ID_DC 0x4 >> +#define IH_INTERRUPT_CONTEXT_ID_AUDIO_D0 0x5 >> +#define IH_INTERRUPT_CONTEXT_ID_AUDIO_D3 0x6 >> +#define IH_INTERRUPT_CONTEXT_ID_THERMAL_THROTTLING 0x7 >> +#define IH_INTERRUPT_CONTEXT_ID_FAN_ABNORMAL 0x8 >> +#define IH_INTERRUPT_CONTEXT_ID_FAN_RECOVERY 0x9 >> + > > Since the context_ids are unique across SOCs, these may be kept in > smu_cmn.h. > Thanks, will fix this in v2. Regards, Ma Jun > Thanks, > Lijo > >> struct smu_13_0_max_sustainable_clocks { >> uint32_t display_clock; >> uint32_t phy_clock; >> diff --git a/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v14_0.h b/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v14_0.h >> index 3f7463c1c1a9..c92ad3f533c5 100644 >> --- a/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v14_0.h >> +++ b/drivers/gpu/drm/amd/pm/swsmu/inc/smu_v14_0.h >> @@ -44,6 +44,8 @@ >> #define MAX_DPM_LEVELS 16 >> #define MAX_PCIE_CONF 3 >> >> +#define IH_INTERRUPT_ID_TO_DRIVER 0xFE >> + >> struct smu_14_0_max_sustainable_clocks { >> uint32_t display_clock; >> uint32_t phy_clock; >> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c >> index d74343adaa5f..232e9b1ea006 100644 >> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c >> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c >> @@ -1432,24 +1432,24 @@ static int smu_v11_0_irq_process(struct amdgpu_device *adev, >> dev_emerg(adev->dev, "ERROR: System is going to shutdown due to GPU HW CTF!\n"); >> orderly_poweroff(true); >> } else if (client_id == SOC15_IH_CLIENTID_MP1) { >> - if (src_id == 0xfe) { >> + if (src_id == IH_INTERRUPT_ID_TO_DRIVER) { >> /* ACK SMUToHost interrupt */ >> data = RREG32_SOC15(MP1, 0, mmMP1_SMN_IH_SW_INT_CTRL); >> data = REG_SET_FIELD(data, MP1_SMN_IH_SW_INT_CTRL, INT_ACK, 1); >> WREG32_SOC15(MP1, 0, mmMP1_SMN_IH_SW_INT_CTRL, data); >> >> switch (ctxid) { >> - case 0x3: >> + case IH_INTERRUPT_CONTEXT_ID_AC: >> dev_dbg(adev->dev, "Switched to AC mode!\n"); >> schedule_work(&smu->interrupt_work); >> adev->pm.ac_power = true; >> break; >> - case 0x4: >> + case IH_INTERRUPT_CONTEXT_ID_DC: >> dev_dbg(adev->dev, "Switched to DC mode!\n"); >> schedule_work(&smu->interrupt_work); >> adev->pm.ac_power = false; >> break; >> - case 0x7: >> + case IH_INTERRUPT_CONTEXT_ID_THERMAL_THROTTLING: >> /* >> * Increment the throttle interrupt counter >> */ >> @@ -1508,7 +1508,7 @@ int smu_v11_0_register_irq_handler(struct smu_context *smu) >> return ret; >> >> ret = amdgpu_irq_add_id(adev, SOC15_IH_CLIENTID_MP1, >> - 0xfe, >> + IH_INTERRUPT_ID_TO_DRIVER, >> irq_src); >> if (ret) >> return ret; >> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c >> index fc7c04e19b18..c8fc7eccab06 100644 >> --- a/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c >> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu13/smu_v13_0.c >> @@ -1368,24 +1368,24 @@ static int smu_v13_0_irq_process(struct amdgpu_device *adev, >> dev_emerg(adev->dev, "ERROR: System is going to shutdown due to GPU HW CTF!\n"); >> orderly_poweroff(true); >> } else if (client_id == SOC15_IH_CLIENTID_MP1) { >> - if (src_id == 0xfe) { >> + if (src_id == IH_INTERRUPT_ID_TO_DRIVER) { >> /* ACK SMUToHost interrupt */ >> data = RREG32_SOC15(MP1, 0, regMP1_SMN_IH_SW_INT_CTRL); >> data = REG_SET_FIELD(data, MP1_SMN_IH_SW_INT_CTRL, INT_ACK, 1); >> WREG32_SOC15(MP1, 0, regMP1_SMN_IH_SW_INT_CTRL, data); >> >> switch (ctxid) { >> - case 0x3: >> + case IH_INTERRUPT_CONTEXT_ID_AC: >> dev_dbg(adev->dev, "Switched to AC mode!\n"); >> smu_v13_0_ack_ac_dc_interrupt(smu); >> adev->pm.ac_power = true; >> break; >> - case 0x4: >> + case IH_INTERRUPT_CONTEXT_ID_DC: >> dev_dbg(adev->dev, "Switched to DC mode!\n"); >> smu_v13_0_ack_ac_dc_interrupt(smu); >> adev->pm.ac_power = false; >> break; >> - case 0x7: >> + case IH_INTERRUPT_CONTEXT_ID_THERMAL_THROTTLING: >> /* >> * Increment the throttle interrupt counter >> */ >> @@ -1398,7 +1398,7 @@ static int smu_v13_0_irq_process(struct amdgpu_device *adev, >> schedule_work(&smu->throttling_logging_work); >> >> break; >> - case 0x8: >> + case IH_INTERRUPT_CONTEXT_ID_FAN_ABNORMAL: >> high = smu->thermal_range.software_shutdown_temp + >> smu->thermal_range.software_shutdown_temp_offset; >> high = min_t(typeof(high), >> @@ -1415,7 +1415,7 @@ static int smu_v13_0_irq_process(struct amdgpu_device *adev, >> data = data & (~THM_THERMAL_INT_CTRL__THERM_TRIGGER_MASK_MASK); >> WREG32_SOC15(THM, 0, regTHM_THERMAL_INT_CTRL, data); >> break; >> - case 0x9: >> + case IH_INTERRUPT_CONTEXT_ID_FAN_RECOVERY: >> high = min_t(typeof(high), >> SMU_THERMAL_MAXIMUM_ALERT_TEMP, >> smu->thermal_range.software_shutdown_temp); >> @@ -1476,7 +1476,7 @@ int smu_v13_0_register_irq_handler(struct smu_context *smu) >> return ret; >> >> ret = amdgpu_irq_add_id(adev, SOC15_IH_CLIENTID_MP1, >> - 0xfe, >> + IH_INTERRUPT_ID_TO_DRIVER, >> irq_src); >> if (ret) >> return ret; >> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c >> index 4894f7ee737b..9a8b7fd6995d 100644 >> --- a/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c >> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0.c >> @@ -892,7 +892,7 @@ int smu_v14_0_register_irq_handler(struct smu_context *smu) >> // TODO: THM related >> >> ret = amdgpu_irq_add_id(adev, SOC15_IH_CLIENTID_MP1, >> - 0xfe, >> + IH_INTERRUPT_ID_TO_DRIVER, >> irq_src); >> if (ret) >> return ret;