From: Sricharan R <sricharan@codeaurora.org> To: 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 Cc: sricharan@codeaurora.org Subject: [PATCH V7 06/11] of/acpi: Configure dma operations at probe time for platform/amba/pci bus devices Date: Mon, 23 Jan 2017 21:48:08 +0530 [thread overview] Message-ID: <1485188293-20263-7-git-send-email-sricharan@codeaurora.org> (raw) In-Reply-To: <1485188293-20263-1-git-send-email-sricharan@codeaurora.org> 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. Signed-off-by: Sricharan R <sricharan@codeaurora.org> --- [V6 .. V7] * Updated the subject and commit log as per comments [V5 .. V6] * Squashed in patch 10 for configuring the dma ops of ACPI device at probe time from previous post. * Fixed a bug in dma_configure pointed out by Robin. 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 | 3 +++ 6 files changed, 53 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 57418f7..cf35030 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 204960e..89ebb6c 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -1864,33 +1864,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; @@ -1904,7 +1877,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 10c5a17b1..939bf77 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h @@ -708,6 +708,9 @@ void *dma_mark_declared_memory_occupied(struct device *dev, } #endif /* CONFIG_HAVE_GENERIC_DMA_COHERENT */ +int dma_configure(struct device *dev); +void dma_deconfigure(struct device *dev); + /* * Managed DMA API */ -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
WARNING: multiple messages have this Message-ID (diff)
From: sricharan@codeaurora.org (Sricharan R) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH V7 06/11] of/acpi: Configure dma operations at probe time for platform/amba/pci bus devices Date: Mon, 23 Jan 2017 21:48:08 +0530 [thread overview] Message-ID: <1485188293-20263-7-git-send-email-sricharan@codeaurora.org> (raw) In-Reply-To: <1485188293-20263-1-git-send-email-sricharan@codeaurora.org> 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. Signed-off-by: Sricharan R <sricharan@codeaurora.org> --- [V6 .. V7] * Updated the subject and commit log as per comments [V5 .. V6] * Squashed in patch 10 for configuring the dma ops of ACPI device at probe time from previous post. * Fixed a bug in dma_configure pointed out by Robin. 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 | 3 +++ 6 files changed, 53 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 57418f7..cf35030 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 204960e..89ebb6c 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -1864,33 +1864,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; @@ -1904,7 +1877,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 10c5a17b1..939bf77 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h @@ -708,6 +708,9 @@ void *dma_mark_declared_memory_occupied(struct device *dev, } #endif /* CONFIG_HAVE_GENERIC_DMA_COHERENT */ +int dma_configure(struct device *dev); +void dma_deconfigure(struct device *dev); + /* * Managed DMA API */ -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
next prev parent reply other threads:[~2017-01-23 16:18 UTC|newest] Thread overview: 147+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <CGME20170123161926epcas2p1cf464a2978d89d0c1fdd2f7cc6d38317@epcas2p1.samsung.com> 2017-01-23 16:18 ` [PATCH V7 00/11] IOMMU probe deferral support Sricharan R 2017-01-23 16:18 ` Sricharan R 2017-01-23 16:18 ` [PATCH V7 01/11] iommu/of: Refactor of_iommu_configure() for error handling Sricharan R 2017-01-23 16:18 ` Sricharan R 2017-01-23 16:18 ` Sricharan R [not found] ` <1485188293-20263-2-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2017-01-25 17:17 ` Tomasz Nowicki 2017-01-25 17:17 ` Tomasz Nowicki 2017-01-25 17:17 ` Tomasz Nowicki 2017-01-25 17:35 ` Robin Murphy 2017-01-25 17:35 ` Robin Murphy 2017-01-25 18:13 ` Tomasz Nowicki 2017-01-25 18:13 ` Tomasz Nowicki [not found] ` <c7bad124-d9f2-0ddf-168f-0b1950d3e1ed-5wv7dgnIgG8@public.gmane.org> 2017-01-27 18:00 ` Sricharan 2017-01-27 18:00 ` Sricharan 2017-01-27 18:00 ` Sricharan 2017-01-27 18:19 ` Robin Murphy 2017-01-27 18:19 ` Robin Murphy 2017-01-27 18:19 ` Robin Murphy 2017-01-30 7:00 ` Sricharan 2017-01-30 7:00 ` Sricharan 2017-01-30 7:00 ` Sricharan 2017-01-30 18:42 ` Robin Murphy 2017-01-30 18:42 ` Robin Murphy 2017-01-30 18:42 ` Robin Murphy [not found] ` <8387d057-15bd-500c-134e-0e731ff837d6-5wv7dgnIgG8@public.gmane.org> 2017-01-31 13:11 ` Sricharan 2017-01-31 13:11 ` Sricharan 2017-01-31 13:11 ` Sricharan 2017-01-23 16:18 ` [PATCH V7 02/11] iommu/of: Prepare for deferred IOMMU configuration Sricharan R 2017-01-23 16:18 ` Sricharan R 2017-01-23 16:18 ` [PATCH V7 03/11] of: dma: Move range size workaround to of_dma_get_range() Sricharan R 2017-01-23 16:18 ` Sricharan R 2017-01-23 16:18 ` [PATCH V7 05/11] ACPI/IORT: Add function to check SMMUs drivers presence Sricharan R 2017-01-23 16:18 ` Sricharan R 2017-01-23 16:18 ` Sricharan R [this message] 2017-01-23 16:18 ` [PATCH V7 06/11] of/acpi: Configure dma operations at probe time for platform/amba/pci bus devices Sricharan R 2017-01-28 21:08 ` Bjorn Helgaas 2017-01-28 21:08 ` Bjorn Helgaas 2017-01-30 7:09 ` Rafael J. Wysocki 2017-01-30 7:09 ` Rafael J. Wysocki 2017-01-23 16:18 ` [PATCH V7 07/11] iommu: of: Handle IOMMU lookup failure with deferred probing or error Sricharan R 2017-01-23 16:18 ` Sricharan R [not found] ` <1485188293-20263-8-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2017-01-28 21:03 ` Bjorn Helgaas 2017-01-28 21:03 ` Bjorn Helgaas 2017-01-28 21:03 ` Bjorn Helgaas 2017-01-30 8:01 ` Sricharan 2017-01-30 8:01 ` Sricharan 2017-01-30 8:01 ` Sricharan 2017-01-29 16:36 ` Sinan Kaya 2017-01-29 16:36 ` Sinan Kaya 2017-01-29 16:36 ` Sinan Kaya [not found] ` <34a703f0-3b37-88f0-46fa-b56ab6717a42-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2017-01-30 12:00 ` Sricharan 2017-01-30 12:00 ` Sricharan 2017-01-30 12:00 ` Sricharan 2017-01-23 16:18 ` [PATCH V7 08/11] drivers: acpi: " Sricharan R 2017-01-23 16:18 ` Sricharan R 2017-01-24 12:37 ` Lorenzo Pieralisi 2017-01-24 12:37 ` Lorenzo Pieralisi 2017-01-24 13:14 ` Hanjun Guo 2017-01-24 13:14 ` Hanjun Guo 2017-01-24 13:14 ` Hanjun Guo 2017-01-25 7:31 ` Sricharan 2017-01-25 7:31 ` Sricharan 2017-01-25 7:31 ` Sricharan 2017-01-29 17:53 ` Sinan Kaya 2017-01-29 17:53 ` Sinan Kaya 2017-01-29 17:53 ` Sinan Kaya [not found] ` <f2370671-ece8-fbee-de19-350dd625088f-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2017-01-30 12:22 ` Robin Murphy 2017-01-30 12:22 ` Robin Murphy 2017-01-30 12:22 ` Robin Murphy [not found] ` <93e79759-d614-9b36-d5ab-63e8eb725009-5wv7dgnIgG8@public.gmane.org> 2017-01-30 13:59 ` Sinan Kaya 2017-01-30 13:59 ` Sinan Kaya 2017-01-30 13:59 ` Sinan Kaya [not found] ` <14751205-f034-7f0d-442a-854c3909425c-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2017-01-30 14:23 ` Nate Watterson 2017-01-30 14:23 ` Nate Watterson 2017-01-30 14:23 ` Nate Watterson [not found] ` <5ba9f366d6e25397cdef8ad95b49e199-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2017-01-30 14:33 ` Sinan Kaya 2017-01-30 14:33 ` Sinan Kaya 2017-01-30 14:33 ` Sinan Kaya 2017-01-30 14:38 ` Will Deacon 2017-01-30 14:38 ` Will Deacon 2017-01-30 14:38 ` Will Deacon [not found] ` <20170130143851.GJ16461-5wv7dgnIgG8@public.gmane.org> 2017-01-30 14:54 ` Nate Watterson 2017-01-30 14:54 ` Nate Watterson 2017-01-30 14:54 ` Nate Watterson [not found] ` <b2e50c17de156341deab9fb8e91a8dec-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2017-01-30 15:46 ` Sinan Kaya 2017-01-30 15:46 ` Sinan Kaya 2017-01-30 15:46 ` Sinan Kaya [not found] ` <1e048aff-0d77-b9f2-ebf8-2ba315b90ca7-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2017-01-30 16:51 ` Lorenzo Pieralisi 2017-01-30 16:51 ` Lorenzo Pieralisi 2017-01-30 16:51 ` Lorenzo Pieralisi 2017-01-30 20:03 ` Sinan Kaya 2017-01-30 20:03 ` Sinan Kaya 2017-02-01 18:52 ` Lorenzo Pieralisi 2017-02-01 18:52 ` Lorenzo Pieralisi 2017-02-01 18:52 ` Lorenzo Pieralisi 2017-02-01 19:10 ` Sinan Kaya 2017-02-01 19:10 ` Sinan Kaya 2017-02-01 19:10 ` Sinan Kaya 2017-02-02 19:01 ` Nate Watterson 2017-02-02 19:01 ` Nate Watterson [not found] ` <3f4aa4c1e660c7e62256de9ca64fc822-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2017-02-03 3:37 ` Hanjun Guo 2017-02-03 3:37 ` Hanjun Guo 2017-02-03 3:37 ` Hanjun Guo 2017-02-03 3:37 ` Sricharan 2017-02-03 3:37 ` Sricharan 2017-02-03 3:37 ` Sricharan 2017-01-23 16:18 ` [PATCH V7 09/11] arm64: dma-mapping: Remove the notifier trick to handle early setting of dma_ops Sricharan R 2017-01-23 16:18 ` Sricharan R [not found] ` <1485188293-20263-10-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2017-01-28 21:06 ` Bjorn Helgaas 2017-01-28 21:06 ` Bjorn Helgaas 2017-01-28 21:06 ` Bjorn Helgaas [not found] ` <20170128210611.GF20550-1RhO1Y9PlrlHTL0Zs8A6p5iNqAH0jzoTYJqu5kTmcBRl57MIdRCFDg@public.gmane.org> 2017-01-30 8:04 ` Sricharan 2017-01-30 8:04 ` Sricharan 2017-01-30 8:04 ` Sricharan 2017-01-23 16:18 ` [PATCH V7 10/11] iommu/arm-smmu: Clean up early-probing workarounds Sricharan R 2017-01-23 16:18 ` Sricharan R 2017-01-25 17:28 ` Tomasz Nowicki 2017-01-25 17:28 ` Tomasz Nowicki [not found] ` <1485188293-20263-11-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2017-01-28 21:07 ` Bjorn Helgaas 2017-01-28 21:07 ` Bjorn Helgaas 2017-01-28 21:07 ` Bjorn Helgaas [not found] ` <20170128210709.GG20550-1RhO1Y9PlrlHTL0Zs8A6p5iNqAH0jzoTYJqu5kTmcBRl57MIdRCFDg@public.gmane.org> 2017-01-30 8:05 ` Sricharan 2017-01-30 8:05 ` Sricharan 2017-01-30 8:05 ` Sricharan 2017-01-23 16:18 ` [PATCH V7 11/11] ACPI/IORT: Remove linker section for IORT entries probing Sricharan R 2017-01-23 16:18 ` Sricharan R [not found] ` <1485188293-20263-1-git-send-email-sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org> 2017-01-23 16:18 ` [PATCH V7 04/11] of: dma: Make of_dma_deconfigure() public Sricharan R 2017-01-23 16:18 ` Sricharan R 2017-01-23 16:18 ` Sricharan R 2017-01-24 7:40 ` [PATCH V7 00/11] IOMMU probe deferral support Marek Szyprowski 2017-01-24 7:40 ` Marek Szyprowski 2017-01-24 7:40 ` Marek Szyprowski 2017-01-24 11:15 ` Sricharan 2017-01-24 11:15 ` Sricharan 2017-01-24 11:15 ` Sricharan 2017-01-25 4:33 ` Hanjun Guo 2017-01-25 4:33 ` Hanjun Guo 2017-01-25 4:33 ` Hanjun Guo 2017-01-25 7:33 ` Sricharan 2017-01-25 7:33 ` Sricharan 2017-01-25 7:33 ` Sricharan 2017-01-28 21:10 ` Bjorn Helgaas 2017-01-28 21:10 ` Bjorn Helgaas 2017-01-28 21:10 ` Bjorn Helgaas [not found] ` <20170128211029.GI20550-1RhO1Y9PlrlHTL0Zs8A6p5iNqAH0jzoTYJqu5kTmcBRl57MIdRCFDg@public.gmane.org> 2017-01-30 9:20 ` Sricharan 2017-01-30 9:20 ` Sricharan 2017-01-30 9:20 ` Sricharan
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=1485188293-20263-7-git-send-email-sricharan@codeaurora.org \ --to=sricharan@codeaurora.org \ --cc=bhelgaas@google.com \ --cc=iommu@lists.linux-foundation.org \ --cc=joro@8bytes.org \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-arm-msm@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=lorenzo.pieralisi@arm.com \ --cc=m.szyprowski@samsung.com \ --cc=robin.murphy@arm.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: linkBe 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.