On 7/11/2019 10:10 PM, Viresh Kumar wrote: > On 11-07-19, 16:58, Janakarajan Natarajan wrote: >> On 7/11/2019 1:12 AM, Viresh Kumar wrote: >>> On 10-07-19, 18:37, Natarajan, Janakarajan wrote: >>>> +static int amd_cpufreq_cpu_init(struct cpufreq_policy *policy) >>>> +{ >>>> + return 0; >>>> +} >>>> + >>>> +static int amd_cpufreq_cpu_exit(struct cpufreq_policy *policy) >>>> +{ >>>> + return 0; >>>> +} >>>> + >>>> +static int amd_cpufreq_cpu_verify(struct cpufreq_policy *policy) >>>> +{ >>>> + return 0; >>>> +} >>>> + >>>> +static int amd_cpufreq_cpu_target_index(struct cpufreq_policy *policy, >>>> + unsigned int index) >>>> +{ >>>> + return 0; >>>> +} >>> All empty helpers ? There is nothing you need to do ? >> >> When we posted v2 of this patchset, Rafael let us know that he was >> uncomfortable >> >> going behind the (acpi-cpufreq) drivers back by letting the user >> communicate directly >> >> with the platform. That's the reason we have an empty driver whose >> primary purpose >> >> is to expose sysfs entries for the user. > I read his comments now and what he suggested is: > > "What about handling this like the others do, through a proper cpufreq > driver?" > > I am not sure if he meant something like that you have here. Only one > cpufreq driver can be registered at any point of time with the kernel, > and so if this one is there then acpi-cpufreq or intel-pstate can't be > there. Who will do DVFS ? By default, the driver is disabled and cpufreq falls back to using acpi-cpufreq. To enable the driver, a parameter i.e. amd_cpufreq.cppc_enable=1 needs to be used. Then the user will gain access to /sys/devices/system/cpu/cpu<num>/amd_cpufreq/{enable, max_perf, min_perf, desired_perf, auto_sel_enable}. max_perf, min_perf allows the user to indicate to the platform the performance they expect in an abstract scale [min_perf to max_perf] inclusive. desired_perf is the performance the user would like to ideally achieve. desired_perf will fall withing max and min perf. Based on the value of these registers, the platform will adjust a number of variables, voltage and frequency being one of them. If the user would rather have the system handle all power/performance adjustments by itself, then they can set the auto_sel_enable register. Thanks, Janakarajan