Skip to contentSkip to conversation

ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

PATCH New Gaëtan Carlier 3 participants 18 messages Sep 4, 2012 – Oct 5, 2012

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

IMX_HAVE_PLATFORM_MX2_EMMA define has been added.

---
 arch/arm/mach-imx/devices-imx27.h               |    4 ++-
 arch/arm/plat-mxc/devices/Kconfig               |    3 ++
 arch/arm/plat-mxc/devices/Makefile              |    1 +
 arch/arm/plat-mxc/devices/platform-mx2-camera.c |   17 ---------
 arch/arm/plat-mxc/devices/platform-mx2-emma.c   |   41 +++++++++++++++++++++++
 arch/arm/plat-mxc/include/mach/devices-common.h |    9 ++++-
 6 files changed, 56 insertions(+), 19 deletions(-)
 create mode 100644 arch/arm/plat-mxc/devices/platform-mx2-emma.c
arch/arm/mach-imx/devices-imx27.h +3 -1
index 0482293..d8eb4a0 100644
@@ -54,8 +54,10 @@ extern const struct imx_imx_uart_1irq_data imx27_imx_uart_data[];
 extern const struct imx_mx2_camera_data imx27_mx2_camera_data;
 #define imx27_add_mx2_camera(pdata)	\
 	imx_add_mx2_camera(&imx27_mx2_camera_data, pdata)
+
+extern const struct imx_mx2_emma_data imx27_mx2_emmaprp_data;
 #define imx27_add_mx2_emmaprp()	\
-	imx_add_mx2_emmaprp(&imx27_mx2_camera_data)
+	imx_add_mx2_emmaprp(&imx27_mx2_emmaprp_data)
 
 extern const struct imx_mxc_ehci_data imx27_mxc_ehci_otg_data;
 #define imx27_add_mxc_ehci_otg(pdata)	\
arch/arm/plat-mxc/devices/Kconfig +3 -0
index 6b46cee..96feef7 100644
@@ -56,6 +56,9 @@ config IMX_HAVE_PLATFORM_MX1_CAMERA
 config IMX_HAVE_PLATFORM_MX2_CAMERA
 	bool
 
+config IMX_HAVE_PLATFORM_MX2_EMMA
+	bool
+
 config IMX_HAVE_PLATFORM_MXC_EHCI
 	bool
 
arch/arm/plat-mxc/devices/Makefile +1 -0
index 76f3195..7292c1f 100644
@@ -28,3 +28,4 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_W1) += platform-mxc_w1.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) +=  platform-spi_imx.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_AHCI) +=  platform-ahci-imx.o
+obj-$(CONFIG_IMX_HAVE_PLATFORM_MX2_EMMA) += platform-mx2-emma.o
arch/arm/plat-mxc/devices/platform-mx2-camera.c +0 -17
index 11eace9..11c688f 100644
@@ -63,20 +63,3 @@ struct platform_device *__init imx_add_mx2_camera(
 			pdata, sizeof(*pdata), DMA_BIT_MASK(32));
 }
 
-struct platform_device *__init imx_add_mx2_emmaprp(
-		const struct imx_mx2_camera_data *data)
-{
-	struct resource res[] = {
-		{
-			.start = data->iobaseemmaprp,
-			.end = data->iobaseemmaprp + data->iosizeemmaprp - 1,
-			.flags = IORESOURCE_MEM,
-		}, {
-			.start = data->irqemmaprp,
-			.end = data->irqemmaprp,
-			.flags = IORESOURCE_IRQ,
-		},
-	};
-	return imx_add_platform_device_dmamask("m2m-emmaprp", 0,
-			res, 2, NULL, 0, DMA_BIT_MASK(32));
-}
arch/arm/plat-mxc/devices/platform-mx2-emma.c new file +41 -0

41 lines not on this page · raw message

arch/arm/plat-mxc/include/mach/devices-common.h +8 -1
index 762780c..2117072 100644
@@ -229,8 +229,15 @@ struct imx_mx2_camera_data {
 struct platform_device *__init imx_add_mx2_camera(
 		const struct imx_mx2_camera_data *data,
 		const struct mx2_camera_platform_data *pdata);
+
+
+struct imx_mx2_emma_data {
+	resource_size_t iobase;
+	resource_size_t iosize;
+	resource_size_t irq;
+};
 struct platform_device *__init imx_add_mx2_emmaprp(
-		const struct imx_mx2_camera_data *data);
+		const struct imx_mx2_emma_data *data);
 
 #include <mach/mxc_ehci.h>
 struct imx_mxc_ehci_data {
Signature · 1 line
1.7.7.4
#1 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

Hi Ga?tan,
is there any real technical reason to do this or is the patch only for cosmetic purposes?

The following patch, which is meant to go through the linux-media tree, adds support for mx2_emmaprp in the Visstrim_M10 boards:
https://patchwork.kernel.org/patch/1347921/

Could you please add the flag IMX_HAVE_PLATFORM_MX2_EMMA for the Visstrim_M10 board in this patch?

Quoted 19 lines · Ga?tan Carlier

IMX_HAVE_PLATFORM_MX2_EMMA define has been added.

---
 arch/arm/mach-imx/devices-imx27.h               |    4 ++-
 arch/arm/plat-mxc/devices/Kconfig               |    3 ++
 arch/arm/plat-mxc/devices/Makefile              |    1 +
 arch/arm/plat-mxc/devices/platform-mx2-camera.c |   17 ---------
 arch/arm/plat-mxc/devices/platform-mx2-emma.c   |   41 +++++++++++++++++++++++
 arch/arm/plat-mxc/include/mach/devices-common.h |    9 ++++-
 6 files changed, 56 insertions(+), 19 deletions(-)
 create mode 100644 arch/arm/plat-mxc/devices/platform-mx2-emma.c
arch/arm/mach-imx/devices-imx27.h +0 -0
index 0482293..d8eb4a0 100644
@@ -54,8 +54,10 @@ extern const struct imx_imx_uart_1irq_data imx27_imx_uart_data[];
 extern const struct imx_mx2_camera_data imx27_mx2_camera_data;

arch/arm/mach-imx/devices-imx27.h extern const struct imx_imx_uart_1irq_data imx27_imx_uart_data[]; · line 63

Quoted 10 lines
arch/arm/mach-imx/devices-imx27.h +3 -1
 #define imx27_add_mx2_camera(pdata)    \
        imx_add_mx2_camera(&imx27_mx2_camera_data, pdata)
+
+extern const struct imx_mx2_emma_data imx27_mx2_emmaprp_data;
 #define imx27_add_mx2_emmaprp()        \
-       imx_add_mx2_emmaprp(&imx27_mx2_camera_data)
+       imx_add_mx2_emmaprp(&imx27_mx2_emmaprp_data)
 
 extern const struct imx_mxc_ehci_data imx27_mxc_ehci_otg_data;
 #define imx27_add_mxc_ehci_otg(pdata)  \

This chunk doesn't seem ok. What kernel branch are you development against?
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=arch/arm/mach-imx/devices-imx27.h;h=436c5720fe6a40255a2c3bc5ab05378c23855e02;hb=HEAD#l50

Quoted 117 lines
arch/arm/plat-mxc/devices/Kconfig +3 -0
index 6b46cee..96feef7 100644
@@ -56,6 +56,9 @@ config IMX_HAVE_PLATFORM_MX1_CAMERA
 config IMX_HAVE_PLATFORM_MX2_CAMERA
        bool
 
+config IMX_HAVE_PLATFORM_MX2_EMMA
+       bool
+
 config IMX_HAVE_PLATFORM_MXC_EHCI
        bool
 
arch/arm/plat-mxc/devices/Makefile +1 -0
index 76f3195..7292c1f 100644
@@ -28,3 +28,4 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_W1) += platform-mxc_w1.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) +=  platform-spi_imx.o
 obj-$(CONFIG_IMX_HAVE_PLATFORM_AHCI) +=  platform-ahci-imx.o
+obj-$(CONFIG_IMX_HAVE_PLATFORM_MX2_EMMA) += platform-mx2-emma.o
arch/arm/plat-mxc/devices/platform-mx2-camera.c +0 -17
index 11eace9..11c688f 100644
@@ -63,20 +63,3 @@ struct platform_device *__init imx_add_mx2_camera(
                        pdata, sizeof(*pdata), DMA_BIT_MASK(32));
 }
 
-struct platform_device *__init imx_add_mx2_emmaprp(
-               const struct imx_mx2_camera_data *data)
-{
-       struct resource res[] = {
-               {
-                       .start = data->iobaseemmaprp,
-                       .end = data->iobaseemmaprp + data->iosizeemmaprp - 1,
-                       .flags = IORESOURCE_MEM,
-               }, {
-                       .start = data->irqemmaprp,
-                       .end = data->irqemmaprp,
-                       .flags = IORESOURCE_IRQ,
-               },
-       };
-       return imx_add_platform_device_dmamask("m2m-emmaprp", 0,
-                       res, 2, NULL, 0, DMA_BIT_MASK(32));
-}
arch/arm/plat-mxc/devices/platform-mx2-emma.c new file +41 -0
new file mode 100644
index 0000000..a51749a
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2010 Pengutronix
+ * Uwe Kleine-Koenig <[email protected]>
+ *
+ * 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.
+ */
+#include <mach/hardware.h>
+#include <mach/devices-common.h>
+
+#define imx_mx2_emmaprp_data_entry_single(soc)                         \
+       {                                                               \
+               .iobase = soc ## _EMMAPRP_BASE_ADDR,                    \
+               .iosize = SZ_32,                                        \
+               .irq = soc ## _INT_EMMAPRP,                             \
+       }
+
+#ifdef CONFIG_SOC_IMX27
+const struct imx_mx2_emma_data imx27_mx2_emmaprp_data __initconst =
+       imx_mx2_emmaprp_data_entry_single(MX27);
+#endif /* ifdef CONFIG_SOC_IMX27 */
+
+struct platform_device *__init imx_add_mx2_emmaprp(
+               const struct imx_mx2_emma_data *data)
+{
+       struct resource res[] = {
+               {
+                       .start = data->iobase,
+                       .end = data->iobase + data->iosize - 1,
+                       .flags = IORESOURCE_MEM,
+               }, {
+                       .start = data->irq,
+                       .end = data->irq,
+                       .flags = IORESOURCE_IRQ,
+               },
+       };
+       return imx_add_platform_device_dmamask("m2m-emmaprp", 0,
+                       res, 2, NULL, 0, DMA_BIT_MASK(32));
+}
+
arch/arm/plat-mxc/include/mach/devices-common.h +8 -2
index 762780c..2117072 100644
@@ -229,8 +229,15 @@ struct imx_mx2_camera_data {
 struct platform_device *__init imx_add_mx2_camera(
                const struct imx_mx2_camera_data *data,
                const struct mx2_camera_platform_data *pdata);
+
+
+struct imx_mx2_emma_data {
+       resource_size_t iobase;
+       resource_size_t iosize;
+       resource_size_t irq;
+};
 struct platform_device *__init imx_add_mx2_emmaprp(
-               const struct imx_mx2_camera_data *data);
+               const struct imx_mx2_emma_data *data);
 
 #include <mach/mxc_ehci.h>
 struct imx_mxc_ehci_data {
--
Quoted 2 lines

1.7.7.4

Regards.

Signature · 7 lines
Javier Martin
Vista Silicon S.L.
CDTUC - FASE C - Oficina S-345
Avda de los Castros s/n
39005- Santander. Cantabria. Spain
+34 942 25 32 60
www.vista-silicon.com
#2 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

Hi Javier,
This is because I will send a patch to add support of eMMA-PP. eMMA-PrP is not only used for soc-camera. It can also be used as stand-alone driver and now to be able to use eMMA-PrP module, IMX_HAVE_PLATFORM_MX2_CAMERA must be set.
And if I follow this logic, I have to put declaration of eMMA-PP with imx-fb and eMMA-PP can only be enabled if IMX_HAVE_PLATFORM_IMX_FB. Of course, eMMA-PrP is almost always used with soc-camera and eMMA-PP with LCDC (imx-fb) but eMMA can be used to do HW accelarated colorspace conversion.
It is not a problem for me to keep eMMA-PrP and mx2-camera together. It was just to have a more independant eMMA driver.

For the Visstrim_M10 board, I don't think that it is needed to set IMX_HAVE_PLATFORM_MX2_EMMA because there is no reference to m2m-emmaprp and mx2-camera embeds handling of eMMA-PrP without using eMMA-PrP driver. It seems that eMMA-PrP embeded in mx2camera handles more case than stand-alone eMMA-PrP driver. Maybe eMMA-PrP driver needs some review to handle all In/Out image formats ?
Please, let me know your point of view ?
Thank you.

Quoted 159 lines · javier Martin

Hi Ga?tan,
is there any real technical reason to do this or is the patch only for cosmetic purposes?

The following patch, which is meant to go through the linux-media tree, adds support for mx2_emmaprp in the Visstrim_M10 boards:
https://patchwork.kernel.org/patch/1347921/

Could you please add the flag IMX_HAVE_PLATFORM_MX2_EMMA for the Visstrim_M10 board in this patch?

Quoted 19 lines · Ga?tan Carlier

IMX_HAVE_PLATFORM_MX2_EMMA define has been added.

---
  arch/arm/mach-imx/devices-imx27.h               |    4 ++-
  arch/arm/plat-mxc/devices/Kconfig               |    3 ++
  arch/arm/plat-mxc/devices/Makefile              |    1 +
  arch/arm/plat-mxc/devices/platform-mx2-camera.c |   17 ---------
  arch/arm/plat-mxc/devices/platform-mx2-emma.c   |   41 +++++++++++++++++++++++
  arch/arm/plat-mxc/include/mach/devices-common.h |    9 ++++-
  6 files changed, 56 insertions(+), 19 deletions(-)

create mode 100644 arch/arm/plat-mxc/devices/platform-mx2-emma.c

arch/arm/mach-imx/devices-imx27.h +0 -0
index 0482293..d8eb4a0 100644
@@ -54,8 +54,10 @@ extern const struct imx_imx_uart_1irq_data imx27_imx_uart_data[];
  extern const struct imx_mx2_camera_data imx27_mx2_camera_data;

arch/arm/mach-imx/devices-imx27.h extern const struct imx_imx_uart_1irq_data imx27_imx_uart_data[]; · line 63

Quoted 10 lines
arch/arm/mach-imx/devices-imx27.h +3 -1
  #define imx27_add_mx2_camera(pdata)    \
         imx_add_mx2_camera(&imx27_mx2_camera_data, pdata)
+
+extern const struct imx_mx2_emma_data imx27_mx2_emmaprp_data;
  #define imx27_add_mx2_emmaprp()        \
-       imx_add_mx2_emmaprp(&imx27_mx2_camera_data)
+       imx_add_mx2_emmaprp(&imx27_mx2_emmaprp_data)
 
  extern const struct imx_mxc_ehci_data imx27_mxc_ehci_otg_data;
  #define imx27_add_mxc_ehci_otg(pdata)  \

This chunk doesn't seem ok. What kernel branch are you development against?
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=arch/arm/mach-imx/devices-imx27.h;h=436c5720fe6a40255a2c3bc5ab05378c23855e02;hb=HEAD#l50

Quoted 114 lines
arch/arm/plat-mxc/devices/Kconfig +3 -0
index 6b46cee..96feef7 100644
@@ -56,6 +56,9 @@ config IMX_HAVE_PLATFORM_MX1_CAMERA
  config IMX_HAVE_PLATFORM_MX2_CAMERA
         bool
 
+config IMX_HAVE_PLATFORM_MX2_EMMA
+       bool
+
  config IMX_HAVE_PLATFORM_MXC_EHCI
         bool
 
arch/arm/plat-mxc/devices/Makefile +1 -0
index 76f3195..7292c1f 100644
@@ -28,3 +28,4 @@ obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_W1) += platform-mxc_w1.o
  obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o
  obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) +=  platform-spi_imx.o
  obj-$(CONFIG_IMX_HAVE_PLATFORM_AHCI) +=  platform-ahci-imx.o
+obj-$(CONFIG_IMX_HAVE_PLATFORM_MX2_EMMA) += platform-mx2-emma.o
arch/arm/plat-mxc/devices/platform-mx2-camera.c +0 -17
index 11eace9..11c688f 100644
@@ -63,20 +63,3 @@ struct platform_device *__init imx_add_mx2_camera(
                         pdata, sizeof(*pdata), DMA_BIT_MASK(32));
  }
 
-struct platform_device *__init imx_add_mx2_emmaprp(
-               const struct imx_mx2_camera_data *data)
-{
-       struct resource res[] = {
-               {
-                       .start = data->iobaseemmaprp,
-                       .end = data->iobaseemmaprp + data->iosizeemmaprp - 1,
-                       .flags = IORESOURCE_MEM,
-               }, {
-                       .start = data->irqemmaprp,
-                       .end = data->irqemmaprp,
-                       .flags = IORESOURCE_IRQ,
-               },
-       };
-       return imx_add_platform_device_dmamask("m2m-emmaprp", 0,
-                       res, 2, NULL, 0, DMA_BIT_MASK(32));
-}
arch/arm/plat-mxc/devices/platform-mx2-emma.c new file +41 -0
new file mode 100644
index 0000000..a51749a
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2010 Pengutronix
+ * Uwe Kleine-Koenig <[email protected]>
+ *
+ * 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.
+ */
+#include <mach/hardware.h>
+#include <mach/devices-common.h>
+
+#define imx_mx2_emmaprp_data_entry_single(soc)                         \
+       {                                                               \
+               .iobase = soc ## _EMMAPRP_BASE_ADDR,                    \
+               .iosize = SZ_32,                                        \
+               .irq = soc ## _INT_EMMAPRP,                             \
+       }
+
+#ifdef CONFIG_SOC_IMX27
+const struct imx_mx2_emma_data imx27_mx2_emmaprp_data __initconst =
+       imx_mx2_emmaprp_data_entry_single(MX27);
+#endif /* ifdef CONFIG_SOC_IMX27 */
+
+struct platform_device *__init imx_add_mx2_emmaprp(
+               const struct imx_mx2_emma_data *data)
+{
+       struct resource res[] = {
+               {
+                       .start = data->iobase,
+                       .end = data->iobase + data->iosize - 1,
+                       .flags = IORESOURCE_MEM,
+               }, {
+                       .start = data->irq,
+                       .end = data->irq,
+                       .flags = IORESOURCE_IRQ,
+               },
+       };
+       return imx_add_platform_device_dmamask("m2m-emmaprp", 0,
+                       res, 2, NULL, 0, DMA_BIT_MASK(32));
+}
+
arch/arm/plat-mxc/include/mach/devices-common.h +8 -1
index 762780c..2117072 100644
@@ -229,8 +229,15 @@ struct imx_mx2_camera_data {
  struct platform_device *__init imx_add_mx2_camera(
                 const struct imx_mx2_camera_data *data,
                 const struct mx2_camera_platform_data *pdata);
+
+
+struct imx_mx2_emma_data {
+       resource_size_t iobase;
+       resource_size_t iosize;
+       resource_size_t irq;
+};
  struct platform_device *__init imx_add_mx2_emmaprp(
-               const struct imx_mx2_camera_data *data);
+               const struct imx_mx2_emma_data *data);
 
Quoted 8 lines
Quoted 5 lines
arch/arm/plat-mxc/include/mach/devices-common.h +0 -1
  #include <mach/mxc_ehci.h>
  struct imx_mxc_ehci_data {
--

1.7.7.4

Regards.

Regards,
Ga?tan.

#3 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

Quoted 5 lines · Ga?tan Carlier

Hi Javier,
This is because I will send a patch to add support of eMMA-PP. eMMA-PrP is not only used for soc-camera. It can also be used as stand-alone driver and now to be able to use eMMA-PrP module, IMX_HAVE_PLATFORM_MX2_CAMERA must be set.

Do you mean the following stand-alone driver I submitted some time ago? Are you working on some improvements to it?
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=drivers/media/video/mx2_emmaprp.c;h=5f8a6f5b98f91c3af4e1bdbd06654e7b496d8d65;hb=HEAD

This driver can be used without applying your patch. Please take a look at the following patch which is pending to get merged in linux-media tree:
https://patchwork.kernel.org/patch/1347921/

Quoted 5 lines

And if I follow this logic, I have to put declaration of eMMA-PP with imx-fb and eMMA-PP can only be enabled if IMX_HAVE_PLATFORM_IMX_FB.
Of course, eMMA-PrP is almost always used with soc-camera and eMMA-PP with LCDC (imx-fb) but eMMA can be used to do HW accelarated colorspace conversion.

Agree, there is already one driver supporting this feature.

Quoted 2 lines

It is not a problem for me to keep eMMA-PrP and mx2-camera together. It was just to have a more independant eMMA driver.

I won't oppose to it, for me it is just aesthetic. However, you must do it properly without breaking existing boards such as Visstrim_M10.

Quoted 3 lines

For the Visstrim_M10 board, I don't think that it is needed to set IMX_HAVE_PLATFORM_MX2_EMMA because there is no reference to m2m-emmaprp and mx2-camera embeds handling of eMMA-PrP without using eMMA-PrP driver.

The following patch was sent to the list in Agust the 20th and will be merged in the linux-media tree. This patch does reference m2m-emmaprp in Visstrim_M10
https://patchwork.kernel.org/patch/1347921/

So, please, since you have to fix the wrong chunk and have to send a v2 anyways I strongly encourage you to add the flag IMX_HAVE_PLATFORM_MX2_EMMA to Visstrim_M10. This way nothing will be broken no matter your patch gets merged after or before mine.

Quoted 3 lines

It seems that eMMA-PrP embeded in mx2camera handles more case than stand-alone eMMA-PrP driver. Maybe eMMA-PrP driver needs some review to handle all In/Out image formats ?

eMMa-PrP is currently used in two drivers:

1. http://git.linuxtv.org/media_tree.git/blob/refs/heads/staging/for_v3.7:/drivers/media/platform/soc_camera/mx2_camera.c
Where it is used as a substitute to a DMA that moves data between the
CSI and RAM apart from providing more features like format conversion,
etc... This is a soc_camera video capture driver.

2. http://git.linuxtv.org/media_tree.git/blob/refs/heads/staging/for_v3.7:/drivers/media/platform/mx2_emmaprp.c
This is a stand-alone mem2mem v4l2 driver that can get YUYV 422 in the
input and transform it to YUV 420. Of course, the driver can be
extended to support more kinds of conversions.

Regards.

Signature · 7 lines
Javier Martin
Vista Silicon S.L.
CDTUC - FASE C - Oficina S-345
Avda de los Castros s/n
39005- Santander. Cantabria. Spain
+34 942 25 32 60
www.vista-silicon.com
#4 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

Quoted 10 lines · javier Martin
Quoted 5 lines · Ga?tan Carlier

Hi Javier,
This is because I will send a patch to add support of eMMA-PP. eMMA-PrP is not only used for soc-camera. It can also be used as stand-alone driver and now to be able to use eMMA-PrP module, IMX_HAVE_PLATFORM_MX2_CAMERA must be set.

Do you mean the following stand-alone driver I submitted some time ago? Are you working on some improvements to it?
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=drivers/media/video/mx2_emmaprp.c;h=5f8a6f5b98f91c3af4e1bdbd06654e7b496d8d65;hb=HEAD

yes

Quoted 13 lines

This driver can be used without applying your patch. Please take a look at the following patch which is pending to get merged in linux-media tree:
https://patchwork.kernel.org/patch/1347921/

Quoted 5 lines

And if I follow this logic, I have to put declaration of eMMA-PP with imx-fb and eMMA-PP can only be enabled if IMX_HAVE_PLATFORM_IMX_FB.
Of course, eMMA-PrP is almost always used with soc-camera and eMMA-PP with LCDC (imx-fb) but eMMA can be used to do HW accelarated colorspace conversion.

Quoted 7 lines

Agree, there is already one driver supporting this feature.

Quoted 2 lines

It is not a problem for me to keep eMMA-PrP and mx2-camera together. It was just to have a more independant eMMA driver.

I won't oppose to it, for me it is just aesthetic. However, you must do it properly without breaking existing boards such as Visstrim_M10.

Ok, I missed your patch in mailing-list and I work with linux-next (20120824) so I didn't know that my patch would break yours. Sorry.

Quoted 10 lines
Quoted 4 lines

For the Visstrim_M10 board, I don't think that it is needed to set IMX_HAVE_PLATFORM_MX2_EMMA because there is no reference to m2m-emmaprp and mx2-camera embeds handling of eMMA-PrP without using eMMA-PrP driver.

The following patch was sent to the list in Agust the 20th and will be merged in the linux-media tree. This patch does reference m2m-emmaprp in Visstrim_M10
https://patchwork.kernel.org/patch/1347921/

Quoted 4 lines

So, please, since you have to fix the wrong chunk and have to send a v2 anyways I strongly encourage you to add the flag IMX_HAVE_PLATFORM_MX2_EMMA to Visstrim_M10. This way nothing will be broken no matter your patch gets merged after or before mine.

What do you mean by "wrong chunk" ?

Quoted 12 lines
Quoted 4 lines

It seems that eMMA-PrP embeded in mx2camera handles more case than stand-alone eMMA-PrP driver. Maybe eMMA-PrP driver needs some review to handle all In/Out image formats ?

eMMa-PrP is currently used in two drivers:

1. http://git.linuxtv.org/media_tree.git/blob/refs/heads/staging/for_v3.7:/drivers/media/platform/soc_camera/mx2_camera.c
Where it is used as a substitute to a DMA that moves data between the
CSI and RAM apart from providing more features like format conversion,
etc... This is a soc_camera video capture driver.

Quoted 7 lines

2. http://git.linuxtv.org/media_tree.git/blob/refs/heads/staging/for_v3.7:/drivers/media/platform/mx2_emmaprp.c
This is a stand-alone mem2mem v4l2 driver that can get YUYV 422 in the
input and transform it to YUV 420. Of course, the driver can be
extended to support more kinds of conversions.

Regards.

Regards,
Ga?tan.

#5 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

Quoted 62 lines · Ga?tan Carlier
Quoted 13 lines · javier Martin
Quoted 9 lines · Ga?tan Carlier

Hi Javier,
This is because I will send a patch to add support of eMMA-PP. eMMA-PrP is
not only used for soc-camera. It can also be used as stand-alone driver and
now to be able to use eMMA-PrP module, IMX_HAVE_PLATFORM_MX2_CAMERA must be
set.

Quoted 4 lines

Do you mean the following stand-alone driver I submitted some time ago? Are you working on some improvements to it?

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=drivers/media/video/mx2_emmaprp.c;h=5f8a6f5b98f91c3af4e1bdbd06654e7b496d8d65;hb=HEAD

yes

Quoted 18 lines

This driver can be used without applying your patch. Please take a look at the following patch which is pending to get merged in linux-media tree:
https://patchwork.kernel.org/patch/1347921/

Quoted 7 lines

And if I follow this logic, I have to put declaration of eMMA-PP with imx-fb
and eMMA-PP can only be enabled if IMX_HAVE_PLATFORM_IMX_FB. Of course, eMMA-PrP is almost always used with soc-camera and eMMA-PP with
LCDC (imx-fb) but eMMA can be used to do HW accelarated colorspace conversion.

Agree, there is already one driver supporting this feature.

Quoted 7 lines
Quoted 3 lines

It is not a problem for me to keep eMMA-PrP and mx2-camera together. It was
just to have a more independant eMMA driver.

I won't oppose to it, for me it is just aesthetic. However, you must do it properly without breaking existing boards such as Visstrim_M10.

Ok, I missed your patch in mailing-list and I work with linux-next (20120824) so I didn't know that my patch would break yours. Sorry.

Quoted 12 lines
Quoted 5 lines

For the Visstrim_M10 board, I don't think that it is needed to set IMX_HAVE_PLATFORM_MX2_EMMA because there is no reference to m2m-emmaprp and
mx2-camera embeds handling of eMMA-PrP without using eMMA-PrP driver.

The following patch was sent to the list in Agust the 20th and will be merged in the linux-media tree. This patch does reference m2m-emmaprp in Visstrim_M10
https://patchwork.kernel.org/patch/1347921/

Quoted 6 lines
Quoted 4 lines

So, please, since you have to fix the wrong chunk and have to send a v2 anyways I strongly encourage you to add the flag IMX_HAVE_PLATFORM_MX2_EMMA to Visstrim_M10. This way nothing will be broken no matter your patch gets merged after or before mine.

What do you mean by "wrong chunk" ?

Your patch does not apply cleanly to linux-next due to the following chunk:

diff --git a/arch/arm/mach-imx/devices-imx27.h
b/arch/arm/mach-imx/devices-imx27.h
index 0482293..d8eb4a0 100644

arch/arm/mach-imx/devices-imx27.h +0 -0
@@ -54,8 +54,10 @@ extern const struct imx_imx_uart_1irq_data

imx27_imx_uart_data[];
extern const struct imx_mx2_camera_data imx27_mx2_camera_data;

 #define imx27_add_mx2_camera(pdata)    \
        imx_add_mx2_camera(&imx27_mx2_camera_data, pdata)

+
+extern const struct imx_mx2_emma_data imx27_mx2_emmaprp_data;
#define imx27_add_mx2_emmaprp() \
- imx_add_mx2_emmaprp(&imx27_mx2_camera_data)
+ imx_add_mx2_emmaprp(&imx27_mx2_emmaprp_data)

Quoted 24 lines
Quoted 14 lines
Quoted 4 lines

It seems that eMMA-PrP embeded in mx2camera handles more case than stand-alone eMMA-PrP driver. Maybe eMMA-PrP driver needs some review to handle all In/Out image formats ?

eMMa-PrP is currently used in two drivers:

1.
http://git.linuxtv.org/media_tree.git/blob/refs/heads/staging/for_v3.7:/drivers/media/platform/soc_camera/mx2_camera.c
Where it is used as a substitute to a DMA that moves data between the CSI and RAM apart from providing more features like format conversion, etc... This is a soc_camera video capture driver.

Quoted 8 lines

2.
http://git.linuxtv.org/media_tree.git/blob/refs/heads/staging/for_v3.7:/drivers/media/platform/mx2_emmaprp.c
This is a stand-alone mem2mem v4l2 driver that can get YUYV 422 in the input and transform it to YUV 420. Of course, the driver can be extended to support more kinds of conversions.

Regards.

Regards,
Ga?tan.

Signature · 7 lines
Javier Martin
Vista Silicon S.L.
CDTUC - FASE C - Oficina S-345
Avda de los Castros s/n
39005- Santander. Cantabria. Spain
+34 942 25 32 60
www.vista-silicon.com
#6 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

Quoted 80 lines · javier Martin
Quoted 62 lines · Ga?tan Carlier
Quoted 13 lines · javier Martin
Quoted 9 lines · Ga?tan Carlier

Hi Javier,
This is because I will send a patch to add support of eMMA-PP. eMMA-PrP is
not only used for soc-camera. It can also be used as stand-alone driver and
now to be able to use eMMA-PrP module, IMX_HAVE_PLATFORM_MX2_CAMERA must be
set.

Quoted 4 lines

Do you mean the following stand-alone driver I submitted some time ago? Are you working on some improvements to it?

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=drivers/media/video/mx2_emmaprp.c;h=5f8a6f5b98f91c3af4e1bdbd06654e7b496d8d65;hb=HEAD

yes

Quoted 18 lines

This driver can be used without applying your patch. Please take a look at the following patch which is pending to get merged in linux-media tree:
https://patchwork.kernel.org/patch/1347921/

Quoted 7 lines

And if I follow this logic, I have to put declaration of eMMA-PP with imx-fb
and eMMA-PP can only be enabled if IMX_HAVE_PLATFORM_IMX_FB. Of course, eMMA-PrP is almost always used with soc-camera and eMMA-PP with
LCDC (imx-fb) but eMMA can be used to do HW accelarated colorspace conversion.

Agree, there is already one driver supporting this feature.

Quoted 7 lines
Quoted 3 lines

It is not a problem for me to keep eMMA-PrP and mx2-camera together. It was
just to have a more independant eMMA driver.

I won't oppose to it, for me it is just aesthetic. However, you must do it properly without breaking existing boards such as Visstrim_M10.

Ok, I missed your patch in mailing-list and I work with linux-next (20120824) so I didn't know that my patch would break yours. Sorry.

Quoted 12 lines
Quoted 5 lines

For the Visstrim_M10 board, I don't think that it is needed to set IMX_HAVE_PLATFORM_MX2_EMMA because there is no reference to m2m-emmaprp and
mx2-camera embeds handling of eMMA-PrP without using eMMA-PrP driver.

The following patch was sent to the list in Agust the 20th and will be merged in the linux-media tree. This patch does reference m2m-emmaprp in Visstrim_M10
https://patchwork.kernel.org/patch/1347921/

Quoted 6 lines
Quoted 4 lines

So, please, since you have to fix the wrong chunk and have to send a v2 anyways I strongly encourage you to add the flag IMX_HAVE_PLATFORM_MX2_EMMA to Visstrim_M10. This way nothing will be broken no matter your patch gets merged after or before mine.

What do you mean by "wrong chunk" ?

Your patch does not apply cleanly to linux-next due to the following chunk:

diff --git a/arch/arm/mach-imx/devices-imx27.h
b/arch/arm/mach-imx/devices-imx27.h
index 0482293..d8eb4a0 100644

arch/arm/mach-imx/devices-imx27.h +0 -0
@@ -54,8 +54,10 @@ extern const struct imx_imx_uart_1irq_data
 imx27_imx_uart_data[];

arch/arm/mach-imx/devices-imx27.h extern const struct imx_imx_uart_1irq_data · line 63

Quoted 10 lines
arch/arm/mach-imx/devices-imx27.h +3 -1
  extern const struct imx_mx2_camera_data imx27_mx2_camera_data;
  #define imx27_add_mx2_camera(pdata)    \
         imx_add_mx2_camera(&imx27_mx2_camera_data, pdata)
+
+extern const struct imx_mx2_emma_data imx27_mx2_emmaprp_data;
  #define imx27_add_mx2_emmaprp()        \
-       imx_add_mx2_emmaprp(&imx27_mx2_camera_data)
+       imx_add_mx2_emmaprp(&imx27_mx2_emmaprp_data)
 
 

When I apply the patch (I save my mail and apply it), there is no conflict/reject. Tested on linux-next-20120824 and linux-next-20120905.

Quoted 27 lines
Quoted 24 lines
Quoted 14 lines
Quoted 4 lines

It seems that eMMA-PrP embeded in mx2camera handles more case than stand-alone eMMA-PrP driver. Maybe eMMA-PrP driver needs some review to handle all In/Out image formats ?

eMMa-PrP is currently used in two drivers:

1.
http://git.linuxtv.org/media_tree.git/blob/refs/heads/staging/for_v3.7:/drivers/media/platform/soc_camera/mx2_camera.c
Where it is used as a substitute to a DMA that moves data between the CSI and RAM apart from providing more features like format conversion, etc... This is a soc_camera video capture driver.

Quoted 8 lines

2.
http://git.linuxtv.org/media_tree.git/blob/refs/heads/staging/for_v3.7:/drivers/media/platform/mx2_emmaprp.c
This is a stand-alone mem2mem v4l2 driver that can get YUYV 422 in the input and transform it to YUV 420. Of course, the driver can be extended to support more kinds of conversions.

Regards.

Regards,
Ga?tan.

#7 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

Quoted 100 lines · Ga?tan Carlier
Quoted 99 lines · javier Martin
Quoted 73 lines · Ga?tan Carlier
Quoted 17 lines · javier Martin
Quoted 11 lines · Ga?tan Carlier

Hi Javier,
This is because I will send a patch to add support of eMMA-PP. eMMA-PrP is
not only used for soc-camera. It can also be used as stand-alone driver and
now to be able to use eMMA-PrP module, IMX_HAVE_PLATFORM_MX2_CAMERA must
be
set.

Quoted 5 lines

Do you mean the following stand-alone driver I submitted some time ago? Are you working on some improvements to it?

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob;f=drivers/media/video/mx2_emmaprp.c;h=5f8a6f5b98f91c3af4e1bdbd06654e7b496d8d65;hb=HEAD

yes

Quoted 19 lines

This driver can be used without applying your patch. Please take a look at the following patch which is pending to get merged in linux-media tree:
https://patchwork.kernel.org/patch/1347921/

Quoted 7 lines

And if I follow this logic, I have to put declaration of eMMA-PP with imx-fb
and eMMA-PP can only be enabled if IMX_HAVE_PLATFORM_IMX_FB. Of course, eMMA-PrP is almost always used with soc-camera and eMMA-PP with
LCDC (imx-fb) but eMMA can be used to do HW accelarated colorspace conversion.

Agree, there is already one driver supporting this feature.

Quoted 8 lines
Quoted 3 lines

It is not a problem for me to keep eMMA-PrP and mx2-camera together. It was
just to have a more independant eMMA driver.

I won't oppose to it, for me it is just aesthetic. However, you must do it properly without breaking existing boards such as Visstrim_M10.

Ok, I missed your patch in mailing-list and I work with linux-next (20120824) so I didn't know that my patch would break yours. Sorry.

Quoted 13 lines
Quoted 5 lines

For the Visstrim_M10 board, I don't think that it is needed to set IMX_HAVE_PLATFORM_MX2_EMMA because there is no reference to m2m-emmaprp and
mx2-camera embeds handling of eMMA-PrP without using eMMA-PrP driver.

The following patch was sent to the list in Agust the 20th and will be merged in the linux-media tree. This patch does reference m2m-emmaprp in Visstrim_M10
https://patchwork.kernel.org/patch/1347921/

Quoted 7 lines
Quoted 4 lines

So, please, since you have to fix the wrong chunk and have to send a v2 anyways I strongly encourage you to add the flag IMX_HAVE_PLATFORM_MX2_EMMA to Visstrim_M10. This way nothing will be broken no matter your patch gets merged after or before mine.

What do you mean by "wrong chunk" ?

Your patch does not apply cleanly to linux-next due to the following chunk:

diff --git a/arch/arm/mach-imx/devices-imx27.h
b/arch/arm/mach-imx/devices-imx27.h
index 0482293..d8eb4a0 100644

arch/arm/mach-imx/devices-imx27.h +1 -0
@@ -54,8 +54,10 @@ extern const struct imx_imx_uart_1irq_data
 imx27_imx_uart_data[];
  extern const struct imx_mx2_camera_data imx27_mx2_camera_data;
  #define imx27_add_mx2_camera(pdata)    \
         imx_add_mx2_camera(&imx27_mx2_camera_data, pdata)
+
Quoted 8 lines

arch/arm/mach-imx/devices-imx27.h extern const struct imx_imx_uart_1irq_data · line 63

Quoted 6 lines
arch/arm/mach-imx/devices-imx27.h +2 -1
+extern const struct imx_mx2_emma_data imx27_mx2_emmaprp_data;
  #define imx27_add_mx2_emmaprp()        \
-       imx_add_mx2_emmaprp(&imx27_mx2_camera_data)
+       imx_add_mx2_emmaprp(&imx27_mx2_emmaprp_data)
 
 

When I apply the patch (I save my mail and apply it), there is no conflict/reject. Tested on linux-next-20120824 and linux-next-20120905.

Ok, this is my fault then, sorry.

If you resend the patch adding the new flag to Visstrim_SM10 it's fine with me.

Regards.

Signature · 7 lines
Javier Martin
Vista Silicon S.L.
CDTUC - FASE C - Oficina S-345
Avda de los Castros s/n
39005- Santander. Cantabria. Spain
+34 942 25 32 60
www.vista-silicon.com
reviewer
#8 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

In reply to Gaëtan Carlier

Javier/Ga?tan,

Quoted 2 lines · Ga?tan Carlier

When I apply the patch (I save my mail and apply it), there is no conflict/reject. Tested on linux-next-20120824 and linux-next-20120905.

Can you please confirm whether you are able to run mx2_camera on linux-next-20120905?

Tried it on my mx27pdk (and mx31pdk also) and the ov2640 is not detected.

Regards,

Fabio Estevam

#9 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

Quoted 9 lines · Fabio Estevam

Javier/Ga?tan,

Quoted 2 lines · Ga?tan Carlier

When I apply the patch (I save my mail and apply it), there is no conflict/reject. Tested on linux-next-20120824 and linux-next-20120905.

Can you please confirm whether you are able to run mx2_camera on linux-next-20120905?

With or without my patch ? I have burnt out my ov2640 while previous experimentation so it is hard for me to test that and I have to write driver for MT9V111 to be able to test soc-camera on Kernel 3.x.

Quoted 7 lines

Tried it on my mx27pdk (and mx31pdk also) and the ov2640 is not detected.

Regards,

Fabio Estevam

Regards,
Ga?tan Carlier

reviewer
#10 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

Quoted 1 line · Ga?tan Carlier

With or without my patch ? I have burnt out my ov2640 while previous

Without your patch. Just running a clean linux-next-20120905.

Quoted 2 lines

experimentation so it is hard for me to test that and I have to write driver for MT9V111 to be able to test soc-camera on Kernel 3.x.

Write a driver? There is already one: drivers/media/i2c/mt9v011.c

Regards,

Fabio Estevam

#11 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

Quoted 5 lines · Fabio Estevam
Quoted 1 line · Ga?tan Carlier

With or without my patch ? I have burnt out my ov2640 while previous

Without your patch. Just running a clean linux-next-20120905.

I also notice a difference between previous release. Before, if CMOS was not scanned on I2C, soc-camera failed to init.
With this release, soc-camera driver loads and create dev node even when nothing is connected on I2C bus.

Quoted 5 lines
Quoted 3 lines

experimentation so it is hard for me to test that and I have to write driver for MT9V111 to be able to test soc-camera on Kernel 3.x.

Write a driver? There is already one: drivers/media/i2c/mt9v011.c

MT9V011 is not compatible with MT9V111. MT9V111 uses two address spaces for register : Sensor Core registers and IFP registers. Another MT9* driver works with two address spaces but this is for a HD sensor and the function of registers is different.

Quoted 5 lines

Regards,

Fabio Estevam

Regards,
Ga?tan Carlier.

reviewer
#12 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

Quoted 4 lines · Ga?tan Carlier

I also notice a difference between previous release. Before, if CMOS was not scanned on I2C, soc-camera failed to init.
With this release, soc-camera driver loads and create dev node even when nothing is connected on I2C bus.

Sylwester suggested me this patch and it fixed the issue:
http://git.linuxtv.org/snawrocki/media.git/commitdiff/458b9b5ab8cb970887c9d1f1fddf88399b2d9ef2

Now ov2640 probes correctly on mx31pdk, but on mx27pdk I have:

soc-camera-pdrv soc-camera-pdrv.0: Probing soc-camera-pdrv.0 mx2-camera mx2-camera.0: Camera driver attached to camera 0 ov2640 0-0030: Product ID error fb:fb
mx2-camera mx2-camera.0: Camera driver detached from camera 0 mx2-camera mx2-camera.0: MX2 Camera (CSI) driver probed, clock
frequency: 66500000

This works fine in 3.4.10 and I suspect this problem is due to the imx clock conversion as the csi clock frequency looks incorrect.

Javier,

Can you get your camera working on visstrim board using linux-next or 3.6-rc4? Any patches I am missing?

Regards,

Fabio Estevam

#13 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

Hi,

Quoted 10 lines · Fabio Estevam
Quoted 4 lines · Ga?tan Carlier

I also notice a difference between previous release. Before, if CMOS was not scanned on I2C, soc-camera failed to init.
With this release, soc-camera driver loads and create dev node even when nothing is connected on I2C bus.

Sylwester suggested me this patch and it fixed the issue:
http://git.linuxtv.org/snawrocki/media.git/commitdiff/458b9b5ab8cb970887c9d1f1fddf88399b2d9ef2

Quoted 9 lines

Now ov2640 probes correctly on mx31pdk, but on mx27pdk I have:

soc-camera-pdrv soc-camera-pdrv.0: Probing soc-camera-pdrv.0 mx2-camera mx2-camera.0: Camera driver attached to camera 0 ov2640 0-0030: Product ID error fb:fb
mx2-camera mx2-camera.0: Camera driver detached from camera 0 mx2-camera mx2-camera.0: MX2 Camera (CSI) driver probed, clock
frequency: 66500000

I notice that before I damaged my ov2640 camera.

Quoted 2 lines

This works fine in 3.4.10 and I suspect this problem is due to the imx clock conversion as the csi clock frequency looks incorrect.

This is maybe related to the problem that I have already noticed here :
http://mailman.alsa-project.org/pipermail/alsa-devel/2012-August/054594.html
If MMC is disabled, Sound and coda (not sure anymore, I will check it tomorrow) don't work correctly.

Quoted 10 lines

Javier,

Can you get your camera working on visstrim board using linux-next or 3.6-rc4? Any patches I am missing?

Regards,

Fabio Estevam

Regards,
Ga?tan Carlier.

reviewer
#14 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

Quoted 4 lines · Ga?tan Carlier

This is maybe related to the problem that I have already noticed here :
http://mailman.alsa-project.org/pipermail/alsa-devel/2012-August/054594.html
If MMC is disabled, Sound and coda (not sure anymore, I will check it tomorrow) don't work correctly.

Yes, just reproduced the same here: deselected mmc driver and now audio does not work.

We need to review the mx27 clock tree.

Regards,

Fabio Estevam

reviewer
#15 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

In reply to Fabio Estevam

Hi Javier,

Quoted 12 lines · Fabio Estevam

Sylwester suggested me this patch and it fixed the issue:
http://git.linuxtv.org/snawrocki/media.git/commitdiff/458b9b5ab8cb970887c9d1f1fddf88399b2d9ef2

Now ov2640 probes correctly on mx31pdk, but on mx27pdk I have:

soc-camera-pdrv soc-camera-pdrv.0: Probing soc-camera-pdrv.0 mx2-camera mx2-camera.0: Camera driver attached to camera 0 ov2640 0-0030: Product ID error fb:fb
mx2-camera mx2-camera.0: Camera driver detached from camera 0 mx2-camera mx2-camera.0: MX2 Camera (CSI) driver probed, clock
frequency: 66500000

Quoted 7 lines

This works fine in 3.4.10 and I suspect this problem is due to the imx clock conversion as the csi clock frequency looks incorrect.

Javier,

Can you get your camera working on visstrim board using linux-next or 3.6-rc4? Any patches I am missing?

Could you please confirm if your camera works with the latest kernel?

If so, could you please your log below?

Not sure if the clock frequency below is correct.

Quoted 6 lines

soc-camera-pdrv soc-camera-pdrv.0: Probing soc-camera-pdrv.0 mx2-camera mx2-camera.0: Camera driver attached to camera 0 ov2640 0-0030: Product ID error fb:fb
mx2-camera mx2-camera.0: Camera driver detached from camera 0 mx2-camera mx2-camera.0: MX2 Camera (CSI) driver probed, clock
frequency: 66500000

Thanks,

Fabio Estevam

#16 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

Hi Fabio,

Quoted 19 lines · Fabio Estevam

Hi Javier,

Quoted 15 lines · Fabio Estevam

Sylwester suggested me this patch and it fixed the issue:
http://git.linuxtv.org/snawrocki/media.git/commitdiff/458b9b5ab8cb970887c9d1f1fddf88399b2d9ef2

Now ov2640 probes correctly on mx31pdk, but on mx27pdk I have:

soc-camera-pdrv soc-camera-pdrv.0: Probing soc-camera-pdrv.0 mx2-camera mx2-camera.0: Camera driver attached to camera 0 ov2640 0-0030: Product ID error fb:fb
mx2-camera mx2-camera.0: Camera driver detached from camera 0 mx2-camera mx2-camera.0: MX2 Camera (CSI) driver probed, clock
frequency: 66500000

This works fine in 3.4.10 and I suspect this problem is due to the imx clock conversion as the csi clock frequency looks incorrect.

Quoted 15 lines
Quoted 2 lines

Javier,

Could you please confirm if your camera works with the latest kernel?

If so, could you please your log below?

Not sure if the clock frequency below is correct.

Quoted 6 lines

soc-camera-pdrv soc-camera-pdrv.0: Probing soc-camera-pdrv.0 mx2-camera mx2-camera.0: Camera driver attached to camera 0 ov2640 0-0030: Product ID error fb:fb
mx2-camera mx2-camera.0: Camera driver detached from camera 0 mx2-camera mx2-camera.0: MX2 Camera (CSI) driver probed, clock
frequency: 66500000

No, it isn't. Kernel 3.6 works properly in our Visstrim M10 board and the CSI clock frequency is the same as yours:

soc-camera-pdrv soc-camera-pdrv.0: Probing soc-camera-pdrv.0 mx2-camera mx2-camera.0: Camera driver attached to camera 0 ov7670 0-0021: chip found @ 0x42 (imx-i2c) mx2-camera mx2-camera.0: Invalid format code #1: 4098 mx2-camera mx2-camera.0: Invalid format code #1: 4098 mx2-camera mx2-camera.0: Camera driver detached from camera 0 mx2-camera mx2-camera.0: MX2 Camera (CSI) driver probed, clock
frequency: 66500000

Signature · 7 lines
Javier Martin
Vista Silicon S.L.
CDTUC - FASE C - Oficina S-345
Avda de los Castros s/n
39005- Santander. Cantabria. Spain
+34 942 25 32 60
www.vista-silicon.com
reviewer
#17 lore raw

PATCH 1/1 ARM : i.MX27 : split code for allocation of ressources of camera and eMMA

Hi Javier,

Quoted 2 lines · javier Martin

No, it isn't. Kernel 3.6 works properly in our Visstrim M10 board and the CSI clock frequency is the same as yours:

I managed to fix it. Now the CSI clock is the same as in 3.4 kernel and ov2640 probes successfully.

Just submitted the patches.

Regards,

Fabio Estevam