Re: [PATCH V2] V4L/DVB: v4l: Add driver for Marvell PXA910 CCIC
On Tue, 7 Jun 2011, Kassey Lee wrote: Guennadi thanks for your comments very much! I will update the V3 patch later. On Fri, Jun 3, 2011 at 6:22 PM, Guennadi Liakhovetski g.liakhovet...@gmx.de wrote: Ok, this will be converted to use a common cafe code, but I'll comment on this version anyway, for your future reference. On Wed, 1 Jun 2011, Kassey Lee wrote: [snip] Did you remove your pass-through code here on purpose or because you misunderstood my comment? I meant, that in your original code Sorry, I misunderstood your comment, do you mean remove the wrong comment only ? Yes. + /* Generic pass-through */ + formats++; + if (xlate) { + xlate-host_fmt = fmt; + xlate-code = code; + xlate++; + } the comment generic was wrong, because in generic case you run on default case above and bail out. However, that block allowed you to use the standard V4L2_MBUS_FMT_YUYV8_2X8 - V4L2_PIX_FMT_YUYV conversion, or is it not supported by your hardware / driver? it is supported. Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH V2] V4L/DVB: v4l: Add driver for Marvell PXA910 CCIC
response for Guennadi comments. thanks On Tue, Jun 7, 2011 at 1:42 PM, Kassey Lee kassey1...@gmail.com wrote: Guennadi thanks for your comments very much! I will update the V3 patch later. On Fri, Jun 3, 2011 at 6:22 PM, Guennadi Liakhovetski g.liakhovet...@gmx.de wrote: Ok, this will be converted to use a common cafe code, but I'll comment on this version anyway, for your future reference. On Wed, 1 Jun 2011, Kassey Lee wrote: This driver exports a video device node per each CCIC (CMOS Camera Interface Controller) device contained in Marvell Mobile PXA910 SoC The driver is based on soc-camera + videobuf2 frame work, and only USERPTR is supported. Signed-off-by: Kassey Lee y...@marvell.com --- arch/arm/mach-mmp/include/mach/camera.h | 37 ++ drivers/media/video/Kconfig | 7 + drivers/media/video/Makefile | 1 + drivers/media/video/mv_camera.c | 1067 +++ 4 files changed, 1112 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-mmp/include/mach/camera.h create mode 100644 drivers/media/video/mv_camera.c diff --git a/arch/arm/mach-mmp/include/mach/camera.h b/arch/arm/mach-mmp/include/mach/camera.h new file mode 100644 index 000..ff8cde1 --- /dev/null +++ b/arch/arm/mach-mmp/include/mach/camera.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2011, Marvell International Ltd. + * Kassey Lee y...@marvell.com + * Angela Wan j...@marvell.com + * Lei Wen lei...@marvell.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + */ + +#ifndef __ASM_ARCH_CAMERA_H__ +#define __ASM_ARCH_CAMERA_H__ + +#define MV_CAMERA_MASTER 1 +#define MV_CAMERA_DATAWIDTH_8 8 +#define MV_CAMERA_DATAWIDTH_10 0x20 +#define MV_CAMERA_PCLK_EN 0x40 +#define MV_CAMERA_MCLK_EN 0x80 +#define MV_CAMERA_PCP 0x100 +#define MV_CAMERA_HSP 0x200 +#define MV_CAMERA_VSP 0x400 + +struct mv_cam_pdata { + int dphy[3]; + unsigned long flags; + int dma_burst; + int mclk_min; + int mclk_src; + int (*init_clk) (struct device *dev, int init); + void (*enable_clk) (struct device *dev, int on); + int (*get_mclk_src) (int src); +}; + +#endif diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig index 3be180b..18ab3a5 100644 --- a/drivers/media/video/Kconfig +++ b/drivers/media/video/Kconfig @@ -891,6 +891,13 @@ config VIDEO_MX3 ---help--- This is a v4l2 driver for the i.MX3x Camera Sensor Interface +config VIDEO_MV_CCIC + tristate Marvell CMOS Camera Interface Controller driver + depends on VIDEO_DEV CPU_PXA910 SOC_CAMERA + select VIDEOBUF2_DMA_CONTIG + ---help--- + This is a v4l2 driver for the Marvell CCIC Interface + config VIDEO_PXA27x tristate PXA27x Quick Capture Interface driver depends on VIDEO_DEV PXA27x SOC_CAMERA diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile index 9519160..e3251c3 100644 --- a/drivers/media/video/Makefile +++ b/drivers/media/video/Makefile @@ -161,6 +161,7 @@ obj-$(CONFIG_SOC_CAMERA_PLATFORM) += soc_camera_platform.o obj-$(CONFIG_VIDEO_MX1) += mx1_camera.o obj-$(CONFIG_VIDEO_MX2) += mx2_camera.o obj-$(CONFIG_VIDEO_MX3) += mx3_camera.o +obj-$(CONFIG_VIDEO_MV_CCIC) += mv_camera.o Ok, I still _think_, mv_camera is too generic a name for this driver, but it's up to you, really, just my thought. we has mv_gadget(usb), that is Marvell's preferred name. thanks obj-$(CONFIG_VIDEO_PXA27x) += pxa_camera.o obj-$(CONFIG_VIDEO_SH_MOBILE_CSI2) += sh_mobile_csi2.o obj-$(CONFIG_VIDEO_SH_MOBILE_CEU) += sh_mobile_ceu_camera.o diff --git a/drivers/media/video/mv_camera.c b/drivers/media/video/mv_camera.c new file mode 100644 index 000..f19c43d --- /dev/null +++ b/drivers/media/video/mv_camera.c @@ -0,0 +1,1067 @@ +/* + * V4L2 Driver for Marvell Mobile SoC PXA910 CCIC + * (CMOS Capture Interface Controller) + * + * Copyright (C) 2011, Marvell International Ltd. + * Kassey Lee y...@marvell.com + * Angela Wan j...@marvell.com + * Lei Wen lei...@marvell.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + */ + +#include linux/clk.h +#include linux/delay.h +#include linux/device.h +#include linux/dma-mapping.h +#include linux/errno.h +#include linux/fs.h +#include linux/init.h +#include linux/interrupt.h +#include linux/io.h
Re: [PATCH V2] V4L/DVB: v4l: Add driver for Marvell PXA910 CCIC
Guennadi thanks for your comments very much! I will update the V3 patch later. On Fri, Jun 3, 2011 at 6:22 PM, Guennadi Liakhovetski g.liakhovet...@gmx.de wrote: Ok, this will be converted to use a common cafe code, but I'll comment on this version anyway, for your future reference. On Wed, 1 Jun 2011, Kassey Lee wrote: This driver exports a video device node per each CCIC (CMOS Camera Interface Controller) device contained in Marvell Mobile PXA910 SoC The driver is based on soc-camera + videobuf2 frame work, and only USERPTR is supported. Signed-off-by: Kassey Lee y...@marvell.com --- arch/arm/mach-mmp/include/mach/camera.h | 37 ++ drivers/media/video/Kconfig | 7 + drivers/media/video/Makefile | 1 + drivers/media/video/mv_camera.c | 1067 +++ 4 files changed, 1112 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-mmp/include/mach/camera.h create mode 100644 drivers/media/video/mv_camera.c diff --git a/arch/arm/mach-mmp/include/mach/camera.h b/arch/arm/mach-mmp/include/mach/camera.h new file mode 100644 index 000..ff8cde1 --- /dev/null +++ b/arch/arm/mach-mmp/include/mach/camera.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2011, Marvell International Ltd. + * Kassey Lee y...@marvell.com + * Angela Wan j...@marvell.com + * Lei Wen lei...@marvell.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + */ + +#ifndef __ASM_ARCH_CAMERA_H__ +#define __ASM_ARCH_CAMERA_H__ + +#define MV_CAMERA_MASTER 1 +#define MV_CAMERA_DATAWIDTH_8 8 +#define MV_CAMERA_DATAWIDTH_10 0x20 +#define MV_CAMERA_PCLK_EN 0x40 +#define MV_CAMERA_MCLK_EN 0x80 +#define MV_CAMERA_PCP 0x100 +#define MV_CAMERA_HSP 0x200 +#define MV_CAMERA_VSP 0x400 + +struct mv_cam_pdata { + int dphy[3]; + unsigned long flags; + int dma_burst; + int mclk_min; + int mclk_src; + int (*init_clk) (struct device *dev, int init); + void (*enable_clk) (struct device *dev, int on); + int (*get_mclk_src) (int src); +}; + +#endif diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig index 3be180b..18ab3a5 100644 --- a/drivers/media/video/Kconfig +++ b/drivers/media/video/Kconfig @@ -891,6 +891,13 @@ config VIDEO_MX3 ---help--- This is a v4l2 driver for the i.MX3x Camera Sensor Interface +config VIDEO_MV_CCIC + tristate Marvell CMOS Camera Interface Controller driver + depends on VIDEO_DEV CPU_PXA910 SOC_CAMERA + select VIDEOBUF2_DMA_CONTIG + ---help--- + This is a v4l2 driver for the Marvell CCIC Interface + config VIDEO_PXA27x tristate PXA27x Quick Capture Interface driver depends on VIDEO_DEV PXA27x SOC_CAMERA diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile index 9519160..e3251c3 100644 --- a/drivers/media/video/Makefile +++ b/drivers/media/video/Makefile @@ -161,6 +161,7 @@ obj-$(CONFIG_SOC_CAMERA_PLATFORM) += soc_camera_platform.o obj-$(CONFIG_VIDEO_MX1) += mx1_camera.o obj-$(CONFIG_VIDEO_MX2) += mx2_camera.o obj-$(CONFIG_VIDEO_MX3) += mx3_camera.o +obj-$(CONFIG_VIDEO_MV_CCIC) += mv_camera.o Ok, I still _think_, mv_camera is too generic a name for this driver, but it's up to you, really, just my thought. we has mv_gadget(usb), that is Marvell's preferred name. thanks obj-$(CONFIG_VIDEO_PXA27x) += pxa_camera.o obj-$(CONFIG_VIDEO_SH_MOBILE_CSI2) += sh_mobile_csi2.o obj-$(CONFIG_VIDEO_SH_MOBILE_CEU) += sh_mobile_ceu_camera.o diff --git a/drivers/media/video/mv_camera.c b/drivers/media/video/mv_camera.c new file mode 100644 index 000..f19c43d --- /dev/null +++ b/drivers/media/video/mv_camera.c @@ -0,0 +1,1067 @@ +/* + * V4L2 Driver for Marvell Mobile SoC PXA910 CCIC + * (CMOS Capture Interface Controller) + * + * Copyright (C) 2011, Marvell International Ltd. + * Kassey Lee y...@marvell.com + * Angela Wan j...@marvell.com + * Lei Wen lei...@marvell.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + */ + +#include linux/clk.h +#include linux/delay.h +#include linux/device.h +#include linux/dma-mapping.h +#include linux/errno.h +#include linux/fs.h +#include linux/init.h +#include linux/interrupt.h +#include linux/io.h +#include linux/kernel.h +#include linux/mm.h +#include linux/module.h +#include linux/platform_device.h +#include
Re: [PATCH V2] V4L/DVB: v4l: Add driver for Marvell PXA910 CCIC
Ok, this will be converted to use a common cafe code, but I'll comment on this version anyway, for your future reference. On Wed, 1 Jun 2011, Kassey Lee wrote: This driver exports a video device node per each CCIC (CMOS Camera Interface Controller) device contained in Marvell Mobile PXA910 SoC The driver is based on soc-camera + videobuf2 frame work, and only USERPTR is supported. Signed-off-by: Kassey Lee y...@marvell.com --- arch/arm/mach-mmp/include/mach/camera.h | 37 ++ drivers/media/video/Kconfig |7 + drivers/media/video/Makefile|1 + drivers/media/video/mv_camera.c | 1067 +++ 4 files changed, 1112 insertions(+), 0 deletions(-) create mode 100644 arch/arm/mach-mmp/include/mach/camera.h create mode 100644 drivers/media/video/mv_camera.c diff --git a/arch/arm/mach-mmp/include/mach/camera.h b/arch/arm/mach-mmp/include/mach/camera.h new file mode 100644 index 000..ff8cde1 --- /dev/null +++ b/arch/arm/mach-mmp/include/mach/camera.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2011, Marvell International Ltd. + * Kassey Lee y...@marvell.com + * Angela Wan j...@marvell.com + * Lei Wen lei...@marvell.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + */ + +#ifndef __ASM_ARCH_CAMERA_H__ +#define __ASM_ARCH_CAMERA_H__ + +#define MV_CAMERA_MASTER 1 +#define MV_CAMERA_DATAWIDTH_8 8 +#define MV_CAMERA_DATAWIDTH_10 0x20 +#define MV_CAMERA_PCLK_EN 0x40 +#define MV_CAMERA_MCLK_EN 0x80 +#define MV_CAMERA_PCP 0x100 +#define MV_CAMERA_HSP 0x200 +#define MV_CAMERA_VSP 0x400 + +struct mv_cam_pdata { + int dphy[3]; + unsigned long flags; + int dma_burst; + int mclk_min; + int mclk_src; + int (*init_clk) (struct device *dev, int init); + void (*enable_clk) (struct device *dev, int on); + int (*get_mclk_src) (int src); +}; + +#endif diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig index 3be180b..18ab3a5 100644 --- a/drivers/media/video/Kconfig +++ b/drivers/media/video/Kconfig @@ -891,6 +891,13 @@ config VIDEO_MX3 ---help--- This is a v4l2 driver for the i.MX3x Camera Sensor Interface +config VIDEO_MV_CCIC + tristate Marvell CMOS Camera Interface Controller driver + depends on VIDEO_DEV CPU_PXA910 SOC_CAMERA + select VIDEOBUF2_DMA_CONTIG + ---help--- + This is a v4l2 driver for the Marvell CCIC Interface + config VIDEO_PXA27x tristate PXA27x Quick Capture Interface driver depends on VIDEO_DEV PXA27x SOC_CAMERA diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile index 9519160..e3251c3 100644 --- a/drivers/media/video/Makefile +++ b/drivers/media/video/Makefile @@ -161,6 +161,7 @@ obj-$(CONFIG_SOC_CAMERA_PLATFORM) += soc_camera_platform.o obj-$(CONFIG_VIDEO_MX1) += mx1_camera.o obj-$(CONFIG_VIDEO_MX2) += mx2_camera.o obj-$(CONFIG_VIDEO_MX3) += mx3_camera.o +obj-$(CONFIG_VIDEO_MV_CCIC) += mv_camera.o Ok, I still _think_, mv_camera is too generic a name for this driver, but it's up to you, really, just my thought. obj-$(CONFIG_VIDEO_PXA27x) += pxa_camera.o obj-$(CONFIG_VIDEO_SH_MOBILE_CSI2) += sh_mobile_csi2.o obj-$(CONFIG_VIDEO_SH_MOBILE_CEU)+= sh_mobile_ceu_camera.o diff --git a/drivers/media/video/mv_camera.c b/drivers/media/video/mv_camera.c new file mode 100644 index 000..f19c43d --- /dev/null +++ b/drivers/media/video/mv_camera.c @@ -0,0 +1,1067 @@ +/* + * V4L2 Driver for Marvell Mobile SoC PXA910 CCIC + * (CMOS Capture Interface Controller) + * + * Copyright (C) 2011, Marvell International Ltd. + * Kassey Lee y...@marvell.com + * Angela Wan j...@marvell.com + * Lei Wen lei...@marvell.com + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + */ + +#include linux/clk.h +#include linux/delay.h +#include linux/device.h +#include linux/dma-mapping.h +#include linux/errno.h +#include linux/fs.h +#include linux/init.h +#include linux/interrupt.h +#include linux/io.h +#include linux/kernel.h +#include linux/mm.h +#include linux/module.h +#include linux/platform_device.h +#include linux/slab.h +#include linux/time.h +#include linux/videodev2.h + +#include media/soc_camera.h +#include media/soc_mediabus.h +#include media/v4l2-common.h +#include media/v4l2-dev.h +#include media/videobuf2-dma-contig.h + +#include
Re: [PATCH V2] V4L/DVB: v4l: Add driver for Marvell PXA910 CCIC
On Wed, 1 Jun 2011 21:16:45 +0800 Kassey Lee y...@marvell.com wrote: This driver exports a video device node per each CCIC (CMOS Camera Interface Controller) device contained in Marvell Mobile PXA910 SoC The driver is based on soc-camera + videobuf2 frame work, and only USERPTR is supported. This device looks awfully similar to the Cafe controller; you must certainly have known that, since some of the code in your driver is clearly copied (without attribution) from cafe_ccic.c. As it happens, I've just written a driver for the Armada 610 SoC found in the OLPC 1.75 system; I was planning to post it as early as next week. I took a different approach, though: rather than duplicating the Cafe code, I split that driver into core and platform parts, then added a new platform piece for the Armada 610. I do believe that is a better way of doing things. That said, your driver has useful stuff that mine doesn't - MIPI support, for example. I'm traveling, but will be back next week. I'll send out my work after that; then I would really like to find a way to make all these pieces work together with a common core for cafe-derived controllers. Make sense? Thanks, jon -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH V2] V4L/DVB: v4l: Add driver for Marvell PXA910 CCIC
hi, Jonathan: yes, you are right, this driver uses most of the low level code from cafe-ccic.c. I am so sorry to miss the your email and refer info from cafe-ccic.c in my driver, really appreciate your work. the point that I write mv_camera.c is to base the soc_camera + vidieobuf2, other than manage the buffer by our-self which is done in cafe-ccic.c. I am OK to wait for your work on Armada 610, is this based on soc_camera + videobuf2 ? let's make it a more graceful driver. thanks On Thu, Jun 2, 2011 at 5:24 PM, Jonathan Corbet cor...@lwn.net wrote: On Wed, 1 Jun 2011 21:16:45 +0800 Kassey Lee y...@marvell.com wrote: This driver exports a video device node per each CCIC (CMOS Camera Interface Controller) device contained in Marvell Mobile PXA910 SoC The driver is based on soc-camera + videobuf2 frame work, and only USERPTR is supported. This device looks awfully similar to the Cafe controller; you must certainly have known that, since some of the code in your driver is clearly copied (without attribution) from cafe_ccic.c. As it happens, I've just written a driver for the Armada 610 SoC found in the OLPC 1.75 system; I was planning to post it as early as next week. I took a different approach, though: rather than duplicating the Cafe code, I split that driver into core and platform parts, then added a new platform piece for the Armada 610. I do believe that is a better way of doing things. That said, your driver has useful stuff that mine doesn't - MIPI support, for example. I'm traveling, but will be back next week. I'll send out my work after that; then I would really like to find a way to make all these pieces work together with a common core for cafe-derived controllers. Make sense? Thanks, jon -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH V2] V4L/DVB: v4l: Add driver for Marvell PXA910 CCIC
On Thu, 2 Jun 2011, Jonathan Corbet wrote: On Wed, 1 Jun 2011 21:16:45 +0800 Kassey Lee y...@marvell.com wrote: This driver exports a video device node per each CCIC (CMOS Camera Interface Controller) device contained in Marvell Mobile PXA910 SoC The driver is based on soc-camera + videobuf2 frame work, and only USERPTR is supported. This device looks awfully similar to the Cafe controller; you must certainly have known that, since some of the code in your driver is clearly copied (without attribution) from cafe_ccic.c. Yes, I noticed this, as I saw the cafe_ccic header being included in this driver. As it happens, I've just written a driver for the Armada 610 SoC found in the OLPC 1.75 system; I was planning to post it as early as next week. I took a different approach, though: rather than duplicating the Cafe code, I split that driver into core and platform parts, then added a new platform piece for the Armada 610. I do believe that is a better way of doing things. That said, your driver has useful stuff that mine doesn't - MIPI support, for example. I'm traveling, but will be back next week. I'll send out my work after that; then I would really like to find a way to make all these pieces work together with a common core for cafe-derived controllers. Make sense? This is definitely the right direction! Thanks for your heads-up! Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ -- To unsubscribe from this list: send the line unsubscribe linux-media in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html