All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthias Brugger <mbrugger@suse.com>
To: Hanjun Guo <hanjun.guo@linaro.org>,
	Marc Zyngier <marc.zyngier@arm.com>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: huxinwei@huawei.com, Kefeng Wang <wangkefeng.wang@huawei.com>,
	Jon Masters <jcm@redhat.com>,
	yimin@huawei.com, Greg KH <gregkh@linuxfoundation.org>,
	linux-kernel@vger.kernel.org, linuxarm@huawei.com,
	Sinan Kaya <okaya@codeaurora.org>,
	linux-acpi@vger.kernel.org,
	Xinwei Kong <kong.kongxinwei@hisilicon.com>,
	Tomasz Nowicki <tn@semihalf.com>,
	Thomas Gleixner <tglx@linutronix.de>,
	Agustin Vega-Frias <agustinv@codeaurora.org>,
	linux-arm-kernel@lists.infradead.org,
	Ma Jun <majun258@huawei.com>
Subject: Re: [PATCH v7 07/15] irqchip: gicv3-its: platform-msi: scan MADT to create platform msi domain
Date: Tue, 17 Jan 2017 10:25:14 +0100	[thread overview]
Message-ID: <575e0341-2a2c-4498-8b01-550ad7732390@suse.com> (raw)
In-Reply-To: <1484147199-4267-8-git-send-email-hanjun.guo@linaro.org>



On 11/01/17 16:06, Hanjun Guo wrote:
> With the introduction of its_pmsi_init_one(), we can add some code
> on top for ACPI support of platform MSI.
>
> We are scanning the MADT table to get the ITS entry(ies), then use
> the information to create the platform msi domain for devices connect
> to it, just like the PCI MSI for ITS did.
>
> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
> Cc: Marc Zyngier <marc.zyngier@arm.com>
> Cc: Sinan Kaya <okaya@codeaurora.org>
> Cc: Tomasz Nowicki <tn@semihalf.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> ---
>  drivers/irqchip/irq-gic-v3-its-platform-msi.c | 36 +++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
>

Reviewed-by: Matthias Brugger <mbrugger@suse.com>

> diff --git a/drivers/irqchip/irq-gic-v3-its-platform-msi.c b/drivers/irqchip/irq-gic-v3-its-platform-msi.c
> index 3d9efd1..ebe933e 100644
> --- a/drivers/irqchip/irq-gic-v3-its-platform-msi.c
> +++ b/drivers/irqchip/irq-gic-v3-its-platform-msi.c
> @@ -103,6 +103,41 @@ static int __init its_pmsi_init_one(struct fwnode_handle *fwnode,
>  	return 0;
>  }
>
> +#ifdef CONFIG_ACPI
> +static int __init
> +its_pmsi_parse_madt(struct acpi_subtable_header *header,
> +			const unsigned long end)
> +{
> +	struct acpi_madt_generic_translator *its_entry;
> +	struct fwnode_handle *domain_handle;
> +	const char *node_name;
> +	int err = -ENXIO;
> +
> +	its_entry = (struct acpi_madt_generic_translator *)header;
> +	node_name = kasprintf(GFP_KERNEL, "ITS@0x%lx",
> +			      (long)its_entry->base_address);
> +	domain_handle = iort_find_domain_token(its_entry->translation_id);
> +	if (!domain_handle) {
> +		pr_err("%s: Unable to locate ITS domain handle\n", node_name);
> +		goto out;
> +	}
> +
> +	err = its_pmsi_init_one(domain_handle, node_name);
> +
> +out:
> +	kfree(node_name);
> +	return err;
> +}
> +
> +static void __init its_pmsi_acpi_init(void)
> +{
> +	acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_TRANSLATOR,
> +			      its_pmsi_parse_madt, 0);
> +}
> +#else
> +static inline void its_pmsi_acpi_init(void) { }
> +#endif
> +
>  static void __init its_pmsi_of_init(void)
>  {
>  	struct device_node *np;
> @@ -119,6 +154,7 @@ static void __init its_pmsi_of_init(void)
>  static int __init its_pmsi_init(void)
>  {
>  	its_pmsi_of_init();
> +	its_pmsi_acpi_init();
>  	return 0;
>  }
>  early_initcall(its_pmsi_init);
>

WARNING: multiple messages have this Message-ID (diff)
From: Matthias Brugger <mbrugger@suse.com>
To: Hanjun Guo <hanjun.guo@linaro.org>,
	Marc Zyngier <marc.zyngier@arm.com>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linuxarm@huawei.com,
	Thomas Gleixner <tglx@linutronix.de>,
	Greg KH <gregkh@linuxfoundation.org>,
	Tomasz Nowicki <tn@semihalf.com>, Ma Jun <majun258@huawei.com>,
	Kefeng Wang <wangkefeng.wang@huawei.com>,
	Agustin Vega-Frias <agustinv@codeaurora.org>,
	Sinan Kaya <okaya@codeaurora.org>,
	huxinwei@huawei.com, yimin@huawei.com,
	Jon Masters <jcm@redhat.com>,
	Xinwei Kong <kong.kongxinwei@hisilicon.com>
Subject: Re: [PATCH v7 07/15] irqchip: gicv3-its: platform-msi: scan MADT to create platform msi domain
Date: Tue, 17 Jan 2017 10:25:14 +0100	[thread overview]
Message-ID: <575e0341-2a2c-4498-8b01-550ad7732390@suse.com> (raw)
In-Reply-To: <1484147199-4267-8-git-send-email-hanjun.guo@linaro.org>



On 11/01/17 16:06, Hanjun Guo wrote:
> With the introduction of its_pmsi_init_one(), we can add some code
> on top for ACPI support of platform MSI.
>
> We are scanning the MADT table to get the ITS entry(ies), then use
> the information to create the platform msi domain for devices connect
> to it, just like the PCI MSI for ITS did.
>
> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
> Cc: Marc Zyngier <marc.zyngier@arm.com>
> Cc: Sinan Kaya <okaya@codeaurora.org>
> Cc: Tomasz Nowicki <tn@semihalf.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> ---
>  drivers/irqchip/irq-gic-v3-its-platform-msi.c | 36 +++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
>

Reviewed-by: Matthias Brugger <mbrugger@suse.com>

> diff --git a/drivers/irqchip/irq-gic-v3-its-platform-msi.c b/drivers/irqchip/irq-gic-v3-its-platform-msi.c
> index 3d9efd1..ebe933e 100644
> --- a/drivers/irqchip/irq-gic-v3-its-platform-msi.c
> +++ b/drivers/irqchip/irq-gic-v3-its-platform-msi.c
> @@ -103,6 +103,41 @@ static int __init its_pmsi_init_one(struct fwnode_handle *fwnode,
>  	return 0;
>  }
>
> +#ifdef CONFIG_ACPI
> +static int __init
> +its_pmsi_parse_madt(struct acpi_subtable_header *header,
> +			const unsigned long end)
> +{
> +	struct acpi_madt_generic_translator *its_entry;
> +	struct fwnode_handle *domain_handle;
> +	const char *node_name;
> +	int err = -ENXIO;
> +
> +	its_entry = (struct acpi_madt_generic_translator *)header;
> +	node_name = kasprintf(GFP_KERNEL, "ITS@0x%lx",
> +			      (long)its_entry->base_address);
> +	domain_handle = iort_find_domain_token(its_entry->translation_id);
> +	if (!domain_handle) {
> +		pr_err("%s: Unable to locate ITS domain handle\n", node_name);
> +		goto out;
> +	}
> +
> +	err = its_pmsi_init_one(domain_handle, node_name);
> +
> +out:
> +	kfree(node_name);
> +	return err;
> +}
> +
> +static void __init its_pmsi_acpi_init(void)
> +{
> +	acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_TRANSLATOR,
> +			      its_pmsi_parse_madt, 0);
> +}
> +#else
> +static inline void its_pmsi_acpi_init(void) { }
> +#endif
> +
>  static void __init its_pmsi_of_init(void)
>  {
>  	struct device_node *np;
> @@ -119,6 +154,7 @@ static void __init its_pmsi_of_init(void)
>  static int __init its_pmsi_init(void)
>  {
>  	its_pmsi_of_init();
> +	its_pmsi_acpi_init();
>  	return 0;
>  }
>  early_initcall(its_pmsi_init);
>

WARNING: multiple messages have this Message-ID (diff)
From: mbrugger@suse.com (Matthias Brugger)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v7 07/15] irqchip: gicv3-its: platform-msi: scan MADT to create platform msi domain
Date: Tue, 17 Jan 2017 10:25:14 +0100	[thread overview]
Message-ID: <575e0341-2a2c-4498-8b01-550ad7732390@suse.com> (raw)
In-Reply-To: <1484147199-4267-8-git-send-email-hanjun.guo@linaro.org>



On 11/01/17 16:06, Hanjun Guo wrote:
> With the introduction of its_pmsi_init_one(), we can add some code
> on top for ACPI support of platform MSI.
>
> We are scanning the MADT table to get the ITS entry(ies), then use
> the information to create the platform msi domain for devices connect
> to it, just like the PCI MSI for ITS did.
>
> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org>
> Cc: Marc Zyngier <marc.zyngier@arm.com>
> Cc: Sinan Kaya <okaya@codeaurora.org>
> Cc: Tomasz Nowicki <tn@semihalf.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> ---
>  drivers/irqchip/irq-gic-v3-its-platform-msi.c | 36 +++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
>

Reviewed-by: Matthias Brugger <mbrugger@suse.com>

> diff --git a/drivers/irqchip/irq-gic-v3-its-platform-msi.c b/drivers/irqchip/irq-gic-v3-its-platform-msi.c
> index 3d9efd1..ebe933e 100644
> --- a/drivers/irqchip/irq-gic-v3-its-platform-msi.c
> +++ b/drivers/irqchip/irq-gic-v3-its-platform-msi.c
> @@ -103,6 +103,41 @@ static int __init its_pmsi_init_one(struct fwnode_handle *fwnode,
>  	return 0;
>  }
>
> +#ifdef CONFIG_ACPI
> +static int __init
> +its_pmsi_parse_madt(struct acpi_subtable_header *header,
> +			const unsigned long end)
> +{
> +	struct acpi_madt_generic_translator *its_entry;
> +	struct fwnode_handle *domain_handle;
> +	const char *node_name;
> +	int err = -ENXIO;
> +
> +	its_entry = (struct acpi_madt_generic_translator *)header;
> +	node_name = kasprintf(GFP_KERNEL, "ITS at 0x%lx",
> +			      (long)its_entry->base_address);
> +	domain_handle = iort_find_domain_token(its_entry->translation_id);
> +	if (!domain_handle) {
> +		pr_err("%s: Unable to locate ITS domain handle\n", node_name);
> +		goto out;
> +	}
> +
> +	err = its_pmsi_init_one(domain_handle, node_name);
> +
> +out:
> +	kfree(node_name);
> +	return err;
> +}
> +
> +static void __init its_pmsi_acpi_init(void)
> +{
> +	acpi_table_parse_madt(ACPI_MADT_TYPE_GENERIC_TRANSLATOR,
> +			      its_pmsi_parse_madt, 0);
> +}
> +#else
> +static inline void its_pmsi_acpi_init(void) { }
> +#endif
> +
>  static void __init its_pmsi_of_init(void)
>  {
>  	struct device_node *np;
> @@ -119,6 +154,7 @@ static void __init its_pmsi_of_init(void)
>  static int __init its_pmsi_init(void)
>  {
>  	its_pmsi_of_init();
> +	its_pmsi_acpi_init();
>  	return 0;
>  }
>  early_initcall(its_pmsi_init);
>

  reply	other threads:[~2017-01-17  9:25 UTC|newest]

Thread overview: 89+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-11 15:06 [PATCH v7 00/15] ACPI platform MSI support and its example mbigen Hanjun Guo
2017-01-11 15:06 ` Hanjun Guo
2017-01-11 15:06 ` Hanjun Guo
2017-01-11 15:06 ` [PATCH v7 01/15] ACPI: IORT: fix the indentation in iort_scan_node() Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-11 15:06 ` [PATCH v7 02/15] ACPI: IORT: add missing comment for iort_dev_find_its_id() Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-11 15:06 ` [PATCH v7 03/15] ACPI: IORT: minor cleanup for iort_match_node_callback() Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-11 15:06 ` [PATCH v7 04/15] irqchip: gic-v3-its: keep the head file include in alphabetic order Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-11 15:06 ` [PATCH v7 05/15] irqchip: gicv3-its: platform-msi: refactor its_pmsi_prepare() Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-11 15:06 ` [PATCH v7 06/15] irqchip: gicv3-its: platform-msi: refactor its_pmsi_init() to prepare for ACPI Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-16 19:27   ` Matthias Brugger
2017-01-16 19:27     ` Matthias Brugger
2017-01-11 15:06 ` [PATCH v7 07/15] irqchip: gicv3-its: platform-msi: scan MADT to create platform msi domain Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-17  9:25   ` Matthias Brugger [this message]
2017-01-17  9:25     ` Matthias Brugger
2017-01-17  9:25     ` Matthias Brugger
2017-01-11 15:06 ` [PATCH v7 08/15] ACPI: IORT: rename iort_node_map_rid() to make it generic Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-13 11:47   ` Lorenzo Pieralisi
2017-01-13 11:47     ` Lorenzo Pieralisi
2017-01-14  3:25     ` Hanjun Guo
2017-01-14  3:25       ` Hanjun Guo
2017-01-14  3:25       ` Hanjun Guo
2017-01-11 15:06 ` [PATCH v7 09/15] ACPI: platform-msi: retrieve dev id from IORT Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-13 12:11   ` Lorenzo Pieralisi
2017-01-13 12:11     ` Lorenzo Pieralisi
2017-01-14  4:28     ` Hanjun Guo
2017-01-14  4:28       ` Hanjun Guo
2017-01-14  4:28       ` Hanjun Guo
2017-01-16 11:25       ` Lorenzo Pieralisi
2017-01-16 11:25         ` Lorenzo Pieralisi
2017-01-16 13:21         ` Hanjun Guo
2017-01-16 13:21           ` Hanjun Guo
2017-01-16 13:21           ` Hanjun Guo
2017-01-11 15:06 ` [PATCH v7 10/15] ACPI: IORT: move over to iort_node_map_platform_id() Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-11 15:06 ` [PATCH v7 11/15] ACPI: platform: setup MSI domain for ACPI based platform device Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-11 15:06 ` [PATCH v7 12/15] msi: platform: make platform_msi_create_device_domain() ACPI aware Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-13 10:45   ` Lorenzo Pieralisi
2017-01-13 10:45     ` Lorenzo Pieralisi
2017-01-13 10:45     ` Lorenzo Pieralisi
2017-01-14  3:00     ` Hanjun Guo
2017-01-14  3:00       ` Hanjun Guo
2017-01-14  3:00       ` Hanjun Guo
2017-01-11 15:06 ` [PATCH v7 13/15] irqchip: mbigen: drop module owner Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-11 15:06 ` [PATCH v7 14/15] irqchip: mbigen: introduce mbigen_of_create_domain() Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-11 15:06 ` [PATCH v7 15/15] irqchip: mbigen: Add ACPI support Hanjun Guo
2017-01-11 15:06   ` Hanjun Guo
2017-01-13 10:21   ` Lorenzo Pieralisi
2017-01-13 10:21     ` Lorenzo Pieralisi
2017-01-14  2:56     ` Hanjun Guo
2017-01-14  2:56       ` Hanjun Guo
2017-01-14  2:56       ` Hanjun Guo
2017-01-16 11:38       ` Lorenzo Pieralisi
2017-01-16 11:38         ` Lorenzo Pieralisi
2017-01-16 14:23         ` Hanjun Guo
2017-01-16 14:23           ` Hanjun Guo
2017-01-16 14:23           ` Hanjun Guo
2017-01-16 15:24           ` Lorenzo Pieralisi
2017-01-16 15:24             ` Lorenzo Pieralisi
2017-01-17 11:59             ` Hanjun Guo
2017-01-17 11:59               ` Hanjun Guo
2017-01-17 11:59               ` Hanjun Guo
2017-01-13 10:23 ` [PATCH v7 00/15] ACPI platform MSI support and its example mbigen Ming Lei
2017-01-13 10:23   ` Ming Lei
2017-01-14  1:04   ` Hanjun Guo
2017-01-14  1:04     ` Hanjun Guo
2017-01-14  1:04     ` Hanjun Guo
2017-01-13 14:11 ` Wei Xu
2017-01-13 14:11   ` Wei Xu
2017-01-13 14:11   ` Wei Xu
2017-01-14  4:30   ` Hanjun Guo
2017-01-14  4:30     ` Hanjun Guo
2017-01-14  4:30     ` Hanjun Guo
2017-01-16  5:12 ` Sinan Kaya
2017-01-16  5:12   ` Sinan Kaya

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=575e0341-2a2c-4498-8b01-550ad7732390@suse.com \
    --to=mbrugger@suse.com \
    --cc=agustinv@codeaurora.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hanjun.guo@linaro.org \
    --cc=huxinwei@huawei.com \
    --cc=jcm@redhat.com \
    --cc=kong.kongxinwei@hisilicon.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=majun258@huawei.com \
    --cc=marc.zyngier@arm.com \
    --cc=okaya@codeaurora.org \
    --cc=rjw@rjwysocki.net \
    --cc=tglx@linutronix.de \
    --cc=tn@semihalf.com \
    --cc=wangkefeng.wang@huawei.com \
    --cc=yimin@huawei.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.