* [PATCH] iommu: exynos: add support for dt based instantiation for iommu devices
@ 2012-11-05 9:48 Rahul Sharma
[not found] ` <1352108895-21087-1-git-send-email-rahul.sharma-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
0 siblings, 1 reply; 5+ messages in thread
From: Rahul Sharma @ 2012-11-05 9:48 UTC (permalink / raw)
To: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA
Cc: jy0922.shim-Sze3O3UU22JBDgjK7y7TUQ,
prathyush.k-Sze3O3UU22JBDgjK7y7TUQ,
sw0312.kim-Sze3O3UU22JBDgjK7y7TUQ, joshi-Sze3O3UU22JBDgjK7y7TUQ,
inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
rahul.sharma-Sze3O3UU22JBDgjK7y7TUQ,
prashanth.g-Sze3O3UU22JBDgjK7y7TUQ,
s.shirish-Sze3O3UU22JBDgjK7y7TUQ
This patch adds supports DT based intantiation of sysmmu devices.
It also removes dependency on CONFIG_EXYNOS_DEV_SYSMMU which is
primarily meant for nont-dt platforms.
This patch is based on "arm/exynos" branch at
http://git.kernel.org/?p=linux/kernel/git/joro/iommu.git
This patch is having dependency on linux-samsung-soc patchset named
"add dt based support for iommu for hdmi"
Signed-off-by: Rahul Sharma <rahul.sharma-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
---
drivers/iommu/Kconfig | 2 +-
drivers/iommu/exynos-iommu.c | 28 +++++++++++++++++++++++++---
2 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
index 9f69b56..52dc41f 100644
--- a/drivers/iommu/Kconfig
+++ b/drivers/iommu/Kconfig
@@ -168,7 +168,7 @@ config TEGRA_IOMMU_SMMU
config EXYNOS_IOMMU
bool "Exynos IOMMU Support"
- depends on ARCH_EXYNOS && EXYNOS_DEV_SYSMMU
+ depends on ARCH_EXYNOS
select IOMMU_API
help
Support for the IOMMU(System MMU) of Samsung Exynos application
diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
index 7fe44f8..9079f71 100644
--- a/drivers/iommu/exynos-iommu.c
+++ b/drivers/iommu/exynos-iommu.c
@@ -25,6 +25,7 @@
#include <linux/list.h>
#include <linux/memblock.h>
#include <linux/export.h>
+#include <linux/of_platform.h>
#include <asm/cacheflush.h>
#include <asm/pgtable.h>
@@ -576,6 +577,7 @@ static int exynos_sysmmu_probe(struct platform_device *pdev)
int i, ret;
struct device *dev;
struct sysmmu_drvdata *data;
+ struct sysmmu_platform_data *platdata;
dev = &pdev->dev;
@@ -634,9 +636,21 @@ static int exynos_sysmmu_probe(struct platform_device *pdev)
}
}
+ if(dev->of_node) {
+ platdata = devm_kzalloc(dev, sizeof(*platdata), GFP_KERNEL);
+ if (!platdata) {
+ dev_dbg(dev, "memory allocation for pdata failed\n");
+ goto err_irq;
+ }
+
+ platdata->clockname = SYSMMU_CLOCK_NAME;
+ platdata->dbgname = (char *)dev->of_node->name;
+ dev->platform_data = platdata;
+ }
+
if (dev_get_platdata(dev)) {
char *deli, *beg;
- struct sysmmu_platform_data *platdata = dev_get_platdata(dev);
+ platdata = dev_get_platdata(dev);
beg = platdata->clockname;
@@ -670,8 +684,7 @@ static int exynos_sysmmu_probe(struct platform_device *pdev)
__set_fault_handler(data, &default_fault_handler);
- if (dev->parent)
- pm_runtime_enable(dev);
+ pm_runtime_enable(dev);
dev_dbg(dev, "(%s) Initialized\n", data->dbgname);
return 0;
@@ -693,11 +706,20 @@ err_alloc:
return ret;
}
+static struct of_device_id iommu_match_types[] = {
+ {
+ .compatible = "samsung,exynos5-sysmmu",
+ }, {
+ /* end node */
+ }
+};
+
static struct platform_driver exynos_sysmmu_driver = {
.probe = exynos_sysmmu_probe,
.driver = {
.owner = THIS_MODULE,
.name = "exynos-sysmmu",
+ .of_match_table = iommu_match_types,
}
};
--
1.7.0.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH] iommu: exynos: add support for dt based instantiation for iommu devices
[not found] ` <1352108895-21087-1-git-send-email-rahul.sharma-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
@ 2012-11-08 22:36 ` KyongHo Cho
2012-11-17 21:37 ` Joerg Roedel
1 sibling, 0 replies; 5+ messages in thread
From: KyongHo Cho @ 2012-11-08 22:36 UTC (permalink / raw)
To: Rahul Sharma
Cc: jy0922.shim-Sze3O3UU22JBDgjK7y7TUQ,
prathyush.k-Sze3O3UU22JBDgjK7y7TUQ,
sw0312.kim-Sze3O3UU22JBDgjK7y7TUQ, joshi-Sze3O3UU22JBDgjK7y7TUQ,
inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
prashanth.g-Sze3O3UU22JBDgjK7y7TUQ,
s.shirish-Sze3O3UU22JBDgjK7y7TUQ
[-- Attachment #1.1: Type: text/plain, Size: 4156 bytes --]
Hi.
Thank you for your work for exynos-iommu.
Actually I am preparing a design change of exynos-iommu driver including DT
support.
If you are OK, I want to discuss with you about it.
The current exynos-iommu driver needs to be upgraded to make it transparent
to the client drivers.
Thank you.
Cho KyongHo.
On Mon, Nov 5, 2012 at 6:48 PM, Rahul Sharma <rahul.sharma-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
wrote:
> This patch adds supports DT based intantiation of sysmmu devices.
> It also removes dependency on CONFIG_EXYNOS_DEV_SYSMMU which is
> primarily meant for nont-dt platforms.
>
> This patch is based on "arm/exynos" branch at
> http://git.kernel.org/?p=linux/kernel/git/joro/iommu.git
>
> This patch is having dependency on linux-samsung-soc patchset named
> "add dt based support for iommu for hdmi"
>
> Signed-off-by: Rahul Sharma <rahul.sharma-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
> ---
> drivers/iommu/Kconfig | 2 +-
> drivers/iommu/exynos-iommu.c | 28 +++++++++++++++++++++++++---
> 2 files changed, 26 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
> index 9f69b56..52dc41f 100644
> --- a/drivers/iommu/Kconfig
> +++ b/drivers/iommu/Kconfig
> @@ -168,7 +168,7 @@ config TEGRA_IOMMU_SMMU
>
> config EXYNOS_IOMMU
> bool "Exynos IOMMU Support"
> - depends on ARCH_EXYNOS && EXYNOS_DEV_SYSMMU
> + depends on ARCH_EXYNOS
> select IOMMU_API
> help
> Support for the IOMMU(System MMU) of Samsung Exynos application
> diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
> index 7fe44f8..9079f71 100644
> --- a/drivers/iommu/exynos-iommu.c
> +++ b/drivers/iommu/exynos-iommu.c
> @@ -25,6 +25,7 @@
> #include <linux/list.h>
> #include <linux/memblock.h>
> #include <linux/export.h>
> +#include <linux/of_platform.h>
>
> #include <asm/cacheflush.h>
> #include <asm/pgtable.h>
> @@ -576,6 +577,7 @@ static int exynos_sysmmu_probe(struct platform_device
*pdev)
> int i, ret;
> struct device *dev;
> struct sysmmu_drvdata *data;
> + struct sysmmu_platform_data *platdata;
>
> dev = &pdev->dev;
>
> @@ -634,9 +636,21 @@ static int exynos_sysmmu_probe(struct
platform_device *pdev)
> }
> }
>
> + if(dev->of_node) {
> + platdata = devm_kzalloc(dev, sizeof(*platdata),
GFP_KERNEL);
> + if (!platdata) {
> + dev_dbg(dev, "memory allocation for pdata
failed\n");
> + goto err_irq;
> + }
> +
> + platdata->clockname = SYSMMU_CLOCK_NAME;
> + platdata->dbgname = (char *)dev->of_node->name;
> + dev->platform_data = platdata;
> + }
> +
> if (dev_get_platdata(dev)) {
> char *deli, *beg;
> - struct sysmmu_platform_data *platdata =
dev_get_platdata(dev);
> + platdata = dev_get_platdata(dev);
>
> beg = platdata->clockname;
>
> @@ -670,8 +684,7 @@ static int exynos_sysmmu_probe(struct platform_device
*pdev)
>
> __set_fault_handler(data, &default_fault_handler);
>
> - if (dev->parent)
> - pm_runtime_enable(dev);
> + pm_runtime_enable(dev);
>
> dev_dbg(dev, "(%s) Initialized\n", data->dbgname);
> return 0;
> @@ -693,11 +706,20 @@ err_alloc:
> return ret;
> }
>
> +static struct of_device_id iommu_match_types[] = {
> + {
> + .compatible = "samsung,exynos5-sysmmu",
> + }, {
> + /* end node */
> + }
> +};
> +
> static struct platform_driver exynos_sysmmu_driver = {
> .probe = exynos_sysmmu_probe,
> .driver = {
> .owner = THIS_MODULE,
> .name = "exynos-sysmmu",
> + .of_match_table = iommu_match_types,
> }
> };
>
> --
> 1.7.0.4
>
> _______________________________________________
> iommu mailing list
> iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org
> https://lists.linuxfoundation.org/mailman/listinfo/iommu
[-- Attachment #1.2: Type: text/html, Size: 5353 bytes --]
[-- Attachment #2: Type: text/plain, Size: 0 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] iommu: exynos: add support for dt based instantiation for iommu devices
[not found] ` <1352108895-21087-1-git-send-email-rahul.sharma-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2012-11-08 22:36 ` KyongHo Cho
@ 2012-11-17 21:37 ` Joerg Roedel
[not found] ` <20121117213734.GV25742-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
1 sibling, 1 reply; 5+ messages in thread
From: Joerg Roedel @ 2012-11-17 21:37 UTC (permalink / raw)
To: Rahul Sharma
Cc: jy0922.shim-Sze3O3UU22JBDgjK7y7TUQ,
prathyush.k-Sze3O3UU22JBDgjK7y7TUQ,
sw0312.kim-Sze3O3UU22JBDgjK7y7TUQ,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
joshi-Sze3O3UU22JBDgjK7y7TUQ, inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
prashanth.g-Sze3O3UU22JBDgjK7y7TUQ,
s.shirish-Sze3O3UU22JBDgjK7y7TUQ
On Mon, Nov 05, 2012 at 03:18:15PM +0530, Rahul Sharma wrote:
> drivers/iommu/exynos-iommu.c | 28 +++++++++++++++++++++++++---
> 2 files changed, 26 insertions(+), 4 deletions(-)
I added the following build-fix to the arm/exynos branch too:
>From e706d84c9fecd7855191eab2f9e2e0234a0f8e05 Mon Sep 17 00:00:00 2001
From: Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
Date: Sat, 17 Nov 2012 22:29:32 +0100
Subject: [PATCH] iommu/exynos: Fix build error in exynos_sysmmu_probe
Fix the following build error:
CC drivers/iommu/exynos-iommu.o
/data/repos/linux/drivers/iommu/exynos-iommu.c: In function 'exynos_sysmmu_probe':
/data/repos/linux/drivers/iommu/exynos-iommu.c:647:43: error: dereferencing pointer to incomplete type
make[3]: *** [drivers/iommu/exynos-iommu.o] Error 1
Signed-off-by: Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
---
drivers/iommu/exynos-iommu.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
index 9079f71..da1975d 100644
--- a/drivers/iommu/exynos-iommu.c
+++ b/drivers/iommu/exynos-iommu.c
@@ -26,6 +26,7 @@
#include <linux/memblock.h>
#include <linux/export.h>
#include <linux/of_platform.h>
+#include <linux/of.h>
#include <asm/cacheflush.h>
#include <asm/pgtable.h>
--
1.7.9.5
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] iommu: exynos: add support for dt based instantiation for iommu devices
[not found] ` <20121117213734.GV25742-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
@ 2012-11-29 11:13 ` Rahul Sharma
0 siblings, 0 replies; 5+ messages in thread
From: Rahul Sharma @ 2012-11-29 11:13 UTC (permalink / raw)
To: Joerg Roedel
Cc: joshi-Sze3O3UU22JBDgjK7y7TUQ, inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA,
kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
pullip.cho-Sze3O3UU22JBDgjK7y7TUQ, Rahul Sharma
Thanks Mr. Joerg,
I want to request you to abandon the above patches submitted by me.
The exynos-iommu drivers
patches, submitted by Mr. Kyongho Cho, also contains DT changes along
with other things.
It is been already applied to "arm/exynos" branch.
regards,
Rahul Sharma.
On Sun, Nov 18, 2012 at 3:07 AM, Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org> wrote:
> On Mon, Nov 05, 2012 at 03:18:15PM +0530, Rahul Sharma wrote:
>> drivers/iommu/exynos-iommu.c | 28 +++++++++++++++++++++++++---
>> 2 files changed, 26 insertions(+), 4 deletions(-)
>
> I added the following build-fix to the arm/exynos branch too:
>
> From e706d84c9fecd7855191eab2f9e2e0234a0f8e05 Mon Sep 17 00:00:00 2001
> From: Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
> Date: Sat, 17 Nov 2012 22:29:32 +0100
> Subject: [PATCH] iommu/exynos: Fix build error in exynos_sysmmu_probe
>
> Fix the following build error:
>
> CC drivers/iommu/exynos-iommu.o
> /data/repos/linux/drivers/iommu/exynos-iommu.c: In function 'exynos_sysmmu_probe':
> /data/repos/linux/drivers/iommu/exynos-iommu.c:647:43: error: dereferencing pointer to incomplete type
> make[3]: *** [drivers/iommu/exynos-iommu.o] Error 1
>
> Signed-off-by: Joerg Roedel <joro-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
> ---
> drivers/iommu/exynos-iommu.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
> index 9079f71..da1975d 100644
> --- a/drivers/iommu/exynos-iommu.c
> +++ b/drivers/iommu/exynos-iommu.c
> @@ -26,6 +26,7 @@
> #include <linux/memblock.h>
> #include <linux/export.h>
> #include <linux/of_platform.h>
> +#include <linux/of.h>
>
> #include <asm/cacheflush.h>
> #include <asm/pgtable.h>
> --
> 1.7.9.5
>
>
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH] iommu: exynos: add support for dt based instantiation for iommu devices
@ 2012-11-05 15:22 Rahul Sharma
0 siblings, 0 replies; 5+ messages in thread
From: Rahul Sharma @ 2012-11-05 15:22 UTC (permalink / raw)
To: iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA
Cc: jy0922.shim-Sze3O3UU22JBDgjK7y7TUQ,
prathyush.k-Sze3O3UU22JBDgjK7y7TUQ,
sw0312.kim-Sze3O3UU22JBDgjK7y7TUQ, joshi-Sze3O3UU22JBDgjK7y7TUQ,
inki.dae-Sze3O3UU22JBDgjK7y7TUQ,
kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ,
rahul.sharma-Sze3O3UU22JBDgjK7y7TUQ,
prashanth.g-Sze3O3UU22JBDgjK7y7TUQ,
s.shirish-Sze3O3UU22JBDgjK7y7TUQ
This patch adds supports DT based intantiation of sysmmu devices.
It also removes dependency on CONFIG_EXYNOS_DEV_SYSMMU which is
primarily meant for nont-dt platforms.
This patch is based on "arm/exynos" branch at
http://git.kernel.org/?p=linux/kernel/git/joro/iommu.git
This patch is having dependency on linux-samsung-soc patchset posted at
http://permalink.gmane.org/gmane.linux.kernel.samsung-soc/13556
Signed-off-by: Rahul Sharma <rahul.sharma-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
---
drivers/iommu/Kconfig | 2 +-
drivers/iommu/exynos-iommu.c | 28 +++++++++++++++++++++++++---
2 files changed, 26 insertions(+), 4 deletions(-)
diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
index 9f69b56..52dc41f 100644
--- a/drivers/iommu/Kconfig
+++ b/drivers/iommu/Kconfig
@@ -168,7 +168,7 @@ config TEGRA_IOMMU_SMMU
config EXYNOS_IOMMU
bool "Exynos IOMMU Support"
- depends on ARCH_EXYNOS && EXYNOS_DEV_SYSMMU
+ depends on ARCH_EXYNOS
select IOMMU_API
help
Support for the IOMMU(System MMU) of Samsung Exynos application
diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
index 7fe44f8..64a7392 100644
--- a/drivers/iommu/exynos-iommu.c
+++ b/drivers/iommu/exynos-iommu.c
@@ -25,6 +25,7 @@
#include <linux/list.h>
#include <linux/memblock.h>
#include <linux/export.h>
+#include <linux/of_platform.h>
#include <asm/cacheflush.h>
#include <asm/pgtable.h>
@@ -576,6 +577,7 @@ static int exynos_sysmmu_probe(struct platform_device *pdev)
int i, ret;
struct device *dev;
struct sysmmu_drvdata *data;
+ struct sysmmu_platform_data *platdata;
dev = &pdev->dev;
@@ -634,9 +636,21 @@ static int exynos_sysmmu_probe(struct platform_device *pdev)
}
}
+ if (dev->of_node) {
+ platdata = devm_kzalloc(dev, sizeof(*platdata), GFP_KERNEL);
+ if (!platdata) {
+ dev_dbg(dev, "memory allocation for pdata failed\n");
+ goto err_irq;
+ }
+
+ platdata->clockname = SYSMMU_CLOCK_NAME;
+ platdata->dbgname = (char *)dev->of_node->name;
+ dev->platform_data = platdata;
+ }
+
if (dev_get_platdata(dev)) {
char *deli, *beg;
- struct sysmmu_platform_data *platdata = dev_get_platdata(dev);
+ platdata = dev_get_platdata(dev);
beg = platdata->clockname;
@@ -670,8 +684,7 @@ static int exynos_sysmmu_probe(struct platform_device *pdev)
__set_fault_handler(data, &default_fault_handler);
- if (dev->parent)
- pm_runtime_enable(dev);
+ pm_runtime_enable(dev);
dev_dbg(dev, "(%s) Initialized\n", data->dbgname);
return 0;
@@ -693,11 +706,20 @@ err_alloc:
return ret;
}
+static struct of_device_id iommu_match_types[] = {
+ {
+ .compatible = "samsung,exynos5-sysmmu",
+ }, {
+ /* end node */
+ }
+};
+
static struct platform_driver exynos_sysmmu_driver = {
.probe = exynos_sysmmu_probe,
.driver = {
.owner = THIS_MODULE,
.name = "exynos-sysmmu",
+ .of_match_table = iommu_match_types,
}
};
--
1.7.0.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2012-11-29 11:13 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-05 9:48 [PATCH] iommu: exynos: add support for dt based instantiation for iommu devices Rahul Sharma
[not found] ` <1352108895-21087-1-git-send-email-rahul.sharma-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2012-11-08 22:36 ` KyongHo Cho
2012-11-17 21:37 ` Joerg Roedel
[not found] ` <20121117213734.GV25742-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2012-11-29 11:13 ` Rahul Sharma
2012-11-05 15:22 Rahul Sharma
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.