diff mbox

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

Message ID CADyBb7sGWizLDy3LtpGpJ9jkchyWHZ2oPfsg6fE1ZE54gn05FA@mail.gmail.com
State New
Headers show

Commit Message

Fu Wei Fu 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




-- 
Best regards,

Fu Wei
Software Engineer
Red Hat
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