Re: [PATCH] iommu/exynos: Remove driver

2014-03-09 Thread KyongHo Cho
On Thu, Mar 6, 2014 at 8:48 AM, Kyungmin Park kmp...@infradead.org wrote:
 On Fri, Feb 14, 2014 at 9:17 AM, Cho KyongHo pullip@samsung.com wrote:
 -Original Message-
 From: Olof Johansson [mailto:o...@lixom.net]
 Sent: Friday, February 14, 2014 4:34 AM

 On Mon, Feb 10, 2014 at 10:21 PM, Kukjin Kim kgene@gmail.com wrote:

  Just adding KyongHo Cho.
 
  If he can fixup for this time, it would be best solution because he knows
  well than others, I think.

 It's not so much a matter of fixup for this time, it's a about
 having ownership of the driver, making sure it works (and keeps
 working if there is related development). The posted patches have not
 been followed through on and the result is a broken driver. :(

 I definitely appreciate his expertise, and we should make sure that he
 gets to review the code, but if someone else is able to spend time on
 reworking the driver (or rewriting a newer one) and maintaining it
 longer-term, then we should not stop them from doing so. And there is
 no reason to keep broken stale code in the kernel meanwhile.


 Thank you for your concerning.
 I also definitely agree with you that the driver must work.
 I am always concerning about it but it was not easy to make some time
 for the patches.

 I will continue to post the next version of patches, of course.
 I think it is not far from now to show it.

 Lots of time is going from last reply. there are two options.
 1. just waiting more
 2. remove it as patch and start it again by someone.

 what's the opinions?


Please be patient until the patches are OK enough to post.

The patches have lots of improvements and workarounds.

Sorry for delaying the patches.

One thing is certain, starting from scratch is not a good idea.
Why not discuss with me to make exynos-iommu driver better?

Thank you.

KyongHo
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] iommu/exynos: Remove driver

2014-03-09 Thread Tomasz Figa

Hi KyongHo,

On 09.03.2014 14:54, KyongHo Cho wrote:

On Thu, Mar 6, 2014 at 8:48 AM, Kyungmin Park kmp...@infradead.org wrote:

On Fri, Feb 14, 2014 at 9:17 AM, Cho KyongHo pullip@samsung.com wrote:

-Original Message-
From: Olof Johansson [mailto:o...@lixom.net]
Sent: Friday, February 14, 2014 4:34 AM

On Mon, Feb 10, 2014 at 10:21 PM, Kukjin Kim kgene@gmail.com wrote:


Just adding KyongHo Cho.

If he can fixup for this time, it would be best solution because he knows
well than others, I think.


It's not so much a matter of fixup for this time, it's a about
having ownership of the driver, making sure it works (and keeps
working if there is related development). The posted patches have not
been followed through on and the result is a broken driver. :(

I definitely appreciate his expertise, and we should make sure that he
gets to review the code, but if someone else is able to spend time on
reworking the driver (or rewriting a newer one) and maintaining it
longer-term, then we should not stop them from doing so. And there is
no reason to keep broken stale code in the kernel meanwhile.



Thank you for your concerning.
I also definitely agree with you that the driver must work.
I am always concerning about it but it was not easy to make some time
for the patches.

I will continue to post the next version of patches, of course.
I think it is not far from now to show it.


Lots of time is going from last reply. there are two options.
1. just waiting more
2. remove it as patch and start it again by someone.

what's the opinions?



Please be patient until the patches are OK enough to post.

The patches have lots of improvements and workarounds.

Sorry for delaying the patches.

One thing is certain, starting from scratch is not a good idea.
Why not discuss with me to make exynos-iommu driver better?


It is not a matter of starting from scratch or not, but rather of 
getting a reasonable IOMMU driver for Exynos in mainline in reasonable 
period of time. Usually it is much easier to just remove a stale driver 
and quickly refactor all the code at once and then add a new driver, 
than wasting time on submitting heaps of patches for a driver that is 
not used and does not work anyway.


In fact, we already have a working driver, based on heavily refactored 
original one in our internal tree anyway and we are just wasting time on 
waiting for next version of the original refactor series to come, while 
we could simply drop current version from the kernel, squash all of any 
changes to it into a one patch adding the new driver and submit it 
instead. Of course care would be taken to preserve any authorship 
information.


Do you have some time frame in which you may post next version of the 
series (and guaranteed time to work on it)?


Best regards,
Tomasz
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] iommu/exynos: Remove driver

2014-03-05 Thread Kyungmin Park
On Fri, Feb 14, 2014 at 9:17 AM, Cho KyongHo pullip@samsung.com wrote:
 -Original Message-
 From: Olof Johansson [mailto:o...@lixom.net]
 Sent: Friday, February 14, 2014 4:34 AM

 On Mon, Feb 10, 2014 at 10:21 PM, Kukjin Kim kgene@gmail.com wrote:

  Just adding KyongHo Cho.
 
  If he can fixup for this time, it would be best solution because he knows
  well than others, I think.

 It's not so much a matter of fixup for this time, it's a about
 having ownership of the driver, making sure it works (and keeps
 working if there is related development). The posted patches have not
 been followed through on and the result is a broken driver. :(

 I definitely appreciate his expertise, and we should make sure that he
 gets to review the code, but if someone else is able to spend time on
 reworking the driver (or rewriting a newer one) and maintaining it
 longer-term, then we should not stop them from doing so. And there is
 no reason to keep broken stale code in the kernel meanwhile.


 Thank you for your concerning.
 I also definitely agree with you that the driver must work.
 I am always concerning about it but it was not easy to make some time
 for the patches.

 I will continue to post the next version of patches, of course.
 I think it is not far from now to show it.

Lots of time is going from last reply. there are two options.
1. just waiting more
2. remove it as patch and start it again by someone.

what's the opinions?

Thank you,
Kyungmin Park
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


RE: [PATCH] iommu/exynos: Remove driver

2014-02-13 Thread Cho KyongHo
 -Original Message-
 From: Olof Johansson [mailto:o...@lixom.net]
 Sent: Friday, February 14, 2014 4:34 AM
 
 On Mon, Feb 10, 2014 at 10:21 PM, Kukjin Kim kgene@gmail.com wrote:
 
  Just adding KyongHo Cho.
 
  If he can fixup for this time, it would be best solution because he knows
  well than others, I think.
 
 It's not so much a matter of fixup for this time, it's a about
 having ownership of the driver, making sure it works (and keeps
 working if there is related development). The posted patches have not
 been followed through on and the result is a broken driver. :(
 
 I definitely appreciate his expertise, and we should make sure that he
 gets to review the code, but if someone else is able to spend time on
 reworking the driver (or rewriting a newer one) and maintaining it
 longer-term, then we should not stop them from doing so. And there is
 no reason to keep broken stale code in the kernel meanwhile.
 

Thank you for your concerning.
I also definitely agree with you that the driver must work.
I am always concerning about it but it was not easy to make some time
for the patches.

I will continue to post the next version of patches, of course.
I think it is not far from now to show it.

Regards,

Ky0ongHo

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] iommu/exynos: Remove driver

2014-02-07 Thread Marek Szyprowski

Hello,

On 2014-02-07 13:44, Kyungmin Park wrote:


On Friday, February 7, 2014, Inki Dae inki@samsung.com 
mailto:inki@samsung.com wrote:


2014-02-07 Olof Johansson o...@lixom.net javascript:;:
 The driver has been unbuildable due to unfulfilled dependencies
since
 3.11, and even if enabled it won't build due to build breakage.
Emails
 about status on this have gone unanswered, and fixes seem to
have been
 abandoned.

 It's obvious that nobody cares about it, so let's remove it.

Wait, we are going to fix up this module. It seems that KyoungHo,
original author, is busy with some works related to product.

we can care about it if KyoungHo cannot afford to care for the
time being.

Any volunteers?
Marek or Bartek, how do you think?

Before that it makes orphan or unsupported at maintainer file first and
change it to new volunteers.


I think that it might be easier to remove the existing non-functional driver
now and add it again once the driver is ready. I have it on my TODO 
list, but

doubt I will manage to finish it for v3.15.

Discussing the DT bindings might take some time.

Best regards
--
Marek Szyprowski, PhD
Samsung RD Institute Poland

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] iommu/exynos: Remove driver

2014-02-06 Thread Olof Johansson
The driver has been unbuildable due to unfulfilled dependencies since
3.11, and even if enabled it won't build due to build breakage. Emails
about status on this have gone unanswered, and fixes seem to have been
abandoned.

It's obvious that nobody cares about it, so let's remove it.

Signed-off-by: Olof Johansson o...@lixom.net
---
 drivers/iommu/Kconfig|   21 -
 drivers/iommu/Makefile   |1 -
 drivers/iommu/exynos-iommu.c | 1035 --
 3 files changed, 1057 deletions(-)
 delete mode 100644 drivers/iommu/exynos-iommu.c

diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
index 79bbc21..b893367 100644
--- a/drivers/iommu/Kconfig
+++ b/drivers/iommu/Kconfig
@@ -176,27 +176,6 @@ config TEGRA_IOMMU_SMMU
  space through the SMMU (System Memory Management Unit)
  hardware included on Tegra SoCs.
 
-config EXYNOS_IOMMU
-   bool Exynos IOMMU Support
-   depends on ARCH_EXYNOS  EXYNOS_DEV_SYSMMU
-   select IOMMU_API
-   help
- Support for the IOMMU(System MMU) of Samsung Exynos application
- processor family. This enables H/W multimedia accellerators to see
- non-linear physical memory chunks as a linear memory in their
- address spaces
-
- If unsure, say N here.
-
-config EXYNOS_IOMMU_DEBUG
-   bool Debugging log for Exynos IOMMU
-   depends on EXYNOS_IOMMU
-   help
- Select this to see the detailed log message that shows what
- happens in the IOMMU driver
-
- Say N unless you need kernel log message for IOMMU debugging
-
 config SHMOBILE_IPMMU
bool
 
diff --git a/drivers/iommu/Makefile b/drivers/iommu/Makefile
index 5d58bf1..de6c909 100644
--- a/drivers/iommu/Makefile
+++ b/drivers/iommu/Makefile
@@ -14,7 +14,6 @@ obj-$(CONFIG_OMAP_IOVMM) += omap-iovmm.o
 obj-$(CONFIG_OMAP_IOMMU_DEBUG) += omap-iommu-debug.o
 obj-$(CONFIG_TEGRA_IOMMU_GART) += tegra-gart.o
 obj-$(CONFIG_TEGRA_IOMMU_SMMU) += tegra-smmu.o
-obj-$(CONFIG_EXYNOS_IOMMU) += exynos-iommu.o
 obj-$(CONFIG_SHMOBILE_IOMMU) += shmobile-iommu.o
 obj-$(CONFIG_SHMOBILE_IPMMU) += shmobile-ipmmu.o
 obj-$(CONFIG_FSL_PAMU) += fsl_pamu.o fsl_pamu_domain.o
diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
deleted file mode 100644
index 0740189..000
--- a/drivers/iommu/exynos-iommu.c
+++ /dev/null
@@ -1,1035 +0,0 @@
-/* linux/drivers/iommu/exynos_iommu.c
- *
- * Copyright (c) 2011 Samsung Electronics Co., Ltd.
- * http://www.samsung.com
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-
-#ifdef CONFIG_EXYNOS_IOMMU_DEBUG
-#define DEBUG
-#endif
-
-#include linux/io.h
-#include linux/interrupt.h
-#include linux/platform_device.h
-#include linux/slab.h
-#include linux/pm_runtime.h
-#include linux/clk.h
-#include linux/err.h
-#include linux/mm.h
-#include linux/iommu.h
-#include linux/errno.h
-#include linux/list.h
-#include linux/memblock.h
-#include linux/export.h
-
-#include asm/cacheflush.h
-#include asm/pgtable.h
-
-#include mach/sysmmu.h
-
-/* We does not consider super section mapping (16MB) */
-#define SECT_ORDER 20
-#define LPAGE_ORDER 16
-#define SPAGE_ORDER 12
-
-#define SECT_SIZE (1  SECT_ORDER)
-#define LPAGE_SIZE (1  LPAGE_ORDER)
-#define SPAGE_SIZE (1  SPAGE_ORDER)
-
-#define SECT_MASK (~(SECT_SIZE - 1))
-#define LPAGE_MASK (~(LPAGE_SIZE - 1))
-#define SPAGE_MASK (~(SPAGE_SIZE - 1))
-
-#define lv1ent_fault(sent) (((*(sent)  3) == 0) || ((*(sent)  3) == 3))
-#define lv1ent_page(sent) ((*(sent)  3) == 1)
-#define lv1ent_section(sent) ((*(sent)  3) == 2)
-
-#define lv2ent_fault(pent) ((*(pent)  3) == 0)
-#define lv2ent_small(pent) ((*(pent)  2) == 2)
-#define lv2ent_large(pent) ((*(pent)  3) == 1)
-
-#define section_phys(sent) (*(sent)  SECT_MASK)
-#define section_offs(iova) ((iova)  0xF)
-#define lpage_phys(pent) (*(pent)  LPAGE_MASK)
-#define lpage_offs(iova) ((iova)  0x)
-#define spage_phys(pent) (*(pent)  SPAGE_MASK)
-#define spage_offs(iova) ((iova)  0xFFF)
-
-#define lv1ent_offset(iova) ((iova)  SECT_ORDER)
-#define lv2ent_offset(iova) (((iova)  0xFF000)  SPAGE_ORDER)
-
-#define NUM_LV1ENTRIES 4096
-#define NUM_LV2ENTRIES 256
-
-#define LV2TABLE_SIZE (NUM_LV2ENTRIES * sizeof(long))
-
-#define SPAGES_PER_LPAGE (LPAGE_SIZE / SPAGE_SIZE)
-
-#define lv2table_base(sent) (*(sent)  0xFC00)
-
-#define mk_lv1ent_sect(pa) ((pa) | 2)
-#define mk_lv1ent_page(pa) ((pa) | 1)
-#define mk_lv2ent_lpage(pa) ((pa) | 1)
-#define mk_lv2ent_spage(pa) ((pa) | 2)
-
-#define CTRL_ENABLE0x5
-#define CTRL_BLOCK 0x7
-#define CTRL_DISABLE   0x0
-
-#define REG_MMU_CTRL   0x000
-#define REG_MMU_CFG0x004
-#define REG_MMU_STATUS 0x008
-#define REG_MMU_FLUSH  0x00C
-#define REG_MMU_FLUSH_ENTRY0x010
-#define REG_PT_BASE_ADDR   0x014
-#define REG_INT_STATUS 0x018

Re: [PATCH] iommu/exynos: Remove driver

2014-02-06 Thread Inki Dae
2014-02-07 Olof Johansson o...@lixom.net:
 The driver has been unbuildable due to unfulfilled dependencies since
 3.11, and even if enabled it won't build due to build breakage. Emails
 about status on this have gone unanswered, and fixes seem to have been
 abandoned.

 It's obvious that nobody cares about it, so let's remove it.

Wait, we are going to fix up this module. It seems that KyoungHo,
original author, is busy with some works related to product.

we can care about it if KyoungHo cannot afford to care for the time being.

Thanks,
Inki Dae


 Signed-off-by: Olof Johansson o...@lixom.net
 ---
  drivers/iommu/Kconfig|   21 -
  drivers/iommu/Makefile   |1 -
  drivers/iommu/exynos-iommu.c | 1035 
 --
  3 files changed, 1057 deletions(-)
  delete mode 100644 drivers/iommu/exynos-iommu.c

 diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
 index 79bbc21..b893367 100644
 --- a/drivers/iommu/Kconfig
 +++ b/drivers/iommu/Kconfig
 @@ -176,27 +176,6 @@ config TEGRA_IOMMU_SMMU
   space through the SMMU (System Memory Management Unit)
   hardware included on Tegra SoCs.

 -config EXYNOS_IOMMU
 -   bool Exynos IOMMU Support
 -   depends on ARCH_EXYNOS  EXYNOS_DEV_SYSMMU
 -   select IOMMU_API
 -   help
 - Support for the IOMMU(System MMU) of Samsung Exynos application
 - processor family. This enables H/W multimedia accellerators to see
 - non-linear physical memory chunks as a linear memory in their
 - address spaces
 -
 - If unsure, say N here.
 -
 -config EXYNOS_IOMMU_DEBUG
 -   bool Debugging log for Exynos IOMMU
 -   depends on EXYNOS_IOMMU
 -   help
 - Select this to see the detailed log message that shows what
 - happens in the IOMMU driver
 -
 - Say N unless you need kernel log message for IOMMU debugging
 -
  config SHMOBILE_IPMMU
 bool

 diff --git a/drivers/iommu/Makefile b/drivers/iommu/Makefile
 index 5d58bf1..de6c909 100644
 --- a/drivers/iommu/Makefile
 +++ b/drivers/iommu/Makefile
 @@ -14,7 +14,6 @@ obj-$(CONFIG_OMAP_IOVMM) += omap-iovmm.o
  obj-$(CONFIG_OMAP_IOMMU_DEBUG) += omap-iommu-debug.o
  obj-$(CONFIG_TEGRA_IOMMU_GART) += tegra-gart.o
  obj-$(CONFIG_TEGRA_IOMMU_SMMU) += tegra-smmu.o
 -obj-$(CONFIG_EXYNOS_IOMMU) += exynos-iommu.o
  obj-$(CONFIG_SHMOBILE_IOMMU) += shmobile-iommu.o
  obj-$(CONFIG_SHMOBILE_IPMMU) += shmobile-ipmmu.o
  obj-$(CONFIG_FSL_PAMU) += fsl_pamu.o fsl_pamu_domain.o
 diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
 deleted file mode 100644
 index 0740189..000
 --- a/drivers/iommu/exynos-iommu.c
 +++ /dev/null
 @@ -1,1035 +0,0 @@
 -/* linux/drivers/iommu/exynos_iommu.c
 - *
 - * Copyright (c) 2011 Samsung Electronics Co., Ltd.
 - * http://www.samsung.com
 - *
 - * This program is free software; you can redistribute it and/or modify
 - * it under the terms of the GNU General Public License version 2 as
 - * published by the Free Software Foundation.
 - */
 -
 -#ifdef CONFIG_EXYNOS_IOMMU_DEBUG
 -#define DEBUG
 -#endif
 -
 -#include linux/io.h
 -#include linux/interrupt.h
 -#include linux/platform_device.h
 -#include linux/slab.h
 -#include linux/pm_runtime.h
 -#include linux/clk.h
 -#include linux/err.h
 -#include linux/mm.h
 -#include linux/iommu.h
 -#include linux/errno.h
 -#include linux/list.h
 -#include linux/memblock.h
 -#include linux/export.h
 -
 -#include asm/cacheflush.h
 -#include asm/pgtable.h
 -
 -#include mach/sysmmu.h
 -
 -/* We does not consider super section mapping (16MB) */
 -#define SECT_ORDER 20
 -#define LPAGE_ORDER 16
 -#define SPAGE_ORDER 12
 -
 -#define SECT_SIZE (1  SECT_ORDER)
 -#define LPAGE_SIZE (1  LPAGE_ORDER)
 -#define SPAGE_SIZE (1  SPAGE_ORDER)
 -
 -#define SECT_MASK (~(SECT_SIZE - 1))
 -#define LPAGE_MASK (~(LPAGE_SIZE - 1))
 -#define SPAGE_MASK (~(SPAGE_SIZE - 1))
 -
 -#define lv1ent_fault(sent) (((*(sent)  3) == 0) || ((*(sent)  3) == 3))
 -#define lv1ent_page(sent) ((*(sent)  3) == 1)
 -#define lv1ent_section(sent) ((*(sent)  3) == 2)
 -
 -#define lv2ent_fault(pent) ((*(pent)  3) == 0)
 -#define lv2ent_small(pent) ((*(pent)  2) == 2)
 -#define lv2ent_large(pent) ((*(pent)  3) == 1)
 -
 -#define section_phys(sent) (*(sent)  SECT_MASK)
 -#define section_offs(iova) ((iova)  0xF)
 -#define lpage_phys(pent) (*(pent)  LPAGE_MASK)
 -#define lpage_offs(iova) ((iova)  0x)
 -#define spage_phys(pent) (*(pent)  SPAGE_MASK)
 -#define spage_offs(iova) ((iova)  0xFFF)
 -
 -#define lv1ent_offset(iova) ((iova)  SECT_ORDER)
 -#define lv2ent_offset(iova) (((iova)  0xFF000)  SPAGE_ORDER)
 -
 -#define NUM_LV1ENTRIES 4096
 -#define NUM_LV2ENTRIES 256
 -
 -#define LV2TABLE_SIZE (NUM_LV2ENTRIES * sizeof(long))
 -
 -#define SPAGES_PER_LPAGE (LPAGE_SIZE / SPAGE_SIZE)
 -
 -#define lv2table_base(sent) (*(sent)  0xFC00)
 -
 -#define mk_lv1ent_sect(pa) ((pa) | 2)
 -#define mk_lv1ent_page(pa) ((pa) | 1)
 -#define mk_lv2ent_lpage(pa)