1
linux/drivers/media/video/cx18
Simon Farnsworth 09fc9802c3 [media] cx18: Fix videobuf capture
When we moved to 3.0, we found that the cx18 driver was oopsing on close with:

NULL pointer deref at:

[ 2290.461009] Call Trace:
[ 2290.461009]  [<c046007b>] ? pm_qos_add_request+0xc/0x6e
[ 2290.461009]  [<c082631c>] __mutex_lock_common+0x87/0x125
[ 2290.461009]  [<f8970e92>] ? cx18_queue_flush+0x31/0x87 [cx18]
[ 2290.461009]  [<c0436b85>] ? __might_sleep+0x29/0xe4
[ 2290.461009]  [<c0826515>] __mutex_lock_slowpath+0x25/0x27
[ 2290.461009]  [<c08264b2>] ? mutex_lock+0x2e/0x3b
[ 2290.461009]  [<c08264b2>] mutex_lock+0x2e/0x3b
[ 2290.461009]  [<f88d3137>] videobuf_queue_lock+0x13/0x15 [videobuf_core]
[ 2290.461009]  [<f88d3f86>] __videobuf_free+0xfc/0x112 [videobuf_core]
[ 2290.461009]  [<f89741e6>] cx18_v4l2_close+0x158/0x172 [cx18]
[ 2290.461009]  [<c0507522>] ? cpumask_next+0x1a/0x1d
[ 2290.461009]  [<f88a319d>] v4l2_release+0x35/0x52 [videodev]
[ 2290.461009]  [<c04f5717>] fput+0x100/0x1a5
[ 2290.461009]  [<c04f2e09>] filp_close+0x5c/0x64
[ 2290.461009]  [<c04f2e70>] sys_close+0x5f/0x93
[ 2290.461009]  [<c082cd5f>] sysenter_do_call+0x12/0x28

Some digging showed that a merge at some previous point partially
added broken mmap() support, causing this trace. Remove the broken
code completely.

On top of that, the calculation in place for "buffer full" depended on
UYUV instead of HM12, while our GStreamer code was picking HM12 in
some circumstances.

Finally, the V4L2_CAP_STREAMING capability was never exposed. Patch it
into the YUV encoder node only.

Signed-off-by: Simon Farnsworth <simon.farnsworth@onelan.co.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2011-09-18 08:03:39 -03:00
..
cx18-alsa-main.c [media] drivers/media/video: fix memory leak of snd_cx18_init() 2011-07-27 17:52:59 -03:00
cx18-alsa-mixer.c
cx18-alsa-mixer.h
cx18-alsa-pcm.c
cx18-alsa-pcm.h
cx18-alsa.h
cx18-audio.c
cx18-audio.h
cx18-av-audio.c [media] cx18: Use the control framework 2011-03-21 20:31:49 -03:00
cx18-av-core.c [media] cx18: Use the control framework 2011-03-21 20:31:49 -03:00
cx18-av-core.h Fix common misspellings 2011-03-31 11:26:23 -03:00
cx18-av-firmware.c
cx18-av-vbi.c
cx18-cards.c [media] cx18: Make RF analog TV work for newer HVR-1600 models with silicon tuners 2011-05-20 09:26:54 -03:00
cx18-cards.h [media] cx18: Make RF analog TV work for newer HVR-1600 models with silicon tuners 2011-05-20 09:26:54 -03:00
cx18-controls.c [media] cx18: Use the control framework 2011-03-21 20:31:49 -03:00
cx18-controls.h [media] cx18: Use the control framework 2011-03-21 20:31:49 -03:00
cx18-driver.c [media] cx18: Make RF analog TV work for newer HVR-1600 models with silicon tuners 2011-05-20 09:26:54 -03:00
cx18-driver.h [media] cx18: Fix videobuf capture 2011-09-18 08:03:39 -03:00
cx18-dvb.c [media] cx18: Add support for Hauppauge HVR-1600 models with s5h1411 2011-03-02 13:45:56 -03:00
cx18-dvb.h
cx18-fileops.c [media] cx18: Fix videobuf capture 2011-09-18 08:03:39 -03:00
cx18-fileops.h [media] cx18: mmap() support for raw YUV video capture 2011-05-20 09:28:43 -03:00
cx18-firmware.c
cx18-firmware.h
cx18-gpio.c
cx18-gpio.h
cx18-i2c.c [media] remove the old RC_MAP_HAUPPAUGE_NEW RC map 2011-03-22 19:24:16 -03:00
cx18-i2c.h
cx18-io.c
cx18-io.h
cx18-ioctl.c [media] cx18: Fix videobuf capture 2011-09-18 08:03:39 -03:00
cx18-ioctl.h
cx18-irq.c
cx18-irq.h
cx18-mailbox.c [media] cx18: Fix videobuf capture 2011-09-18 08:03:39 -03:00
cx18-mailbox.h [media] cx18: Use the control framework 2011-03-21 20:31:49 -03:00
cx18-queue.c
cx18-queue.h
cx18-scb.c
cx18-scb.h
cx18-streams.c [media] cx18: Fix videobuf capture 2011-09-18 08:03:39 -03:00
cx18-streams.h [media] v4l/cx18: update workqueue usage 2011-01-19 11:45:46 -02:00
cx18-vbi.c Fix common misspellings 2011-03-31 11:26:23 -03:00
cx18-vbi.h
cx18-version.h [media] ivtv,cx18: Use default version control for VIDIOC_QUERYCAP 2011-07-27 17:53:14 -03:00
cx18-video.c
cx18-video.h
cx23418.h [media] cx18: mmap() support for raw YUV video capture 2011-05-20 09:28:43 -03:00
Kconfig [media] cx18: Clean up mmap() support for raw YUV 2011-05-20 09:30:22 -03:00
Makefile [media] drivers/media: do not use EXTRA_CFLAGS 2011-09-03 18:50:59 -03:00