2020-11-24 09:06:23

by Lecopzer Chen

[permalink] [raw]
Subject: [PATCH] arm64: Kconfig: Add SYS_SUPPORTS_APM_EMULATION

From: "Lecopzer Chen" <[email protected]>

Although most of modern devices use ACPI, there still has combination
of APM + ARM64.

In order to select CONFIG_APM_EMULATION, make SYS_SUPPORTS_APM_EMULATION
default is y if ACPI isn't configured.

Signed-off-by: Lecopzer Chen <[email protected]>
Suggested-by: YJ Chiang <[email protected]>
---
arch/arm64/Kconfig | 3 +++
1 file changed, 3 insertions(+)

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 1515f6f153a0..5e9e3694015a 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -260,6 +260,9 @@ config NO_IOPORT_MAP
config STACKTRACE_SUPPORT
def_bool y

+config SYS_SUPPORTS_APM_EMULATION
+ def_bool y if !ACPI
+
config ILLEGAL_POINTER_VALUE
hex
default 0xdead000000000000
--
2.18.0


2020-11-25 10:38:52

by Mark Rutland

[permalink] [raw]
Subject: Re: [PATCH] arm64: Kconfig: Add SYS_SUPPORTS_APM_EMULATION

On Tue, Nov 24, 2020 at 05:01:31PM +0800, Lecopzer Chen wrote:
> From: "Lecopzer Chen" <[email protected]>
>
> Although most of modern devices use ACPI, there still has combination
> of APM + ARM64.
>
> In order to select CONFIG_APM_EMULATION, make SYS_SUPPORTS_APM_EMULATION
> default is y if ACPI isn't configured.

I'm a bit confused why this should be enabled for !ACPI. Which DT
platforms need this, and how do they use it? Why should this only be
enabled for kernels without ACPI support, and not for kernels that
support both ACPI and DT?

Thanks,
Mark.

>
> Signed-off-by: Lecopzer Chen <[email protected]>
> Suggested-by: YJ Chiang <[email protected]>
> ---
> arch/arm64/Kconfig | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 1515f6f153a0..5e9e3694015a 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -260,6 +260,9 @@ config NO_IOPORT_MAP
> config STACKTRACE_SUPPORT
> def_bool y
>
> +config SYS_SUPPORTS_APM_EMULATION
> + def_bool y if !ACPI
> +
> config ILLEGAL_POINTER_VALUE
> hex
> default 0xdead000000000000
> --
> 2.18.0
>

2020-11-25 11:44:06

by Lecopzer Chen

[permalink] [raw]
Subject: Re: [PATCH] arm64: Kconfig: Add SYS_SUPPORTS_APM_EMULATION

>> From: "Lecopzer Chen" <[email protected]>
>>
>> Although most of modern devices use ACPI, there still has combination
>> of APM + ARM64.
>>
>> In order to select CONFIG_APM_EMULATION, make SYS_SUPPORTS_APM_EMULATION
>> default is y if ACPI isn't configured.
>
>I'm a bit confused why this should be enabled for !ACPI. Which DT
>platforms need this, and how do they use it? Why should this only be
>enabled for kernels without ACPI support, and not for kernels that
>support both ACPI and DT?
>
>Thanks,
>Mark.

Hi Mark,

In our internal patch has no !ACPI here,
the reason I add here is that in kernel document[1] it mention:
> No, sorry, you cannot have both ACPI and APM enabled and running at once.
Thus, I try to limit the scope for who don't use the ACPI because I'm not sure
they could exist at the same time or not.

But I think it should be fine without !ACPI if APM and APCI
config won't conflict with each other.

So if it's better to remove !ACPI I'll send v2 for this.


BTW, The platform is for our internal kernel drivers, they utilize APM interface,
/dev/apm_bios to do their works in arm64.





[1] APM or ACPI?:
https://www.kernel.org/doc/html/latest/power/apm-acpi.html


Thanks,
Lecopzer


>>
>> Signed-off-by: Lecopzer Chen <[email protected]>
>> Suggested-by: YJ Chiang <[email protected]>
>> ---
>> arch/arm64/Kconfig | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
>> index 1515f6f153a0..5e9e3694015a 100644
>> --- a/arch/arm64/Kconfig
>> +++ b/arch/arm64/Kconfig
>> @@ -260,6 +260,9 @@ config NO_IOPORT_MAP
>> config STACKTRACE_SUPPORT
>> def_bool y
>>
>> +config SYS_SUPPORTS_APM_EMULATION
>> + def_bool y if !ACPI
>> +
>> config ILLEGAL_POINTER_VALUE
>> hex
>> default 0xdead000000000000
>> --
>> 2.18.0
>>

2020-12-14 17:32:59

by Lecopzer Chen

[permalink] [raw]
Subject: Re: [PATCH] arm64: Kconfig: Add SYS_SUPPORTS_APM_EMULATION

Hi,

Could any maintainer help review this?

Thanks a lot for your help,

BRs,
Lecopzer


> Although most of modern devices use ACPI, there still has combination
> of APM + ARM64.
>
> In order to select CONFIG_APM_EMULATION, make SYS_SUPPORTS_APM_EMULATION
> default is y if ACPI isn't configured.
>
> Signed-off-by: Lecopzer Chen <[email protected]>
> Suggested-by: YJ Chiang <[email protected]>
> ---
> arch/arm64/Kconfig | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 1515f6f153a0..5e9e3694015a 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -260,6 +260,9 @@ config NO_IOPORT_MAP
> config STACKTRACE_SUPPORT
> def_bool y
>
> +config SYS_SUPPORTS_APM_EMULATION
> + def_bool y if !ACPI
> +
> config ILLEGAL_POINTER_VALUE
> hex
> default 0xdead000000000000



2020-12-17 16:51:58

by Catalin Marinas

[permalink] [raw]
Subject: Re: [PATCH] arm64: Kconfig: Add SYS_SUPPORTS_APM_EMULATION

On Thu, Dec 17, 2020 at 12:41:47AM +0800, Lecopzer Chen wrote:
> so there is two points
> 1. out-of-tree function can't be approved
> I totally agree with this :) so we may have a driver upstream in the future.

It may not be upstreamable if it relies on the old APM interface ;).

> 2. APM not make sense on arm64
> Could you please let me konw the reason why APM on ARM64 doesn't make sense?

It's a very old interface, even on x86 it is disabled in the distro
kernels. There are more modern alternatives and you should update your
driver and user space to use them (e.g. /sys/power/).

--
Catalin

2020-12-18 05:31:33

by Lecopzer Chen

[permalink] [raw]
Subject: Re: [PATCH] arm64: Kconfig: Add SYS_SUPPORTS_APM_EMULATION

Hi Catalin,

Thanks for your explanation.

> > so there is two points
> > 1. out-of-tree function can't be approved
> > I totally agree with this :) so we may have a driver upstream in the future.
>
> It may not be upstreamable if it relies on the old APM interface ;).
>
> > 2. APM not make sense on arm64
> > Could you please let me konw the reason why APM on ARM64 doesn't make sense?
>
> It's a very old interface, even on x86 it is disabled in the distro
> kernels. There are more modern alternatives and you should update your
> driver and user space to use them (e.g. /sys/power/).

Got it! I will disscuss with our internal team to update their drivers.

thanks a lot!

BRs,
Lecopzer