From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: fu.wei@linaro.org
Cc: rjw@rjwysocki.net, lenb@kernel.org, daniel.lezcano@linaro.org,
tglx@linutronix.de, marc.zyngier@arm.com, mark.rutland@arm.com,
sudeep.holla@arm.com, hanjun.guo@linaro.org,
linux-arm-kernel@lists.infradead.org,
linaro-acpi@lists.linaro.org, linux-kernel@vger.kernel.org,
linux-acpi@vger.kernel.org, rruigrok@codeaurora.org,
harba@codeaurora.org, cov@codeaurora.org, timur@codeaurora.org,
graeme.gregory@linaro.org, al.stone@linaro.org, jcm@redhat.com,
wei@redhat.com, arnd@arndb.de, catalin.marinas@arm.com,
will.deacon@arm.com, Suravee.Suthikulpanit@amd.com,
leo.duran@amd.com, wim@iguana.be, linux@roeck-us.net,
linux-watchdog@vger.kernel.org, tn@semihalf.com,
christoffer.dall@linaro.org, julien.grall@arm.com
Subject: Re: [PATCH v22 11/11] acpi/arm64: Add SBSA Generic Watchdog support in GTDT driver
Date: Tue, 28 Mar 2017 16:41:12 +0100 [thread overview]
Message-ID: <20170328154111.GC18046@red-moon> (raw)
In-Reply-To: <20170321163122.9183-12-fu.wei@linaro.org>
On Wed, Mar 22, 2017 at 12:31:22AM +0800, fu.wei@linaro.org wrote:
> From: Fu Wei <fu.wei@linaro.org>
>
> This driver adds support for parsing SBSA Generic Watchdog timer
> in GTDT, parse all info in SBSA Generic Watchdog Structure in GTDT,
> and creating a platform device with that information.
>
> This allows the operating system to obtain device data from the
> resource of platform device. The platform device named "sbsa-gwdt"
> can be used by the ARM SBSA Generic Watchdog driver.
>
> Signed-off-by: Fu Wei <fu.wei@linaro.org>
> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
> Tested-by: Xiongfeng Wang <wangxiongfeng2@huawei.com>
> ---
> drivers/acpi/arm64/gtdt.c | 94 +++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 94 insertions(+)
>
> diff --git a/drivers/acpi/arm64/gtdt.c b/drivers/acpi/arm64/gtdt.c
> index f471873..5d167f0 100644
> --- a/drivers/acpi/arm64/gtdt.c
> +++ b/drivers/acpi/arm64/gtdt.c
> @@ -14,6 +14,7 @@
> #include <linux/acpi.h>
> #include <linux/init.h>
> #include <linux/kernel.h>
> +#include <linux/platform_device.h>
>
> #include <clocksource/arm_arch_timer.h>
>
> @@ -59,6 +60,17 @@ static inline bool is_timer_block(void *platform_timer)
> return gh->type == ACPI_GTDT_TYPE_TIMER_BLOCK;
> }
>
> +static inline bool is_non_secure_watchdog(void *platform_timer)
> +{
> + struct acpi_gtdt_header *gh = platform_timer;
> + struct acpi_gtdt_watchdog *wd = platform_timer;
> +
> + if (gh->type != ACPI_GTDT_TYPE_WATCHDOG)
> + return false;
> +
> + return !(wd->timer_flags & ACPI_GTDT_WATCHDOG_SECURE);
> +}
> +
> static int __init map_gt_gsi(u32 interrupt, u32 flags)
> {
> int trigger, polarity;
> @@ -285,3 +297,85 @@ int __init acpi_arch_timer_mem_init(struct arch_timer_mem *timer_mem,
>
> return 0;
> }
> +
> +/*
> + * Initialize a SBSA generic Watchdog platform device info from GTDT
> + */
> +static int __init gtdt_import_sbsa_gwdt(struct acpi_gtdt_watchdog *wd,
> + int index)
> +{
> + struct platform_device *pdev;
> + int irq = map_gt_gsi(wd->timer_interrupt, wd->timer_flags);
> +
> + /*
> + * According to SBSA specification the size of refresh and control
> + * frames of SBSA Generic Watchdog is SZ_4K(Offset 0x000 – 0xFFF).
> + */
> + struct resource res[] = {
> + DEFINE_RES_MEM(wd->control_frame_address, SZ_4K),
> + DEFINE_RES_MEM(wd->refresh_frame_address, SZ_4K),
> + DEFINE_RES_IRQ(irq),
> + };
> + int nr_res = ARRAY_SIZE(res);
> +
> + pr_debug("found a Watchdog (0x%llx/0x%llx gsi:%u flags:0x%x).\n",
> + wd->refresh_frame_address, wd->control_frame_address,
> + wd->timer_interrupt, wd->timer_flags);
> +
> + if (!(wd->refresh_frame_address && wd->control_frame_address)) {
> + pr_err(FW_BUG "failed to get the Watchdog base address.\n");
> + return -EINVAL;
You should unmap the gsi here.
> + }
> +
> + if (irq <= 0) {
> + pr_warn("failed to map the Watchdog interrupt.\n");
> + nr_res--;
> + }
> +
> + /*
> + * Add a platform device named "sbsa-gwdt" to match the platform driver.
> + * "sbsa-gwdt": SBSA(Server Base System Architecture) Generic Watchdog
> + * The platform driver (like drivers/watchdog/sbsa_gwdt.c)can get device
Nit: I would not hardcode drivers paths in comments.
> + * info below by matching this name.
> + */
> + pdev = platform_device_register_simple("sbsa-gwdt", index, res, nr_res);
> + if (IS_ERR(pdev)) {
> + acpi_unregister_gsi(wd->timer_interrupt);
> + return PTR_ERR(pdev);
> + }
> +
> + return 0;
> +}
> +
> +static int __init gtdt_sbsa_gwdt_init(void)
> +{
> + int ret, i = 0;
> + void *platform_timer;
> + struct acpi_table_header *table;
> +
> + if (acpi_disabled)
> + return 0;
> +
> + if (ACPI_FAILURE(acpi_get_table(ACPI_SIG_GTDT, 0, &table)))
> + return -EINVAL;
> +
> + ret = acpi_gtdt_init(table, NULL);
> + if (ret)
> + return ret;
Ok, I missed previous versions reviews so I miss the background
here and I apologise.
I do not understand why you call acpi_gtdt_init() again (or better,
why acpi_gtdt_init() does not return straight away) here if the
stashed pointer in acpi_gtdt_desc is already set. I am not a big fan
of the for_each_platform_timer macro either, here you can just read
the ACPI_SIG_GTDT and parse its entries, I see no point in calling
acpi_gtdt_init() again, there is nothing to stash for later probing,
is there ?
Or it is just to reuse common parsing code ? Regardless, if the
acpi_gtdt_desc struct is already initialized acpi_gtdt_init() should
just return or I am missing the point.
I would like clarifications on the acpi_gtdt_init() call above please
(plus GSI unmap fix), apart from that:
Reviewed-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> + for_each_platform_timer(platform_timer) {
> + if (is_non_secure_watchdog(platform_timer)) {
> + ret = gtdt_import_sbsa_gwdt(platform_timer, i);
> + if (ret)
> + break;
> + i++;
> + }
> + }
> +
> + if (i)
> + pr_info("found %d SBSA generic Watchdog(s).\n", i);
> +
> + return ret;
> +}
> +
> +device_initcall(gtdt_sbsa_gwdt_init);
> --
> 2.9.3
>
WARNING: multiple messages have this Message-ID (diff)
From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: fu.wei@linaro.org
Cc: rjw@rjwysocki.net, lenb@kernel.org, daniel.lezcano@linaro.org,
tglx@linutronix.de, marc.zyngier@arm.com, mark.rutland@arm.com,
sudeep.holla@arm.com, hanjun.guo@linaro.org,
linux-arm-kernel@lists.infradead.org,
linaro-acpi@lists.linaro.org, linux-kernel@vger.kernel.org,
linux-acpi@vger.kernel.org, rruigrok@codeaurora.org,
harba@codeaurora.org, cov@codeaurora.org, timur@codeaurora.org,
graeme.gregory@linaro.org, al.stone@linaro.org, jcm@redhat.com,
wei@redhat.com, arnd@arndb.de, catalin.marinas@arm.com,
will.deacon@arm.com, Suravee.Suthikulpanit@amd.com,
leo.duran@amd.com, wim@iguana.be, linux@roeck-us.net,
linux-watchdog@vger.kernel.org, tn@semihalf.com,
christoffer.dall@linaro.org, julien.grall@arm.com
Subject: Re: [PATCH v22 11/11] acpi/arm64: Add SBSA Generic Watchdog support in GTDT driver
Date: Tue, 28 Mar 2017 16:41:12 +0100 [thread overview]
Message-ID: <20170328154111.GC18046@red-moon> (raw)
In-Reply-To: <20170321163122.9183-12-fu.wei@linaro.org>
On Wed, Mar 22, 2017 at 12:31:22AM +0800, fu.wei@linaro.org wrote:
> From: Fu Wei <fu.wei@linaro.org>
>
> This driver adds support for parsing SBSA Generic Watchdog timer
> in GTDT, parse all info in SBSA Generic Watchdog Structure in GTDT,
> and creating a platform device with that information.
>
> This allows the operating system to obtain device data from the
> resource of platform device. The platform device named "sbsa-gwdt"
> can be used by the ARM SBSA Generic Watchdog driver.
>
> Signed-off-by: Fu Wei <fu.wei@linaro.org>
> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
> Tested-by: Xiongfeng Wang <wangxiongfeng2@huawei.com>
> ---
> drivers/acpi/arm64/gtdt.c | 94 +++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 94 insertions(+)
>
> diff --git a/drivers/acpi/arm64/gtdt.c b/drivers/acpi/arm64/gtdt.c
> index f471873..5d167f0 100644
> --- a/drivers/acpi/arm64/gtdt.c
> +++ b/drivers/acpi/arm64/gtdt.c
> @@ -14,6 +14,7 @@
> #include <linux/acpi.h>
> #include <linux/init.h>
> #include <linux/kernel.h>
> +#include <linux/platform_device.h>
>
> #include <clocksource/arm_arch_timer.h>
>
> @@ -59,6 +60,17 @@ static inline bool is_timer_block(void *platform_timer)
> return gh->type == ACPI_GTDT_TYPE_TIMER_BLOCK;
> }
>
> +static inline bool is_non_secure_watchdog(void *platform_timer)
> +{
> + struct acpi_gtdt_header *gh = platform_timer;
> + struct acpi_gtdt_watchdog *wd = platform_timer;
> +
> + if (gh->type != ACPI_GTDT_TYPE_WATCHDOG)
> + return false;
> +
> + return !(wd->timer_flags & ACPI_GTDT_WATCHDOG_SECURE);
> +}
> +
> static int __init map_gt_gsi(u32 interrupt, u32 flags)
> {
> int trigger, polarity;
> @@ -285,3 +297,85 @@ int __init acpi_arch_timer_mem_init(struct arch_timer_mem *timer_mem,
>
> return 0;
> }
> +
> +/*
> + * Initialize a SBSA generic Watchdog platform device info from GTDT
> + */
> +static int __init gtdt_import_sbsa_gwdt(struct acpi_gtdt_watchdog *wd,
> + int index)
> +{
> + struct platform_device *pdev;
> + int irq = map_gt_gsi(wd->timer_interrupt, wd->timer_flags);
> +
> + /*
> + * According to SBSA specification the size of refresh and control
> + * frames of SBSA Generic Watchdog is SZ_4K(Offset 0x000 – 0xFFF).
> + */
> + struct resource res[] = {
> + DEFINE_RES_MEM(wd->control_frame_address, SZ_4K),
> + DEFINE_RES_MEM(wd->refresh_frame_address, SZ_4K),
> + DEFINE_RES_IRQ(irq),
> + };
> + int nr_res = ARRAY_SIZE(res);
> +
> + pr_debug("found a Watchdog (0x%llx/0x%llx gsi:%u flags:0x%x).\n",
> + wd->refresh_frame_address, wd->control_frame_address,
> + wd->timer_interrupt, wd->timer_flags);
> +
> + if (!(wd->refresh_frame_address && wd->control_frame_address)) {
> + pr_err(FW_BUG "failed to get the Watchdog base address.\n");
> + return -EINVAL;
You should unmap the gsi here.
> + }
> +
> + if (irq <= 0) {
> + pr_warn("failed to map the Watchdog interrupt.\n");
> + nr_res--;
> + }
> +
> + /*
> + * Add a platform device named "sbsa-gwdt" to match the platform driver.
> + * "sbsa-gwdt": SBSA(Server Base System Architecture) Generic Watchdog
> + * The platform driver (like drivers/watchdog/sbsa_gwdt.c)can get device
Nit: I would not hardcode drivers paths in comments.
> + * info below by matching this name.
> + */
> + pdev = platform_device_register_simple("sbsa-gwdt", index, res, nr_res);
> + if (IS_ERR(pdev)) {
> + acpi_unregister_gsi(wd->timer_interrupt);
> + return PTR_ERR(pdev);
> + }
> +
> + return 0;
> +}
> +
> +static int __init gtdt_sbsa_gwdt_init(void)
> +{
> + int ret, i = 0;
> + void *platform_timer;
> + struct acpi_table_header *table;
> +
> + if (acpi_disabled)
> + return 0;
> +
> + if (ACPI_FAILURE(acpi_get_table(ACPI_SIG_GTDT, 0, &table)))
> + return -EINVAL;
> +
> + ret = acpi_gtdt_init(table, NULL);
> + if (ret)
> + return ret;
Ok, I missed previous versions reviews so I miss the background
here and I apologise.
I do not understand why you call acpi_gtdt_init() again (or better,
why acpi_gtdt_init() does not return straight away) here if the
stashed pointer in acpi_gtdt_desc is already set. I am not a big fan
of the for_each_platform_timer macro either, here you can just read
the ACPI_SIG_GTDT and parse its entries, I see no point in calling
acpi_gtdt_init() again, there is nothing to stash for later probing,
is there ?
Or it is just to reuse common parsing code ? Regardless, if the
acpi_gtdt_desc struct is already initialized acpi_gtdt_init() should
just return or I am missing the point.
I would like clarifications on the acpi_gtdt_init() call above please
(plus GSI unmap fix), apart from that:
Reviewed-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> + for_each_platform_timer(platform_timer) {
> + if (is_non_secure_watchdog(platform_timer)) {
> + ret = gtdt_import_sbsa_gwdt(platform_timer, i);
> + if (ret)
> + break;
> + i++;
> + }
> + }
> +
> + if (i)
> + pr_info("found %d SBSA generic Watchdog(s).\n", i);
> +
> + return ret;
> +}
> +
> +device_initcall(gtdt_sbsa_gwdt_init);
> --
> 2.9.3
>
--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: lorenzo.pieralisi@arm.com (Lorenzo Pieralisi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v22 11/11] acpi/arm64: Add SBSA Generic Watchdog support in GTDT driver
Date: Tue, 28 Mar 2017 16:41:12 +0100 [thread overview]
Message-ID: <20170328154111.GC18046@red-moon> (raw)
In-Reply-To: <20170321163122.9183-12-fu.wei@linaro.org>
On Wed, Mar 22, 2017 at 12:31:22AM +0800, fu.wei at linaro.org wrote:
> From: Fu Wei <fu.wei@linaro.org>
>
> This driver adds support for parsing SBSA Generic Watchdog timer
> in GTDT, parse all info in SBSA Generic Watchdog Structure in GTDT,
> and creating a platform device with that information.
>
> This allows the operating system to obtain device data from the
> resource of platform device. The platform device named "sbsa-gwdt"
> can be used by the ARM SBSA Generic Watchdog driver.
>
> Signed-off-by: Fu Wei <fu.wei@linaro.org>
> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
> Tested-by: Xiongfeng Wang <wangxiongfeng2@huawei.com>
> ---
> drivers/acpi/arm64/gtdt.c | 94 +++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 94 insertions(+)
>
> diff --git a/drivers/acpi/arm64/gtdt.c b/drivers/acpi/arm64/gtdt.c
> index f471873..5d167f0 100644
> --- a/drivers/acpi/arm64/gtdt.c
> +++ b/drivers/acpi/arm64/gtdt.c
> @@ -14,6 +14,7 @@
> #include <linux/acpi.h>
> #include <linux/init.h>
> #include <linux/kernel.h>
> +#include <linux/platform_device.h>
>
> #include <clocksource/arm_arch_timer.h>
>
> @@ -59,6 +60,17 @@ static inline bool is_timer_block(void *platform_timer)
> return gh->type == ACPI_GTDT_TYPE_TIMER_BLOCK;
> }
>
> +static inline bool is_non_secure_watchdog(void *platform_timer)
> +{
> + struct acpi_gtdt_header *gh = platform_timer;
> + struct acpi_gtdt_watchdog *wd = platform_timer;
> +
> + if (gh->type != ACPI_GTDT_TYPE_WATCHDOG)
> + return false;
> +
> + return !(wd->timer_flags & ACPI_GTDT_WATCHDOG_SECURE);
> +}
> +
> static int __init map_gt_gsi(u32 interrupt, u32 flags)
> {
> int trigger, polarity;
> @@ -285,3 +297,85 @@ int __init acpi_arch_timer_mem_init(struct arch_timer_mem *timer_mem,
>
> return 0;
> }
> +
> +/*
> + * Initialize a SBSA generic Watchdog platform device info from GTDT
> + */
> +static int __init gtdt_import_sbsa_gwdt(struct acpi_gtdt_watchdog *wd,
> + int index)
> +{
> + struct platform_device *pdev;
> + int irq = map_gt_gsi(wd->timer_interrupt, wd->timer_flags);
> +
> + /*
> + * According to SBSA specification the size of refresh and control
> + * frames of SBSA Generic Watchdog is SZ_4K(Offset 0x000 ? 0xFFF).
> + */
> + struct resource res[] = {
> + DEFINE_RES_MEM(wd->control_frame_address, SZ_4K),
> + DEFINE_RES_MEM(wd->refresh_frame_address, SZ_4K),
> + DEFINE_RES_IRQ(irq),
> + };
> + int nr_res = ARRAY_SIZE(res);
> +
> + pr_debug("found a Watchdog (0x%llx/0x%llx gsi:%u flags:0x%x).\n",
> + wd->refresh_frame_address, wd->control_frame_address,
> + wd->timer_interrupt, wd->timer_flags);
> +
> + if (!(wd->refresh_frame_address && wd->control_frame_address)) {
> + pr_err(FW_BUG "failed to get the Watchdog base address.\n");
> + return -EINVAL;
You should unmap the gsi here.
> + }
> +
> + if (irq <= 0) {
> + pr_warn("failed to map the Watchdog interrupt.\n");
> + nr_res--;
> + }
> +
> + /*
> + * Add a platform device named "sbsa-gwdt" to match the platform driver.
> + * "sbsa-gwdt": SBSA(Server Base System Architecture) Generic Watchdog
> + * The platform driver (like drivers/watchdog/sbsa_gwdt.c)can get device
Nit: I would not hardcode drivers paths in comments.
> + * info below by matching this name.
> + */
> + pdev = platform_device_register_simple("sbsa-gwdt", index, res, nr_res);
> + if (IS_ERR(pdev)) {
> + acpi_unregister_gsi(wd->timer_interrupt);
> + return PTR_ERR(pdev);
> + }
> +
> + return 0;
> +}
> +
> +static int __init gtdt_sbsa_gwdt_init(void)
> +{
> + int ret, i = 0;
> + void *platform_timer;
> + struct acpi_table_header *table;
> +
> + if (acpi_disabled)
> + return 0;
> +
> + if (ACPI_FAILURE(acpi_get_table(ACPI_SIG_GTDT, 0, &table)))
> + return -EINVAL;
> +
> + ret = acpi_gtdt_init(table, NULL);
> + if (ret)
> + return ret;
Ok, I missed previous versions reviews so I miss the background
here and I apologise.
I do not understand why you call acpi_gtdt_init() again (or better,
why acpi_gtdt_init() does not return straight away) here if the
stashed pointer in acpi_gtdt_desc is already set. I am not a big fan
of the for_each_platform_timer macro either, here you can just read
the ACPI_SIG_GTDT and parse its entries, I see no point in calling
acpi_gtdt_init() again, there is nothing to stash for later probing,
is there ?
Or it is just to reuse common parsing code ? Regardless, if the
acpi_gtdt_desc struct is already initialized acpi_gtdt_init() should
just return or I am missing the point.
I would like clarifications on the acpi_gtdt_init() call above please
(plus GSI unmap fix), apart from that:
Reviewed-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
> + for_each_platform_timer(platform_timer) {
> + if (is_non_secure_watchdog(platform_timer)) {
> + ret = gtdt_import_sbsa_gwdt(platform_timer, i);
> + if (ret)
> + break;
> + i++;
> + }
> + }
> +
> + if (i)
> + pr_info("found %d SBSA generic Watchdog(s).\n", i);
> +
> + return ret;
> +}
> +
> +device_initcall(gtdt_sbsa_gwdt_init);
> --
> 2.9.3
>
next prev parent reply other threads:[~2017-03-28 15:40 UTC|newest]
Thread overview: 113+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-21 16:31 [PATCH v22 00/11] acpi, clocksource: add GTDT driver and GTDT support in arm_arch_timer fu.wei-QSEj5FYQhm4dnm+yROfE0A
2017-03-21 16:31 ` fu.wei at linaro.org
2017-03-21 16:31 ` fu.wei
2017-03-21 16:31 ` [PATCH v22 01/11] clocksource: arm_arch_timer: introduce a wrapper function to get the frequency from mmio fu.wei
2017-03-21 16:31 ` fu.wei at linaro.org
2017-03-21 16:31 ` [PATCH v22 02/11] clocksource: arm_arch_timer: separate out device-tree code and remove arch_timer_detect_rate fu.wei
2017-03-21 16:31 ` fu.wei at linaro.org
2017-03-28 14:58 ` Daniel Lezcano
2017-03-28 14:58 ` Daniel Lezcano
2017-03-28 14:58 ` Daniel Lezcano
2017-03-29 3:41 ` Fu Wei
2017-03-29 3:41 ` Fu Wei
2017-03-29 3:41 ` Fu Wei
2017-03-29 5:11 ` Fu Wei
2017-03-29 5:11 ` Fu Wei
2017-03-29 5:11 ` Fu Wei
[not found] ` <CADyBb7tzJAuvG73v6ZoBVO4ehCC3RMsc1pq5gKF2eQ94j6GXrg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-03-29 14:41 ` Daniel Lezcano
2017-03-29 14:41 ` Daniel Lezcano
2017-03-29 14:41 ` Daniel Lezcano
2017-03-29 15:01 ` Fu Wei
2017-03-29 15:01 ` Fu Wei
2017-03-29 15:01 ` Fu Wei
2017-03-21 16:31 ` [PATCH v22 03/11] clocksource: arm_arch_timer: refactor arch_timer_needs_probing fu.wei
2017-03-21 16:31 ` fu.wei at linaro.org
2017-03-28 15:02 ` Daniel Lezcano
2017-03-28 15:02 ` Daniel Lezcano
2017-03-28 15:02 ` Daniel Lezcano
2017-03-29 15:24 ` Mark Rutland
2017-03-29 15:24 ` Mark Rutland
2017-03-29 15:32 ` Daniel Lezcano
2017-03-29 15:32 ` Daniel Lezcano
2017-03-29 15:32 ` Daniel Lezcano
[not found] ` <20170321163122.9183-1-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2017-03-21 16:31 ` [PATCH v22 04/11] clocksource: arm_arch_timer: move arch_timer_needs_of_probing into DT init call fu.wei-QSEj5FYQhm4dnm+yROfE0A
2017-03-21 16:31 ` fu.wei at linaro.org
2017-03-21 16:31 ` fu.wei
2017-03-21 16:31 ` [PATCH v22 06/11] clocksource: arm_arch_timer: refactor MMIO timer probing fu.wei-QSEj5FYQhm4dnm+yROfE0A
2017-03-21 16:31 ` fu.wei at linaro.org
2017-03-21 16:31 ` fu.wei
2017-03-21 16:31 ` [PATCH v22 05/11] clocksource: arm_arch_timer: introduce some new structs to prepare for GTDT fu.wei
2017-03-21 16:31 ` fu.wei at linaro.org
2017-03-21 16:31 ` [PATCH v22 07/11] acpi/arm64: Add GTDT table parse driver fu.wei
2017-03-21 16:31 ` fu.wei at linaro.org
2017-03-28 11:35 ` Lorenzo Pieralisi
2017-03-28 11:35 ` Lorenzo Pieralisi
2017-03-29 9:48 ` Fu Wei
2017-03-29 9:48 ` Fu Wei
2017-03-29 9:48 ` Fu Wei
2017-03-29 10:21 ` Lorenzo Pieralisi
2017-03-29 10:21 ` Lorenzo Pieralisi
2017-03-29 10:21 ` Lorenzo Pieralisi
2017-03-29 10:48 ` Fu Wei
2017-03-29 10:48 ` Fu Wei
2017-03-29 10:48 ` Fu Wei
2017-03-29 11:33 ` Lorenzo Pieralisi
2017-03-29 11:33 ` Lorenzo Pieralisi
2017-03-29 11:33 ` Lorenzo Pieralisi
2017-03-29 13:42 ` Fu Wei
2017-03-29 13:42 ` Fu Wei
2017-03-29 13:42 ` Fu Wei
[not found] ` <CADyBb7snT+fvZYDyjUW7ZCVLX-ha4VXYBhfZsi8a3wOeYtdHkQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-03-29 16:02 ` Lorenzo Pieralisi
2017-03-29 16:02 ` Lorenzo Pieralisi
2017-03-29 16:02 ` Lorenzo Pieralisi
2017-03-29 14:29 ` Fu Wei
2017-03-29 14:29 ` Fu Wei
2017-03-29 14:29 ` Fu Wei
2017-03-29 14:31 ` Fu Wei
2017-03-29 14:31 ` Fu Wei
2017-03-29 14:31 ` Fu Wei
2017-03-29 15:19 ` Lorenzo Pieralisi
2017-03-29 15:19 ` Lorenzo Pieralisi
2017-03-29 15:19 ` Lorenzo Pieralisi
2017-03-21 16:31 ` [PATCH v22 08/11] clocksource: arm_arch_timer: simplify ACPI support code fu.wei
2017-03-21 16:31 ` fu.wei at linaro.org
2017-03-21 16:31 ` fu.wei
2017-03-21 16:31 ` [PATCH v22 09/11] acpi/arm64: Add memory-mapped timer support in GTDT driver fu.wei
2017-03-21 16:31 ` fu.wei at linaro.org
[not found] ` <20170321163122.9183-10-fu.wei-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2017-03-29 16:47 ` Lorenzo Pieralisi
2017-03-29 16:47 ` Lorenzo Pieralisi
2017-03-29 16:47 ` Lorenzo Pieralisi
2017-03-30 7:54 ` Fu Wei
2017-03-30 7:54 ` Fu Wei
2017-03-30 7:54 ` Fu Wei
2017-03-21 16:31 ` [PATCH v22 10/11] clocksource: arm_arch_timer: add GTDT support for memory-mapped timer fu.wei
2017-03-21 16:31 ` fu.wei at linaro.org
2017-03-21 16:31 ` [PATCH v22 11/11] acpi/arm64: Add SBSA Generic Watchdog support in GTDT driver fu.wei
2017-03-21 16:31 ` fu.wei at linaro.org
2017-03-21 16:31 ` fu.wei
2017-03-28 15:41 ` Lorenzo Pieralisi [this message]
2017-03-28 15:41 ` Lorenzo Pieralisi
2017-03-28 15:41 ` Lorenzo Pieralisi
2017-03-31 8:10 ` Fu Wei
2017-03-31 8:10 ` Fu Wei
2017-03-31 8:10 ` Fu Wei
2017-03-31 11:54 ` Lorenzo Pieralisi
2017-03-31 11:54 ` Lorenzo Pieralisi
2017-03-31 11:54 ` Lorenzo Pieralisi
2017-03-28 11:32 ` [PATCH v22 00/11] acpi, clocksource: add GTDT driver and GTDT support in arm_arch_timer Jon Masters
2017-03-28 11:32 ` Jon Masters
2017-03-28 12:34 ` Fu Wei
2017-03-28 12:34 ` Fu Wei
2017-03-28 12:34 ` Fu Wei
2017-03-28 13:05 ` Mark Rutland
2017-03-28 13:05 ` Mark Rutland
2017-03-28 13:05 ` Mark Rutland
2017-03-28 14:29 ` Fu Wei
2017-03-28 14:29 ` Fu Wei
2017-03-28 14:29 ` Fu Wei
2017-03-28 14:53 ` Mark Rutland
2017-03-28 14:53 ` Mark Rutland
2017-03-28 14:53 ` Mark Rutland
2017-03-31 17:55 ` Fu Wei
2017-03-31 17:55 ` Fu Wei
2017-03-31 17:55 ` Fu Wei
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170328154111.GC18046@red-moon \
--to=lorenzo.pieralisi@arm.com \
--cc=Suravee.Suthikulpanit@amd.com \
--cc=al.stone@linaro.org \
--cc=arnd@arndb.de \
--cc=catalin.marinas@arm.com \
--cc=christoffer.dall@linaro.org \
--cc=cov@codeaurora.org \
--cc=daniel.lezcano@linaro.org \
--cc=fu.wei@linaro.org \
--cc=graeme.gregory@linaro.org \
--cc=hanjun.guo@linaro.org \
--cc=harba@codeaurora.org \
--cc=jcm@redhat.com \
--cc=julien.grall@arm.com \
--cc=lenb@kernel.org \
--cc=leo.duran@amd.com \
--cc=linaro-acpi@lists.linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-watchdog@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=marc.zyngier@arm.com \
--cc=mark.rutland@arm.com \
--cc=rjw@rjwysocki.net \
--cc=rruigrok@codeaurora.org \
--cc=sudeep.holla@arm.com \
--cc=tglx@linutronix.de \
--cc=timur@codeaurora.org \
--cc=tn@semihalf.com \
--cc=wei@redhat.com \
--cc=will.deacon@arm.com \
--cc=wim@iguana.be \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.