All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: Hanjun Guo <hanjun.guo@linaro.org>
Cc: Hanjun Guo <guohanjun@huawei.com>,
	"linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	Linuxarm <linuxarm@huawei.com>, Sinan Kaya <okaya@codeaurora.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Marc Zyngier <marc.zyngier@arm.com>
Subject: Re: [RFC PATCH 4/4] ACPI: IORT: Add SMMUv3 MSI support
Date: Thu, 17 Aug 2017 14:01:39 +0100	[thread overview]
Message-ID: <20170817130139.GA17795@red-moon> (raw)
In-Reply-To: <de1b88e0-57d5-b73b-bc49-3c28070df6b1@linaro.org>

On Thu, Aug 17, 2017 at 03:49:37PM +0800, Hanjun Guo wrote:

[...]

> >  /**
> >   * iort_get_platform_device_domain() - Find MSI domain related to a
> >   * platform device
> >@@ -1159,6 +1207,8 @@ static int __init iort_add_smmu_platform_device(struct acpi_iort_node *node)
> >  	/* Configure DMA for the page table walker */
> >  	acpi_dma_configure(&pdev->dev, attr);
> >+	iort_set_device_domain(&pdev->dev, node);
> 
> This is fine to me, but I think we still need to retrieve
> the output ID as the request id for ITS, which means we
> need to do that in iort_pmsi_get_dev_id(), right?

Yes, probably we can add code there like:

ret = iort_get_id_mapping_index(&index);
if (!ret)
	iort_node_get_id(node, &id, index);
	...

This requires updating iort_node_get_id() to allow single mappings
for SMMU/PMCG as you flagged up before.

I will think a bit more to see if there is a cleaner way to reshuffle
the mapping API.

Thanks,
Lorenzo

WARNING: multiple messages have this Message-ID (diff)
From: lorenzo.pieralisi@arm.com (Lorenzo Pieralisi)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 4/4] ACPI: IORT: Add SMMUv3 MSI support
Date: Thu, 17 Aug 2017 14:01:39 +0100	[thread overview]
Message-ID: <20170817130139.GA17795@red-moon> (raw)
In-Reply-To: <de1b88e0-57d5-b73b-bc49-3c28070df6b1@linaro.org>

On Thu, Aug 17, 2017 at 03:49:37PM +0800, Hanjun Guo wrote:

[...]

> >  /**
> >   * iort_get_platform_device_domain() - Find MSI domain related to a
> >   * platform device
> >@@ -1159,6 +1207,8 @@ static int __init iort_add_smmu_platform_device(struct acpi_iort_node *node)
> >  	/* Configure DMA for the page table walker */
> >  	acpi_dma_configure(&pdev->dev, attr);
> >+	iort_set_device_domain(&pdev->dev, node);
> 
> This is fine to me, but I think we still need to retrieve
> the output ID as the request id for ITS, which means we
> need to do that in iort_pmsi_get_dev_id(), right?

Yes, probably we can add code there like:

ret = iort_get_id_mapping_index(&index);
if (!ret)
	iort_node_get_id(node, &id, index);
	...

This requires updating iort_node_get_id() to allow single mappings
for SMMU/PMCG as you flagged up before.

I will think a bit more to see if there is a cleaner way to reshuffle
the mapping API.

Thanks,
Lorenzo

  reply	other threads:[~2017-08-17 12:59 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-09 10:53 [RFC PATCH 0/4] SMMUv3 MSI support Hanjun Guo
2017-08-09 10:53 ` Hanjun Guo
2017-08-09 10:53 ` [RFC PATCH 1/4] ACPICA: Add SMMUv3 device ID mapping index support Hanjun Guo
2017-08-09 10:53   ` Hanjun Guo
2017-08-09 10:53 ` [RFC PATCH 2/4] ACPI: IORT: lookup iort node via fwnode Hanjun Guo
2017-08-09 10:53   ` Hanjun Guo
2017-08-09 10:53 ` [RFC PATCH 3/4] ACPI: IORT: Skip SMMUv3 device ID map for two steps mappings Hanjun Guo
2017-08-09 10:53   ` Hanjun Guo
2017-08-09 11:50   ` Robin Murphy
2017-08-09 11:50     ` Robin Murphy
2017-08-09 14:48     ` Hanjun Guo
2017-08-09 14:48       ` Hanjun Guo
2017-08-09 17:12       ` Lorenzo Pieralisi
2017-08-09 17:12         ` Lorenzo Pieralisi
2017-08-10  9:41         ` Hanjun Guo
2017-08-10  9:41           ` Hanjun Guo
2017-08-15 17:13   ` Lorenzo Pieralisi
2017-08-15 17:13     ` Lorenzo Pieralisi
2017-08-09 10:53 ` [RFC PATCH 4/4] ACPI: IORT: Add SMMUv3 MSI support Hanjun Guo
2017-08-09 10:53   ` Hanjun Guo
2017-08-11  9:33   ` Lorenzo Pieralisi
2017-08-11  9:33     ` Lorenzo Pieralisi
2017-08-11 13:56     ` Hanjun Guo
2017-08-11 13:56       ` Hanjun Guo
2017-08-15 17:15       ` Lorenzo Pieralisi
2017-08-15 17:15         ` Lorenzo Pieralisi
2017-08-17  7:49         ` Hanjun Guo
2017-08-17  7:49           ` Hanjun Guo
2017-08-17 13:01           ` Lorenzo Pieralisi [this message]
2017-08-17 13:01             ` Lorenzo Pieralisi
2017-09-12  3:27             ` Hanjun Guo
2017-09-12  3:27               ` Hanjun Guo
2017-09-12 15:51               ` Lorenzo Pieralisi
2017-09-12 15:51                 ` Lorenzo Pieralisi

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=20170817130139.GA17795@red-moon \
    --to=lorenzo.pieralisi@arm.com \
    --cc=guohanjun@huawei.com \
    --cc=hanjun.guo@linaro.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linuxarm@huawei.com \
    --cc=marc.zyngier@arm.com \
    --cc=okaya@codeaurora.org \
    --cc=rafael@kernel.org \
    /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.