diff mbox

[v10,7/7] ACPI : enable ACPI_PROCESSOR_IDLE on ARM64

Message ID 1468950779-21745-8-git-send-email-sudeep.holla@arm.com (mailing list archive)
State Accepted, archived
Delegated to: Rafael Wysocki
Headers show

Commit Message

Sudeep Holla July 19, 2016, 5:52 p.m. UTC
Now that ACPI processor idle driver supports LPI(Low Power Idle), lets
enable ACPI_PROCESSOR_IDLE for ARM64 too.

This patch just removes the IA64 and X86 dependency on ACPI_PROCESSOR_IDLE

Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
---
 drivers/acpi/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Christopher Covington July 29, 2016, 7:05 p.m. UTC | #1
Hi Sudeep,

On 07/19/2016 01:52 PM, Sudeep Holla wrote:
> Now that ACPI processor idle driver supports LPI(Low Power Idle), lets
> enable ACPI_PROCESSOR_IDLE for ARM64 too.
> 
> This patch just removes the IA64 and X86 dependency on ACPI_PROCESSOR_IDLE
> 
> Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> ---
>  drivers/acpi/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
> index 1358fb7d7a68..d74275c0f374 100644
> --- a/drivers/acpi/Kconfig
> +++ b/drivers/acpi/Kconfig
> @@ -238,7 +238,7 @@ config ACPI_CPPC_LIB
>  config ACPI_PROCESSOR
>  	tristate "Processor"
>  	depends on X86 || IA64 || ARM64
> -	select ACPI_PROCESSOR_IDLE if X86 || IA64
> +	select ACPI_PROCESSOR_IDLE
>  	select ACPI_CPU_FREQ_PSS if X86 || IA64
>  	default y
>  	help
> 

This causes a boot hang on QDF2432. cpuidle.off=1 works around the
problem. I understand you're working on a fix to the problem in GICv3
code. If there's anything I can do to help, please let me know.

Thanks,
Christopher Covington
Sudeep Holla Aug. 2, 2016, 1 p.m. UTC | #2
On 29/07/16 20:05, Christopher Covington wrote:
> Hi Sudeep,
>
> On 07/19/2016 01:52 PM, Sudeep Holla wrote:
>> Now that ACPI processor idle driver supports LPI(Low Power Idle), lets
>> enable ACPI_PROCESSOR_IDLE for ARM64 too.
>>
>> This patch just removes the IA64 and X86 dependency on ACPI_PROCESSOR_IDLE
>>
>> Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
>> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
>> ---
>>  drivers/acpi/Kconfig | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
>> index 1358fb7d7a68..d74275c0f374 100644
>> --- a/drivers/acpi/Kconfig
>> +++ b/drivers/acpi/Kconfig
>> @@ -238,7 +238,7 @@ config ACPI_CPPC_LIB
>>  config ACPI_PROCESSOR
>>  	tristate "Processor"
>>  	depends on X86 || IA64 || ARM64
>> -	select ACPI_PROCESSOR_IDLE if X86 || IA64
>> +	select ACPI_PROCESSOR_IDLE
>>  	select ACPI_CPU_FREQ_PSS if X86 || IA64
>>  	default y
>>  	help
>>
>
> This causes a boot hang on QDF2432. cpuidle.off=1 works around the
> problem. I understand you're working on a fix to the problem in GICv3
> code. If there's anything I can do to help, please let me know.

Sorry for the late response, I was away. Yes it's to do with GICv3 and
retention states. I exchanged mails with QCOM guys in private. To summarize:

We don't need any additional support in Linux to support that. Infact we
need to remove disabling the redistributor in the powerdown path. PSCI
implementation also do the same for Group0(aka secure/EL3 interrupts)
and we currently do that for Group1(aka EL1N interrupts) in Linux. The
plan was to move that to EL3 code, to align with GICv2 code.

Hence the changes in Linux is just removal of the GICv3 PM notifier
partially. I will need to check with Trusted Firmware team and do some
testing before I post that change. I will plan to do that later this week.
Christopher Covington Aug. 15, 2016, 2:47 p.m. UTC | #3
Hi Sudeep,

On 08/02/2016 09:00 AM, Sudeep Holla wrote:
> 
> On 29/07/16 20:05, Christopher Covington wrote:
>> Hi Sudeep,
>>
>> On 07/19/2016 01:52 PM, Sudeep Holla wrote:
>>> Now that ACPI processor idle driver supports LPI(Low Power Idle), lets
>>> enable ACPI_PROCESSOR_IDLE for ARM64 too.
>>>
>>> This patch just removes the IA64 and X86 dependency on
>>> ACPI_PROCESSOR_IDLE
>>>
>>> Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
>>> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
>>> ---
>>>  drivers/acpi/Kconfig | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
>>> index 1358fb7d7a68..d74275c0f374 100644
>>> --- a/drivers/acpi/Kconfig
>>> +++ b/drivers/acpi/Kconfig
>>> @@ -238,7 +238,7 @@ config ACPI_CPPC_LIB
>>>  config ACPI_PROCESSOR
>>>      tristate "Processor"
>>>      depends on X86 || IA64 || ARM64
>>> -    select ACPI_PROCESSOR_IDLE if X86 || IA64
>>> +    select ACPI_PROCESSOR_IDLE
>>>      select ACPI_CPU_FREQ_PSS if X86 || IA64
>>>      default y
>>>      help
>>>
>>
>> This causes a boot hang on QDF2432. cpuidle.off=1 works around the
>> problem. I understand you're working on a fix to the problem in GICv3
>> code. If there's anything I can do to help, please let me know.
> 
> Sorry for the late response, I was away. Yes it's to do with GICv3 and
> retention states. I exchanged mails with QCOM guys in private. To
> summarize:
> 
> We don't need any additional support in Linux to support that. Infact we
> need to remove disabling the redistributor in the powerdown path. PSCI
> implementation also do the same for Group0(aka secure/EL3 interrupts)
> and we currently do that for Group1(aka EL1N interrupts) in Linux. The
> plan was to move that to EL3 code, to align with GICv2 code.
> 
> Hence the changes in Linux is just removal of the GICv3 PM notifier
> partially. I will need to check with Trusted Firmware team and do some
> testing before I post that change. I will plan to do that later this week.

Have you been able to make progress on the fix? If there's anything we
can do to help, please let us know. If the fix is going to take a while,
would it be appropriate to revert the Kconfig change until it is in place?

Thanks,
Christopher Covington
Sudeep Holla Aug. 15, 2016, 2:51 p.m. UTC | #4
Hi Christopher,

On 15/08/16 15:47, Christopher Covington wrote:
> Hi Sudeep,
>
> On 08/02/2016 09:00 AM, Sudeep Holla wrote:
>>
>> On 29/07/16 20:05, Christopher Covington wrote:
>>> Hi Sudeep,
>>>
>>> On 07/19/2016 01:52 PM, Sudeep Holla wrote:
>>>> Now that ACPI processor idle driver supports LPI(Low Power Idle), lets
>>>> enable ACPI_PROCESSOR_IDLE for ARM64 too.
>>>>
>>>> This patch just removes the IA64 and X86 dependency on
>>>> ACPI_PROCESSOR_IDLE
>>>>
>>>> Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
>>>> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
>>>> ---
>>>>  drivers/acpi/Kconfig | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
>>>> index 1358fb7d7a68..d74275c0f374 100644
>>>> --- a/drivers/acpi/Kconfig
>>>> +++ b/drivers/acpi/Kconfig
>>>> @@ -238,7 +238,7 @@ config ACPI_CPPC_LIB
>>>>  config ACPI_PROCESSOR
>>>>      tristate "Processor"
>>>>      depends on X86 || IA64 || ARM64
>>>> -    select ACPI_PROCESSOR_IDLE if X86 || IA64
>>>> +    select ACPI_PROCESSOR_IDLE
>>>>      select ACPI_CPU_FREQ_PSS if X86 || IA64
>>>>      default y
>>>>      help
>>>>
>>>
>>> This causes a boot hang on QDF2432. cpuidle.off=1 works around the
>>> problem. I understand you're working on a fix to the problem in GICv3
>>> code. If there's anything I can do to help, please let me know.
>>
>> Sorry for the late response, I was away. Yes it's to do with GICv3 and
>> retention states. I exchanged mails with QCOM guys in private. To
>> summarize:
>>
>> We don't need any additional support in Linux to support that. Infact we
>> need to remove disabling the redistributor in the powerdown path. PSCI
>> implementation also do the same for Group0(aka secure/EL3 interrupts)
>> and we currently do that for Group1(aka EL1N interrupts) in Linux. The
>> plan was to move that to EL3 code, to align with GICv2 code.
>>
>> Hence the changes in Linux is just removal of the GICv3 PM notifier
>> partially. I will need to check with Trusted Firmware team and do some
>> testing before I post that change. I will plan to do that later this week.
>
> Have you been able to make progress on the fix? If there's anything we
> can do to help, please let us know. If the fix is going to take a while,
> would it be appropriate to revert the Kconfig change until it is in place?
>

Thanks for the remainder. Yes I will post this week, I posted arm
trusted firmware patch first and was waiting it to be pulled.
diff mbox

Patch

diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index 1358fb7d7a68..d74275c0f374 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -238,7 +238,7 @@  config ACPI_CPPC_LIB
 config ACPI_PROCESSOR
 	tristate "Processor"
 	depends on X86 || IA64 || ARM64
-	select ACPI_PROCESSOR_IDLE if X86 || IA64
+	select ACPI_PROCESSOR_IDLE
 	select ACPI_CPU_FREQ_PSS if X86 || IA64
 	default y
 	help