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

From: Fu Wei
Date: Fri Jul 15 2016 - 03:45:17 EST


Hi Rafael,


On 14 July 2016 at 05:43, Rafael J. Wysocki <rafael@xxxxxxxxxx> wrote:
> On Wed, Jul 13, 2016 at 11:08 PM, Guenter Roeck <linux@xxxxxxxxxxxx> 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@xxxxxxxxxx> wrote:
>>> > From: Fu Wei <fu.wei@xxxxxxxxxx>
>>> >
>>> > 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@xxxxxxxxxx>
>>> > Signed-off-by: Hanjun Guo <hanjun.guo@xxxxxxxxxx>
>>> > ---
>>> > 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]:

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.


> Thanks,
> Rafael



--
Best regards,

Fu Wei
Software Engineer
Red Hat