All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Cc: linux-arm-kernel@lists.infradead.org, linux-acpi@vger.kernel.org,
	iommu@lists.linux-foundation.org, linuxarm@huawei.com,
	joro@8bytes.org, robin.murphy@arm.com, will@kernel.org,
	wanghuiqiang@huawei.com, guohanjun@huawei.com,
	steven.price@arm.com, Sami.Mujawar@arm.com, jon@solid-run.com,
	eric.auger@redhat.com, laurentiu.tudor@nxp.com,
	yangyicong@huawei.com
Subject: Re: [PATCH v9 07/11] ACPI/IORT: Add a helper to retrieve RMR info directly
Date: Wed, 6 Apr 2022 16:51:13 +0100	[thread overview]
Message-ID: <20220406155113.GC27518@lpieralisi> (raw)
In-Reply-To: <20220404124209.1086-8-shameerali.kolothum.thodi@huawei.com>

On Mon, Apr 04, 2022 at 01:42:05PM +0100, Shameer Kolothum wrote:
> This will provide a way for SMMU drivers to retrieve StreamIDs
> associated with IORT RMR nodes and use that to set bypass settings
> for those IDs.
> 
> Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
> ---
>  drivers/acpi/arm64/iort.c | 29 +++++++++++++++++++++++++++++
>  include/linux/acpi_iort.h |  8 ++++++++
>  2 files changed, 37 insertions(+)

Reviewed-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
> index 1147387cfddb..fb2b0163c27d 100644
> --- a/drivers/acpi/arm64/iort.c
> +++ b/drivers/acpi/arm64/iort.c
> @@ -1402,6 +1402,35 @@ int iort_dma_get_ranges(struct device *dev, u64 *size)
>  		return nc_dma_get_range(dev, size);
>  }
>  
> +/**
> + * iort_get_rmr_sids - Retrieve IORT RMR node reserved regions with
> + *                     associated StreamIDs information.
> + * @iommu_fwnode: fwnode associated with IOMMU
> + * @head: Resereved region list
> + */
> +void iort_get_rmr_sids(struct fwnode_handle *iommu_fwnode,
> +		       struct list_head *head)
> +{
> +	iort_iommu_rmr_get_resv_regions(iommu_fwnode, NULL, head);
> +}
> +EXPORT_SYMBOL_GPL(iort_get_rmr_sids);
> +
> +/**
> + * iort_put_rmr_sids - Free all the memory allocated for RMR reserved regions.
> + * @iommu_fwnode: fwnode associated with IOMMU
> + * @head: Resereved region list
> + */
> +void iort_put_rmr_sids(struct fwnode_handle *iommu_fwnode,
> +		       struct list_head *head)
> +{
> +	struct iommu_resv_region *entry, *next;
> +
> +	iort_iommu_put_resv_regions(NULL, head);
> +	list_for_each_entry_safe(entry, next, head, list)
> +		kfree(entry);
> +}
> +EXPORT_SYMBOL_GPL(iort_put_rmr_sids);
> +
>  static void __init acpi_iort_register_irq(int hwirq, const char *name,
>  					  int trigger,
>  					  struct resource *res)
> diff --git a/include/linux/acpi_iort.h b/include/linux/acpi_iort.h
> index eb3c28853110..774b8bc16573 100644
> --- a/include/linux/acpi_iort.h
> +++ b/include/linux/acpi_iort.h
> @@ -33,6 +33,10 @@ struct irq_domain *iort_get_device_domain(struct device *dev, u32 id,
>  					  enum irq_domain_bus_token bus_token);
>  void acpi_configure_pmsi_domain(struct device *dev);
>  int iort_pmsi_get_dev_id(struct device *dev, u32 *dev_id);
> +void iort_get_rmr_sids(struct fwnode_handle *iommu_fwnode,
> +		       struct list_head *head);
> +void iort_put_rmr_sids(struct fwnode_handle *iommu_fwnode,
> +		       struct list_head *head);
>  /* IOMMU interface */
>  int iort_dma_get_ranges(struct device *dev, u64 *size);
>  int iort_iommu_configure_id(struct device *dev, const u32 *id_in);
> @@ -47,6 +51,10 @@ static inline struct irq_domain *iort_get_device_domain(
>  	struct device *dev, u32 id, enum irq_domain_bus_token bus_token)
>  { return NULL; }
>  static inline void acpi_configure_pmsi_domain(struct device *dev) { }
> +static inline
> +void iort_get_rmr_sids(struct fwnode_handle *iommu_fwnode, struct list_head *head) { }
> +static inline
> +void iort_put_rmr_sids(struct fwnode_handle *iommu_fwnode, struct list_head *head) { }
>  /* IOMMU interface */
>  static inline int iort_dma_get_ranges(struct device *dev, u64 *size)
>  { return -ENODEV; }
> -- 
> 2.25.1
> 

WARNING: multiple messages have this Message-ID (diff)
From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Cc: will@kernel.org, jon@solid-run.com, linuxarm@huawei.com,
	steven.price@arm.com, linux-acpi@vger.kernel.org,
	iommu@lists.linux-foundation.org, wanghuiqiang@huawei.com,
	guohanjun@huawei.com, yangyicong@huawei.com,
	Sami.Mujawar@arm.com, robin.murphy@arm.com,
	linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v9 07/11] ACPI/IORT: Add a helper to retrieve RMR info directly
Date: Wed, 6 Apr 2022 16:51:13 +0100	[thread overview]
Message-ID: <20220406155113.GC27518@lpieralisi> (raw)
In-Reply-To: <20220404124209.1086-8-shameerali.kolothum.thodi@huawei.com>

On Mon, Apr 04, 2022 at 01:42:05PM +0100, Shameer Kolothum wrote:
> This will provide a way for SMMU drivers to retrieve StreamIDs
> associated with IORT RMR nodes and use that to set bypass settings
> for those IDs.
> 
> Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
> ---
>  drivers/acpi/arm64/iort.c | 29 +++++++++++++++++++++++++++++
>  include/linux/acpi_iort.h |  8 ++++++++
>  2 files changed, 37 insertions(+)

Reviewed-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
> index 1147387cfddb..fb2b0163c27d 100644
> --- a/drivers/acpi/arm64/iort.c
> +++ b/drivers/acpi/arm64/iort.c
> @@ -1402,6 +1402,35 @@ int iort_dma_get_ranges(struct device *dev, u64 *size)
>  		return nc_dma_get_range(dev, size);
>  }
>  
> +/**
> + * iort_get_rmr_sids - Retrieve IORT RMR node reserved regions with
> + *                     associated StreamIDs information.
> + * @iommu_fwnode: fwnode associated with IOMMU
> + * @head: Resereved region list
> + */
> +void iort_get_rmr_sids(struct fwnode_handle *iommu_fwnode,
> +		       struct list_head *head)
> +{
> +	iort_iommu_rmr_get_resv_regions(iommu_fwnode, NULL, head);
> +}
> +EXPORT_SYMBOL_GPL(iort_get_rmr_sids);
> +
> +/**
> + * iort_put_rmr_sids - Free all the memory allocated for RMR reserved regions.
> + * @iommu_fwnode: fwnode associated with IOMMU
> + * @head: Resereved region list
> + */
> +void iort_put_rmr_sids(struct fwnode_handle *iommu_fwnode,
> +		       struct list_head *head)
> +{
> +	struct iommu_resv_region *entry, *next;
> +
> +	iort_iommu_put_resv_regions(NULL, head);
> +	list_for_each_entry_safe(entry, next, head, list)
> +		kfree(entry);
> +}
> +EXPORT_SYMBOL_GPL(iort_put_rmr_sids);
> +
>  static void __init acpi_iort_register_irq(int hwirq, const char *name,
>  					  int trigger,
>  					  struct resource *res)
> diff --git a/include/linux/acpi_iort.h b/include/linux/acpi_iort.h
> index eb3c28853110..774b8bc16573 100644
> --- a/include/linux/acpi_iort.h
> +++ b/include/linux/acpi_iort.h
> @@ -33,6 +33,10 @@ struct irq_domain *iort_get_device_domain(struct device *dev, u32 id,
>  					  enum irq_domain_bus_token bus_token);
>  void acpi_configure_pmsi_domain(struct device *dev);
>  int iort_pmsi_get_dev_id(struct device *dev, u32 *dev_id);
> +void iort_get_rmr_sids(struct fwnode_handle *iommu_fwnode,
> +		       struct list_head *head);
> +void iort_put_rmr_sids(struct fwnode_handle *iommu_fwnode,
> +		       struct list_head *head);
>  /* IOMMU interface */
>  int iort_dma_get_ranges(struct device *dev, u64 *size);
>  int iort_iommu_configure_id(struct device *dev, const u32 *id_in);
> @@ -47,6 +51,10 @@ static inline struct irq_domain *iort_get_device_domain(
>  	struct device *dev, u32 id, enum irq_domain_bus_token bus_token)
>  { return NULL; }
>  static inline void acpi_configure_pmsi_domain(struct device *dev) { }
> +static inline
> +void iort_get_rmr_sids(struct fwnode_handle *iommu_fwnode, struct list_head *head) { }
> +static inline
> +void iort_put_rmr_sids(struct fwnode_handle *iommu_fwnode, struct list_head *head) { }
>  /* IOMMU interface */
>  static inline int iort_dma_get_ranges(struct device *dev, u64 *size)
>  { return -ENODEV; }
> -- 
> 2.25.1
> 
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

WARNING: multiple messages have this Message-ID (diff)
From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
Cc: linux-arm-kernel@lists.infradead.org, linux-acpi@vger.kernel.org,
	iommu@lists.linux-foundation.org, linuxarm@huawei.com,
	joro@8bytes.org, robin.murphy@arm.com, will@kernel.org,
	wanghuiqiang@huawei.com, guohanjun@huawei.com,
	steven.price@arm.com, Sami.Mujawar@arm.com, jon@solid-run.com,
	eric.auger@redhat.com, laurentiu.tudor@nxp.com,
	yangyicong@huawei.com
Subject: Re: [PATCH v9 07/11] ACPI/IORT: Add a helper to retrieve RMR info directly
Date: Wed, 6 Apr 2022 16:51:13 +0100	[thread overview]
Message-ID: <20220406155113.GC27518@lpieralisi> (raw)
In-Reply-To: <20220404124209.1086-8-shameerali.kolothum.thodi@huawei.com>

On Mon, Apr 04, 2022 at 01:42:05PM +0100, Shameer Kolothum wrote:
> This will provide a way for SMMU drivers to retrieve StreamIDs
> associated with IORT RMR nodes and use that to set bypass settings
> for those IDs.
> 
> Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
> ---
>  drivers/acpi/arm64/iort.c | 29 +++++++++++++++++++++++++++++
>  include/linux/acpi_iort.h |  8 ++++++++
>  2 files changed, 37 insertions(+)

Reviewed-by: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>

> diff --git a/drivers/acpi/arm64/iort.c b/drivers/acpi/arm64/iort.c
> index 1147387cfddb..fb2b0163c27d 100644
> --- a/drivers/acpi/arm64/iort.c
> +++ b/drivers/acpi/arm64/iort.c
> @@ -1402,6 +1402,35 @@ int iort_dma_get_ranges(struct device *dev, u64 *size)
>  		return nc_dma_get_range(dev, size);
>  }
>  
> +/**
> + * iort_get_rmr_sids - Retrieve IORT RMR node reserved regions with
> + *                     associated StreamIDs information.
> + * @iommu_fwnode: fwnode associated with IOMMU
> + * @head: Resereved region list
> + */
> +void iort_get_rmr_sids(struct fwnode_handle *iommu_fwnode,
> +		       struct list_head *head)
> +{
> +	iort_iommu_rmr_get_resv_regions(iommu_fwnode, NULL, head);
> +}
> +EXPORT_SYMBOL_GPL(iort_get_rmr_sids);
> +
> +/**
> + * iort_put_rmr_sids - Free all the memory allocated for RMR reserved regions.
> + * @iommu_fwnode: fwnode associated with IOMMU
> + * @head: Resereved region list
> + */
> +void iort_put_rmr_sids(struct fwnode_handle *iommu_fwnode,
> +		       struct list_head *head)
> +{
> +	struct iommu_resv_region *entry, *next;
> +
> +	iort_iommu_put_resv_regions(NULL, head);
> +	list_for_each_entry_safe(entry, next, head, list)
> +		kfree(entry);
> +}
> +EXPORT_SYMBOL_GPL(iort_put_rmr_sids);
> +
>  static void __init acpi_iort_register_irq(int hwirq, const char *name,
>  					  int trigger,
>  					  struct resource *res)
> diff --git a/include/linux/acpi_iort.h b/include/linux/acpi_iort.h
> index eb3c28853110..774b8bc16573 100644
> --- a/include/linux/acpi_iort.h
> +++ b/include/linux/acpi_iort.h
> @@ -33,6 +33,10 @@ struct irq_domain *iort_get_device_domain(struct device *dev, u32 id,
>  					  enum irq_domain_bus_token bus_token);
>  void acpi_configure_pmsi_domain(struct device *dev);
>  int iort_pmsi_get_dev_id(struct device *dev, u32 *dev_id);
> +void iort_get_rmr_sids(struct fwnode_handle *iommu_fwnode,
> +		       struct list_head *head);
> +void iort_put_rmr_sids(struct fwnode_handle *iommu_fwnode,
> +		       struct list_head *head);
>  /* IOMMU interface */
>  int iort_dma_get_ranges(struct device *dev, u64 *size);
>  int iort_iommu_configure_id(struct device *dev, const u32 *id_in);
> @@ -47,6 +51,10 @@ static inline struct irq_domain *iort_get_device_domain(
>  	struct device *dev, u32 id, enum irq_domain_bus_token bus_token)
>  { return NULL; }
>  static inline void acpi_configure_pmsi_domain(struct device *dev) { }
> +static inline
> +void iort_get_rmr_sids(struct fwnode_handle *iommu_fwnode, struct list_head *head) { }
> +static inline
> +void iort_put_rmr_sids(struct fwnode_handle *iommu_fwnode, struct list_head *head) { }
>  /* IOMMU interface */
>  static inline int iort_dma_get_ranges(struct device *dev, u64 *size)
>  { return -ENODEV; }
> -- 
> 2.25.1
> 

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2022-04-06 17:40 UTC|newest]

Thread overview: 76+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-04 12:41 [PATCH v9 00/11] ACPI/IORT: Support for IORT RMR node Shameer Kolothum
2022-04-04 12:41 ` Shameer Kolothum
2022-04-04 12:41 ` Shameer Kolothum via iommu
2022-04-04 12:41 ` [PATCH v9 01/11] ACPI/IORT: Add temporary RMR node flag definitions Shameer Kolothum
2022-04-04 12:41   ` Shameer Kolothum
2022-04-04 12:41   ` Shameer Kolothum via iommu
2022-04-06 15:53   ` Lorenzo Pieralisi
2022-04-06 15:53     ` Lorenzo Pieralisi
2022-04-06 15:53     ` Lorenzo Pieralisi
2022-04-04 12:42 ` [PATCH v9 02/11] iommu: Introduce a union to struct iommu_resv_region Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum via iommu
2022-04-04 12:42 ` [PATCH v9 03/11] ACPI/IORT: Make iort_iommu_msi_get_resv_regions() return void Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum via iommu
2022-04-06 15:12   ` Lorenzo Pieralisi
2022-04-06 15:12     ` Lorenzo Pieralisi
2022-04-06 15:12     ` Lorenzo Pieralisi
2022-04-04 12:42 ` [PATCH v9 04/11] ACPI/IORT: Provide a generic helper to retrieve reserve regions Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum via iommu
2022-04-06 15:54   ` Lorenzo Pieralisi
2022-04-06 15:54     ` Lorenzo Pieralisi
2022-04-06 15:54     ` Lorenzo Pieralisi
2022-04-04 12:42 ` [PATCH v9 05/11] iommu/dma: Introduce a helper to remove reserved regions Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum via iommu
2022-04-07 13:26   ` Christoph Hellwig
2022-04-07 13:26     ` Christoph Hellwig
2022-04-07 13:26     ` Christoph Hellwig
2022-04-04 12:42 ` [PATCH v9 06/11] ACPI/IORT: Add support to retrieve IORT RMR " Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum via iommu
2022-04-06 15:47   ` Lorenzo Pieralisi
2022-04-06 15:47     ` Lorenzo Pieralisi
2022-04-06 15:47     ` Lorenzo Pieralisi
2022-04-07 13:28   ` Christoph Hellwig
2022-04-07 13:28     ` Christoph Hellwig
2022-04-07 13:28     ` Christoph Hellwig
2022-04-07 13:53     ` Robin Murphy
2022-04-07 13:53       ` Robin Murphy
2022-04-07 13:53       ` Robin Murphy
2022-04-07 13:59       ` Christoph Hellwig
2022-04-07 13:59         ` Christoph Hellwig
2022-04-07 13:59         ` Christoph Hellwig
2022-04-19  8:31         ` Shameerali Kolothum Thodi
2022-04-19  8:31           ` Shameerali Kolothum Thodi
2022-04-19  8:31           ` Shameerali Kolothum Thodi via iommu
2022-04-19  9:04           ` Christoph Hellwig
2022-04-19  9:04             ` Christoph Hellwig
2022-04-19  9:04             ` Christoph Hellwig
2022-04-04 12:42 ` [PATCH v9 07/11] ACPI/IORT: Add a helper to retrieve RMR info directly Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum via iommu
2022-04-06 15:51   ` Lorenzo Pieralisi [this message]
2022-04-06 15:51     ` Lorenzo Pieralisi
2022-04-06 15:51     ` Lorenzo Pieralisi
2022-04-04 12:42 ` [PATCH v9 08/11] iommu/arm-smmu-v3: Introduce strtab init helper Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum via iommu
2022-04-04 12:42 ` [PATCH v9 09/11] iommu/arm-smmu-v3: Refactor arm_smmu_init_bypass_stes() to force bypass Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum via iommu
2022-04-04 12:42 ` [PATCH v9 10/11] iommu/arm-smmu-v3: Get associated RMR info and install bypass STE Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum via iommu
2022-04-04 12:42 ` [PATCH v9 11/11] iommu/arm-smmu: Get associated RMR info and install bypass SMR Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum
2022-04-04 12:42   ` Shameer Kolothum via iommu
2022-04-07 15:43 ` [PATCH v9 00/11] ACPI/IORT: Support for IORT RMR node Steven Price
2022-04-07 15:43   ` Steven Price
2022-04-07 15:43   ` Steven Price
2022-04-19 14:50 ` Laurentiu Tudor
2022-04-19 14:50   ` Laurentiu Tudor
2022-04-19 14:50   ` Laurentiu Tudor
  -- strict thread matches above, loose matches on Subject: below --
2022-04-04 22:32 [PATCH v9 07/11] ACPI/IORT: Add a helper to retrieve RMR info directly kernel test robot

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=20220406155113.GC27518@lpieralisi \
    --to=lorenzo.pieralisi@arm.com \
    --cc=Sami.Mujawar@arm.com \
    --cc=eric.auger@redhat.com \
    --cc=guohanjun@huawei.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jon@solid-run.com \
    --cc=joro@8bytes.org \
    --cc=laurentiu.tudor@nxp.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linuxarm@huawei.com \
    --cc=robin.murphy@arm.com \
    --cc=shameerali.kolothum.thodi@huawei.com \
    --cc=steven.price@arm.com \
    --cc=wanghuiqiang@huawei.com \
    --cc=will@kernel.org \
    --cc=yangyicong@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.