On Wed Jan 11, 2023 at 7:47 AM MST, Alex Deucher wrote:
> On Wed, Jan 11, 2023 at 8:23 AM Quan, Evan <evan.q...@amd.com> wrote:
> >
> > [AMD Official Use Only - General]
> >
> > Regarding the manual fan speed setting issue targeted by this patch, the 
> > SCPM feature of the new SMU13 asics prevents us from toggling the fan 
> > control feature from auto to manual.

This makes sense as a move towards using the same interface that other
platforms are most likely using.

> > About the capability in the OD table you mentioned, it might be a different 
> > issue.

I included some info/questions below; any hints you could give to point
me in the right way to keep learning would be appreciated.

>
> Right.  Manual fan control is no longer possible.  As Evan said, you
> can adjust the automatic fan curve using the OD interface, but that is
> it.

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

Reply via email to