Linux IOMMU Development
 help / color / mirror / Atom feed
From: Sricharan R <sricharan@codeaurora.org>
To: Robin Murphy <robin.murphy@arm.com>,
	will.deacon@arm.com, joro@8bytes.org, lorenzo.pieralisi@arm.com,
	iommu@lists.linux-foundation.org,
	linux-arm-kernel@lists.infradead.org,
	linux-arm-msm@vger.kernel.org, m.szyprowski@samsung.com,
	bhelgaas@google.com, linux-pci@vger.kernel.org,
	linux-acpi@vger.kernel.org, tn@semihalf.com,
	hanjun.guo@linaro.org, okaya@codeaurora.org, robh+dt@kernel.org,
	frowand.list@gmail.com, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, sudeep.holla@arm.com,
	rjw@rjwysocki.net, lenb@kernel.org, catalin.marinas@arm.com,
	arnd@arndb.de, linux-arch@vger.kernel.org,
	gregkh@linuxfoundation.org
Subject: Re: [PATCH V10 07/12] of/acpi: Configure dma operations at probe time for platform/amba/pci bus devices
Date: Tue, 4 Apr 2017 18:00:32 +0530	[thread overview]
Message-ID: <60b8502f-bdcf-713a-56ce-8f3eec5e1603@codeaurora.org> (raw)
In-Reply-To: <1d036139-b885-bac6-01c0-78d3ac690d80@arm.com>

Hi Robin,

On 4/4/2017 5:47 PM, Robin Murphy wrote:
> On 04/04/17 11:18, Sricharan R wrote:
>> Configuring DMA ops at probe time will allow deferring device probe when
>> the IOMMU isn't available yet. The dma_configure for the device is
>> now called from the generic device_attach callback just before the
>> bus/driver probe is called. This way, configuring the DMA ops for the
>> device would be called at the same place for all bus_types, hence the
>> deferred probing mechanism should work for all buses as well.
>>
>> pci_bus_add_devices    (platform/amba)(_device_create/driver_register)
>>        |                         |
>> pci_bus_add_device     (device_add/driver_register)
>>        |                         |
>> device_attach           device_initial_probe
>>        |                         |
>> __device_attach_driver    __device_attach_driver
>>        |
>> driver_probe_device
>>        |
>> really_probe
>>        |
>> dma_configure
>>
>> Similarly on the device/driver_unregister path __device_release_driver is
>> called which inturn calls dma_deconfigure.
>>
>> This patch changes the dma ops configuration to probe time for
>> both OF and ACPI based platform/amba/pci bus devices.
>
> Reviewed-by: Robin Murphy <robin.murphy@arm.com>
>
> It's possible we could subsume {of,acpi}_dma_deconfigure() into
> dma_deconfigure() entirely in future if it becomes clear that neither of
> them will ever need to do anything firmware-specific, but I think for
> now it's probably safer to keep the current symmetry - calling
> arch_teardown_dma_ops() twice is benign (and even if it weren't, I'd say
> it really should be!)
>

Ya, calling it twice should cause no harm. If nothing firmware specific
gets added this could simply be put in deconfigure itself in future.
Thanks for all the reviews !!

Regards,
  Sricharan



> Robin.
>
>> Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
>> Tested-by: Hanjun Guo <hanjun.guo@linaro.org>
>> Acked-by: Bjorn Helgaas <bhelgaas@google.com> (drivers/pci part)
>> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
>> Signed-off-by: Sricharan R <sricharan@codeaurora.org>
>> ---
>>
>>  [V10] Added dummy dma_(de)configure functions in case
>>        of !CONFIG_HAS_DMA to avoid build breaks.
>>
>>  drivers/acpi/glue.c         |  5 -----
>>  drivers/base/dd.c           |  9 +++++++++
>>  drivers/base/dma-mapping.c  | 40 ++++++++++++++++++++++++++++++++++++++++
>>  drivers/of/platform.c       |  5 +----
>>  drivers/pci/probe.c         | 28 ----------------------------
>>  include/linux/dma-mapping.h | 12 ++++++++++++
>>  6 files changed, 62 insertions(+), 37 deletions(-)
>>
>> diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c
>> index fb19e1c..c05f241 100644
>> --- a/drivers/acpi/glue.c
>> +++ b/drivers/acpi/glue.c
>> @@ -176,7 +176,6 @@ int acpi_bind_one(struct device *dev, struct acpi_device *acpi_dev)
>>  	struct list_head *physnode_list;
>>  	unsigned int node_id;
>>  	int retval = -EINVAL;
>> -	enum dev_dma_attr attr;
>>
>>  	if (has_acpi_companion(dev)) {
>>  		if (acpi_dev) {
>> @@ -233,10 +232,6 @@ int acpi_bind_one(struct device *dev, struct acpi_device *acpi_dev)
>>  	if (!has_acpi_companion(dev))
>>  		ACPI_COMPANION_SET(dev, acpi_dev);
>>
>> -	attr = acpi_get_dma_attr(acpi_dev);
>> -	if (attr != DEV_DMA_NOT_SUPPORTED)
>> -		acpi_dma_configure(dev, attr);
>> -
>>  	acpi_physnode_link_name(physical_node_name, node_id);
>>  	retval = sysfs_create_link(&acpi_dev->dev.kobj, &dev->kobj,
>>  				   physical_node_name);
>> diff --git a/drivers/base/dd.c b/drivers/base/dd.c
>> index a1fbf55..4882f06 100644
>> --- a/drivers/base/dd.c
>> +++ b/drivers/base/dd.c
>> @@ -19,6 +19,7 @@
>>
>>  #include <linux/device.h>
>>  #include <linux/delay.h>
>> +#include <linux/dma-mapping.h>
>>  #include <linux/module.h>
>>  #include <linux/kthread.h>
>>  #include <linux/wait.h>
>> @@ -356,6 +357,10 @@ static int really_probe(struct device *dev, struct device_driver *drv)
>>  	if (ret)
>>  		goto pinctrl_bind_failed;
>>
>> +	ret = dma_configure(dev);
>> +	if (ret)
>> +		goto dma_failed;
>> +
>>  	if (driver_sysfs_add(dev)) {
>>  		printk(KERN_ERR "%s: driver_sysfs_add(%s) failed\n",
>>  			__func__, dev_name(dev));
>> @@ -417,6 +422,8 @@ static int really_probe(struct device *dev, struct device_driver *drv)
>>  	goto done;
>>
>>  probe_failed:
>> +	dma_deconfigure(dev);
>> +dma_failed:
>>  	if (dev->bus)
>>  		blocking_notifier_call_chain(&dev->bus->p->bus_notifier,
>>  					     BUS_NOTIFY_DRIVER_NOT_BOUND, dev);
>> @@ -826,6 +833,8 @@ static void __device_release_driver(struct device *dev, struct device *parent)
>>  			drv->remove(dev);
>>
>>  		device_links_driver_cleanup(dev);
>> +		dma_deconfigure(dev);
>> +
>>  		devres_release_all(dev);
>>  		dev->driver = NULL;
>>  		dev_set_drvdata(dev, NULL);
>> diff --git a/drivers/base/dma-mapping.c b/drivers/base/dma-mapping.c
>> index efd71cf..449b948 100644
>> --- a/drivers/base/dma-mapping.c
>> +++ b/drivers/base/dma-mapping.c
>> @@ -7,9 +7,11 @@
>>   * This file is released under the GPLv2.
>>   */
>>
>> +#include <linux/acpi.h>
>>  #include <linux/dma-mapping.h>
>>  #include <linux/export.h>
>>  #include <linux/gfp.h>
>> +#include <linux/of_device.h>
>>  #include <linux/slab.h>
>>  #include <linux/vmalloc.h>
>>
>> @@ -341,3 +343,41 @@ void dma_common_free_remap(void *cpu_addr, size_t size, unsigned long vm_flags)
>>  	vunmap(cpu_addr);
>>  }
>>  #endif
>> +
>> +/*
>> + * Common configuration to enable DMA API use for a device
>> + */
>> +#include <linux/pci.h>
>> +
>> +int dma_configure(struct device *dev)
>> +{
>> +	struct device *bridge = NULL, *dma_dev = dev;
>> +	enum dev_dma_attr attr;
>> +
>> +	if (dev_is_pci(dev)) {
>> +		bridge = pci_get_host_bridge_device(to_pci_dev(dev));
>> +		dma_dev = bridge;
>> +		if (IS_ENABLED(CONFIG_OF) && dma_dev->parent &&
>> +		    dma_dev->parent->of_node)
>> +			dma_dev = dma_dev->parent;
>> +	}
>> +
>> +	if (dma_dev->of_node) {
>> +		of_dma_configure(dev, dma_dev->of_node);
>> +	} else if (has_acpi_companion(dma_dev)) {
>> +		attr = acpi_get_dma_attr(to_acpi_device_node(dma_dev->fwnode));
>> +		if (attr != DEV_DMA_NOT_SUPPORTED)
>> +			acpi_dma_configure(dev, attr);
>> +	}
>> +
>> +	if (bridge)
>> +		pci_put_host_bridge_device(bridge);
>> +
>> +	return 0;
>> +}
>> +
>> +void dma_deconfigure(struct device *dev)
>> +{
>> +	of_dma_deconfigure(dev);
>> +	acpi_dma_deconfigure(dev);
>> +}
>> diff --git a/drivers/of/platform.c b/drivers/of/platform.c
>> index 5344db5..2aa4ebb 100644
>> --- a/drivers/of/platform.c
>> +++ b/drivers/of/platform.c
>> @@ -22,6 +22,7 @@
>>  #include <linux/slab.h>
>>  #include <linux/of_address.h>
>>  #include <linux/of_device.h>
>> +#include <linux/of_iommu.h>
>>  #include <linux/of_irq.h>
>>  #include <linux/of_platform.h>
>>  #include <linux/platform_device.h>
>> @@ -186,11 +187,9 @@ static struct platform_device *of_platform_device_create_pdata(
>>
>>  	dev->dev.bus = &platform_bus_type;
>>  	dev->dev.platform_data = platform_data;
>> -	of_dma_configure(&dev->dev, dev->dev.of_node);
>>  	of_msi_configure(&dev->dev, dev->dev.of_node);
>>
>>  	if (of_device_add(dev) != 0) {
>> -		of_dma_deconfigure(&dev->dev);
>>  		platform_device_put(dev);
>>  		goto err_clear_flag;
>>  	}
>> @@ -248,7 +247,6 @@ static struct amba_device *of_amba_device_create(struct device_node *node,
>>  		dev_set_name(&dev->dev, "%s", bus_id);
>>  	else
>>  		of_device_make_bus_id(&dev->dev);
>> -	of_dma_configure(&dev->dev, dev->dev.of_node);
>>
>>  	/* Allow the HW Peripheral ID to be overridden */
>>  	prop = of_get_property(node, "arm,primecell-periphid", NULL);
>> @@ -542,7 +540,6 @@ static int of_platform_device_destroy(struct device *dev, void *data)
>>  		amba_device_unregister(to_amba_device(dev));
>>  #endif
>>
>> -	of_dma_deconfigure(dev);
>>  	of_node_clear_flag(dev->of_node, OF_POPULATED);
>>  	of_node_clear_flag(dev->of_node, OF_POPULATED_BUS);
>>  	return 0;
>> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
>> index dfc9a27..5a8dd43 100644
>> --- a/drivers/pci/probe.c
>> +++ b/drivers/pci/probe.c
>> @@ -1893,33 +1893,6 @@ static void pci_set_msi_domain(struct pci_dev *dev)
>>  	dev_set_msi_domain(&dev->dev, d);
>>  }
>>
>> -/**
>> - * pci_dma_configure - Setup DMA configuration
>> - * @dev: ptr to pci_dev struct of the PCI device
>> - *
>> - * Function to update PCI devices's DMA configuration using the same
>> - * info from the OF node or ACPI node of host bridge's parent (if any).
>> - */
>> -static void pci_dma_configure(struct pci_dev *dev)
>> -{
>> -	struct device *bridge = pci_get_host_bridge_device(dev);
>> -
>> -	if (IS_ENABLED(CONFIG_OF) &&
>> -		bridge->parent && bridge->parent->of_node) {
>> -			of_dma_configure(&dev->dev, bridge->parent->of_node);
>> -	} else if (has_acpi_companion(bridge)) {
>> -		struct acpi_device *adev = to_acpi_device_node(bridge->fwnode);
>> -		enum dev_dma_attr attr = acpi_get_dma_attr(adev);
>> -
>> -		if (attr == DEV_DMA_NOT_SUPPORTED)
>> -			dev_warn(&dev->dev, "DMA not supported.\n");
>> -		else
>> -			acpi_dma_configure(&dev->dev, attr);
>> -	}
>> -
>> -	pci_put_host_bridge_device(bridge);
>> -}
>> -
>>  void pci_device_add(struct pci_dev *dev, struct pci_bus *bus)
>>  {
>>  	int ret;
>> @@ -1933,7 +1906,6 @@ void pci_device_add(struct pci_dev *dev, struct pci_bus *bus)
>>  	dev->dev.dma_mask = &dev->dma_mask;
>>  	dev->dev.dma_parms = &dev->dma_parms;
>>  	dev->dev.coherent_dma_mask = 0xffffffffull;
>> -	pci_dma_configure(dev);
>>
>>  	pci_set_dma_max_seg_size(dev, 65536);
>>  	pci_set_dma_seg_boundary(dev, 0xffffffff);
>> diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
>> index 0977317..4f3eece 100644
>> --- a/include/linux/dma-mapping.h
>> +++ b/include/linux/dma-mapping.h
>> @@ -728,6 +728,18 @@ void *dma_mark_declared_memory_occupied(struct device *dev,
>>  }
>>  #endif /* CONFIG_HAVE_GENERIC_DMA_COHERENT */
>>
>> +#ifdef CONFIG_HAS_DMA
>> +int dma_configure(struct device *dev);
>> +void dma_deconfigure(struct device *dev);
>> +#else
>> +static inline int dma_configure(struct device *dev)
>> +{
>> +	return 0;
>> +}
>> +
>> +static inline void dma_deconfigure(struct device *dev) {}
>> +#endif
>> +
>>  /*
>>   * Managed DMA API
>>   */
>>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

-- 
"QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation

  reply	other threads:[~2017-04-04 12:30 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-09 19:00 [PATCH V9 00/11] IOMMU probe deferral support Sricharan R
2017-03-09 19:00 ` [PATCH V9 02/11] iommu/of: Prepare for deferred IOMMU configuration Sricharan R
2017-03-09 19:00 ` [PATCH V9 03/11] of: dma: Move range size workaround to of_dma_get_range() Sricharan R
2017-03-09 19:00 ` [PATCH V9 04/11] of: dma: Make of_dma_deconfigure() public Sricharan R
2017-03-09 19:00 ` [PATCH V9 05/11] ACPI/IORT: Add function to check SMMUs drivers presence Sricharan R
2017-03-09 19:00 ` [PATCH V9 06/11] of/acpi: Configure dma operations at probe time for platform/amba/pci bus devices Sricharan R
     [not found] ` <1489086061-9356-1-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-03-09 19:00   ` [PATCH V9 01/11] iommu/of: Refactor of_iommu_configure() for error handling Sricharan R
2017-03-09 19:00   ` [PATCH V9 07/11] iommu: of: Handle IOMMU lookup failure with deferred probing or error Sricharan R
     [not found]     ` <1489086061-9356-8-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-03-28 15:00       ` [V9, " Rob Herring
2017-03-28 15:11         ` Robin Murphy
2017-03-28 16:06         ` Sricharan R
2017-04-04 10:18   ` [PATCH V10 00/12] IOMMU probe deferral support Sricharan R
     [not found]     ` <1491301105-5274-1-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-04-04 10:18       ` [PATCH V10 01/12] iommu/of: Refactor of_iommu_configure() for error handling Sricharan R
2017-04-04 10:18       ` [PATCH V10 02/12] iommu/of: Prepare for deferred IOMMU configuration Sricharan R
2017-04-04 10:18       ` [PATCH V10 03/12] of: dma: Move range size workaround to of_dma_get_range() Sricharan R
     [not found]         ` <1491301105-5274-4-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-04-04 10:46           ` Robin Murphy
2017-04-06  6:24         ` Frank Rowand
     [not found]           ` <58E5DF13.2020700-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-04-06  9:35             ` Sricharan R
2017-04-06 10:03             ` Robin Murphy
2017-04-04 10:18       ` [PATCH V10 04/12] of: dma: Make of_dma_deconfigure() public Sricharan R
     [not found]         ` <1491301105-5274-5-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-04-04 10:47           ` Robin Murphy
2017-04-04 10:18       ` [PATCH V10 05/12] ACPI/IORT: Add function to check SMMUs drivers presence Sricharan R
     [not found]         ` <1491301105-5274-6-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-04-04 11:04           ` Robin Murphy
2017-04-04 10:18       ` [PATCH V10 06/12] of: device: Fix overflow of coherent_dma_mask Sricharan R
     [not found]         ` <1491301105-5274-7-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-04-04 11:10           ` Robin Murphy
2017-04-06  7:01         ` Frank Rowand
     [not found]           ` <58E5E7B7.1050400-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-04-06 10:24             ` Robin Murphy
     [not found]               ` <b081f333-084d-ffa5-635f-f7f1c0232ac3-5wv7dgnIgG8@public.gmane.org>
2017-04-06 13:56                 ` Rob Herring
     [not found]                   ` <CAL_JsqLsE378hfs=xNvSdPV2r+7H81cAFzOwtda2W+mFVoohuA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-04-06 14:45                     ` Robin Murphy
2017-04-06 19:24               ` Frank Rowand
2017-04-06 11:01           ` Sricharan R
     [not found]             ` <b77e3405-f060-bcd5-99f6-7d76f9edf08a-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-04-06 19:34               ` Frank Rowand
2017-04-07  4:12                 ` Sricharan R
2017-04-07 14:46                 ` Robin Murphy
2017-04-07 23:13                   ` Frank Rowand
     [not found]                     ` <58E81D01.8030606-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-04-10 13:25                       ` Robin Murphy
2017-04-07 23:10           ` Frank Rowand
2017-04-04 10:18       ` [PATCH V10 07/12] of/acpi: Configure dma operations at probe time for platform/amba/pci bus devices Sricharan R
     [not found]         ` <1491301105-5274-8-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-04-04 12:17           ` Robin Murphy
2017-04-04 12:30             ` Sricharan R [this message]
2017-04-04 10:18       ` [PATCH V10 08/12] iommu: of: Handle IOMMU lookup failure with deferred probing or error Sricharan R
2017-04-04 11:24         ` Robin Murphy
2017-04-04 10:18       ` [PATCH V10 09/12] drivers: acpi: " Sricharan R
2017-04-04 11:31         ` Robin Murphy
2017-04-04 10:18       ` [PATCH V10 10/12] arm64: dma-mapping: Remove the notifier trick to handle early setting of dma_ops Sricharan R
2017-04-04 10:18       ` [PATCH V10 11/12] iommu/arm-smmu: Clean up early-probing workarounds Sricharan R
2017-04-04 10:18       ` [PATCH V10 12/12] ACPI/IORT: Remove linker section for IORT entries probing Sricharan R
2017-04-04 11:33         ` Robin Murphy
2017-04-04 12:49     ` [PATCH V10 00/12] IOMMU probe deferral support Robin Murphy
     [not found]       ` <b0f3a1ec-ea13-7465-1d44-9191e3e803ef-5wv7dgnIgG8@public.gmane.org>
2017-04-05 10:04         ` Lorenzo Pieralisi
2017-04-05  1:23     ` Rob Herring
2017-04-06 18:46       ` Frank Rowand
2017-03-09 19:00 ` [PATCH V9 08/11] drivers: acpi: Handle IOMMU lookup failure with deferred probing or error Sricharan R
2017-03-09 19:00 ` [PATCH V9 09/11] arm64: dma-mapping: Remove the notifier trick to handle early setting of dma_ops Sricharan R
2017-03-09 19:01 ` [PATCH V9 10/11] iommu/arm-smmu: Clean up early-probing workarounds Sricharan R
2017-03-09 19:01 ` [PATCH V9 11/11] ACPI/IORT: Remove linker section for IORT entries probing Sricharan R
2017-03-24  3:53 ` [PATCH V9 00/11] IOMMU probe deferral support Zhou Wang
     [not found]   ` <58D49845.9060407-C8/M+/jPZTeaMJb+Lgu22Q@public.gmane.org>
2017-03-24  7:09     ` Sricharan R
     [not found]       ` <0ea8022b-a19b-335d-6cc6-81510196f891-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-03-24  9:27         ` Shameerali Kolothum Thodi
2017-03-24 12:50           ` Sricharan R
2017-03-24 14:43           ` Lorenzo Pieralisi
2017-03-24 15:09             ` Shameerali Kolothum Thodi
2017-03-24 18:38           ` Robin Murphy
     [not found]             ` <db3d68f8-713c-9ae2-7df9-324bc1b375b1-5wv7dgnIgG8@public.gmane.org>
2017-03-27 14:53               ` Shameerali Kolothum Thodi
2017-03-27 15:58             ` Shameerali Kolothum Thodi
2017-03-27 16:18               ` Robin Murphy
     [not found]                 ` <f67fb561-4238-6933-04f3-0f910f9232d1-5wv7dgnIgG8@public.gmane.org>
2017-03-27 17:33                   ` Lorenzo Pieralisi
2017-03-28  4:53                   ` Sricharan R
     [not found]                     ` <8d7ba471-84d4-b9f3-9d2a-de166f6839d4-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-03-28 14:15                       ` Shameerali Kolothum Thodi
2017-03-28 16:07                         ` Sricharan R

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=60b8502f-bdcf-713a-56ce-8f3eec5e1603@codeaurora.org \
    --to=sricharan@codeaurora.org \
    --cc=arnd@arndb.de \
    --cc=bhelgaas@google.com \
    --cc=catalin.marinas@arm.com \
    --cc=devicetree@vger.kernel.org \
    --cc=frowand.list@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=hanjun.guo@linaro.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=m.szyprowski@samsung.com \
    --cc=okaya@codeaurora.org \
    --cc=rjw@rjwysocki.net \
    --cc=robh+dt@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=sudeep.holla@arm.com \
    --cc=tn@semihalf.com \
    --cc=will.deacon@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox