[PATCH 8/8] drm/amd/pm: drop the support for manual fan speed setting on SMU13.0.7

Matt Coffin mcoffin13 at gmail.com
Sun Feb 5 15:16:33 UTC 2023


On Thu Jan 26, 2023 at 11:26 AM MST, Alex Deucher wrote:
> I'm following up with the SMU teams.  Will get back to you when I know more.

Hey again guys,

I'm still relatively stuck on this, both due to being confused the
*seemingly* out-of-date information in the pm/inc/smu_v13_0_0_pptable.h
header, and my general lack of experience in any kind of reversing when
it comes to hardware interaction.

I do have one update, though: I found that the smu *is* able to accept
*some* changes in the overdrive table, so the message to upload it to
VRAM *is* working. The only thing I've been able to modify is the
FeaturesCtrlMask, but I haven't been able to discern which bits would
correspond to which features, but it doesn't appear to have a
correlation to the SMU_13_0_0_ODFEATURE mask(s) if the supported
capabilities information is to be beleived (if that were the case, then
it's rejecting bits being set that it says it supports, *OR* the header
is more off than I'd thought).

I know y'all are busy, so sorry to bother, but anything helps since I
don't quite know where to go from here right now.

Cheers,
Matt

> > Sorry for the late reply; I became busy with day job. I've been working
> > on implementing OD support (and a sysfs interface to set *any* OD
> > setting by number, in contrast with pp_od_clk_voltage's pidgeon-holing
> > into supporting only PP_OD_DPM_TABLE_COMMAND commands), at the very
> > least for my own experimentation.
> >
> > The following is what I see when I read the OD table out from the SMU
> > (assuming that the inclusion of another VF curve setting at index 4 in
> > the header was a mistake, based on the values returned by the SMU).
> >
> > It seems that, at least in my case, my hardware is running in some kind
> > of mode that would *not* allow changing of the fan curve? Is it possble
> > that the header information in pm/inc/smu_v13_0_0_pptable.h is incorrect
> > even beyond the potential idx 4 of ODSETTINGs?
> >
> > It appears also that transferring the OD table *back* to the SMU results
> > in no error, but also no action taken, as subsequent reads to not
> > reflect any changes. I'm thinking this is due to some values read in on
> > the inital read of the table being invalid, but seemingly irrelevant
> > given what is reported by the capabilities (see: FAN_CURVE[*]).
> >
> > Is there any hints you guys could offer in terms of
> >
> > 1. what might be mal-aligned or mis-labeled in the smu_v13 pptable
> > header above?
> > 2. What pre-requisites I might be missing to allow the support for
> > ODCAP_FAN_CURVE?
> > 3. Why the apparent values for some settings in the boot table seemingly
> > wildly invalid? Will those somehow become valid once pre-requisites for
> > OD operation are met?
> >
> > I also feel like I've strayed from the original topic of the proposed
> > patch, and this probably belongs in it's own thread... but quite know
> > how to preserve any context there (sorry).
> >
> > Thanks in advance for helping out an eager outsider,
> > Matt
> >
> > Capabilities:
> > SMU_13_0_0_ODCAP_GFXCLK_LIMITS[0] true
> > SMU_13_0_0_ODCAP_GFXCLK_CURVE[1] true
> > SMU_13_0_0_ODCAP_UCLK_LIMITS[2] true
> > SMU_13_0_0_ODCAP_POWER_LIMIT[3] true
> > SMU_13_0_0_ODCAP_FAN_ACOUSTIC_LIMIT[4] true
> > SMU_13_0_0_ODCAP_FAN_SPEED_MIN[5] true
> > SMU_13_0_0_ODCAP_TEMPERATURE_FAN[6] true
> > SMU_13_0_0_ODCAP_TEMPERATURE_SYSTEM[7] true
> > SMU_13_0_0_ODCAP_MEMORY_TIMING_TUNE[8] true
> > SMU_13_0_0_ODCAP_FAN_ZERO_RPM_CONTROL[9] true
> > SMU_13_0_0_ODCAP_AUTO_UV_ENGINE[10] true
> > SMU_13_0_0_ODCAP_AUTO_OC_ENGINE[11] true
> > SMU_13_0_0_ODCAP_AUTO_OC_MEMORY[12] true
> > SMU_13_0_0_ODCAP_FAN_CURVE[13] false
> > SMU_13_0_0_ODCAP_AUTO_FAN_ACOUSTIC_LIMIT[14] true
> > SMU_13_0_0_ODCAP_POWER_MODE[15] false
> >
> > Limits:
> > SMU_13_0_0_ODSETTING_GFXCLKFMAX[0] - [500,5000]
> > SMU_13_0_0_ODSETTING_GFXCLKFMIN[1] - [500,5000]
> > SMU_13_0_0_ODSETTING_CUSTOM_GFX_VF_CURVE_A[2] - [97,1500]
> > SMU_13_0_0_ODSETTING_CUSTOM_GFX_VF_CURVE_B[3] - [97,1500]
> > SMU_13_0_0_ODSETTING_CUSTOM_CURVE_VFT_FMIN[4] - [10,15]
> > SMU_13_0_0_ODSETTING_UCLKFMIN[5] - [500,3200]
> > SMU_13_0_0_ODSETTING_UCLKFMAX[6] - [500,3200]
> > SMU_13_0_0_ODSETTING_POWERPERCENTAGE[7] - [25,105]
> > SMU_13_0_0_ODSETTING_FANRPMMIN[8] - [50,110]
> > SMU_13_0_0_ODSETTING_FANRPMACOUSTICLIMIT[9] - [0,1]
> > SMU_13_0_0_ODSETTING_FANTARGETTEMPERATURE[10] - [0,1]
> > SMU_13_0_0_ODSETTING_OPERATINGTEMPMAX[11] - [0,1]
> > SMU_13_0_0_ODSETTING_ACTIMING[12] - [0,1]
> > SMU_13_0_0_ODSETTING_FAN_ZERO_RPM_CONTROL[13] - [0,1]
> > SMU_13_0_0_ODSETTING_AUTOUVENGINE[14] - [25,100]
> > SMU_13_0_0_ODSETTING_AUTOOCENGINE[15] - [23,100]
> > SMU_13_0_0_ODSETTING_AUTOOCMEMORY[16] - [25,100]
> > SMU_13_0_0_ODSETTING_FAN_CURVE_TEMPERATURE_1[17] - [23,100]
> > SMU_13_0_0_ODSETTING_FAN_CURVE_SPEED_1[18] - [25,100]
> > SMU_13_0_0_ODSETTING_FAN_CURVE_TEMPERATURE_2[19] - [23,100]
> > SMU_13_0_0_ODSETTING_FAN_CURVE_SPEED_2[20] - [25,100]
> > SMU_13_0_0_ODSETTING_FAN_CURVE_TEMPERATURE_3[21] - [23,100]
> > SMU_13_0_0_ODSETTING_FAN_CURVE_SPEED_3[22] - [25,100]
> > SMU_13_0_0_ODSETTING_FAN_CURVE_TEMPERATURE_4[23] - [23,100]
> > SMU_13_0_0_ODSETTING_FAN_CURVE_SPEED_4[24] - [0,0]
> > SMU_13_0_0_ODSETTING_FAN_CURVE_TEMPERATURE_5[25] - [0,1]
> > SMU_13_0_0_ODSETTING_FAN_CURVE_SPEED_5[26] - [0,0]
> > SMU_13_0_0_ODSETTING_AUTO_FAN_ACOUSTIC_LIMIT[27] - [0,0]
> > SMU_13_0_0_ODSETTING_POWER_MODE[28] - [0,0]
> >
> > Boot OD Table:
> > GFXFLK: [600, 2945]
> > UCLK: [97, 1249]
> > FAN_CURVE[0]: 0 @ 0
> > FAN_CURVE[1]: 0 @ 0
> > FAN_CURVE[2]: 0 @ 0
> > FAN_CURVE[3]: 0 @ 0
> > FAN_CURVE[4]: 0 @ 0
> > FAN_CURVE[5]: 0 @ 0
> > FAN_MIN_PWM: 35
> > FAN_TARGET_TEMP: 94
> > FAN_ZERO_RPM_ENABLE: true
> > FAN_MODE: 0



More information about the amd-gfx mailing list