[PATCH v2 08/18] ARM64 / ACPI: Get the enable method for SMP initialization in ACPI way

Hanjun Guo hanjun.guo at linaro.org
Wed Aug 20 20:06:54 PDT 2014


On 2014-8-20 22:52, Catalin Marinas wrote:
> On Tue, Aug 19, 2014 at 09:32:25AM +0100, Hanjun Guo wrote:
>> On 2014-8-18 22:27, Catalin Marinas wrote:
>>> On Mon, Aug 04, 2014 at 04:28:15PM +0100, Hanjun Guo wrote:
>>>> +#ifdef CONFIG_ACPI
>>>> +/*
>>>> + * Get a cpu's boot method in the ACPI way.
>>>> + */
>>>> +static char * __init acpi_get_cpu_boot_method(void)
>>>> +{
>>>> +	/*
>>>> +	 * For ACPI 5.1, only two kind of methods are provided,
>>>> +	 * Parking protocol and PSCI, but Parking protocol is
>>>> +	 * specified for ARMv7 only, so make PSCI as the only method
>>>> +	 * for SMP initialization before the ACPI spec or Parking
>>>> +	 * protocol spec is updated.
>>>> +	 */
>>>> +	switch (smp_boot_protocol()) {
>>>> +	case ACPI_SMP_BOOT_PSCI:
>>>> +		return "psci";
>>>> +	case ACPI_SMP_BOOT_PARKING_PROTOCOL:
>>>> +	default:
>>>> +		return NULL;
>>>> +	}
>>>> +}
>>>
>>> Actually, do we even need to define smp_boot_protocol()? Is it used
>>> anywhere else apart from this patch (I still haven't gone through all
>>> patches)?
>>
>> It is just used in this patch. I think we can make the ACPI boot protocol
>> scalable in this way, if we support another boot protocol in ACPI in the
>> future, we can easily update the function to support it, does it make sense?
> 
> Not really. You just add additional code, enums, functions when all you
> do is check for acpi_psci_present() (or whatever new protocol you would
> get). If the enum is never going to be used outside this file, don't
> bother with additional functions.
> 
> BTW, it would be nicer if the acpi related functions are contained in as
> fewer files as possible. So here you could keep
> acpi_get_cpu_boot_method() in the acpi.c file. It only returns a string.

ok, I will update them.

Thanks
Hanjun





More information about the linux-arm-kernel mailing list