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