[PATCH 2/2] cpufreq: brcmstb-avs-cpufreq: prefer SCMI cpufreq if supported

Sudeep Holla sudeep.holla at arm.com
Fri Apr 20 02:15:13 PDT 2018



On 20/04/18 05:42, Viresh Kumar wrote:
> On 19-04-18, 11:37, Sudeep Holla wrote:
>>
>>
>> On 19/04/18 05:16, Viresh Kumar wrote:
>>> On 18-04-18, 08:56, Markus Mayer wrote:
>>>> From: Jim Quinlan <jim2101024 at gmail.com>
>>>>
>>>> If the SCMI cpufreq driver is supported, we bail, so that the new
>>>> approach can be used.
>>>>
>>>> Signed-off-by: Jim Quinlan <jim2101024 at gmail.com>
>>>> Signed-off-by: Markus Mayer <mmayer at broadcom.com>
>>>> ---
>>>>  drivers/cpufreq/brcmstb-avs-cpufreq.c | 16 ++++++++++++++++
>>>>  1 file changed, 16 insertions(+)
>>>>
>>>> diff --git a/drivers/cpufreq/brcmstb-avs-cpufreq.c b/drivers/cpufreq/brcmstb-avs-cpufreq.c
>>>> index b07559b9ed99..b4861a730162 100644
>>>> --- a/drivers/cpufreq/brcmstb-avs-cpufreq.c
>>>> +++ b/drivers/cpufreq/brcmstb-avs-cpufreq.c
>>>> @@ -164,6 +164,8 @@
>>>>  #define BRCM_AVS_CPU_INTR	"brcm,avs-cpu-l2-intr"
>>>>  #define BRCM_AVS_HOST_INTR	"sw_intr"
>>>>  
>>>> +#define ARM_SCMI_COMPAT		"arm,scmi"
>>>> +
>>>>  struct pmap {
>>>>  	unsigned int mode;
>>>>  	unsigned int p1;
>>>> @@ -511,6 +513,20 @@ static int brcm_avs_prepare_init(struct platform_device *pdev)
>>>>  	struct device *dev;
>>>>  	int host_irq, ret;
>>>>  
>>>> +	/*
>>>> +	 * If the SCMI cpufreq driver is supported, we bail, so that the more
>>>> +	 * modern approach can be used.
>>>> +	 */
>>>> +	if (IS_ENABLED(CONFIG_ARM_SCMI_PROTOCOL)) {
>>>> +		struct device_node *np;
>>>> +
>>>> +		np = of_find_compatible_node(NULL, NULL, ARM_SCMI_COMPAT);
>>>> +		if (np) {
>>>> +			of_node_put(np);
>>>> +			return -ENXIO;
>>>> +		}
>>>> +	}
>>>> +
>>>
>>> What about adding !CONFIG_ARM_SCMI_PROTOCOL in Kconfig dependency and don't
>>> compile the driver at all ?
>>>
>>
>> Unfortunately, that may not be good idea with single image needing both
>> configs to be enabled.
> 
> Sure, but looking at the above code, it looked like they don't need the other
> config if SCMI is enabled.
> 

Yes, I understand that. But if they just want to run a distro kernel or
a defconfig with all the options enabled, then it's not possible. But if
they always build kernel with some custom config options, then fine.

It still doesn't give the flexibility to switch between the two
implementations boot time based on some firmware config(e.g. DT status
property).

-- 
Regards,
Sudeep



More information about the linux-arm-kernel mailing list