diff mbox

[v7,4/9] acpi/arm64: Add GTDT table parse driver

Message ID CADyBb7sGWizLDy3LtpGpJ9jkchyWHZ2oPfsg6fE1ZE54gn05FA@mail.gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

fu.wei@linaro.org July 15, 2016, 7:45 a.m. UTC
Hi Rafael,


On 14 July 2016 at 05:43, Rafael J. Wysocki <rafael@kernel.org> wrote:
> On Wed, Jul 13, 2016 at 11:08 PM, Guenter Roeck <linux@roeck-us.net> wrote:
>> On Wed, Jul 13, 2016 at 10:30:37PM +0200, Rafael J. Wysocki wrote:
>>> On Wed, Jul 13, 2016 at 7:53 PM,  <fu.wei@linaro.org> wrote:
>>> > From: Fu Wei <fu.wei@linaro.org>
>>> >
>>> > This patch adds support for parsing arch timer in GTDT,
>>> > provides some kernel APIs to parse all the PPIs and
>>> > always-on info in GTDT and export them.
>>> >
>>> > By this driver, we can simplify arm_arch_timer drivers, and
>>> > separate the ACPI GTDT knowledge from it.
>>> >
>>> > Signed-off-by: Fu Wei <fu.wei@linaro.org>
>>> > Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
>>> > ---
>>> >  drivers/acpi/Kconfig           |   5 ++
>>> >  drivers/acpi/Makefile          |   1 +
>>> >  drivers/acpi/arm64/Kconfig     |  15 ++++
>>> >  drivers/acpi/arm64/Makefile    |   1 +
>>> >  drivers/acpi/arm64/acpi_gtdt.c | 170 +++++++++++++++++++++++++++++++++++++++++
>>> >  include/linux/acpi.h           |   6 ++
>>> >  6 files changed, 198 insertions(+)
>>> >
>>> > diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
>>> > index b7e2e77..1cdc7d2 100644
>>> > --- a/drivers/acpi/Kconfig
>>> > +++ b/drivers/acpi/Kconfig
>>> > @@ -521,4 +521,9 @@ config XPOWER_PMIC_OPREGION
>>> >
>>> >  endif
>>> >
>>> > +if ARM64
>>> > +source "drivers/acpi/arm64/Kconfig"
>>> > +
>>> > +endif
>>> > +
>>> >  endif  # ACPI
>>> > diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefile
>>> > index 251ce85..1a94ff7 100644
>>> > --- a/drivers/acpi/Makefile
>>> > +++ b/drivers/acpi/Makefile
>>> > @@ -99,5 +99,6 @@ obj-$(CONFIG_ACPI_EXTLOG)     += acpi_extlog.o
>>> >  obj-$(CONFIG_PMIC_OPREGION)    += pmic/intel_pmic.o
>>> >  obj-$(CONFIG_CRC_PMIC_OPREGION) += pmic/intel_pmic_crc.o
>>> >  obj-$(CONFIG_XPOWER_PMIC_OPREGION) += pmic/intel_pmic_xpower.o
>>> > +obj-$(CONFIG_ARM64)    += arm64/
>>> >
>>> >  video-objs                     += acpi_video.o video_detect.o
>>> > diff --git a/drivers/acpi/arm64/Kconfig b/drivers/acpi/arm64/Kconfig
>>> > new file mode 100644
>>> > index 0000000..ff5c253
>>> > --- /dev/null
>>> > +++ b/drivers/acpi/arm64/Kconfig
>>> > @@ -0,0 +1,15 @@
>>> > +#
>>> > +# ACPI Configuration for ARM64
>>> > +#
>>> > +
>>> > +menu "The ARM64-specific ACPI Support"
>>> > +
>>> > +config ACPI_GTDT
>>> > +       bool "ACPI GTDT table Support"
>>>
>>> This should depend on ARM64.
>>>
>>> Also I wonder if it needs to be user-selectable?  Wouldn't it be
>>> better to enable it by default when building for ARM64 with ACPI?
>>>
>> It is currently selected in patch 9, in the watchdog driver's Kconfig
>> entry.
>
> Well, it still doesn't have to be user-selectable for that. :-)

Actually it is also automatically selected by [PATCH v7 6/9]:



>
>> Not sure if I like that; maybe the watchdog driver should depend
>> on it instead ?
>
> If the watchdog is not the only user of it (and I don't think it is),
> it would be better to arrange things this way.
>

There are two user:
(1) arm_arch_timer(which will select CLKSRC_ACPI if ACPI, then
CLKSRC_ACPI will select ACPI_GTDT if ARM64)
So arm_arch_timer will automatically selecte ACPI_GTDT if ARM64 && ACPI

(2) sbsa_gwdt (which will select ACPI_GTDT if ACPI in [PATCH v7 9/9])
So sbsa_gwdt will automatically selecte ACPI_GTDT if ARM64 && ACPI &&
ARM_ARCH_TIMER

So ACPI_GTDT is automatically selected by both of two users.


But like Timur said before:

maybe we just "selecte ACPI_GTDT if ACPI" for ARM64, because ARM64
require GTDT if we use ACPI.


> Thanks,
> Rafael

Comments

Rafael J. Wysocki July 15, 2016, 12:11 p.m. UTC | #1
On Friday, July 15, 2016 03:45:05 PM Fu Wei wrote:
> Hi Rafael,
> 
> 
> On 14 July 2016 at 05:43, Rafael J. Wysocki <rafael@kernel.org> wrote:
> > On Wed, Jul 13, 2016 at 11:08 PM, Guenter Roeck <linux@roeck-us.net> wrote:
> >> On Wed, Jul 13, 2016 at 10:30:37PM +0200, Rafael J. Wysocki wrote:
> >>> On Wed, Jul 13, 2016 at 7:53 PM,  <fu.wei@linaro.org> wrote:
> >>> > From: Fu Wei <fu.wei@linaro.org>
> >>> >
> >>> > This patch adds support for parsing arch timer in GTDT,
> >>> > provides some kernel APIs to parse all the PPIs and
> >>> > always-on info in GTDT and export them.
> >>> >
> >>> > By this driver, we can simplify arm_arch_timer drivers, and
> >>> > separate the ACPI GTDT knowledge from it.
> >>> >
> >>> > Signed-off-by: Fu Wei <fu.wei@linaro.org>
> >>> > Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
> >>> > ---
> >>> >  drivers/acpi/Kconfig           |   5 ++
> >>> >  drivers/acpi/Makefile          |   1 +
> >>> >  drivers/acpi/arm64/Kconfig     |  15 ++++
> >>> >  drivers/acpi/arm64/Makefile    |   1 +
> >>> >  drivers/acpi/arm64/acpi_gtdt.c | 170 +++++++++++++++++++++++++++++++++++++++++
> >>> >  include/linux/acpi.h           |   6 ++
> >>> >  6 files changed, 198 insertions(+)
> >>> >
> >>> > diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
> >>> > index b7e2e77..1cdc7d2 100644
> >>> > --- a/drivers/acpi/Kconfig
> >>> > +++ b/drivers/acpi/Kconfig
> >>> > @@ -521,4 +521,9 @@ config XPOWER_PMIC_OPREGION
> >>> >
> >>> >  endif
> >>> >
> >>> > +if ARM64
> >>> > +source "drivers/acpi/arm64/Kconfig"
> >>> > +
> >>> > +endif
> >>> > +
> >>> >  endif  # ACPI
> >>> > diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefile
> >>> > index 251ce85..1a94ff7 100644
> >>> > --- a/drivers/acpi/Makefile
> >>> > +++ b/drivers/acpi/Makefile
> >>> > @@ -99,5 +99,6 @@ obj-$(CONFIG_ACPI_EXTLOG)     += acpi_extlog.o
> >>> >  obj-$(CONFIG_PMIC_OPREGION)    += pmic/intel_pmic.o
> >>> >  obj-$(CONFIG_CRC_PMIC_OPREGION) += pmic/intel_pmic_crc.o
> >>> >  obj-$(CONFIG_XPOWER_PMIC_OPREGION) += pmic/intel_pmic_xpower.o
> >>> > +obj-$(CONFIG_ARM64)    += arm64/
> >>> >
> >>> >  video-objs                     += acpi_video.o video_detect.o
> >>> > diff --git a/drivers/acpi/arm64/Kconfig b/drivers/acpi/arm64/Kconfig
> >>> > new file mode 100644
> >>> > index 0000000..ff5c253
> >>> > --- /dev/null
> >>> > +++ b/drivers/acpi/arm64/Kconfig
> >>> > @@ -0,0 +1,15 @@
> >>> > +#
> >>> > +# ACPI Configuration for ARM64
> >>> > +#
> >>> > +
> >>> > +menu "The ARM64-specific ACPI Support"
> >>> > +
> >>> > +config ACPI_GTDT
> >>> > +       bool "ACPI GTDT table Support"
> >>>
> >>> This should depend on ARM64.
> >>>
> >>> Also I wonder if it needs to be user-selectable?  Wouldn't it be
> >>> better to enable it by default when building for ARM64 with ACPI?
> >>>
> >> It is currently selected in patch 9, in the watchdog driver's Kconfig
> >> entry.
> >
> > Well, it still doesn't have to be user-selectable for that. :-)
> 
> Actually it is also automatically selected by [PATCH v7 6/9]:

Right.

By user-selectable I mean "showing up in a Kconfig configurator tool".

It just need not be visible in the configurator IMO.

> diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
> index 47352d2..71d5b30 100644
> --- a/drivers/clocksource/Kconfig
> +++ b/drivers/clocksource/Kconfig
> @@ -8,6 +8,7 @@ config CLKSRC_OF
>  config CLKSRC_ACPI
>   bool
>   select CLKSRC_PROBE
> + select ACPI_GTDT if ARM64
> 
>  config CLKSRC_PROBE
>   bool
> 
> 
> >
> >> Not sure if I like that; maybe the watchdog driver should depend
> >> on it instead ?
> >
> > If the watchdog is not the only user of it (and I don't think it is),
> > it would be better to arrange things this way.
> >
> 
> There are two user:
> (1) arm_arch_timer(which will select CLKSRC_ACPI if ACPI, then
> CLKSRC_ACPI will select ACPI_GTDT if ARM64)
> So arm_arch_timer will automatically selecte ACPI_GTDT if ARM64 && ACPI
> 
> (2) sbsa_gwdt (which will select ACPI_GTDT if ACPI in [PATCH v7 9/9])
> So sbsa_gwdt will automatically selecte ACPI_GTDT if ARM64 && ACPI &&
> ARM_ARCH_TIMER
> 
> So ACPI_GTDT is automatically selected by both of two users.
> 
> 
> But like Timur said before:
> 
> maybe we just "selecte ACPI_GTDT if ACPI" for ARM64, because ARM64
> require GTDT if we use ACPI.

Right.  That's the way to do it then and make sbsa_gwdt depend on it instead
of selecting it.

Thanks,
Rafael
fu.wei@linaro.org July 15, 2016, 4:13 p.m. UTC | #2
Hi Rafael,

On 15 July 2016 at 20:11, Rafael J. Wysocki <rjw@rjwysocki.net> wrote:
> On Friday, July 15, 2016 03:45:05 PM Fu Wei wrote:
>> Hi Rafael,
>>
>>
>> On 14 July 2016 at 05:43, Rafael J. Wysocki <rafael@kernel.org> wrote:
>> > On Wed, Jul 13, 2016 at 11:08 PM, Guenter Roeck <linux@roeck-us.net> wrote:
>> >> On Wed, Jul 13, 2016 at 10:30:37PM +0200, Rafael J. Wysocki wrote:
>> >>> On Wed, Jul 13, 2016 at 7:53 PM,  <fu.wei@linaro.org> wrote:
>> >>> > From: Fu Wei <fu.wei@linaro.org>
>> >>> >
>> >>> > This patch adds support for parsing arch timer in GTDT,
>> >>> > provides some kernel APIs to parse all the PPIs and
>> >>> > always-on info in GTDT and export them.
>> >>> >
>> >>> > By this driver, we can simplify arm_arch_timer drivers, and
>> >>> > separate the ACPI GTDT knowledge from it.
>> >>> >
>> >>> > Signed-off-by: Fu Wei <fu.wei@linaro.org>
>> >>> > Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
>> >>> > ---
>> >>> >  drivers/acpi/Kconfig           |   5 ++
>> >>> >  drivers/acpi/Makefile          |   1 +
>> >>> >  drivers/acpi/arm64/Kconfig     |  15 ++++
>> >>> >  drivers/acpi/arm64/Makefile    |   1 +
>> >>> >  drivers/acpi/arm64/acpi_gtdt.c | 170 +++++++++++++++++++++++++++++++++++++++++
>> >>> >  include/linux/acpi.h           |   6 ++
>> >>> >  6 files changed, 198 insertions(+)
>> >>> >
>> >>> > diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
>> >>> > index b7e2e77..1cdc7d2 100644
>> >>> > --- a/drivers/acpi/Kconfig
>> >>> > +++ b/drivers/acpi/Kconfig
>> >>> > @@ -521,4 +521,9 @@ config XPOWER_PMIC_OPREGION
>> >>> >
>> >>> >  endif
>> >>> >
>> >>> > +if ARM64
>> >>> > +source "drivers/acpi/arm64/Kconfig"
>> >>> > +
>> >>> > +endif
>> >>> > +
>> >>> >  endif  # ACPI
>> >>> > diff --git a/drivers/acpi/Makefile b/drivers/acpi/Makefile
>> >>> > index 251ce85..1a94ff7 100644
>> >>> > --- a/drivers/acpi/Makefile
>> >>> > +++ b/drivers/acpi/Makefile
>> >>> > @@ -99,5 +99,6 @@ obj-$(CONFIG_ACPI_EXTLOG)     += acpi_extlog.o
>> >>> >  obj-$(CONFIG_PMIC_OPREGION)    += pmic/intel_pmic.o
>> >>> >  obj-$(CONFIG_CRC_PMIC_OPREGION) += pmic/intel_pmic_crc.o
>> >>> >  obj-$(CONFIG_XPOWER_PMIC_OPREGION) += pmic/intel_pmic_xpower.o
>> >>> > +obj-$(CONFIG_ARM64)    += arm64/
>> >>> >
>> >>> >  video-objs                     += acpi_video.o video_detect.o
>> >>> > diff --git a/drivers/acpi/arm64/Kconfig b/drivers/acpi/arm64/Kconfig
>> >>> > new file mode 100644
>> >>> > index 0000000..ff5c253
>> >>> > --- /dev/null
>> >>> > +++ b/drivers/acpi/arm64/Kconfig
>> >>> > @@ -0,0 +1,15 @@
>> >>> > +#
>> >>> > +# ACPI Configuration for ARM64
>> >>> > +#
>> >>> > +
>> >>> > +menu "The ARM64-specific ACPI Support"
>> >>> > +
>> >>> > +config ACPI_GTDT
>> >>> > +       bool "ACPI GTDT table Support"
>> >>>
>> >>> This should depend on ARM64.
>> >>>
>> >>> Also I wonder if it needs to be user-selectable?  Wouldn't it be
>> >>> better to enable it by default when building for ARM64 with ACPI?
>> >>>
>> >> It is currently selected in patch 9, in the watchdog driver's Kconfig
>> >> entry.
>> >
>> > Well, it still doesn't have to be user-selectable for that. :-)
>>
>> Actually it is also automatically selected by [PATCH v7 6/9]:
>
> Right.
>
> By user-selectable I mean "showing up in a Kconfig configurator tool".
>
> It just need not be visible in the configurator IMO.
>
>> diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
>> index 47352d2..71d5b30 100644
>> --- a/drivers/clocksource/Kconfig
>> +++ b/drivers/clocksource/Kconfig
>> @@ -8,6 +8,7 @@ config CLKSRC_OF
>>  config CLKSRC_ACPI
>>   bool
>>   select CLKSRC_PROBE
>> + select ACPI_GTDT if ARM64
>>
>>  config CLKSRC_PROBE
>>   bool
>>
>>
>> >
>> >> Not sure if I like that; maybe the watchdog driver should depend
>> >> on it instead ?
>> >
>> > If the watchdog is not the only user of it (and I don't think it is),
>> > it would be better to arrange things this way.
>> >
>>
>> There are two user:
>> (1) arm_arch_timer(which will select CLKSRC_ACPI if ACPI, then
>> CLKSRC_ACPI will select ACPI_GTDT if ARM64)
>> So arm_arch_timer will automatically selecte ACPI_GTDT if ARM64 && ACPI
>>
>> (2) sbsa_gwdt (which will select ACPI_GTDT if ACPI in [PATCH v7 9/9])
>> So sbsa_gwdt will automatically selecte ACPI_GTDT if ARM64 && ACPI &&
>> ARM_ARCH_TIMER
>>
>> So ACPI_GTDT is automatically selected by both of two users.
>>
>>
>> But like Timur said before:
>>
>> maybe we just "selecte ACPI_GTDT if ACPI" for ARM64, because ARM64
>> require GTDT if we use ACPI.
>
> Right.  That's the way to do it then and make sbsa_gwdt depend on it instead
> of selecting it.

OK, will do in my v8 patchset

>
> Thanks,
> Rafael
>
diff mbox

Patch

diff --git a/drivers/clocksource/Kconfig b/drivers/clocksource/Kconfig
index 47352d2..71d5b30 100644
--- a/drivers/clocksource/Kconfig
+++ b/drivers/clocksource/Kconfig
@@ -8,6 +8,7 @@  config CLKSRC_OF
 config CLKSRC_ACPI
  bool
  select CLKSRC_PROBE
+ select ACPI_GTDT if ARM64

 config CLKSRC_PROBE
  bool