arm64: Kconfig: Add SYS_SUPPORTS_APM_EMULATION
diff mbox series

Message ID 20201124090131.27257-1-lecopzer.chen@mediatek.com
State New, archived
Headers show
Series
  • arm64: Kconfig: Add SYS_SUPPORTS_APM_EMULATION
Related show

Commit Message

Lecopzer Chen Nov. 24, 2020, 9:01 a.m. UTC
From: "Lecopzer Chen" <lecopzer.chen@mediatek.com>

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 <lecopzer.chen@mediatek.com>
Suggested-by: YJ Chiang <yj.chiang@mediatek.com>
---
 arch/arm64/Kconfig | 3 +++
 1 file changed, 3 insertions(+)

Comments

Mark Rutland Nov. 25, 2020, 10:36 a.m. UTC | #1
On Tue, Nov 24, 2020 at 05:01:31PM +0800, Lecopzer Chen wrote:
> From: "Lecopzer Chen" <lecopzer.chen@mediatek.com>
> 
> 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 <lecopzer.chen@mediatek.com>
> Suggested-by: YJ Chiang <yj.chiang@mediatek.com>
> ---
>  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
>
Lecopzer Chen Nov. 25, 2020, 11:41 a.m. UTC | #2
>> From: "Lecopzer Chen" <lecopzer.chen@mediatek.com>
>> 
>> 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 <lecopzer.chen@mediatek.com>
>> Suggested-by: YJ Chiang <yj.chiang@mediatek.com>
>> ---
>>  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
>>
Lecopzer Chen Dec. 14, 2020, 9:28 a.m. UTC | #3
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 <lecopzer.chen@mediatek.com>
> Suggested-by: YJ Chiang <yj.chiang@mediatek.com>
> ---
>  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
Catalin Marinas Dec. 16, 2020, 3:58 p.m. UTC | #4
On Wed, Nov 25, 2020 at 07:41:30PM +0800, Lecopzer Chen wrote:
> >> 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?
> 
> 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.

Sorry, I don't think the APM interface makes sense on an arm64 kernel
(and it's also used by an out of tree driver).
Lecopzer Chen Dec. 16, 2020, 4:41 p.m. UTC | #5
Hi Catalin,

Thanks for your reply.

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.
2. APM not make sense on arm64
Could you please let me konw the reason why APM on ARM64 doesn't make sense?


thanks!
BRs,
Lecopzer


> On Wed, Nov 25, 2020 at 07:41:30PM +0800, Lecopzer Chen wrote:
> > >> 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?
> > 
> > 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.
> 
> Sorry, I don't think the APM interface makes sense on an arm64 kernel
> (and it's also used by an out of tree driver).
Catalin Marinas Dec. 17, 2020, 4:49 p.m. UTC | #6
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/).
Lecopzer Chen Dec. 18, 2020, 5:02 a.m. UTC | #7
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

Patch
diff mbox series

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