linux/drivers/media/video
Janusz Krzysztofik bdc621fced [media] SoC Camera: add driver for OMAP1 camera interface
This is a V4L2 driver for TI OMAP1 SoC camera interface.

Both videobuf-dma versions are supported, contig and sg, selectable with a
module option. The former uses less processing power, but often fails to
allocate contignuous buffer memory. The latter is free of this problem, but
generates tens of DMA interrupts per frame. If contig memory allocation ever
fails, the driver falls back to sg automatically on next open, but still can
be switched back to contig manually. Both paths work stable for me, even
under heavy load, on my OMAP1510 based Amstrad Delta videophone, that is the
oldest, least powerfull OMAP1 implementation.

The interface generally works in pass-through mode. Since input data byte
endianess can be swapped, it provides up to two v4l2 pixel formats per each of
several soc_mbus formats that have their swapped endian counterparts.

Boards using this driver can provide it with the following platform data:
- if and what freqency clock is expected by an on-board camera sensor,
- what is the maximum pixel clock that should be accepted from the sensor,
- what is the polarity of the sensor provided pixel clock,
- if the interface GPIO line is connected to a sensor reset/powerdown input
  and what is the input polarity.

Created and tested against linux-2.6.36-rc5 on Amstrad Delta.

Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2010-10-21 07:55:37 -02:00
..
au0828 V4L/DVB: videobuf: add ext_lock argument to the queue init functions 2010-10-21 01:06:14 -02:00
bt8xx V4L/DVB: videobuf: add queue argument to videobuf_waiton() 2010-10-21 01:06:14 -02:00
cpia2 V4L/DVB: cpia2: remove V4L1 support from this driver 2010-10-21 01:06:17 -02:00
cx18 V4L/DVB: v4l: remove unused i2c-id.h headers 2010-10-21 01:06:05 -02:00
cx88 [media] i2c: Stop using I2C_CLASS_TV_DIGITAL 2010-10-21 07:54:26 -02:00
cx231xx [media] cx231xx: use core-assisted lock 2010-10-21 01:17:49 -02:00
cx23885 [media] drivers/media/video/cx23885/cx23885-core.c: fix cx23885_dev_checkrevision() 2010-10-21 07:54:17 -02:00
cx25840 V4L/DVB: cx25840: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:04 -02:00
davinci V4L/DVB: videobuf: add ext_lock argument to the queue init functions (part 2) 2010-10-21 01:06:19 -02:00
em28xx [media] em28xx-audio: fix some locking issues 2010-10-21 01:17:50 -02:00
et61x251 V4L/DVB: video/et61x251: improve error handling 2010-05-19 12:57:26 -03:00
gspca [media] gspca - sonixj: Use the new video control mechanism 2010-10-21 01:18:29 -02:00
hdpvr [media] i2c: Stop using I2C_CLASS_TV_ANALOG 2010-10-21 07:54:25 -02:00
ivtv V4L/DVB: v4l: remove unused i2c-id.h headers 2010-10-21 01:06:05 -02:00
omap V4L/DVB: videobuf: add ext_lock argument to the queue init functions (part 2) 2010-10-21 01:06:19 -02:00
pvrusb2 V4L/DVB: pvrusb2: remove unneeded NULL checks 2010-09-27 22:21:48 -03:00
pwc V4L/DVB: pwc: remove BKL 2010-10-21 01:05:57 -02:00
s5p-fimc V4L/DVB: videobuf: add ext_lock argument to the queue init functions (part 2) 2010-10-21 01:06:19 -02:00
saa7134 [media] saa7134: add test after for loop 2010-10-21 07:54:19 -02:00
saa7164 [media] saa7164: Removed use of the BKL 2010-10-21 07:55:32 -02:00
sn9c102 V4L/DVB: gspca - sonixj: Have 0c45:6130 handled by sonixj instead of sn9c102 2010-10-21 01:06:21 -02:00
tlg2300 V4L/DVB: videobuf: add queue argument to videobuf_waiton() 2010-10-21 01:06:14 -02:00
usbvideo V4L/DVB: gspca_konica: New gspca subdriver for konica chipset using cams 2010-10-21 01:04:46 -02:00
usbvision V4L/DVB: usbvision: remove BKL from usbvision 2010-10-21 01:06:06 -02:00
uvc [media] uvcvideo: Fix uvc_query_v4l2_ctrl() and uvc_xu_ctrl_query() locking 2010-10-21 01:18:26 -02:00
zoran V4L/DVB: drivers/media/video/zoran: Don't use initialized char array 2010-10-21 01:06:11 -02:00
Kconfig [media] SoC Camera: add driver for OMAP1 camera interface 2010-10-21 07:55:37 -02:00
Makefile [media] SoC Camera: add driver for OMAP1 camera interface 2010-10-21 07:55:37 -02:00
adv7170.c V4L/DVB: adv7170: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:04 -02:00
adv7175.c V4L/DVB: adv7175: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:01 -02:00
adv7180.c V4L/DVB: v4l: remove unused i2c-id.h headers 2010-10-21 01:06:05 -02:00
adv7343.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
adv7343_regs.h V4L/DVB (11743): Analog Devices ADV7343 video encoder driver 2009-06-16 18:20:59 -03:00
ak881x.c V4L/DVB: mediabus: fix ambiguous pixel code names 2010-08-02 16:43:36 -03:00
arv.c V4L/DVB: arv: convert to V4L2 2010-05-18 00:52:42 -03:00
bt819.c V4L/DVB: bt819: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:59 -02:00
bt856.c V4L/DVB: bt856: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:02 -02:00
bt866.c V4L/DVB: bt866: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:00 -02:00
btcx-risc.c
btcx-risc.h
bw-qcam.c V4L/DVB: bw-qcam: convert to V4L2 2010-06-01 01:19:04 -03:00
c-qcam.c V4L/DVB: c-qcam: convert to V4L2 2010-06-01 01:19:41 -03:00
cafe_ccic-regs.h
cafe_ccic.c [media] cafe_ccic: Implement VIDIOC_ENUM_FRAMEINTERVALS and ENUM_FRAMESIZES 2010-10-21 01:17:06 -02:00
cs53l32a.c V4L/DVB: cs53l32a: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:03 -02:00
cs5345.c V4L/DVB: cs5345: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:57 -02:00
cs8420.h
cx2341x.c V4L/DVB: cx2341x: convert to the control framework 2010-08-08 23:43:05 -03:00
dabusb.c V4L/DVB: drivers/media: Use memdup_user 2010-08-02 15:20:28 -03:00
dabusb.h
fsl-viu.c V4L/DVB: videobuf: add ext_lock argument to the queue init functions (part 2) 2010-10-21 01:06:19 -02:00
hexium_gemini.c [media] i2c: Stop using I2C_CLASS_TV_ANALOG 2010-10-21 07:54:25 -02:00
hexium_orion.c [media] i2c: Stop using I2C_CLASS_TV_ANALOG 2010-10-21 07:54:25 -02:00
ibmmpeg2.h
indycam.c V4L/DVB: indycam: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:59 -02:00
indycam.h V4L/DVB (10861): vino/indycam/saa7191: convert to i2c modules to V4L2. 2009-03-30 12:43:10 -03:00
ir-kbd-i2c.c V4L/DVB: saa7134: get rid of I2C_HW_SAA7134 2010-10-21 01:06:07 -02:00
ks0127.c V4L/DVB: ks0127: remove obsolete v4l2_i2c_drv.h header 2010-10-21 01:06:04 -02:00
ks0127.h V4L/DVB (10730): v4l-dvb: cleanup obsolete references to v4l1 headers. 2009-03-30 12:42:59 -03:00
m52790.c V4L/DVB: m52790: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:59 -02:00
mem2mem_testdev.c V4L/DVB: videobuf: add queue argument to videobuf_waiton() 2010-10-21 01:06:14 -02:00
meye.c V4L/DVB: meye: remove last V4L1 remnants from the code and add v4l2_device 2010-05-18 00:52:36 -03:00
meye.h V4L/DVB: meye: remove last V4L1 remnants from the code and add v4l2_device 2010-05-18 00:52:36 -03:00
msp3400-driver.c V4L/DVB: msp3400: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:00 -02:00
msp3400-driver.h V4L/DVB: msp3400: convert to the new control framework 2010-08-08 23:43:04 -03:00
msp3400-kthreads.c V4L/DVB: msp3400: convert to the new control framework 2010-08-08 23:43:04 -03:00
mt9m001.c V4L/DVB: v4l: Use v4l2_get_subdevdata instead of accessing v4l2_subdev::priv 2010-10-21 01:04:51 -02:00
mt9m111.c [media] mt9m111: changed MIN_DARK_COLS to MT9M131 spec count 2010-10-21 07:55:35 -02:00
mt9t031.c V4L/DVB: v4l: Use v4l2_get_subdevdata instead of accessing v4l2_subdev::priv 2010-10-21 01:04:51 -02:00
mt9t112.c V4L/DVB: v4l: Use v4l2_get_subdevdata instead of accessing v4l2_subdev::priv 2010-10-21 01:04:51 -02:00
mt9v011.c V4L/DVB: mt9v011: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:58 -02:00
mt9v011.h V4L/DVB (12340): mtv9v011: Add a missing chip version to the driver 2009-08-13 20:39:02 -03:00
mt9v022.c V4L/DVB: v4l: Use v4l2_get_subdevdata instead of accessing v4l2_subdev::priv 2010-10-21 01:04:51 -02:00
mx1_camera.c V4L/DVB: videobuf: add ext_lock argument to the queue init functions (part 2) 2010-10-21 01:06:19 -02:00
mx2_camera.c V4L/DVB: videobuf: add ext_lock argument to the queue init functions (part 2) 2010-10-21 01:06:19 -02:00
mx3_camera.c V4L/DVB: videobuf: add ext_lock argument to the queue init functions (part 2) 2010-10-21 01:06:19 -02:00
mxb.c V4L/DVB: saa5246a/saa5249: Remove obsolete teletext drivers 2010-10-21 01:05:48 -02:00
mxb.h
omap1_camera.c [media] SoC Camera: add driver for OMAP1 camera interface 2010-10-21 07:55:37 -02:00
omap24xxcam-dma.c
omap24xxcam.c V4L/DVB: videobuf: add ext_lock argument to the queue init functions (part 2) 2010-10-21 01:06:19 -02:00
omap24xxcam.h
ov772x.c V4L/DVB: v4l: Use v4l2_get_subdevdata instead of accessing v4l2_subdev::priv 2010-10-21 01:04:51 -02:00
ov7670.c [media] ov7670: implement VIDIOC_ENUM_FRAMESIZES 2010-10-21 01:17:06 -02:00
ov9640.c V4L/DVB: v4l: Use v4l2_get_subdevdata instead of accessing v4l2_subdev::priv 2010-10-21 01:04:51 -02:00
ov9640.h V4L/DVB (13040): V4L2: Add a v4l2-subdev (soc-camera) driver for OmniVision OV9640 sensor 2009-12-05 18:40:01 -02:00
pms.c V4L/DVB: pms: remove unnecessary exclusive open/close 2010-05-18 00:51:30 -03:00
pxa_camera.c V4L/DVB: videobuf: add ext_lock argument to the queue init functions (part 2) 2010-10-21 01:06:19 -02:00
rj54n1cb0c.c V4L/DVB: v4l: Use v4l2_get_subdevdata instead of accessing v4l2_subdev::priv 2010-10-21 01:04:51 -02:00
s2255drv.c V4L/DVB: videobuf: add ext_lock argument to the queue init functions 2010-10-21 01:06:14 -02:00
saa711x_regs.h
saa717x.c V4L/DVB: saa717x: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:58 -02:00
saa6588.c V4L/DVB: saa6588: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:59 -02:00
saa7110.c V4L/DVB: saa7110: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:02 -02:00
saa7115.c V4L/DVB: saa7115: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:58 -02:00
saa7121.h
saa7127.c V4L/DVB: saa7127: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:04 -02:00
saa7146.h V4L/DVB (10907): avoid loading the entire videodev.h header on V4L2 drivers 2009-03-30 12:43:15 -03:00
saa7146reg.h
saa7185.c V4L/DVB: saa7185: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:59 -02:00
saa7191.c V4L/DVB: saa7191: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:02 -02:00
saa7191.h V4L/DVB (10861): vino/indycam/saa7191: convert to i2c modules to V4L2. 2009-03-30 12:43:10 -03:00
se401.c V4L/DVB (13550): v4l: Use the new video_device_node_name function 2009-12-16 00:17:55 -02:00
se401.h V4L/DVB (11998): se401: Fix coding style 2009-06-16 19:07:54 -03:00
sh_mobile_ceu_camera.c V4L/DVB: videobuf: add ext_lock argument to the queue init functions (part 2) 2010-10-21 01:06:19 -02:00
sh_mobile_csi2.c V4L/DVB: V4L2: soc-camera: add a MIPI CSI-2 driver for SH-Mobile platforms 2010-08-02 16:43:39 -03:00
sh_vou.c V4L/DVB: videobuf: add ext_lock argument to the queue init functions (part 2) 2010-10-21 01:06:19 -02:00
soc_camera.c V4L/DVB: soc-camera: allow only one video queue per device 2010-10-21 01:06:18 -02:00
soc_camera_platform.c V4L/DVB: soc_camera_platform: Add necessary v4l2_subdev_video_ops method 2010-08-02 14:05:37 -03:00
soc_mediabus.c V4L/DVB: mediabus: fix ambiguous pixel code names 2010-08-02 16:43:36 -03:00
stk-sensor.c
stk-webcam.c V4L/DVB (13556): v4l: Remove unneeded video_device::minor assignments 2009-12-16 00:17:57 -02:00
stk-webcam.h
tcm825x.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
tcm825x.h V4L/DVB (10628): V4L: Storage class should be before const qualifier 2009-03-30 12:42:48 -03:00
tda7432.c V4L/DVB: tda7432: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:03 -02:00
tda9840.c V4L/DVB: tda9840: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:58 -02:00
tda9875.c V4L/DVB: tda9875: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:02 -02:00
tea6415c.c V4L/DVB: tea6415c: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:00 -02:00
tea6415c.h V4L/DVB (10499): saa7146: convert saa7146 and mxb in particular to v4l2_subdev. 2009-03-30 12:42:42 -03:00
tea6420.c V4L/DVB: tea6420: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:03 -02:00
tea6420.h V4L/DVB (10499): saa7146: convert saa7146 and mxb in particular to v4l2_subdev. 2009-03-30 12:42:42 -03:00
ths7303.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
tlv320aic23b.c V4L/DVB: tlv320aic23b: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:02 -02:00
tuner-core.c [media] tda18271: allow restricting max out to 4 bytes 2010-10-21 01:17:43 -02:00
tvaudio.c V4L/DVB: tvaudio: remove obsolete tda8425 initialization 2010-10-21 01:06:09 -02:00
tveeprom.c V4L/DVB: tveeprom: Add an entry for tuner code 168: a TCL M30WTP-4N-E tuner 2010-07-08 16:49:59 -03:00
tvp514x.c V4L/DVB: tvp514x: remove obsolete enum/try/s/g_fmt 2010-10-21 01:04:37 -02:00
tvp514x_regs.h V4L/DVB (12246): tvp514x: Migration to sub-device framework 2009-09-19 00:18:09 -03:00
tvp5150.c [media] tvp5150: COMPOSITE0 input should not force-enable TV mode 2010-10-21 07:54:24 -02:00
tvp5150_reg.h
tvp7002.c V4L/DVB: tvp7002: remove obsolete enum/try/s/g_fmt 2010-10-21 01:04:38 -02:00
tvp7002_reg.h V4L/DVB: Definitions for TVP7002 in DM365 2010-02-26 15:11:01 -03:00
tw9910.c V4L/DVB: v4l: Use v4l2_get_subdevdata instead of accessing v4l2_subdev::priv 2010-10-21 01:04:51 -02:00
upd64031a.c V4L/DVB: upd64031a: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:58 -02:00
upd64083.c V4L/DVB: upd64083: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:03 -02:00
v4l1-compat.c V4L/DVB (12948): v4l1-compat: fix VIDIOC_G_STD handling 2009-09-19 00:15:25 -03:00
v4l2-common.c V4L/DVB: v4l2-common: Move v4l2_find_nearest_format from videodev2.h to v4l2-common.h 2010-10-21 01:06:19 -02:00
v4l2-compat-ioctl32.c v4l1: fix 32-bit compat microcode loading translation 2010-10-15 11:12:38 -07:00
v4l2-ctrls.c V4L/DVB: v4l2: Add illuminator controls 2010-10-21 01:05:54 -02:00
v4l2-dev.c V4L/DVB: Fix a merge conflict that affects unlock_ioctl 2010-10-21 01:16:58 -02:00
v4l2-device.c V4L/DVB: v4l2: hook up the new control framework into the core framework 2010-08-08 23:43:04 -03:00
v4l2-event.c V4L/DVB: v4l2: add core serialization lock 2010-10-21 01:06:14 -02:00
v4l2-fh.c V4L/DVB: V4L: Events: Support event handling in do_ioctl 2010-05-19 12:58:07 -03:00
v4l2-int-device.c
v4l2-ioctl.c V4L/DVB: v4l2: hook up the new control framework into the core framework 2010-08-08 23:43:04 -03:00
v4l2-mem2mem.c V4L/DVB: videobuf: prepare to make locking optional in videobuf 2010-10-21 01:06:14 -02:00
videobuf-core.c V4L/DVB: videobuf: add queue argument to videobuf_waiton() 2010-10-21 01:06:14 -02:00
videobuf-dma-contig.c V4L/DVB: videobuf: add ext_lock argument to the queue init functions 2010-10-21 01:06:14 -02:00
videobuf-dma-sg.c [media] videobuf-dma-sg: Use min_t(size_t, PAGE_SIZE ..) 2010-10-21 01:17:00 -02:00
videobuf-dvb.c V4L/DVB: videobuf: add queue argument to videobuf_waiton() 2010-10-21 01:06:14 -02:00
videobuf-vmalloc.c V4L/DVB: videobuf: add ext_lock argument to the queue init functions 2010-10-21 01:06:14 -02:00
vino.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
vino.h
vivi.c V4L/DVB: vivi: remove BKL 2010-10-21 01:06:15 -02:00
vp27smpx.c V4L/DVB: vp27smpx: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:57 -02:00
vpx3220.c V4L/DVB: vpx3220: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:03 -02:00
w9966.c V4L/DVB: w9966: convert to V4L2 2010-05-19 12:57:09 -03:00
wm8739.c V4L/DVB: wm8739: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:05:57 -02:00
wm8775.c V4L/DVB: wm8775: remove obsolete v4l2-i2c-drv.h header 2010-10-21 01:06:01 -02:00
zr364xx.c V4L/DVB: videobuf: add ext_lock argument to the queue init functions 2010-10-21 01:06:14 -02:00