Re: [PATCH v5] ARM: EXYNOS: Add MFC device tree support

2012-12-18 Thread Arun Kumar K
Hi Sekhar,


 +
 + codec at 1100 {
 + samsung,mfc-r = 0x4300 0x80;
 + samsung,mfc-l = 0x5100 0x80;
 + };

 How are these addresses determined? Are they defined by hardware (so they are
 not user configurable) or is the user free to choose them depending on where
 he intends the contiguous memory to lie? If it is the later, I wonder if it
 is considered okay to define this in device tree since it is supposed to be
 a description of the hardware.


These addresses are not really user defined but board specific.
So these properties are separated out from exynos5250.dtsi and put
inside exynos5250-smdk5250.dts file where the board specific parameters
are defined. The addresses signifies different memory bank areas as per
the board configuration. So its still a hardware description and hence included
in the dt file.

Regards
Arun
--
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 v5] ARM: EXYNOS: Add MFC device tree support

2012-12-14 Thread Sekhar Nori
Arun Kumar K arun.kk at samsung.com writes:
 
 This patch adds device tree entry for MFC v6 in the Exynos5
 SoC. Makes the required changes in the clock files and adds
 MFC to the DT device list.
 
 Signed-off-by: Naveen Krishna Chatradhi ch.naveen at samsung.com
 Signed-off-by: Arun Kumar K arun.kk at samsung.com
 ---

 diff --git a/Documentation/devicetree/bindings/media/s5p-mfc.txt
b/Documentation/devicetree/bindings/media/s5p-mfc.txt

 +Required properties:
 +  - compatible : value should be either one among the following
 + (a) samsung,mfc-v5 for MFC v5 present in Exynos4 SoCs
 + (b) samsung,mfc-v6 for MFC v6 present in Exynos5 SoCs

Sorry for replying on this patch so late, but this thread came
to my attention only recently.

I thought generic comaptibles like this are discouraged and instead
you are supposed to ground the compatible property to a real silicon name.
So you would use something like samsung,exynos4212-mfc and so on.

 +  - samsung,mfc-r : Base address of the first memory bank used by MFC
 + for DMA contiguous memory allocation and its size.
 +
 +  - samsung,mfc-l : Base address of the second memory bank used by MFC
 + for DMA contiguous memory allocation and its size.

 diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts
b/arch/arm/boot/dts/exynos5250-smdk5250.dts

 +
 + codec at 1100 {
 + samsung,mfc-r = 0x4300 0x80;
 + samsung,mfc-l = 0x5100 0x80;
 + };

How are these addresses determined? Are they defined by hardware (so they are
not user configurable) or is the user free to choose them depending on where
he intends the contiguous memory to lie? If it is the later, I wonder if it
is considered okay to define this in device tree since it is supposed to be
a description of the hardware.

We have a similar situation on DaVinci and we are wondering how this should
be handled. The ideal choice seems to be module parameters, but there are
some challenges there. See:
http://lists.infradead.org/pipermail/linux-arm-kernel/2012-December/136996.html

I understand I am speaking too late on this patch (seems like it is already 
merged into linux-next at the least), but I still wanted to start the 
conversation here for future sake.

Thanks,
Sekhar


--
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 v5] ARM: EXYNOS: Add MFC device tree support

2012-10-23 Thread 김승우
Hi Arun,

On 2012년 09월 28일 02:09, Arun Kumar K wrote:
 This patch adds device tree entry for MFC v6 in the Exynos5
 SoC. Makes the required changes in the clock files and adds
 MFC to the DT device list.
 
 Signed-off-by: Naveen Krishna Chatradhi ch.nav...@samsung.com
 Signed-off-by: Arun Kumar K arun...@samsung.com
 ---
  .../devicetree/bindings/media/s5p-mfc.txt  |   23 +
  arch/arm/boot/dts/exynos5250-smdk5250.dts  |5 +++
  arch/arm/boot/dts/exynos5250.dtsi  |6 +++
  arch/arm/mach-exynos/Kconfig   |1 +
  arch/arm/mach-exynos/clock-exynos5.c   |2 +-
  arch/arm/mach-exynos/mach-exynos5-dt.c |   16 +
  arch/arm/plat-samsung/devs.c   |1 +
  arch/arm/plat-samsung/include/plat/mfc.h   |   11 ++
  arch/arm/plat-samsung/s5p-dev-mfc.c|   34 
 
  9 files changed, 98 insertions(+), 1 deletions(-)
  create mode 100644 Documentation/devicetree/bindings/media/s5p-mfc.txt
 

snip

 diff --git a/arch/arm/mach-exynos/mach-exynos5-dt.c 
 b/arch/arm/mach-exynos/mach-exynos5-dt.c
 index fee9dcd..b4ed43a 100644
 --- a/arch/arm/mach-exynos/mach-exynos5-dt.c
 +++ b/arch/arm/mach-exynos/mach-exynos5-dt.c
 @@ -11,6 +11,8 @@
  
  #include linux/of_platform.h
  #include linux/serial_core.h
 +#include linux/memblock.h
 +#include linux/of_fdt.h
  
  #include asm/mach/arch.h
  #include asm/hardware/gic.h
 @@ -18,6 +20,7 @@
  
  #include plat/cpu.h
  #include plat/regs-serial.h
 +#include plat/mfc.h
  
  #include common.h
  
 @@ -72,6 +75,7 @@ static const struct of_dev_auxdata 
 exynos5250_auxdata_lookup[] __initconst = {
   exynos-gsc.2, NULL),
   OF_DEV_AUXDATA(samsung,exynos5-gsc, EXYNOS5_PA_GSC3,
   exynos-gsc.3, NULL),
 + OF_DEV_AUXDATA(samsung,mfc-v6, 0x1100, s5p-mfc-v6, NULL),
   {},
  };
  
 @@ -92,6 +96,17 @@ static char const *exynos5250_dt_compat[] __initdata = {
   NULL
  };
  
 +static void __init exynos5_reserve(void)
 +{
 + struct s5p_mfc_dt_meminfo mfc_mem;
 +
 + /* Reserve memory for MFC only if it's available */
 + mfc_mem.compatible = samsung,mfc-v6;
 + if (of_scan_flat_dt(s5p_fdt_find_mfc_mem, mfc_mem))

of_scan_flat_dt() is called but it does not have __init on its
definition. So this causes section mismatch.

 + s5p_mfc_reserve_mem(mfc_mem.roff, mfc_mem.rsize, mfc_mem.loff,
 + mfc_mem.lsize);
 +}
 +
  DT_MACHINE_START(EXYNOS5_DT, SAMSUNG EXYNOS5 (Flattened Device Tree))
   /* Maintainer: Kukjin Kim kgene@samsung.com */
   .init_irq   = exynos5_init_irq,
 @@ -102,4 +117,5 @@ DT_MACHINE_START(EXYNOS5_DT, SAMSUNG EXYNOS5 (Flattened 
 Device Tree))
   .timer  = exynos4_timer,
   .dt_compat  = exynos5250_dt_compat,
   .restart= exynos5_restart,
 + .reserve= exynos5_reserve,
  MACHINE_END

snip


Best Regards,
- Seung-Woo Kim

-- 
Seung-Woo Kim
Samsung Software RD Center
--

--
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 v5] ARM: EXYNOS: Add MFC device tree support

2012-10-23 Thread Arun Kumar K
Hi Seungwoo Kim,

Thank you for the review.

 +
 + /* Reserve memory for MFC only if it's available */
 + mfc_mem.compatible = samsung,mfc-v6;
 + if (of_scan_flat_dt(s5p_fdt_find_mfc_mem, mfc_mem))

 of_scan_flat_dt() is called but it does not have __init on its
 definition. So this causes section mismatch.


The function of_scan_flat_dt is having __init in its definition.
I hope you meant the function s5p_fdt_find_mfc_mem which is not
defined with __init and causing section mismatch.
I will correct this and post an updated patch.

Regards
Arun
--
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 v5] ARM: EXYNOS: Add MFC device tree support

2012-10-23 Thread Kukjin Kim
Arun Kumar K wrote:
 
 This patch adds device tree entry for MFC v6 in the Exynos5
 SoC. Makes the required changes in the clock files and adds
 MFC to the DT device list.
 
 Signed-off-by: Naveen Krishna Chatradhi ch.nav...@samsung.com
 Signed-off-by: Arun Kumar K arun...@samsung.com
 ---
  .../devicetree/bindings/media/s5p-mfc.txt  |   23 +
  arch/arm/boot/dts/exynos5250-smdk5250.dts  |5 +++
  arch/arm/boot/dts/exynos5250.dtsi  |6 +++
  arch/arm/mach-exynos/Kconfig   |1 +
  arch/arm/mach-exynos/clock-exynos5.c   |2 +-
  arch/arm/mach-exynos/mach-exynos5-dt.c |   16 +
  arch/arm/plat-samsung/devs.c   |1 +
  arch/arm/plat-samsung/include/plat/mfc.h   |   11 ++
  arch/arm/plat-samsung/s5p-dev-mfc.c|   34

  9 files changed, 98 insertions(+), 1 deletions(-)
  create mode 100644 Documentation/devicetree/bindings/media/s5p-mfc.txt
 
Looks ok to me, applied.

Thanks.

Best regards,
Kgene.
--
Kukjin Kim kgene@samsung.com, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.

--
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 v5] ARM: EXYNOS: Add MFC device tree support

2012-10-23 Thread Kukjin Kim

On 10/23/12 19:12, Arun Kumar K wrote:

Hi Seungwoo Kim,

Thank you for the review.


+
+ /* Reserve memory for MFC only if it's available */
+ mfc_mem.compatible = samsung,mfc-v6;
+ if (of_scan_flat_dt(s5p_fdt_find_mfc_mem,mfc_mem))


of_scan_flat_dt() is called but it does not have __init on its
definition. So this causes section mismatch.



The function of_scan_flat_dt is having __init in its definition.


Yes.


I hope you meant the function s5p_fdt_find_mfc_mem which is not
defined with __init and causing section mismatch.


I think so.


I will correct this and post an updated patch.


I fixed when I applied.

Seung-Woo, thanks for your reporting.

Best regards,
Kgene.
--
Kukjin Kim kgene@samsung.com, Senior Engineer,
SW Solution Development Team, Samsung Electronics Co., Ltd.
--
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 v5] ARM: EXYNOS: Add MFC device tree support

2012-10-12 Thread Arun Kumar K
Hi all,
Any comments / acks on this?

Regards
Arun

On Thu, Sep 27, 2012 at 10:39 PM, Arun Kumar K arun...@samsung.com wrote:
 This patch adds device tree entry for MFC v6 in the Exynos5
 SoC. Makes the required changes in the clock files and adds
 MFC to the DT device list.

 Signed-off-by: Naveen Krishna Chatradhi ch.nav...@samsung.com
 Signed-off-by: Arun Kumar K arun...@samsung.com
 ---
  .../devicetree/bindings/media/s5p-mfc.txt  |   23 +
  arch/arm/boot/dts/exynos5250-smdk5250.dts  |5 +++
  arch/arm/boot/dts/exynos5250.dtsi  |6 +++
  arch/arm/mach-exynos/Kconfig   |1 +
  arch/arm/mach-exynos/clock-exynos5.c   |2 +-
  arch/arm/mach-exynos/mach-exynos5-dt.c |   16 +
  arch/arm/plat-samsung/devs.c   |1 +
  arch/arm/plat-samsung/include/plat/mfc.h   |   11 ++
  arch/arm/plat-samsung/s5p-dev-mfc.c|   34 
 
  9 files changed, 98 insertions(+), 1 deletions(-)
  create mode 100644 Documentation/devicetree/bindings/media/s5p-mfc.txt

 diff --git a/Documentation/devicetree/bindings/media/s5p-mfc.txt 
 b/Documentation/devicetree/bindings/media/s5p-mfc.txt
 new file mode 100644
 index 000..67ec3d4
 --- /dev/null
 +++ b/Documentation/devicetree/bindings/media/s5p-mfc.txt
 @@ -0,0 +1,23 @@
 +* Samsung Multi Format Codec (MFC)
 +
 +Multi Format Codec (MFC) is the IP present in Samsung SoCs which
 +supports high resolution decoding and encoding functionalities.
 +The MFC device driver is a v4l2 driver which can encode/decode
 +video raw/elementary streams and has support for all popular
 +video codecs.
 +
 +Required properties:
 +  - compatible : value should be either one among the following
 +   (a) samsung,mfc-v5 for MFC v5 present in Exynos4 SoCs
 +   (b) samsung,mfc-v6 for MFC v6 present in Exynos5 SoCs
 +
 +  - reg : Physical base address of the IP registers and length of memory
 + mapped region.
 +
 +  - interrupts : MFC interrupt number to the CPU.
 +
 +  - samsung,mfc-r : Base address of the first memory bank used by MFC
 +   for DMA contiguous memory allocation and its size.
 +
 +  - samsung,mfc-l : Base address of the second memory bank used by MFC
 +   for DMA contiguous memory allocation and its size.
 diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts 
 b/arch/arm/boot/dts/exynos5250-smdk5250.dts
 index a352df4..21d4ccd 100644
 --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts
 +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts
 @@ -166,4 +166,9 @@
 spi_2: spi@12d4 {
 status = disabled;
 };
 +
 +   codec@1100 {
 +   samsung,mfc-r = 0x4300 0x80;
 +   samsung,mfc-l = 0x5100 0x80;
 +   };
  };
 diff --git a/arch/arm/boot/dts/exynos5250.dtsi 
 b/arch/arm/boot/dts/exynos5250.dtsi
 index dddfd6e..49546bc 100644
 --- a/arch/arm/boot/dts/exynos5250.dtsi
 +++ b/arch/arm/boot/dts/exynos5250.dtsi
 @@ -62,6 +62,12 @@
 interrupts = 0 42 0;
 };

 +   codec@1100 {
 +   compatible = samsung,mfc-v6;
 +   reg = 0x1100 0x1;
 +   interrupts = 0 96 0;
 +   };
 +
 rtc {
 compatible = samsung,s3c6410-rtc;
 reg = 0x101E 0x100;
 diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
 index 4372075..a0677f6 100644
 --- a/arch/arm/mach-exynos/Kconfig
 +++ b/arch/arm/mach-exynos/Kconfig
 @@ -64,6 +64,7 @@ config SOC_EXYNOS5250
 select SAMSUNG_DMADEV
 select S5P_PM if PM
 select S5P_SLEEP if PM
 +   select S5P_DEV_MFC
 help
   Enable EXYNOS5250 SoC support

 diff --git a/arch/arm/mach-exynos/clock-exynos5.c 
 b/arch/arm/mach-exynos/clock-exynos5.c
 index bab6140..46dfea6 100644
 --- a/arch/arm/mach-exynos/clock-exynos5.c
 +++ b/arch/arm/mach-exynos/clock-exynos5.c
 @@ -664,7 +664,7 @@ static struct clk exynos5_init_clocks_off[] = {
 .ctrlbit= (1  25),
 }, {
 .name   = mfc,
 -   .devname= s5p-mfc,
 +   .devname= s5p-mfc-v6,
 .enable = exynos5_clk_ip_mfc_ctrl,
 .ctrlbit= (1  0),
 }, {
 diff --git a/arch/arm/mach-exynos/mach-exynos5-dt.c 
 b/arch/arm/mach-exynos/mach-exynos5-dt.c
 index fee9dcd..b4ed43a 100644
 --- a/arch/arm/mach-exynos/mach-exynos5-dt.c
 +++ b/arch/arm/mach-exynos/mach-exynos5-dt.c
 @@ -11,6 +11,8 @@

  #include linux/of_platform.h
  #include linux/serial_core.h
 +#include linux/memblock.h
 +#include linux/of_fdt.h

  #include asm/mach/arch.h
  #include asm/hardware/gic.h
 @@ -18,6 +20,7 @@

  #include plat/cpu.h
  #include plat/regs-serial.h
 +#include plat/mfc.h

  #include common.h

 @@ -72,6 +75,7 @@ static const struct of_dev_auxdata