From: D Scott Phillips <scott@os.amperecomputing.com>
To: Sudeep Holla <sudeep.holla@arm.com>,
linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Cc: Sudeep Holla <sudeep.holla@arm.com>,
Lorenzo Pieralisi <lpieralisi@kernel.org>,
"Rafael J . Wysocki" <rafael@kernel.org>,
"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
Robin Murphy <robin.murphy@arm.com>,
Hanjun Guo <guohanjun@huawei.com>
Subject: Re: [PATCH v2] ACPI: bus: Consolidate all arm specific initialisation into acpi_arm_init()
Date: Fri, 06 Oct 2023 17:11:39 -0700 [thread overview]
Message-ID: <867cnzqojo.fsf@scott-ph-mail.amperecomputing.com> (raw)
In-Reply-To: <20230606093531.2746732-1-sudeep.holla@arm.com>
Sudeep Holla <sudeep.holla@arm.com> writes:
> Move all of the ARM-specific initialization into one function namely
> acpi_arm_init(), so it is not necessary to modify/update bus.c every
> time a new piece of it is added.
>
> Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
> Cc: Rafael J. Wysocki <rafael@kernel.org>
> Suggested-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> Reviewed-by: Robin Murphy <robin.murphy@arm.com>
> Reviewed-by: Hanjun Guo <guohanjun@huawei.com>
> Link: https://lore.kernel.org/r/CAJZ5v0iBZRZmV_oU+VurqxnVMbFN_ttqrL=cLh0sUH+=u0PYsw@mail.gmail.com
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> ---
> drivers/acpi/arm64/Makefile | 2 +-
> drivers/acpi/arm64/agdi.c | 2 +-
> drivers/acpi/arm64/apmt.c | 2 +-
> drivers/acpi/arm64/init.c | 13 +++++++++++++
> drivers/acpi/arm64/init.h | 6 ++++++
> drivers/acpi/arm64/iort.c | 1 +
> drivers/acpi/bus.c | 7 +------
> include/linux/acpi.h | 6 ++++++
> include/linux/acpi_agdi.h | 13 -------------
> include/linux/acpi_apmt.h | 19 -------------------
> include/linux/acpi_iort.h | 2 --
> 11 files changed, 30 insertions(+), 43 deletions(-)
> create mode 100644 drivers/acpi/arm64/init.c
> create mode 100644 drivers/acpi/arm64/init.h
> delete mode 100644 include/linux/acpi_agdi.h
> delete mode 100644 include/linux/acpi_apmt.h
>
> v1[1]->v2:
> - Used IS_ENABLED and made the init functions' declarations
> unconditional
> - Added review tags
>
> [1] https://lore.kernel.org/all/20230605103550.2427459-1-sudeep.holla@arm.com
>
> diff --git a/drivers/acpi/arm64/Makefile b/drivers/acpi/arm64/Makefile
> index e21a9e84e394..f81fe24894b2 100644
> --- a/drivers/acpi/arm64/Makefile
> +++ b/drivers/acpi/arm64/Makefile
> @@ -3,4 +3,4 @@ obj-$(CONFIG_ACPI_AGDI) += agdi.o
> obj-$(CONFIG_ACPI_IORT) += iort.o
> obj-$(CONFIG_ACPI_GTDT) += gtdt.o
> obj-$(CONFIG_ACPI_APMT) += apmt.o
> -obj-y += dma.o
> +obj-y += dma.o init.o
> diff --git a/drivers/acpi/arm64/agdi.c b/drivers/acpi/arm64/agdi.c
> index f605302395c3..8b3c7d42b41b 100644
> --- a/drivers/acpi/arm64/agdi.c
> +++ b/drivers/acpi/arm64/agdi.c
> @@ -9,11 +9,11 @@
> #define pr_fmt(fmt) "ACPI: AGDI: " fmt
>
> #include <linux/acpi.h>
> -#include <linux/acpi_agdi.h>
> #include <linux/arm_sdei.h>
> #include <linux/io.h>
> #include <linux/kernel.h>
> #include <linux/platform_device.h>
> +#include "init.h"
>
> struct agdi_data {
> int sdei_event;
> diff --git a/drivers/acpi/arm64/apmt.c b/drivers/acpi/arm64/apmt.c
> index 8cab69fa5d59..e5c3bc99fc79 100644
> --- a/drivers/acpi/arm64/apmt.c
> +++ b/drivers/acpi/arm64/apmt.c
> @@ -10,10 +10,10 @@
> #define pr_fmt(fmt) "ACPI: APMT: " fmt
>
> #include <linux/acpi.h>
> -#include <linux/acpi_apmt.h>
> #include <linux/init.h>
> #include <linux/kernel.h>
> #include <linux/platform_device.h>
> +#include "init.h"
>
> #define DEV_NAME "arm-cs-arch-pmu"
>
> diff --git a/drivers/acpi/arm64/init.c b/drivers/acpi/arm64/init.c
> new file mode 100644
> index 000000000000..d3ce53dda122
> --- /dev/null
> +++ b/drivers/acpi/arm64/init.c
> @@ -0,0 +1,13 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +#include <linux/acpi.h>
> +#include "init.h"
> +
> +void __init acpi_arm_init(void)
> +{
> + if (IS_ENABLED(CONFIG_ACPI_AGDI))
> + acpi_agdi_init();
> + if (IS_ENABLED(CONFIG_ACPI_APMT))
> + acpi_apmt_init();
> + if (IS_ENABLED(CONFIG_ACPI_IORT))
> + acpi_iort_init();
> +}
> diff --git a/drivers/acpi/arm64/init.h b/drivers/acpi/arm64/init.h
> new file mode 100644
> index 000000000000..a1715a2a34e9
> --- /dev/null
> +++ b/drivers/acpi/arm64/init.h
> @@ -0,0 +1,6 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#include <linux/init.h>
> +
> +void __init acpi_agdi_init(void);
> +void __init acpi_apmt_init(void);
> +void __init acpi_iort_init(void);
> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
> index 38fb84974f35..3631230a61c8 100644
> --- a/drivers/acpi/arm64/iort.c
> +++ b/drivers/acpi/arm64/iort.c
> @@ -19,6 +19,7 @@
> #include <linux/platform_device.h>
> #include <linux/slab.h>
> #include <linux/dma-map-ops.h>
> +#include "init.h"
>
> #define IORT_TYPE_MASK(type) (1 << (type))
> #define IORT_MSI_TYPE (1 << ACPI_IORT_NODE_ITS_GROUP)
> diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
> index d161ff707de4..7a1eaf8c7bde 100644
> --- a/drivers/acpi/bus.c
> +++ b/drivers/acpi/bus.c
> @@ -26,9 +26,6 @@
> #include <asm/mpspec.h>
> #include <linux/dmi.h>
> #endif
> -#include <linux/acpi_agdi.h>
> -#include <linux/acpi_apmt.h>
> -#include <linux/acpi_iort.h>
> #include <linux/acpi_viot.h>
> #include <linux/pci.h>
> #include <acpi/apei.h>
> @@ -1408,7 +1405,7 @@ static int __init acpi_init(void)
> acpi_init_ffh();
>
> pci_mmcfg_late_init();
> - acpi_iort_init();
> + acpi_arm_init();
> acpi_viot_early_init();
> acpi_hest_init();
> acpi_ghes_init();
> @@ -1420,8 +1417,6 @@ static int __init acpi_init(void)
> acpi_debugger_init();
> acpi_setup_sb_notify_handler();
> acpi_viot_init();
> - acpi_agdi_init();
> - acpi_apmt_init();
Hi Sudeep, this moves acpi_agdi_init() before acpi_ghes_init().
sdei initialization currently happens from ghes_init, so agdi devices
using SDEI can no longer probe:
| [ 0.515864] sdei: Failed to create event 1073741825: -5
| [ 0.515866] agdi agdi.0: Failed to register for SDEI event 1073741825
| [ 0.515867] agdi: probe of agdi.0 failed with error -5
| ...
| [ 0.516022] sdei: SDEIv1.0 (0x0) detected in firmware.
WARNING: multiple messages have this Message-ID (diff)
From: D Scott Phillips <scott@os.amperecomputing.com>
To: Sudeep Holla <sudeep.holla@arm.com>,
linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org
Cc: Sudeep Holla <sudeep.holla@arm.com>,
Lorenzo Pieralisi <lpieralisi@kernel.org>,
"Rafael J . Wysocki" <rafael@kernel.org>,
"Rafael J . Wysocki" <rafael.j.wysocki@intel.com>,
Robin Murphy <robin.murphy@arm.com>,
Hanjun Guo <guohanjun@huawei.com>
Subject: Re: [PATCH v2] ACPI: bus: Consolidate all arm specific initialisation into acpi_arm_init()
Date: Fri, 06 Oct 2023 17:11:39 -0700 [thread overview]
Message-ID: <867cnzqojo.fsf@scott-ph-mail.amperecomputing.com> (raw)
In-Reply-To: <20230606093531.2746732-1-sudeep.holla@arm.com>
Sudeep Holla <sudeep.holla@arm.com> writes:
> Move all of the ARM-specific initialization into one function namely
> acpi_arm_init(), so it is not necessary to modify/update bus.c every
> time a new piece of it is added.
>
> Cc: Lorenzo Pieralisi <lpieralisi@kernel.org>
> Cc: Rafael J. Wysocki <rafael@kernel.org>
> Suggested-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
> Reviewed-by: Robin Murphy <robin.murphy@arm.com>
> Reviewed-by: Hanjun Guo <guohanjun@huawei.com>
> Link: https://lore.kernel.org/r/CAJZ5v0iBZRZmV_oU+VurqxnVMbFN_ttqrL=cLh0sUH+=u0PYsw@mail.gmail.com
> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
> ---
> drivers/acpi/arm64/Makefile | 2 +-
> drivers/acpi/arm64/agdi.c | 2 +-
> drivers/acpi/arm64/apmt.c | 2 +-
> drivers/acpi/arm64/init.c | 13 +++++++++++++
> drivers/acpi/arm64/init.h | 6 ++++++
> drivers/acpi/arm64/iort.c | 1 +
> drivers/acpi/bus.c | 7 +------
> include/linux/acpi.h | 6 ++++++
> include/linux/acpi_agdi.h | 13 -------------
> include/linux/acpi_apmt.h | 19 -------------------
> include/linux/acpi_iort.h | 2 --
> 11 files changed, 30 insertions(+), 43 deletions(-)
> create mode 100644 drivers/acpi/arm64/init.c
> create mode 100644 drivers/acpi/arm64/init.h
> delete mode 100644 include/linux/acpi_agdi.h
> delete mode 100644 include/linux/acpi_apmt.h
>
> v1[1]->v2:
> - Used IS_ENABLED and made the init functions' declarations
> unconditional
> - Added review tags
>
> [1] https://lore.kernel.org/all/20230605103550.2427459-1-sudeep.holla@arm.com
>
> diff --git a/drivers/acpi/arm64/Makefile b/drivers/acpi/arm64/Makefile
> index e21a9e84e394..f81fe24894b2 100644
> --- a/drivers/acpi/arm64/Makefile
> +++ b/drivers/acpi/arm64/Makefile
> @@ -3,4 +3,4 @@ obj-$(CONFIG_ACPI_AGDI) += agdi.o
> obj-$(CONFIG_ACPI_IORT) += iort.o
> obj-$(CONFIG_ACPI_GTDT) += gtdt.o
> obj-$(CONFIG_ACPI_APMT) += apmt.o
> -obj-y += dma.o
> +obj-y += dma.o init.o
> diff --git a/drivers/acpi/arm64/agdi.c b/drivers/acpi/arm64/agdi.c
> index f605302395c3..8b3c7d42b41b 100644
> --- a/drivers/acpi/arm64/agdi.c
> +++ b/drivers/acpi/arm64/agdi.c
> @@ -9,11 +9,11 @@
> #define pr_fmt(fmt) "ACPI: AGDI: " fmt
>
> #include <linux/acpi.h>
> -#include <linux/acpi_agdi.h>
> #include <linux/arm_sdei.h>
> #include <linux/io.h>
> #include <linux/kernel.h>
> #include <linux/platform_device.h>
> +#include "init.h"
>
> struct agdi_data {
> int sdei_event;
> diff --git a/drivers/acpi/arm64/apmt.c b/drivers/acpi/arm64/apmt.c
> index 8cab69fa5d59..e5c3bc99fc79 100644
> --- a/drivers/acpi/arm64/apmt.c
> +++ b/drivers/acpi/arm64/apmt.c
> @@ -10,10 +10,10 @@
> #define pr_fmt(fmt) "ACPI: APMT: " fmt
>
> #include <linux/acpi.h>
> -#include <linux/acpi_apmt.h>
> #include <linux/init.h>
> #include <linux/kernel.h>
> #include <linux/platform_device.h>
> +#include "init.h"
>
> #define DEV_NAME "arm-cs-arch-pmu"
>
> diff --git a/drivers/acpi/arm64/init.c b/drivers/acpi/arm64/init.c
> new file mode 100644
> index 000000000000..d3ce53dda122
> --- /dev/null
> +++ b/drivers/acpi/arm64/init.c
> @@ -0,0 +1,13 @@
> +// SPDX-License-Identifier: GPL-2.0-only
> +#include <linux/acpi.h>
> +#include "init.h"
> +
> +void __init acpi_arm_init(void)
> +{
> + if (IS_ENABLED(CONFIG_ACPI_AGDI))
> + acpi_agdi_init();
> + if (IS_ENABLED(CONFIG_ACPI_APMT))
> + acpi_apmt_init();
> + if (IS_ENABLED(CONFIG_ACPI_IORT))
> + acpi_iort_init();
> +}
> diff --git a/drivers/acpi/arm64/init.h b/drivers/acpi/arm64/init.h
> new file mode 100644
> index 000000000000..a1715a2a34e9
> --- /dev/null
> +++ b/drivers/acpi/arm64/init.h
> @@ -0,0 +1,6 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +#include <linux/init.h>
> +
> +void __init acpi_agdi_init(void);
> +void __init acpi_apmt_init(void);
> +void __init acpi_iort_init(void);
> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
> index 38fb84974f35..3631230a61c8 100644
> --- a/drivers/acpi/arm64/iort.c
> +++ b/drivers/acpi/arm64/iort.c
> @@ -19,6 +19,7 @@
> #include <linux/platform_device.h>
> #include <linux/slab.h>
> #include <linux/dma-map-ops.h>
> +#include "init.h"
>
> #define IORT_TYPE_MASK(type) (1 << (type))
> #define IORT_MSI_TYPE (1 << ACPI_IORT_NODE_ITS_GROUP)
> diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
> index d161ff707de4..7a1eaf8c7bde 100644
> --- a/drivers/acpi/bus.c
> +++ b/drivers/acpi/bus.c
> @@ -26,9 +26,6 @@
> #include <asm/mpspec.h>
> #include <linux/dmi.h>
> #endif
> -#include <linux/acpi_agdi.h>
> -#include <linux/acpi_apmt.h>
> -#include <linux/acpi_iort.h>
> #include <linux/acpi_viot.h>
> #include <linux/pci.h>
> #include <acpi/apei.h>
> @@ -1408,7 +1405,7 @@ static int __init acpi_init(void)
> acpi_init_ffh();
>
> pci_mmcfg_late_init();
> - acpi_iort_init();
> + acpi_arm_init();
> acpi_viot_early_init();
> acpi_hest_init();
> acpi_ghes_init();
> @@ -1420,8 +1417,6 @@ static int __init acpi_init(void)
> acpi_debugger_init();
> acpi_setup_sb_notify_handler();
> acpi_viot_init();
> - acpi_agdi_init();
> - acpi_apmt_init();
Hi Sudeep, this moves acpi_agdi_init() before acpi_ghes_init().
sdei initialization currently happens from ghes_init, so agdi devices
using SDEI can no longer probe:
| [ 0.515864] sdei: Failed to create event 1073741825: -5
| [ 0.515866] agdi agdi.0: Failed to register for SDEI event 1073741825
| [ 0.515867] agdi: probe of agdi.0 failed with error -5
| ...
| [ 0.516022] sdei: SDEIv1.0 (0x0) detected in firmware.
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-10-07 0:11 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-06-06 9:35 [PATCH v2] ACPI: bus: Consolidate all arm specific initialisation into acpi_arm_init() Sudeep Holla
2023-06-06 9:35 ` Sudeep Holla
2023-06-06 9:50 ` Lorenzo Pieralisi
2023-06-06 9:50 ` Lorenzo Pieralisi
2023-06-06 12:02 ` Shaoqin Huang
2023-06-06 14:26 ` Rafael J. Wysocki
2023-06-06 14:26 ` Rafael J. Wysocki
2023-06-07 14:11 ` Lorenzo Pieralisi
2023-06-07 14:11 ` Lorenzo Pieralisi
2023-06-08 7:07 ` Catalin Marinas
2023-06-08 7:07 ` Catalin Marinas
2023-06-08 18:17 ` Catalin Marinas
2023-06-08 18:17 ` Catalin Marinas
2023-10-07 0:11 ` D Scott Phillips [this message]
2023-10-07 0:11 ` D Scott Phillips
2023-10-09 12:29 ` Hanjun Guo
2023-10-09 12:29 ` Hanjun Guo
2023-10-09 13:05 ` Sudeep Holla
2023-10-09 13:05 ` Sudeep Holla
2023-10-10 7:16 ` Hanjun Guo
2023-10-10 7:16 ` Hanjun Guo
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=867cnzqojo.fsf@scott-ph-mail.amperecomputing.com \
--to=scott@os.amperecomputing.com \
--cc=guohanjun@huawei.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=lpieralisi@kernel.org \
--cc=rafael.j.wysocki@intel.com \
--cc=rafael@kernel.org \
--cc=robin.murphy@arm.com \
--cc=sudeep.holla@arm.com \
/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.