* [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15
@ 2014-02-28 20:42 Suman Anna
2014-02-28 20:42 ` [PATCHv3 05/13] iommu/omap: add devicetree support Suman Anna
` (3 more replies)
0 siblings, 4 replies; 21+ messages in thread
From: Suman Anna @ 2014-02-28 20:42 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Laurent Pinchart, Florian Vaussard,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Hi Joerg, Tony,
This is an updated series of the OMAP IOMMU DT adaptation intended
for 3.15 merge window, addressing the comments from the v2 series.
This series is rebased onto 3.14-rc4, and the only change to bindings
is to drop the dma-window property.
The first 7 patches in the series are in drivers/iommu, with the first
3 patches performing some cleanup. The DT bindings and adaptation are
done in patches 4 and 5.
Tony,
Patches 8 through 13 are in arch/arm/mach-omap2 layer, so I am guessing
these would have to go through your tree. Of these, patches 8 and 9 are
cleanup fixes to get OMAP3 IVA MMU working, patches 10 & 11 are fixes
required with DT-boot for OMAP3/4, patches 12 & 13 add the OMAP5 support.
I have validated the functionality of all the different IOMMUs on
OMAP3 (legacy and DT-boots), OMAP4 and OMAP5 (DT boot only). The full branch
including the DTS patches used to test is here for reference,
https://github.com/sumananna/omap-kernel/commits/iommu/3.14-rc4-dt-support-v3
Detailed changes in v3:
- Updated patch for fixing return errors in omap_iommu_attach (Patch 2)
- Updated bindings document and driver DT support patch to remove the
dma-window property (Patches 4 and 5)
- Updated the OMAP3 ISP archdata to support both legacy and DT boots
(Patch 10). This patch is reworked completely w.r.t v2.
- All the remaining patches are unchanged (Patches 1, 3, 6 through 9,
11 through 13), other than the addition of the Acked-by received on
the respective patches. Patches 3 and 9 are reordered compared to
previous version.
- Dropped Patches 14 through 16 from previous series until OMAP3 is
also converted to DT-only. These dealt with the cleanup of code
used in legacy boot.
v2:
http://marc.info/?l=linux-omap&m=139231544416973&w=2
- Cleanup of driver probe/release to use devm_ interfaces (Patch 1)
- The DT bindings are split into a separate patch, and updated based
on discussion on v1 [1] (Patch 3)
- Updated DT adaptation patch with improved error checking, and
support for DRA7 compatible IOMMUs in the driver (Patch 4)
- Added support for throwing a bus error response back to the processor
cores on MMUs associated with IPUs (Patch 5)
- Added preliminary support to DT-based IOMMU users (Patch 6)
- Added preparatory patches to enable and use the hwmod for IVA MMU
on OMAP3 (Patches 8 and 11)
- Adapt the OMAP3 ISP archdata to support DT boot (Patch 9). Legacy
mode will not work after this patch, and this will be cleaned up
anyway once OMAP3ISP is converted to a DT node.
- Reset functionality enablement with DT-boots using pdata quirks
for OMAP3 IVA, OMAP4 and OMAP5 DSP & IPU MMUs (Patches 10, 13)
- Added the basic hwmod data for OMAP5 iommus (Patch 12)
- Clean up the iommu hwmod data and remove the legacy file for creating
IOMMU devices (Patches 14, 15, 16).
- Dropped the "iommu/omap: Do bus_set_iommu() only if probe() succeeds"
patch from previous series.
- Dropped the OMAP3 ISP MMU DTS patch (posting separately).
v1:
- Couple of cleanup and initial DT adaptation for OMAP3 ISP.
http://marc.info/?l=linux-omap&m=138728485600624&w=2
Florian Vaussard (4):
iommu/omap: allow enable/disable even without pdata
Documentation: dt: add OMAP iommu bindings
iommu/omap: add devicetree support
ARM: OMAP3: remove deprecated CONFIG_OMAP_IOMMU_IVA2
Laurent Pinchart (1):
iommu/omap: allocate archdata on the fly for DT-based devices
Suman Anna (8):
iommu/omap: convert to devm_* interfaces
iommu/omap: fix error return paths in omap_iommu_attach()
iommu/omap: enable bus-error back on supported iommus
ARM: OMAP3: fix iva mmu programming issues
ARM: OMAP2+: change the ISP device archdata MMU name for DT
ARM: OMAP2+: use pdata quirks for iommu reset lines
ARM: OMAP5: hwmod data: add mmu data for ipu & dsp
ARM: OMAP2+: extend iommu pdata-quirks to OMAP5
.../devicetree/bindings/iommu/ti,omap-iommu.txt | 26 ++++
arch/arm/mach-omap2/clockdomains3xxx_data.c | 2 +-
arch/arm/mach-omap2/devices.c | 3 +
arch/arm/mach-omap2/omap-iommu.c | 5 +
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 12 +-
arch/arm/mach-omap2/omap_hwmod_54xx_data.c | 83 +++++++++++
arch/arm/mach-omap2/pdata-quirks.c | 24 ++++
arch/arm/plat-omap/Kconfig | 3 -
drivers/iommu/omap-iommu.c | 159 +++++++++++++--------
drivers/iommu/omap-iommu.h | 5 +
drivers/iommu/omap-iommu2.c | 3 +
11 files changed, 256 insertions(+), 69 deletions(-)
create mode 100644 Documentation/devicetree/bindings/iommu/ti,omap-iommu.txt
--
1.9.0
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCHv3 01/13] iommu/omap: convert to devm_* interfaces
[not found] ` <1393620164-14633-1-git-send-email-s-anna-l0cyMroinI0@public.gmane.org>
@ 2014-02-28 20:42 ` Suman Anna
2014-02-28 20:42 ` [PATCHv3 02/13] iommu/omap: fix error return paths in omap_iommu_attach() Suman Anna
` (9 subsequent siblings)
10 siblings, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-02-28 20:42 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Laurent Pinchart, Florian Vaussard,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
Use the various devm_ interfaces to simplify the cleanup in
probe and remove functions.
Signed-off-by: Florian Vaussard <florian.vaussard-p8DiymsW2f8@public.gmane.org>
Signed-off-by: Suman Anna <s-anna-l0cyMroinI0@public.gmane.org>
Acked-by: Laurent Pinchart <laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>
---
drivers/iommu/omap-iommu.c | 52 +++++++++-------------------------------------
1 file changed, 10 insertions(+), 42 deletions(-)
diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
index bcd78a7..fff2ffd 100644
--- a/drivers/iommu/omap-iommu.c
+++ b/drivers/iommu/omap-iommu.c
@@ -941,7 +941,7 @@ static int omap_iommu_probe(struct platform_device *pdev)
struct resource *res;
struct iommu_platform_data *pdata = pdev->dev.platform_data;
- obj = kzalloc(sizeof(*obj) + MMU_REG_SIZE, GFP_KERNEL);
+ obj = devm_kzalloc(&pdev->dev, sizeof(*obj) + MMU_REG_SIZE, GFP_KERNEL);
if (!obj)
return -ENOMEM;
@@ -958,33 +958,18 @@ static int omap_iommu_probe(struct platform_device *pdev)
INIT_LIST_HEAD(&obj->mmap);
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!res) {
- err = -ENODEV;
- goto err_mem;
- }
-
- res = request_mem_region(res->start, resource_size(res),
- dev_name(&pdev->dev));
- if (!res) {
- err = -EIO;
- goto err_mem;
- }
-
- obj->regbase = ioremap(res->start, resource_size(res));
- if (!obj->regbase) {
- err = -ENOMEM;
- goto err_ioremap;
- }
+ obj->regbase = devm_ioremap_resource(obj->dev, res);
+ if (IS_ERR(obj->regbase))
+ return PTR_ERR(obj->regbase);
irq = platform_get_irq(pdev, 0);
- if (irq < 0) {
- err = -ENODEV;
- goto err_irq;
- }
- err = request_irq(irq, iommu_fault_handler, IRQF_SHARED,
- dev_name(&pdev->dev), obj);
+ if (irq < 0)
+ return -ENODEV;
+
+ err = devm_request_irq(obj->dev, irq, iommu_fault_handler, IRQF_SHARED,
+ dev_name(obj->dev), obj);
if (err < 0)
- goto err_irq;
+ return err;
platform_set_drvdata(pdev, obj);
pm_runtime_irq_safe(obj->dev);
@@ -992,34 +977,17 @@ static int omap_iommu_probe(struct platform_device *pdev)
dev_info(&pdev->dev, "%s registered\n", obj->name);
return 0;
-
-err_irq:
- iounmap(obj->regbase);
-err_ioremap:
- release_mem_region(res->start, resource_size(res));
-err_mem:
- kfree(obj);
- return err;
}
static int omap_iommu_remove(struct platform_device *pdev)
{
- int irq;
- struct resource *res;
struct omap_iommu *obj = platform_get_drvdata(pdev);
iopgtable_clear_entry_all(obj);
- irq = platform_get_irq(pdev, 0);
- free_irq(irq, obj);
- res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- release_mem_region(res->start, resource_size(res));
- iounmap(obj->regbase);
-
pm_runtime_disable(obj->dev);
dev_info(&pdev->dev, "%s removed\n", obj->name);
- kfree(obj);
return 0;
}
--
1.9.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv3 02/13] iommu/omap: fix error return paths in omap_iommu_attach()
[not found] ` <1393620164-14633-1-git-send-email-s-anna-l0cyMroinI0@public.gmane.org>
2014-02-28 20:42 ` [PATCHv3 01/13] iommu/omap: convert to devm_* interfaces Suman Anna
@ 2014-02-28 20:42 ` Suman Anna
2014-02-28 20:42 ` [PATCHv3 03/13] iommu/omap: allow enable/disable even without pdata Suman Anna
` (8 subsequent siblings)
10 siblings, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-02-28 20:42 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Laurent Pinchart, Florian Vaussard,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
There are couple of issues with the error return paths in
omap_iommu_attach():
1. omap_iommu_attach() returns NULL or ERR_PTR in case of error,
but omap_iommu_attach_dev() only checks for IS_ERR. Thus a NULL
return value (in case driver_find_device fails) will cause the
kernel to panic when omap_iommu_attach_dev() dereferences the
pointer.
2. A try_module_get() failure returns a valid success value as
returned from iommu_enable().
Both the above issues have been fixed up to return the proper
ERR_PTR.
Signed-off-by: Florian Vaussard <florian.vaussard-p8DiymsW2f8@public.gmane.org>
Signed-off-by: Suman Anna <s-anna-l0cyMroinI0@public.gmane.org>
---
drivers/iommu/omap-iommu.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
index fff2ffd..647e4ba 100644
--- a/drivers/iommu/omap-iommu.c
+++ b/drivers/iommu/omap-iommu.c
@@ -863,7 +863,7 @@ static int device_match_by_alias(struct device *dev, void *data)
**/
static struct omap_iommu *omap_iommu_attach(const char *name, u32 *iopgd)
{
- int err = -ENOMEM;
+ int err;
struct device *dev;
struct omap_iommu *obj;
@@ -871,7 +871,7 @@ static struct omap_iommu *omap_iommu_attach(const char *name, u32 *iopgd)
(void *)name,
device_match_by_alias);
if (!dev)
- return NULL;
+ return ERR_PTR(-ENODEV);
obj = to_iommu(dev);
@@ -890,8 +890,10 @@ static struct omap_iommu *omap_iommu_attach(const char *name, u32 *iopgd)
goto err_enable;
flush_iotlb_all(obj);
- if (!try_module_get(obj->owner))
+ if (!try_module_get(obj->owner)) {
+ err = -ENODEV;
goto err_module;
+ }
spin_unlock(&obj->iommu_lock);
--
1.9.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv3 03/13] iommu/omap: allow enable/disable even without pdata
[not found] ` <1393620164-14633-1-git-send-email-s-anna-l0cyMroinI0@public.gmane.org>
2014-02-28 20:42 ` [PATCHv3 01/13] iommu/omap: convert to devm_* interfaces Suman Anna
2014-02-28 20:42 ` [PATCHv3 02/13] iommu/omap: fix error return paths in omap_iommu_attach() Suman Anna
@ 2014-02-28 20:42 ` Suman Anna
2014-02-28 20:42 ` [PATCHv3 04/13] Documentation: dt: add OMAP iommu bindings Suman Anna
` (7 subsequent siblings)
10 siblings, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-02-28 20:42 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Laurent Pinchart, Florian Vaussard,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
From: Florian Vaussard <florian.vaussard-p8DiymsW2f8@public.gmane.org>
When booting with a devicetree, no platform data is provided.
Do not prematurely exit iommu_enable() and iommu_disable() in
such a case.
Note: As OMAP do not yet has a proper reset controller driver,
IOMMUs requiring a reset signal should use pdata-quirks as a
transitional solution.
Signed-off-by: Florian Vaussard <florian.vaussard-p8DiymsW2f8@public.gmane.org>
Signed-off-by: Suman Anna <s-anna-l0cyMroinI0@public.gmane.org>
Acked-by: Laurent Pinchart <laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>
---
drivers/iommu/omap-iommu.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
index 647e4ba..217952b 100644
--- a/drivers/iommu/omap-iommu.c
+++ b/drivers/iommu/omap-iommu.c
@@ -146,13 +146,10 @@ static int iommu_enable(struct omap_iommu *obj)
struct platform_device *pdev = to_platform_device(obj->dev);
struct iommu_platform_data *pdata = pdev->dev.platform_data;
- if (!pdata)
- return -EINVAL;
-
if (!arch_iommu)
return -ENODEV;
- if (pdata->deassert_reset) {
+ if (pdata && pdata->deassert_reset) {
err = pdata->deassert_reset(pdev, pdata->reset_name);
if (err) {
dev_err(obj->dev, "deassert_reset failed: %d\n", err);
@@ -172,14 +169,11 @@ static void iommu_disable(struct omap_iommu *obj)
struct platform_device *pdev = to_platform_device(obj->dev);
struct iommu_platform_data *pdata = pdev->dev.platform_data;
- if (!pdata)
- return;
-
arch_iommu->disable(obj);
pm_runtime_put_sync(obj->dev);
- if (pdata->assert_reset)
+ if (pdata && pdata->assert_reset)
pdata->assert_reset(pdev, pdata->reset_name);
}
--
1.9.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv3 04/13] Documentation: dt: add OMAP iommu bindings
[not found] ` <1393620164-14633-1-git-send-email-s-anna-l0cyMroinI0@public.gmane.org>
` (2 preceding siblings ...)
2014-02-28 20:42 ` [PATCHv3 03/13] iommu/omap: allow enable/disable even without pdata Suman Anna
@ 2014-02-28 20:42 ` Suman Anna
2014-02-28 20:42 ` [PATCHv3 06/13] iommu/omap: enable bus-error back on supported iommus Suman Anna
` (6 subsequent siblings)
10 siblings, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-02-28 20:42 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Laurent Pinchart, Florian Vaussard,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
From: Florian Vaussard <florian.vaussard-p8DiymsW2f8@public.gmane.org>
This patch adds the iommu bindings for all OMAP2+ SoCs. Apart from
the standard bindings used by OMAP peripherals, this patch uses a
'dma-window' (already used by Tegra SMMU) and adds two OMAP custom
bindings - 'ti,#tlb-entries' and 'ti,iommu-bus-err-back'.
Signed-off-by: Florian Vaussard <florian.vaussard-p8DiymsW2f8@public.gmane.org>
[s-anna-l0cyMroinI0@public.gmane.org: split bindings document, add dra7 and bus error back]
Signed-off-by: Suman Anna <s-anna-l0cyMroinI0@public.gmane.org>
---
.../devicetree/bindings/iommu/ti,omap-iommu.txt | 26 ++++++++++++++++++++++
1 file changed, 26 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iommu/ti,omap-iommu.txt
diff --git a/Documentation/devicetree/bindings/iommu/ti,omap-iommu.txt b/Documentation/devicetree/bindings/iommu/ti,omap-iommu.txt
new file mode 100644
index 0000000..42531dc
--- /dev/null
+++ b/Documentation/devicetree/bindings/iommu/ti,omap-iommu.txt
@@ -0,0 +1,26 @@
+OMAP2+ IOMMU
+
+Required properties:
+- compatible : Should be one of,
+ "ti,omap2-iommu" for OMAP2/OMAP3 IOMMU instances
+ "ti,omap4-iommu" for OMAP4/OMAP5 IOMMU instances
+ "ti,dra7-iommu" for DRA7xx IOMMU instances
+- ti,hwmods : Name of the hwmod associated with the IOMMU instance
+- reg : Address space for the configuration registers
+- interrupts : Interrupt specifier for the IOMMU instance
+
+Optional properties:
+- ti,#tlb-entries : Number of entries in the translation look-aside buffer.
+ Should be either 8 or 32 (default: 32)
+- ti,iommu-bus-err-back : Indicates the IOMMU instance supports throwing
+ back a bus error response on MMU faults.
+
+Example:
+ /* OMAP3 ISP MMU */
+ mmu_isp: mmu@480bd400 {
+ compatible = "ti,omap2-iommu";
+ reg = <0x480bd400 0x80>;
+ interrupts = <24>;
+ ti,hwmods = "mmu_isp";
+ ti,#tlb-entries = <8>;
+ };
--
1.9.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv3 05/13] iommu/omap: add devicetree support
2014-02-28 20:42 [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15 Suman Anna
@ 2014-02-28 20:42 ` Suman Anna
[not found] ` <1393620164-14633-1-git-send-email-s-anna-l0cyMroinI0@public.gmane.org>
` (2 subsequent siblings)
3 siblings, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-02-28 20:42 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: Florian Vaussard, Laurent Pinchart, iommu, devicetree, linux-omap,
linux-arm-kernel, Suman Anna
From: Florian Vaussard <florian.vaussard@epfl.ch>
As OMAP2+ is moving to a full DT boot for all SoC families, commit
7ce93f3 "ARM: OMAP2+: Fix more missing data for omap3.dtsi file"
adds basic DT bits for OMAP3. But the driver is not yet converted,
so this will not work and driver will not be probed. Convert it!
The legacy boot mode is still supported until OMAP3 is converted
to DT-boot only.
Signed-off-by: Florian Vaussard <florian.vaussard@epfl.ch>
[s-anna@ti.com: dev_name adaptation and improved error checking]
Signed-off-by: Suman Anna <s-anna@ti.com>
[tony@atomide.com: Ack for arch/arm/*omap* parts]
Acked-by: Tony Lindgren <tony@atomide.com>
---
arch/arm/mach-omap2/omap-iommu.c | 5 +++++
drivers/iommu/omap-iommu.c | 42 ++++++++++++++++++++++++++++++++++++----
2 files changed, 43 insertions(+), 4 deletions(-)
diff --git a/arch/arm/mach-omap2/omap-iommu.c b/arch/arm/mach-omap2/omap-iommu.c
index f6daae8..f1fab56 100644
--- a/arch/arm/mach-omap2/omap-iommu.c
+++ b/arch/arm/mach-omap2/omap-iommu.c
@@ -10,6 +10,7 @@
* published by the Free Software Foundation.
*/
+#include <linux/of.h>
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/err.h>
@@ -58,6 +59,10 @@ static int __init omap_iommu_dev_init(struct omap_hwmod *oh, void *unused)
static int __init omap_iommu_init(void)
{
+ /* If dtb is there, the devices will be created dynamically */
+ if (of_have_populated_dt())
+ return -ENODEV;
+
return omap_hwmod_for_each_by_class("mmu", omap_iommu_dev_init, NULL);
}
/* must be ready before omap3isp is probed */
diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
index 217952b..eb73ef2 100644
--- a/drivers/iommu/omap-iommu.c
+++ b/drivers/iommu/omap-iommu.c
@@ -23,6 +23,9 @@
#include <linux/spinlock.h>
#include <linux/io.h>
#include <linux/pm_runtime.h>
+#include <linux/of.h>
+#include <linux/of_iommu.h>
+#include <linux/of_irq.h>
#include <asm/cacheflush.h>
@@ -936,17 +939,39 @@ static int omap_iommu_probe(struct platform_device *pdev)
struct omap_iommu *obj;
struct resource *res;
struct iommu_platform_data *pdata = pdev->dev.platform_data;
+ struct device_node *of = pdev->dev.of_node;
obj = devm_kzalloc(&pdev->dev, sizeof(*obj) + MMU_REG_SIZE, GFP_KERNEL);
if (!obj)
return -ENOMEM;
- obj->nr_tlb_entries = pdata->nr_tlb_entries;
- obj->name = pdata->name;
+ if (of) {
+ obj->name = dev_name(&pdev->dev);
+ obj->nr_tlb_entries = 32;
+ err = of_property_read_u32(of, "ti,#tlb-entries",
+ &obj->nr_tlb_entries);
+ if (err && err != -EINVAL)
+ return err;
+ if (obj->nr_tlb_entries != 32 && obj->nr_tlb_entries != 8)
+ return -EINVAL;
+ /*
+ * da_start and da_end are needed for omap-iovmm, so hardcode
+ * these values as used by OMAP3 ISP - the only user for
+ * omap-iovmm
+ */
+ obj->da_start = 0;
+ obj->da_end = 0xfffff000;
+ } else {
+ obj->nr_tlb_entries = pdata->nr_tlb_entries;
+ obj->name = pdata->name;
+ obj->da_start = pdata->da_start;
+ obj->da_end = pdata->da_end;
+ }
+ if (obj->da_end <= obj->da_start)
+ return -EINVAL;
+
obj->dev = &pdev->dev;
obj->ctx = (void *)obj + sizeof(*obj);
- obj->da_start = pdata->da_start;
- obj->da_end = pdata->da_end;
spin_lock_init(&obj->iommu_lock);
mutex_init(&obj->mmap_lock);
@@ -987,11 +1012,20 @@ static int omap_iommu_remove(struct platform_device *pdev)
return 0;
}
+static struct of_device_id omap_iommu_of_match[] = {
+ { .compatible = "ti,omap2-iommu" },
+ { .compatible = "ti,omap4-iommu" },
+ { .compatible = "ti,dra7-iommu" },
+ {},
+};
+MODULE_DEVICE_TABLE(of, omap_iommu_of_match);
+
static struct platform_driver omap_iommu_driver = {
.probe = omap_iommu_probe,
.remove = omap_iommu_remove,
.driver = {
.name = "omap-iommu",
+ .of_match_table = of_match_ptr(omap_iommu_of_match),
},
};
--
1.9.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv3 06/13] iommu/omap: enable bus-error back on supported iommus
[not found] ` <1393620164-14633-1-git-send-email-s-anna-l0cyMroinI0@public.gmane.org>
` (3 preceding siblings ...)
2014-02-28 20:42 ` [PATCHv3 04/13] Documentation: dt: add OMAP iommu bindings Suman Anna
@ 2014-02-28 20:42 ` Suman Anna
2014-02-28 20:42 ` [PATCHv3 07/13] iommu/omap: allocate archdata on the fly for DT-based devices Suman Anna
` (5 subsequent siblings)
10 siblings, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-02-28 20:42 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
Subramaniam Chanderashekarapuram,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Laurent Pinchart, Florian Vaussard,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
The remoteproc MMUs in OMAP4+ SoCs have some additional debug
registers that can give out the PC value in addition to the
MMU fault address. The PC value can be extracted properly only
on the DSP cores, and is not available on the ARM processors
within the IPU sub-systems. Instead, the MMUs have been enhanced
to throw a bus-error response back to the IPU processors.
This functionality is programmable through the MMU_GP_REG register.
The cores are simply stalled if the MMU_GP_REG.BUS_ERR_BACK_EN bit
is not set. When set, a bus-error exception is raised allowing the
processor to handle it as a bus fault and provide additional debug
information. This feature is turned on by default by the driver on
iommus supporting it.
Signed-off-by: Subramaniam Chanderashekarapuram <subramaniam.ca-l0cyMroinI0@public.gmane.org>
Signed-off-by: Suman Anna <s-anna-l0cyMroinI0@public.gmane.org>
---
drivers/iommu/omap-iommu.c | 2 ++
drivers/iommu/omap-iommu.h | 5 +++++
drivers/iommu/omap-iommu2.c | 3 +++
3 files changed, 10 insertions(+)
diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
index eb73ef2..28bc631 100644
--- a/drivers/iommu/omap-iommu.c
+++ b/drivers/iommu/omap-iommu.c
@@ -961,6 +961,8 @@ static int omap_iommu_probe(struct platform_device *pdev)
*/
obj->da_start = 0;
obj->da_end = 0xfffff000;
+ if (of_find_property(of, "ti,iommu-bus-err-back", NULL))
+ obj->has_bus_err_back = MMU_GP_REG_BUS_ERR_BACK_EN;
} else {
obj->nr_tlb_entries = pdata->nr_tlb_entries;
obj->name = pdata->name;
diff --git a/drivers/iommu/omap-iommu.h b/drivers/iommu/omap-iommu.h
index 1200842..ea920c3 100644
--- a/drivers/iommu/omap-iommu.h
+++ b/drivers/iommu/omap-iommu.h
@@ -52,6 +52,8 @@ struct omap_iommu {
void *ctx; /* iommu context: registres saved area */
u32 da_start;
u32 da_end;
+
+ int has_bus_err_back;
};
struct cr_regs {
@@ -130,6 +132,7 @@ static inline struct omap_iommu *dev_to_omap_iommu(struct device *dev)
#define MMU_READ_CAM 0x68
#define MMU_READ_RAM 0x6c
#define MMU_EMU_FAULT_AD 0x70
+#define MMU_GP_REG 0x88
#define MMU_REG_SIZE 256
@@ -163,6 +166,8 @@ static inline struct omap_iommu *dev_to_omap_iommu(struct device *dev)
#define MMU_RAM_MIXED_MASK (1 << MMU_RAM_MIXED_SHIFT)
#define MMU_RAM_MIXED MMU_RAM_MIXED_MASK
+#define MMU_GP_REG_BUS_ERR_BACK_EN 0x1
+
/*
* utilities for super page(16MB, 1MB, 64KB and 4KB)
*/
diff --git a/drivers/iommu/omap-iommu2.c b/drivers/iommu/omap-iommu2.c
index d745094..5e1ea3b 100644
--- a/drivers/iommu/omap-iommu2.c
+++ b/drivers/iommu/omap-iommu2.c
@@ -98,6 +98,9 @@ static int omap2_iommu_enable(struct omap_iommu *obj)
iommu_write_reg(obj, pa, MMU_TTB);
+ if (obj->has_bus_err_back)
+ iommu_write_reg(obj, MMU_GP_REG_BUS_ERR_BACK_EN, MMU_GP_REG);
+
__iommu_set_twl(obj, true);
return 0;
--
1.9.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv3 07/13] iommu/omap: allocate archdata on the fly for DT-based devices
[not found] ` <1393620164-14633-1-git-send-email-s-anna-l0cyMroinI0@public.gmane.org>
` (4 preceding siblings ...)
2014-02-28 20:42 ` [PATCHv3 06/13] iommu/omap: enable bus-error back on supported iommus Suman Anna
@ 2014-02-28 20:42 ` Suman Anna
2014-02-28 20:42 ` [PATCHv3 08/13] ARM: OMAP3: remove deprecated CONFIG_OMAP_IOMMU_IVA2 Suman Anna
` (4 subsequent siblings)
10 siblings, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-02-28 20:42 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Laurent Pinchart, Florian Vaussard,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
From: Laurent Pinchart <laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>
The OMAP IOMMU driver locates the IOMMU associated to a device using the
IOMMU name stored in the device archdata iommu field. That field is
expected to be populated by platform code and is left unset for DT-based
devices. This results in a crash when the IOMMU driver attaches a domain
to a device.
Fix this by allocating the archdata iommu structure when devices are
added and freeing when they are removed. Devices without an OF node, and
devices without an iommus property in their OF node are ignored. The
iommu name is initialized from the IOMMU device node name.
This should be simplified when removing non-DT support completely from
the IOMMU users as the IOMMU name won't be needed anymore, and the
IOMMU device pointer could then be stored in the archdata iommu field
directly.
Signed-off-by: Laurent Pinchart <laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>
[s-anna-l0cyMroinI0@public.gmane.org: updated to use device name instead of OF name]
Signed-off-by: Suman Anna <s-anna-l0cyMroinI0@public.gmane.org>
---
drivers/iommu/omap-iommu.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
index 28bc631..8acea87 100644
--- a/drivers/iommu/omap-iommu.c
+++ b/drivers/iommu/omap-iommu.c
@@ -1253,6 +1253,49 @@ static int omap_iommu_domain_has_cap(struct iommu_domain *domain,
return 0;
}
+static int omap_iommu_add_device(struct device *dev)
+{
+ struct omap_iommu_arch_data *arch_data;
+ struct device_node *np;
+
+ /*
+ * Allocate the archdata iommu structure for DT-based devices.
+ *
+ * TODO: Simplify this when removing non-DT support completely from the
+ * IOMMU users.
+ */
+ if (!dev->of_node)
+ return 0;
+
+ np = of_parse_phandle(dev->of_node, "iommus", 0);
+ if (!np)
+ return 0;
+
+ arch_data = kzalloc(sizeof(*arch_data), GFP_KERNEL);
+ if (!arch_data) {
+ of_node_put(np);
+ return -ENOMEM;
+ }
+
+ arch_data->name = kstrdup(dev_name(dev), GFP_KERNEL);
+ dev->archdata.iommu = arch_data;
+
+ of_node_put(np);
+
+ return 0;
+}
+
+static void omap_iommu_remove_device(struct device *dev)
+{
+ struct omap_iommu_arch_data *arch_data = dev->archdata.iommu;
+
+ if (!dev->of_node || !arch_data)
+ return;
+
+ kfree(arch_data->name);
+ kfree(arch_data);
+}
+
static struct iommu_ops omap_iommu_ops = {
.domain_init = omap_iommu_domain_init,
.domain_destroy = omap_iommu_domain_destroy,
@@ -1262,6 +1305,8 @@ static struct iommu_ops omap_iommu_ops = {
.unmap = omap_iommu_unmap,
.iova_to_phys = omap_iommu_iova_to_phys,
.domain_has_cap = omap_iommu_domain_has_cap,
+ .add_device = omap_iommu_add_device,
+ .remove_device = omap_iommu_remove_device,
.pgsize_bitmap = OMAP_IOMMU_PGSIZES,
};
--
1.9.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv3 08/13] ARM: OMAP3: remove deprecated CONFIG_OMAP_IOMMU_IVA2
[not found] ` <1393620164-14633-1-git-send-email-s-anna-l0cyMroinI0@public.gmane.org>
` (5 preceding siblings ...)
2014-02-28 20:42 ` [PATCHv3 07/13] iommu/omap: allocate archdata on the fly for DT-based devices Suman Anna
@ 2014-02-28 20:42 ` Suman Anna
2014-02-28 20:42 ` [PATCHv3 10/13] ARM: OMAP2+: change the ISP device archdata MMU name for DT Suman Anna
` (3 subsequent siblings)
10 siblings, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-02-28 20:42 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Paul Walmsley,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Laurent Pinchart, Florian Vaussard,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
From: Florian Vaussard <florian.vaussard-p8DiymsW2f8@public.gmane.org>
CONFIG_OMAP_IOMMU_IVA2 was defined originally to avoid conflicting
usage by tidspbridge and other iommu users. The same can be achieved
by marking the DT node disabled, so remove this obsolete flag and
the corresponding hwmod data can be enabled.
Cc: Paul Walmsley <paul-DWxLp4Yu+b8AvxtiuMwx3w@public.gmane.org>
Signed-off-by: Florian Vaussard <florian.vaussard-p8DiymsW2f8@public.gmane.org>
[s-anna-l0cyMroinI0@public.gmane.org: revise commit log]
Signed-off-by: Suman Anna <s-anna-l0cyMroinI0@public.gmane.org>
Acked-by: Laurent Pinchart <laurent.pinchart-ryLnwIuWjnjg/C1BVhZhaw@public.gmane.org>
Acked-by: Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
Acked-by: Paul Walmsley <paul-DWxLp4Yu+b8AvxtiuMwx3w@public.gmane.org>
---
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 8 --------
arch/arm/plat-omap/Kconfig | 3 ---
2 files changed, 11 deletions(-)
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index 4c3b1e6..81dd071 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -3029,8 +3029,6 @@ static struct omap_hwmod omap3xxx_mmu_isp_hwmod = {
.flags = HWMOD_NO_IDLEST,
};
-#ifdef CONFIG_OMAP_IOMMU_IVA2
-
/* mmu iva */
static struct omap_mmu_dev_attr mmu_iva_dev_attr = {
@@ -3082,8 +3080,6 @@ static struct omap_hwmod omap3xxx_mmu_iva_hwmod = {
.flags = HWMOD_NO_IDLEST,
};
-#endif
-
/* l4_per -> gpio4 */
static struct omap_hwmod_addr_space omap3xxx_gpio4_addrs[] = {
{
@@ -3855,9 +3851,7 @@ static struct omap_hwmod_ocp_if *omap34xx_hwmod_ocp_ifs[] __initdata = {
&omap3xxx_l4_core__hdq1w,
&omap3xxx_sad2d__l3,
&omap3xxx_l4_core__mmu_isp,
-#ifdef CONFIG_OMAP_IOMMU_IVA2
&omap3xxx_l3_main__mmu_iva,
-#endif
&omap34xx_l4_core__ssi,
NULL
};
@@ -3881,9 +3875,7 @@ static struct omap_hwmod_ocp_if *omap36xx_hwmod_ocp_ifs[] __initdata = {
&omap3xxx_l4_core__hdq1w,
&omap3xxx_sad2d__l3,
&omap3xxx_l4_core__mmu_isp,
-#ifdef CONFIG_OMAP_IOMMU_IVA2
&omap3xxx_l3_main__mmu_iva,
-#endif
NULL
};
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
index 436ea97..02fc10d 100644
--- a/arch/arm/plat-omap/Kconfig
+++ b/arch/arm/plat-omap/Kconfig
@@ -86,9 +86,6 @@ config OMAP_MUX_WARNINGS
to change the pin multiplexing setup. When there are no warnings
printed, it's safe to deselect OMAP_MUX for your product.
-config OMAP_IOMMU_IVA2
- bool
-
config OMAP_MPU_TIMER
bool "Use mpu timer"
depends on ARCH_OMAP1
--
1.9.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv3 09/13] ARM: OMAP3: fix iva mmu programming issues
2014-02-28 20:42 [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15 Suman Anna
2014-02-28 20:42 ` [PATCHv3 05/13] iommu/omap: add devicetree support Suman Anna
[not found] ` <1393620164-14633-1-git-send-email-s-anna-l0cyMroinI0@public.gmane.org>
@ 2014-02-28 20:42 ` Suman Anna
2014-02-28 20:42 ` [PATCHv3 11/13] ARM: OMAP2+: use pdata quirks for iommu reset lines Suman Anna
3 siblings, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-02-28 20:42 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: Florian Vaussard, Laurent Pinchart, iommu, devicetree, linux-omap,
linux-arm-kernel, Suman Anna
The IVA MMU is not functional when used through the hwmod and
omap_device layers. Add fixes to clockdomain and hwmod data
to have it functional. The hwmod changes are needed to enable
the clock, and the SWSUP change is needed to wakeup the domain
because the power domain is programmed to be in RET, and there
is no automatic power domain switching to ON.
Signed-off-by: Suman Anna <s-anna@ti.com>
---
arch/arm/mach-omap2/clockdomains3xxx_data.c | 2 +-
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/arch/arm/mach-omap2/clockdomains3xxx_data.c b/arch/arm/mach-omap2/clockdomains3xxx_data.c
index e6b91e5..f03dc97 100644
--- a/arch/arm/mach-omap2/clockdomains3xxx_data.c
+++ b/arch/arm/mach-omap2/clockdomains3xxx_data.c
@@ -247,7 +247,7 @@ static struct clockdomain neon_clkdm = {
static struct clockdomain iva2_clkdm = {
.name = "iva2_clkdm",
.pwrdm = { .name = "iva2_pwrdm" },
- .flags = CLKDM_CAN_HWSUP_SWSUP,
+ .flags = CLKDM_CAN_SWSUP,
.dep_bit = OMAP3430_PM_WKDEP_MPU_EN_IVA2_SHIFT,
.wkdep_srcs = iva2_wkdeps,
.clktrctrl_mask = OMAP3430_CLKTRCTRL_IVA2_MASK,
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index 81dd071..9c7e23a 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -3068,12 +3068,16 @@ static struct omap_hwmod omap3xxx_mmu_iva_hwmod = {
.name = "mmu_iva",
.class = &omap3xxx_mmu_hwmod_class,
.mpu_irqs = omap3xxx_mmu_iva_irqs,
+ .clkdm_name = "iva2_clkdm",
.rst_lines = omap3xxx_mmu_iva_resets,
.rst_lines_cnt = ARRAY_SIZE(omap3xxx_mmu_iva_resets),
.main_clk = "iva2_ck",
.prcm = {
.omap2 = {
.module_offs = OMAP3430_IVA2_MOD,
+ .module_bit = OMAP3430_CM_FCLKEN_IVA2_EN_IVA2_SHIFT,
+ .idlest_reg_id = 1,
+ .idlest_idle_bit = OMAP3430_ST_IVA2_SHIFT,
},
},
.dev_attr = &mmu_iva_dev_attr,
--
1.9.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv3 10/13] ARM: OMAP2+: change the ISP device archdata MMU name for DT
[not found] ` <1393620164-14633-1-git-send-email-s-anna-l0cyMroinI0@public.gmane.org>
` (6 preceding siblings ...)
2014-02-28 20:42 ` [PATCHv3 08/13] ARM: OMAP3: remove deprecated CONFIG_OMAP_IOMMU_IVA2 Suman Anna
@ 2014-02-28 20:42 ` Suman Anna
2014-02-28 20:42 ` [PATCHv3 12/13] ARM: OMAP5: hwmod data: add mmu data for ipu & dsp Suman Anna
` (2 subsequent siblings)
10 siblings, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-02-28 20:42 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Laurent Pinchart, Florian Vaussard,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
The IOMMU DT adaptation support uses the device name instead
of an iommu object name. Fixup the ISP device archdata MMU
name at runtime if using DT-boot. This allows the OMAP3 camera
to be functional in both legacy and DT boots. The iommu object
names should eventually vanish when all the IOMMU users have
been converted to DT nodes.
Signed-off-by: Suman Anna <s-anna-l0cyMroinI0@public.gmane.org>
---
arch/arm/mach-omap2/devices.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
index 0dd6398..e58609b 100644
--- a/arch/arm/mach-omap2/devices.c
+++ b/arch/arm/mach-omap2/devices.c
@@ -229,6 +229,9 @@ static struct omap_iommu_arch_data omap3_isp_iommu = {
int omap3_init_camera(struct isp_platform_data *pdata)
{
+ if (of_have_populated_dt())
+ omap3_isp_iommu.name = "480bd400.mmu";
+
omap3isp_device.dev.platform_data = pdata;
omap3isp_device.dev.archdata.iommu = &omap3_isp_iommu;
--
1.9.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv3 11/13] ARM: OMAP2+: use pdata quirks for iommu reset lines
2014-02-28 20:42 [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15 Suman Anna
` (2 preceding siblings ...)
2014-02-28 20:42 ` [PATCHv3 09/13] ARM: OMAP3: fix iva mmu programming issues Suman Anna
@ 2014-02-28 20:42 ` Suman Anna
3 siblings, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-02-28 20:42 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: Florian Vaussard, Laurent Pinchart, iommu, devicetree, linux-omap,
linux-arm-kernel, Suman Anna
The OMAP iommu driver performs the reset management for the
iommu instances in processor sub-systems using the omap_device
API which are currently supplied as platform data ops. Use pdata
quirks to maintain the functionality as the OMAP iommu driver
gets converted to use DT nodes, until the reset portions are
decoupled from omap_hwmod/omap_device into a separate reset
driver.
This patch adds the pdata quirks for the reset management of
iommus within the DSP (OMAP3 & OMAP4) and IPU subsystems (OMAP4).
Signed-off-by: Suman Anna <s-anna@ti.com>
---
arch/arm/mach-omap2/pdata-quirks.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index 3d5b24d..74e094a 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -16,12 +16,14 @@
#include <linux/wl12xx.h>
#include <linux/platform_data/pinctrl-single.h>
+#include <linux/platform_data/iommu-omap.h>
#include "am35xx.h"
#include "common.h"
#include "common-board-devices.h"
#include "dss-common.h"
#include "control.h"
+#include "omap_device.h"
struct pdata_init {
const char *compatible;
@@ -92,6 +94,12 @@ static void __init hsmmc2_internal_input_clk(void)
omap_ctrl_writel(reg, OMAP343X_CONTROL_DEVCONF1);
}
+static struct iommu_platform_data omap3_iommu_pdata = {
+ .reset_name = "mmu",
+ .assert_reset = omap_device_assert_hardreset,
+ .deassert_reset = omap_device_deassert_hardreset,
+};
+
static int omap3_sbc_t3730_twl_callback(struct device *dev,
unsigned gpio,
unsigned ngpio)
@@ -185,6 +193,12 @@ static void __init omap4_panda_legacy_init(void)
legacy_init_ehci_clk("auxclk3_ck");
legacy_init_wl12xx(WL12XX_REFCLOCK_38, 0, 53);
}
+
+static struct iommu_platform_data omap4_iommu_pdata = {
+ .reset_name = "mmu_cache",
+ .assert_reset = omap_device_assert_hardreset,
+ .deassert_reset = omap_device_deassert_hardreset,
+};
#endif
#ifdef CONFIG_SOC_OMAP5
@@ -240,6 +254,8 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
#ifdef CONFIG_ARCH_OMAP3
OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002030, "48002030.pinmux", &pcs_pdata),
OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002a00, "48002a00.pinmux", &pcs_pdata),
+ OF_DEV_AUXDATA("ti,omap2-iommu", 0x5d000000, "5d000000.mmu",
+ &omap3_iommu_pdata),
/* Only on am3517 */
OF_DEV_AUXDATA("ti,davinci_mdio", 0x5c030000, "davinci_mdio.0", NULL),
OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0",
@@ -248,6 +264,10 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
#ifdef CONFIG_ARCH_OMAP4
OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a100040, "4a100040.pinmux", &pcs_pdata),
OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a31e040, "4a31e040.pinmux", &pcs_pdata),
+ OF_DEV_AUXDATA("ti,omap4-iommu", 0x4a066000, "4a066000.mmu",
+ &omap4_iommu_pdata),
+ OF_DEV_AUXDATA("ti,omap4-iommu", 0x55082000, "55082000.mmu",
+ &omap4_iommu_pdata),
#endif
{ /* sentinel */ },
};
--
1.9.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv3 12/13] ARM: OMAP5: hwmod data: add mmu data for ipu & dsp
[not found] ` <1393620164-14633-1-git-send-email-s-anna-l0cyMroinI0@public.gmane.org>
` (7 preceding siblings ...)
2014-02-28 20:42 ` [PATCHv3 10/13] ARM: OMAP2+: change the ISP device archdata MMU name for DT Suman Anna
@ 2014-02-28 20:42 ` Suman Anna
2014-02-28 20:42 ` [PATCHv3 13/13] ARM: OMAP2+: extend iommu pdata-quirks to OMAP5 Suman Anna
2014-02-28 23:00 ` [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15 Tony Lindgren
10 siblings, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-02-28 20:42 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Laurent Pinchart, Florian Vaussard,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
A new MMU hwmod class and data structures are created
to represent the MMUs within the IPU and DSP processor
subsystems in OMAP5. The MMUs in OMAP5 are identical to
those in OMAP4.
Signed-off-by: Suman Anna <s-anna-l0cyMroinI0@public.gmane.org>
---
arch/arm/mach-omap2/omap_hwmod_54xx_data.c | 83 ++++++++++++++++++++++++++++++
1 file changed, 83 insertions(+)
diff --git a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
index e297d62..8923172 100644
--- a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
@@ -1122,6 +1122,71 @@ static struct omap_hwmod omap54xx_mmc5_hwmod = {
};
/*
+ * 'mmu' class
+ * The memory management unit performs virtual to physical address translation
+ * for its requestors.
+ */
+
+static struct omap_hwmod_class_sysconfig omap54xx_mmu_sysc = {
+ .rev_offs = 0x0000,
+ .sysc_offs = 0x0010,
+ .syss_offs = 0x0014,
+ .sysc_flags = (SYSC_HAS_AUTOIDLE | SYSC_HAS_CLOCKACTIVITY |
+ SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET |
+ SYSS_HAS_RESET_STATUS),
+ .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
+ .sysc_fields = &omap_hwmod_sysc_type1,
+};
+
+static struct omap_hwmod_class omap54xx_mmu_hwmod_class = {
+ .name = "mmu",
+ .sysc = &omap54xx_mmu_sysc,
+};
+
+static struct omap_hwmod_rst_info omap54xx_mmu_dsp_resets[] = {
+ { .name = "mmu_cache", .rst_shift = 1 },
+};
+
+static struct omap_hwmod omap54xx_mmu_dsp_hwmod = {
+ .name = "mmu_dsp",
+ .class = &omap54xx_mmu_hwmod_class,
+ .clkdm_name = "dsp_clkdm",
+ .rst_lines = omap54xx_mmu_dsp_resets,
+ .rst_lines_cnt = ARRAY_SIZE(omap54xx_mmu_dsp_resets),
+ .main_clk = "dpll_iva_h11x2_ck",
+ .prcm = {
+ .omap4 = {
+ .clkctrl_offs = OMAP54XX_CM_DSP_DSP_CLKCTRL_OFFSET,
+ .rstctrl_offs = OMAP54XX_RM_DSP_RSTCTRL_OFFSET,
+ .context_offs = OMAP54XX_RM_DSP_DSP_CONTEXT_OFFSET,
+ .modulemode = MODULEMODE_HWCTRL,
+ },
+ },
+};
+
+/* mmu ipu */
+static struct omap_hwmod_rst_info omap54xx_mmu_ipu_resets[] = {
+ { .name = "mmu_cache", .rst_shift = 2 },
+};
+
+static struct omap_hwmod omap54xx_mmu_ipu_hwmod = {
+ .name = "mmu_ipu",
+ .class = &omap54xx_mmu_hwmod_class,
+ .clkdm_name = "ipu_clkdm",
+ .rst_lines = omap54xx_mmu_ipu_resets,
+ .rst_lines_cnt = ARRAY_SIZE(omap54xx_mmu_ipu_resets),
+ .main_clk = "dpll_core_h22x2_ck",
+ .prcm = {
+ .omap4 = {
+ .clkctrl_offs = OMAP54XX_CM_IPU_IPU_CLKCTRL_OFFSET,
+ .rstctrl_offs = OMAP54XX_RM_IPU_RSTCTRL_OFFSET,
+ .context_offs = OMAP54XX_RM_IPU_IPU_CONTEXT_OFFSET,
+ .modulemode = MODULEMODE_HWCTRL,
+ },
+ },
+};
+
+/*
* 'mpu' class
* mpu sub-system
*/
@@ -1763,6 +1828,14 @@ static struct omap_hwmod_ocp_if omap54xx_l4_cfg__l3_main_1 = {
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
+/* l4_cfg -> mmu_dsp */
+static struct omap_hwmod_ocp_if omap54xx_l4_cfg__mmu_dsp = {
+ .master = &omap54xx_l4_cfg_hwmod,
+ .slave = &omap54xx_mmu_dsp_hwmod,
+ .clk = "l4_root_clk_div",
+ .user = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
/* mpu -> l3_main_1 */
static struct omap_hwmod_ocp_if omap54xx_mpu__l3_main_1 = {
.master = &omap54xx_mpu_hwmod,
@@ -1787,6 +1860,14 @@ static struct omap_hwmod_ocp_if omap54xx_l4_cfg__l3_main_2 = {
.user = OCP_USER_MPU | OCP_USER_SDMA,
};
+/* l3_main_2 -> mmu_ipu */
+static struct omap_hwmod_ocp_if omap54xx_l3_main_2__mmu_ipu = {
+ .master = &omap54xx_l3_main_2_hwmod,
+ .slave = &omap54xx_mmu_ipu_hwmod,
+ .clk = "l3_iclk_div",
+ .user = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
/* l3_main_1 -> l3_main_3 */
static struct omap_hwmod_ocp_if omap54xx_l3_main_1__l3_main_3 = {
.master = &omap54xx_l3_main_1_hwmod,
@@ -2345,6 +2426,7 @@ static struct omap_hwmod_ocp_if *omap54xx_hwmod_ocp_ifs[] __initdata = {
&omap54xx_l4_wkup__counter_32k,
&omap54xx_l4_cfg__dma_system,
&omap54xx_l4_abe__dmic,
+ &omap54xx_l4_cfg__mmu_dsp,
&omap54xx_mpu__emif1,
&omap54xx_mpu__emif2,
&omap54xx_l4_wkup__gpio1,
@@ -2360,6 +2442,7 @@ static struct omap_hwmod_ocp_if *omap54xx_hwmod_ocp_ifs[] __initdata = {
&omap54xx_l4_per__i2c3,
&omap54xx_l4_per__i2c4,
&omap54xx_l4_per__i2c5,
+ &omap54xx_l3_main_2__mmu_ipu,
&omap54xx_l4_wkup__kbd,
&omap54xx_l4_cfg__mailbox,
&omap54xx_l4_abe__mcbsp1,
--
1.9.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCHv3 13/13] ARM: OMAP2+: extend iommu pdata-quirks to OMAP5
[not found] ` <1393620164-14633-1-git-send-email-s-anna-l0cyMroinI0@public.gmane.org>
` (8 preceding siblings ...)
2014-02-28 20:42 ` [PATCHv3 12/13] ARM: OMAP5: hwmod data: add mmu data for ipu & dsp Suman Anna
@ 2014-02-28 20:42 ` Suman Anna
2014-02-28 23:00 ` [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15 Tony Lindgren
10 siblings, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-02-28 20:42 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Laurent Pinchart, Florian Vaussard,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
OMAP5 has the same iommus as OMAP4, so extend the OMAP4
iommu pdata quirks for OMAP5 as well.
Signed-off-by: Suman Anna <s-anna-l0cyMroinI0@public.gmane.org>
---
arch/arm/mach-omap2/pdata-quirks.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/arch/arm/mach-omap2/pdata-quirks.c b/arch/arm/mach-omap2/pdata-quirks.c
index 74e094a..551877f 100644
--- a/arch/arm/mach-omap2/pdata-quirks.c
+++ b/arch/arm/mach-omap2/pdata-quirks.c
@@ -193,7 +193,9 @@ static void __init omap4_panda_legacy_init(void)
legacy_init_ehci_clk("auxclk3_ck");
legacy_init_wl12xx(WL12XX_REFCLOCK_38, 0, 53);
}
+#endif
+#if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
static struct iommu_platform_data omap4_iommu_pdata = {
.reset_name = "mmu_cache",
.assert_reset = omap_device_assert_hardreset,
@@ -264,6 +266,8 @@ struct of_dev_auxdata omap_auxdata_lookup[] __initdata = {
#ifdef CONFIG_ARCH_OMAP4
OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a100040, "4a100040.pinmux", &pcs_pdata),
OF_DEV_AUXDATA("ti,omap4-padconf", 0x4a31e040, "4a31e040.pinmux", &pcs_pdata),
+#endif
+#if defined(CONFIG_ARCH_OMAP4) || defined(CONFIG_SOC_OMAP5)
OF_DEV_AUXDATA("ti,omap4-iommu", 0x4a066000, "4a066000.mmu",
&omap4_iommu_pdata),
OF_DEV_AUXDATA("ti,omap4-iommu", 0x55082000, "55082000.mmu",
--
1.9.0
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15
[not found] ` <1393620164-14633-1-git-send-email-s-anna-l0cyMroinI0@public.gmane.org>
` (9 preceding siblings ...)
2014-02-28 20:42 ` [PATCHv3 13/13] ARM: OMAP2+: extend iommu pdata-quirks to OMAP5 Suman Anna
@ 2014-02-28 23:00 ` Tony Lindgren
2014-03-03 5:35 ` Suman Anna
[not found] ` <20140228230000.GW13624-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
10 siblings, 2 replies; 21+ messages in thread
From: Tony Lindgren @ 2014-02-28 23:00 UTC (permalink / raw)
To: Suman Anna
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
devicetree-u79uwXL29TY76Z2rM5mHXA,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Laurent Pinchart, linux-omap-u79uwXL29TY76Z2rM5mHXA,
Florian Vaussard
* Suman Anna <s-anna-l0cyMroinI0@public.gmane.org> [140228 12:46]:
> Hi Joerg, Tony,
>
> This is an updated series of the OMAP IOMMU DT adaptation intended
> for 3.15 merge window, addressing the comments from the v2 series.
> This series is rebased onto 3.14-rc4, and the only change to bindings
> is to drop the dma-window property.
>
> The first 7 patches in the series are in drivers/iommu, with the first
> 3 patches performing some cleanup. The DT bindings and adaptation are
> done in patches 4 and 5.
>
> Tony,
> Patches 8 through 13 are in arch/arm/mach-omap2 layer, so I am guessing
> these would have to go through your tree. Of these, patches 8 and 9 are
> cleanup fixes to get OMAP3 IVA MMU working, patches 10 & 11 are fixes
> required with DT-boot for OMAP3/4, patches 12 & 13 add the OMAP5 support.
Are patches 8 to 13 OK to apply separately from the iommu patches or
do they need to wait for the iommu patches to get merged first?
Regards,
Tony
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15
2014-02-28 23:00 ` [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15 Tony Lindgren
@ 2014-03-03 5:35 ` Suman Anna
[not found] ` <20140228230000.GW13624-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
1 sibling, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-03-03 5:35 UTC (permalink / raw)
To: Tony Lindgren
Cc: Joerg Roedel, Florian Vaussard, Laurent Pinchart, iommu,
devicetree, linux-omap, linux-arm-kernel
Tony,
On 02/28/2014 05:00 PM, Tony Lindgren wrote:
> * Suman Anna <s-anna@ti.com> [140228 12:46]:
>> Hi Joerg, Tony,
>>
>> This is an updated series of the OMAP IOMMU DT adaptation intended
>> for 3.15 merge window, addressing the comments from the v2 series.
>> This series is rebased onto 3.14-rc4, and the only change to bindings
>> is to drop the dma-window property.
>>
>> The first 7 patches in the series are in drivers/iommu, with the first
>> 3 patches performing some cleanup. The DT bindings and adaptation are
>> done in patches 4 and 5.
>>
>> Tony,
>> Patches 8 through 13 are in arch/arm/mach-omap2 layer, so I am guessing
>> these would have to go through your tree. Of these, patches 8 and 9 are
>> cleanup fixes to get OMAP3 IVA MMU working, patches 10 & 11 are fixes
>> required with DT-boot for OMAP3/4, patches 12 & 13 add the OMAP5 support.
>
> Are patches 8 to 13 OK to apply separately from the iommu patches or
> do they need to wait for the iommu patches to get merged first?
>
Yeah, they don't have any direct dependencies. Patches 8, 9 and 12 are
totally independent. Patches 10, 11 and 13 add the needed platform data
or archdata to get the corresponding DT iommu devices functional by any
users (OMAP3 ISP is the only user in kernel). The only remote dependency
is the compatible string names used in the pdata-quirks.
regards
Suman
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15
[not found] ` <20140228230000.GW13624-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
@ 2014-03-04 16:04 ` Joerg Roedel
2014-03-04 16:52 ` Suman Anna
[not found] ` <20140304160432.GG2799-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
0 siblings, 2 replies; 21+ messages in thread
From: Joerg Roedel @ 2014-03-04 16:04 UTC (permalink / raw)
To: Tony Lindgren
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
devicetree-u79uwXL29TY76Z2rM5mHXA,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Laurent Pinchart, Florian Vaussard
On Fri, Feb 28, 2014 at 03:00:00PM -0800, Tony Lindgren wrote:
> * Suman Anna <s-anna-l0cyMroinI0@public.gmane.org> [140228 12:46]:
> > Hi Joerg, Tony,
> >
> > This is an updated series of the OMAP IOMMU DT adaptation intended
> > for 3.15 merge window, addressing the comments from the v2 series.
> > This series is rebased onto 3.14-rc4, and the only change to bindings
> > is to drop the dma-window property.
> >
> > The first 7 patches in the series are in drivers/iommu, with the first
> > 3 patches performing some cleanup. The DT bindings and adaptation are
> > done in patches 4 and 5.
> >
> > Tony,
> > Patches 8 through 13 are in arch/arm/mach-omap2 layer, so I am guessing
> > these would have to go through your tree. Of these, patches 8 and 9 are
> > cleanup fixes to get OMAP3 IVA MMU working, patches 10 & 11 are fixes
> > required with DT-boot for OMAP3/4, patches 12 & 13 add the OMAP5 support.
>
> Are patches 8 to 13 OK to apply separately from the iommu patches or
> do they need to wait for the iommu patches to get merged first?
Applied patches 1-7 to my arm/omap branch.
Tony, you can pull that branch into your tree if needed (when I pushed
it, which will happen today or tomorrow).
Joerg
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15
2014-03-04 16:04 ` Joerg Roedel
@ 2014-03-04 16:52 ` Suman Anna
[not found] ` <20140304160432.GG2799-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
1 sibling, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-03-04 16:52 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: devicetree, iommu, Laurent Pinchart, Florian Vaussard, linux-omap,
linux-arm-kernel
On 03/04/2014 10:04 AM, Joerg Roedel wrote:
> On Fri, Feb 28, 2014 at 03:00:00PM -0800, Tony Lindgren wrote:
>> * Suman Anna <s-anna@ti.com> [140228 12:46]:
>>> Hi Joerg, Tony,
>>>
>>> This is an updated series of the OMAP IOMMU DT adaptation intended
>>> for 3.15 merge window, addressing the comments from the v2 series.
>>> This series is rebased onto 3.14-rc4, and the only change to bindings
>>> is to drop the dma-window property.
>>>
>>> The first 7 patches in the series are in drivers/iommu, with the first
>>> 3 patches performing some cleanup. The DT bindings and adaptation are
>>> done in patches 4 and 5.
>>>
>>> Tony,
>>> Patches 8 through 13 are in arch/arm/mach-omap2 layer, so I am guessing
>>> these would have to go through your tree. Of these, patches 8 and 9 are
>>> cleanup fixes to get OMAP3 IVA MMU working, patches 10 & 11 are fixes
>>> required with DT-boot for OMAP3/4, patches 12 & 13 add the OMAP5 support.
>>
>> Are patches 8 to 13 OK to apply separately from the iommu patches or
>> do they need to wait for the iommu patches to get merged first?
>
> Applied patches 1-7 to my arm/omap branch.
Thanks, Joerg.
regards
Suman
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15
[not found] ` <20140304160432.GG2799-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
@ 2014-03-04 16:59 ` Suman Anna
[not found] ` <5316068F.3020003-l0cyMroinI0@public.gmane.org>
0 siblings, 1 reply; 21+ messages in thread
From: Suman Anna @ 2014-03-04 16:59 UTC (permalink / raw)
To: Joerg Roedel, Tony Lindgren
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Laurent Pinchart, Florian Vaussard,
linux-omap-u79uwXL29TY76Z2rM5mHXA,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r
On 03/04/2014 10:04 AM, Joerg Roedel wrote:
> On Fri, Feb 28, 2014 at 03:00:00PM -0800, Tony Lindgren wrote:
>> * Suman Anna <s-anna-l0cyMroinI0@public.gmane.org> [140228 12:46]:
>>> Hi Joerg, Tony,
>>>
>>> This is an updated series of the OMAP IOMMU DT adaptation intended
>>> for 3.15 merge window, addressing the comments from the v2 series.
>>> This series is rebased onto 3.14-rc4, and the only change to bindings
>>> is to drop the dma-window property.
>>>
>>> The first 7 patches in the series are in drivers/iommu, with the first
>>> 3 patches performing some cleanup. The DT bindings and adaptation are
>>> done in patches 4 and 5.
>>>
>>> Tony,
>>> Patches 8 through 13 are in arch/arm/mach-omap2 layer, so I am guessing
>>> these would have to go through your tree. Of these, patches 8 and 9 are
>>> cleanup fixes to get OMAP3 IVA MMU working, patches 10 & 11 are fixes
>>> required with DT-boot for OMAP3/4, patches 12 & 13 add the OMAP5 support.
>>
>> Are patches 8 to 13 OK to apply separately from the iommu patches or
>> do they need to wait for the iommu patches to get merged first?
>
> Applied patches 1-7 to my arm/omap branch.
>
> Tony, you can pull that branch into your tree if needed (when I pushed
> it, which will happen today or tomorrow).
>
Tony,
Can you also pull in the corresponding DTS node patches as well that go
along with this series.
http://marc.info/?l=linux-omap&m=139362062805816&w=2
regards
Suman
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15
[not found] ` <5316068F.3020003-l0cyMroinI0@public.gmane.org>
@ 2014-03-05 19:33 ` Tony Lindgren
2014-03-05 20:07 ` Suman Anna
0 siblings, 1 reply; 21+ messages in thread
From: Tony Lindgren @ 2014-03-05 19:33 UTC (permalink / raw)
To: Suman Anna
Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
devicetree-u79uwXL29TY76Z2rM5mHXA,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
Laurent Pinchart, linux-omap-u79uwXL29TY76Z2rM5mHXA,
Florian Vaussard
* Suman Anna <s-anna-l0cyMroinI0@public.gmane.org> [140304 09:03]:
> On 03/04/2014 10:04 AM, Joerg Roedel wrote:
> >
> >Applied patches 1-7 to my arm/omap branch.
> >
> >Tony, you can pull that branch into your tree if needed (when I pushed
> >it, which will happen today or tomorrow).
OK thanks, looks like remaining patches compile just fine even without
it which is nice.
> Tony,
> Can you also pull in the corresponding DTS node patches as well that
> go along with this series.
> http://marc.info/?l=linux-omap&m=139362062805816&w=2
They look OK to me, but looks like Benoit and Paul are not Cc:ed
on the hwmod changes. I suggest you resend just patches 8 - 13 and
the .dts changes as a new series with Benoit and Paul on Cc for
them so they have a chance to review and ack them.
Regards,
Tony
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15
2014-03-05 19:33 ` Tony Lindgren
@ 2014-03-05 20:07 ` Suman Anna
0 siblings, 0 replies; 21+ messages in thread
From: Suman Anna @ 2014-03-05 20:07 UTC (permalink / raw)
To: Tony Lindgren
Cc: Joerg Roedel, Florian Vaussard, Laurent Pinchart, iommu,
devicetree, linux-omap, linux-arm-kernel
Tony,
On 03/05/2014 01:33 PM, Tony Lindgren wrote:
> * Suman Anna <s-anna@ti.com> [140304 09:03]:
>> On 03/04/2014 10:04 AM, Joerg Roedel wrote:
>>>
>>> Applied patches 1-7 to my arm/omap branch.
>>>
>>> Tony, you can pull that branch into your tree if needed (when I pushed
>>> it, which will happen today or tomorrow).
>
> OK thanks, looks like remaining patches compile just fine even without
> it which is nice.
Yes, I did test the boot specifically for this both with and without the
corresponding DTS nodes.
>
>> Tony,
>> Can you also pull in the corresponding DTS node patches as well that
>> go along with this series.
>> http://marc.info/?l=linux-omap&m=139362062805816&w=2
>
> They look OK to me, but looks like Benoit and Paul are not Cc:ed
> on the hwmod changes. I suggest you resend just patches 8 - 13 and
> the .dts changes as a new series with Benoit and Paul on Cc for
> them so they have a chance to review and ack them.
OK, will do.
Thanks
Suman
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2014-03-05 20:07 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-28 20:42 [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15 Suman Anna
2014-02-28 20:42 ` [PATCHv3 05/13] iommu/omap: add devicetree support Suman Anna
[not found] ` <1393620164-14633-1-git-send-email-s-anna-l0cyMroinI0@public.gmane.org>
2014-02-28 20:42 ` [PATCHv3 01/13] iommu/omap: convert to devm_* interfaces Suman Anna
2014-02-28 20:42 ` [PATCHv3 02/13] iommu/omap: fix error return paths in omap_iommu_attach() Suman Anna
2014-02-28 20:42 ` [PATCHv3 03/13] iommu/omap: allow enable/disable even without pdata Suman Anna
2014-02-28 20:42 ` [PATCHv3 04/13] Documentation: dt: add OMAP iommu bindings Suman Anna
2014-02-28 20:42 ` [PATCHv3 06/13] iommu/omap: enable bus-error back on supported iommus Suman Anna
2014-02-28 20:42 ` [PATCHv3 07/13] iommu/omap: allocate archdata on the fly for DT-based devices Suman Anna
2014-02-28 20:42 ` [PATCHv3 08/13] ARM: OMAP3: remove deprecated CONFIG_OMAP_IOMMU_IVA2 Suman Anna
2014-02-28 20:42 ` [PATCHv3 10/13] ARM: OMAP2+: change the ISP device archdata MMU name for DT Suman Anna
2014-02-28 20:42 ` [PATCHv3 12/13] ARM: OMAP5: hwmod data: add mmu data for ipu & dsp Suman Anna
2014-02-28 20:42 ` [PATCHv3 13/13] ARM: OMAP2+: extend iommu pdata-quirks to OMAP5 Suman Anna
2014-02-28 23:00 ` [PATCHv3 00/13] OMAP IOMMU DT adaptation for 3.15 Tony Lindgren
2014-03-03 5:35 ` Suman Anna
[not found] ` <20140228230000.GW13624-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>
2014-03-04 16:04 ` Joerg Roedel
2014-03-04 16:52 ` Suman Anna
[not found] ` <20140304160432.GG2799-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2014-03-04 16:59 ` Suman Anna
[not found] ` <5316068F.3020003-l0cyMroinI0@public.gmane.org>
2014-03-05 19:33 ` Tony Lindgren
2014-03-05 20:07 ` Suman Anna
2014-02-28 20:42 ` [PATCHv3 09/13] ARM: OMAP3: fix iva mmu programming issues Suman Anna
2014-02-28 20:42 ` [PATCHv3 11/13] ARM: OMAP2+: use pdata quirks for iommu reset lines Suman Anna
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).