summaryrefslogtreecommitdiffstats
path: root/drivers/media
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' of ↵Linus Torvalds2007-10-111-1/+8
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6 * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (867 commits) [SKY2]: status polling loop (post merge) [NET]: Fix NAPI completion handling in some drivers. [TCP]: Limit processing lost_retrans loop to work-to-do cases [TCP]: Fix lost_retrans loop vs fastpath problems [TCP]: No need to re-count fackets_out/sacked_out at RTO [TCP]: Extract tcp_match_queue_to_sack from sacktag code [TCP]: Kill almost unused variable pcount from sacktag [TCP]: Fix mark_head_lost to ignore R-bit when trying to mark L [TCP]: Add bytes_acked (ABC) clearing to FRTO too [IPv6]: Update setsockopt(IPV6_MULTICAST_IF) to support RFC 3493, try2 [NETFILTER]: x_tables: add missing ip6t_modulename aliases [NETFILTER]: nf_conntrack_tcp: fix connection reopening [QETH]: fix qeth_main.c [NETLINK]: fib_frontend build fixes [IPv6]: Export userland ND options through netlink (RDNSS support) [9P]: build fix with !CONFIG_SYSCTL [NET]: Fix dev_put() and dev_hold() comments [NET]: make netlink user -> kernel interface synchronious [NET]: unify netlink kernel socket recognition [NET]: cleanup 3rd argument in netlink_sendskb ... Fix up conflicts manually in Documentation/feature-removal-schedule.txt and my new least favourite crap, the "mod_devicetable" support in the files include/linux/mod_devicetable.h and scripts/mod/file2alias.c. (The latter files seem to be explicitly _designed_ to get conflicts when different subsystems work with them - that have an absolutely horrid lack of subsystem separation!) Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| * [NET]: Move hardware header operations out of netdevice.Stephen Hemminger2007-10-101-1/+8
| | | | | | | | | | | | | | | | | | Since hardware header operations are part of the protocol class not the device instance, make them into a separate object and save memory. Signed-off-by: Stephen Hemminger <shemminger@linux-foundation.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* | V4L/DVB (6316): Change list_for_each+list_entry to list_for_each_entryTrent Piepho2007-10-109-55/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The rest of V4L files. There is one list_for_each+list_entry in cpia_pp.c that wasn't changed because it expects the loop iterator to remain NULL if the list is empty. A bug in vivi is fixed; the 'safe' version needs to be used because the loop deletes the list entries. Simplify a second loop in vivi and get rid if an un-used variable in that loop. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6315): pvrusb2: Change list_for_each+list_entry to list_for_each_entryTrent Piepho2007-10-102-38/+17
| | | | | | | | | | | | Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Reviewed-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6314): saa7134: Replace list_for_each+list_entry with ↵Trent Piepho2007-10-104-64/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | list_for_each_entry A couple loops weren't changed because they expected the loop iterator to be left as NULL if the list was empty. Maybe the code should just check for that first, then loop? Adjust some of the loop logic to be simpler. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6313): ivtv: Replace list_for_each+list_entry with list_for_each_entryTrent Piepho2007-10-101-20/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Also fixed a few cases of cut&paste errors where 'buf' would be set to the first entry in the list prior to be used as the loop iterator. In one case the value of buf was used before it was changed, but the rest were unnecessary. There was one list_for_each+list_entry loop that wasn't changed, since it depending on the loop iterator being left as NULL if the list was empty. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> CC: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6312): cx88: Replace list_for_each+list_entry with list_for_each_entryTrent Piepho2007-10-103-15/+5
| | | | | | | | | | Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6311): dvb: Replace list_for_each+list_entry with list_for_each_entryTrent Piepho2007-10-102-23/+9
| | | | | | | | | | Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6308): V4L: zc0301, remove bad usage of ERESTARTSYSJiri Slaby2007-10-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | zc0301, remove bad usage of ERESTARTSYS down_read_trylock can't be interrupted and so ERESTARTSYS would reach userspace, which is not permitted. Change it to EAGAIN Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Acked-by: Luca Risolia <luca.risolia@studio.unibo.it> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6307): V4L: w9968cf, remove bad usage of ERESTARTSYSJiri Slaby2007-10-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | w9968cf, remove bad usage of ERESTARTSYS down_read_trylock can't be interrupted and so ERESTARTSYS would reach userspace, which is not permitted. Change it to EAGAIN Signed-off-by: Jiri Slaby <jirislaby@gmail.com> Acked-by: Luca Risolia <luca.risolia@studio.unibo.it> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6306): Few clenups for saa7134 resume codeMaxim Levitsky2007-10-103-20/+22
| | | | | | | | | | | | | | | | | | *Disable DMA explictly on suspend *Enable DMA on resume, after all buffers were configured *Disable overlay on resume - apps should enable it when X is resumed Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6305): V4L: videobuf-core.c avoid NULL dereferences in videobuf-coreBrandon Philips2007-10-103-5/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The return value of videobuf_alloc() is unchecked but this function will return NULL on an error. Check for NULL and make videobuf_reqbufs() return the number of successfully allocated buffers. Also, fix saa7146_video.c and bttv-driver.c to use this returned buffer count. Tested against the vivi driver. Not tested against saa7146 or bt8xx devices. Signed-off-by: Brandon Philips <bphilips@suse.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6301): pvrusb: Update DEBUGIFC sysfs to kernel 2.6.13+Trent Piepho2007-10-101-5/+11
| | | | | | | | | | | | | | | | | | The prototypes for the show and store methods of a device_attribute changed in kernel 2.6.13, but the code in pvrusb2 was never updated. I guess the DEBUGIFC stuff isn't used much.... Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6300): CodingStyle cleanupTrent Piepho2007-10-101-1/+2
| | | | | | | | | | Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6299): dvb: Add dependencies for VIDEOBUF_DVBTrent Piepho2007-10-101-0/+2
| | | | | | | | | | | | | | | | It needs to select VIDEOBUF_GEN and VIDEOBUF_DMA_SG, since it uses those modules. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6297): cx23885: remove wrong Kconfig selection of VIDEOBUFMichael Krufky2007-10-101-1/+0
| | | | | | | | | | | | | | fix bad Kconfig dependency of cx23885 module. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6296): dib0700: add support for AverMedia DVB-T Express cardJoachim Steiger2007-10-102-1/+7
| | | | | | | | | | | | | | | | add Avermedia dvb-t express card 34 (usb2) id Signed-off-by: Joachim Steiger <roh@hyte.de> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6295): saa7134: add autodetection for KWorld ATSC-115Eric Sandeen2007-10-101-1/+7
| | | | | | | | | | | | | | | | Recognize the KWorld ATSC115 PCI ID as a hardware clone of the ATSC110. Signed-off-by: Eric Sandeen <sandeen@sandeen.net> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6293): V4L: convert struct class_device to struct deviceKay Sievers2007-10-109-334/+379
| | | | | | | | | | | | | | | | | | | | | | | | The currently used "struct class_device" will be removed from the kernel. Here is a patch that converts all users in drivers/media/video/ to struct device. Reviewed-by: Thierry Merle <thierry.merle@free.fr> Reviewed-by: Mike Isely <isely@pobox.com> Reviewed-by: Luca Risolia <luca.risolia@studio.unibo.it> Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6292): videobuf_core init always require callback implementationMauro Carvalho Chehab2007-10-103-13/+18
| | | | | | | | | | | | | | | | | | | | | | In the past, videobuf_queue_init were used to initialize PCI DMA videobuffers. This patch renames it, to avoid confusion with the previous kernel API, doing: s/videobuf_queue_init/void videobuf_queue_core_init/ Also, the operations is now part of the function parameter. The function will also add a test if this is defined, otherwise producing BUG. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6291): Fix: avoid oops on some SMP machinesMauro Carvalho Chehab2007-10-101-0/+8
| | | | | | | | | | | | | | | | This workaround fix a bug that happens on some SMP machines. On those machines, videobuf_iolock is called too soon, before file .mmap handler. This patch calls the scheduler before iolocking, allowing it to properly call the pending mmap. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6290): remove videobuf_set_pci_opsMauro Carvalho Chehab2007-10-101-58/+4
| | | | | | | | | | | | | | | | | | | | Before the videobuf redesign, a procedure for re-using videobuf without PCI scatter/gather where provided by changing the pci-dependent operations by other operations. With the newer approach, those methods are obsolete and can safelly be removed. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6289): Remove reference to dead CONFIG_UST and ust.h headerRobert P. J. Day2007-10-101-5/+0
| | | | | | | | | | Signed-off-by: Robert P. J. Day <rpjday@mindspring.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6287): Fix DMA Scatter/Gather constructorMauro Carvalho Chehab2007-10-101-1/+1
| | | | | | | | | | | | | | | | | | cx23885 driver were converted to use the newer videobuf support. Unfortunately, the constructor weren't changed. This causes an oops, since the abstract methods (implemented as callbacks) aren't defined. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> Reviewed-by: Michael Krufky <mkrufky@linuxtv.org>
* | V4L/DVB (6286): Add support for MSI TV @nywhere A/D NBMauro Carvalho Chehab2007-10-101-1/+7
| | | | | | | | | | | | This is a Lifeview hybrid OEM board. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6285): Remove pointless kmalloc() return value cast in Zoran PCI ↵Jesper Juhl2007-10-101-4/+1
| | | | | | | | | | | | | | | | | | | | controller driver No need to cast the void pointer returned by kmalloc() in drivers/media/video/zoran_driver.c::v4l_fbuffer_alloc(). Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6284): cx23885: Update to new videobuf codeTrent Piepho2007-10-102-6/+8
| | | | | | | | | | | | | | | | | | | | cx23885 was still uses the old video-buf includes and code, which would only `work' if one happened to be compiling against a kernel that had the old headers. Even then, it wouldn't actually work, it would just compile without errors. Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6283): videobuf: Remove references to old Kconfig option nameTrent Piepho2007-10-104-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CONFIG_VIDEO_BUF_DVB became CONFIG_VIDEOBUF_DVB. But in these cases, it makes more sense to use CONFIG_VIDEO_SAA7134_DVB or CONFIG_VIDEO_CX88_DVB_MODULE depending on the driver. The reference in cx23885.h should just be removed, as the code there needs to be included if DVB is on or off. I do not think you can even compile the cx23885 driver without DVB. It's clearly just leftover from when the file was obvious copied from the cx88 driver (which is not mentioned in the copyright BTW). Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6279): en_50221: convert to kthread APIChristoph Hellwig2007-10-101-68/+16
| | | | | | | | | | | | | | | | Here's an attempted update to the full kthread API + wake_up_process: Signed-off-by: Andrew Morton <akpm@linux-foundation.org> CC: Andrew de Quincey <adq_dvb@lidskialf.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6278): Buf: fix typo that caused data loss when readng streams from ↵Maxim Levitsky2007-10-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | device If videobuf_read_stream reads two or more buffers it was overwriting the first one Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> http://thread.gmane.org/gmane.comp.video.video4linux/34978/focus=34981 Reviewed-by: Ricardo Cerqueira <v4l@cerqueira.org>
* | V4L/DVB (6277): vivi cleanup: remove the unused varsMauro Carvalho Chehab2007-10-101-5/+0
| | | | | | | | | | | | Vivi driver is now simpler. This patch removes the now unused vars. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6276): V4L: videobuf-core.c lock before streaming checkBrandon Philips2007-10-101-3/+5
| | | | | | | | | | | | | | | | | | | | The reading/streaming fields are used for mutual exclusion of the queue and should be protected by the queue lock. Signed-off-by: Brandon Philips <bphilips@suse.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> http://thread.gmane.org/gmane.comp.video.video4linux/34978/focus=34981 Reviewed-by: Ricardo Cerqueira <v4l@cerqueira.org>
* | V4L/DVB (6275): V4L: vivi.c remove the "resource" lockingBrandon Philips2007-10-101-44/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The "resource" locking in vivi isn't needed since streamon/streamoff/read_stream do mutual exclusion using q->reading/q->streaming. Plus it is sort of broken: a) res_locked() use in vivi_read() is racey. b) res_free() calls mutex_lock twice causing streamoff to break Signed-off-by: Brandon Philips <bphilips@suse.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6274): V4L: vivi.c replace logic in vivi_poll with videobuf_poll_streamBrandon Philips2007-10-101-17/+2
| | | | | | | | | | | | | | | | Since vivi is using videobuf_read_stream() it can use videobuf_poll_stream() now. Signed-off-by: Brandon Philips <bphilips@suse.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6273): V4L: vivi.c vidioc_try_fmt_cap() negotiate a valid fieldBrandon Philips2007-10-101-2/+1
| | | | | | | | | | | | | | If the client provides V4L2_FIELD_ANY vivi should return a valid field :) Signed-off-by: Brandon Philips <bphilips@suse.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6272): V4L: properly fix support for capturing interlaced video in ↵Maxim Levitsky2007-10-103-10/+16
| | | | | | | | | | | | | | | | | | | | | | saa7134 By "capturing interlaced video" I mean that card ensures that top field is really top and vice versa (I think it takes the filed ID from signal) Properly turn on/off that support depending on signal state Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6271): V4L: Add basic support for suspend/resume for saa7134Maxim Levitsky2007-10-105-95/+244
| | | | | | | | | | | | | | | | | | This adds support for suspend/resume for core of saa7134 Should fix bug#7220 Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6270): V4L: Honor dev->ctl_invert when setting up the decoder in ↵Maxim Levitsky2007-10-101-2/+6
| | | | | | | | | | | | | | | | | | | | | | saa7134 When user sets dev->ctl_invert, driver writes negative values to SAA7134_DEC_LUMA_CONTRAST and SAA7134_DEC_CHROMA_SATURATION, but general code that initializes decorder ignores that Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6269): V4L: Fix a "scheduling while atomic" bug in saa7134Maxim Levitsky2007-10-101-0/+4
| | | | | | | | | | | | | | | | | | set_tvnorm can sleep in saa7134_i2c_xfer (it will be called through tuner code) but code calls it under spinlock. Fix that Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6268): V4L: Fix a lock inversion in generic videobuf codeMaxim Levitsky2007-10-102-5/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | videobuf_qbuf takes q->lock, and then calls q->ops->buf_prepare which by design in all drivers calls videobuf_iolock which calls videobuf_dma_init_user and this takes current->mm->mmap_sem on the other hand if user calls mumap from other thread, sys_munmap takes current->mm->mmap_sem and videobuf_vm_close takes q->lock Since this can occur only for V4L2_MEMORY_MMAP buffers, take current->mm->mmap_sem in qbuf, before q->lock, and don't take current->mm->mmap_sem videobuf_dma_init_user for those buffers Signed-off-by: Maxim Levitsky <maximlevitsky@gmail.com> http://thread.gmane.org/gmane.comp.video.video4linux/34978/focus=34981 Reviewed-by: Ricardo Cerqueira <v4l@cerqueira.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6266): videobuf cleanup: mmap check is common to all videobuf. Make ↵Mauro Carvalho Chehab2007-10-103-47/+17
| | | | | | | | | | | | | | | | it at core Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> http://thread.gmane.org/gmane.comp.video.video4linux/34978/focus=34981 Reviewed-by: Ricardo Cerqueira <v4l@cerqueira.org>
* | V4L/DVB (6265): Prevent for calling mmap_free without an allocated bufferMauro Carvalho Chehab2007-10-101-0/+3
| | | | | | | | | | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> http://thread.gmane.org/gmane.comp.video.video4linux/34978/focus=34981 Reviewed-by: Ricardo Cerqueira <v4l@cerqueira.org>
* | V4L/DVB (6264): Make the vertical lines to moveMauro Carvalho Chehab2007-10-101-6/+11
| | | | | | | | | | | | | | While this is not the standard color bar behaviour, having some movement there allows to check if buffers are being properly handled. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6263): Fix buffer release codeMauro Carvalho Chehab2007-10-101-1/+3
| | | | | | | | | | | | Release code should happen before the cleaning of map variable. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6262): An allocation error message were being printed as a debug msgMauro Carvalho Chehab2007-10-101-2/+1
| | | | | | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6261): Cleans mem->vmalloc after vfreeMauro Carvalho Chehab2007-10-101-0/+1
| | | | | | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6260): Fix Kconfig dependencyMauro Carvalho Chehab2007-10-104-5/+5
| | | | | | | | | | | | Thanks to Michael Krufky for pointing this to me. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6259): Fix vivi poll() methodMauro Carvalho Chehab2007-10-101-3/+2
| | | | | | | | | | | | | | | | | | | | | | Due to the replace of videobuf_read_one to videobuf_read_stream, poll() method implementation is wrong. This fixes poll() implementation, making read of /dev/video? to work again. With this method, an USB driver can use video-buf, without needing to request memory from the DMA-safe area. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6257): Rename video-buf-dvb to videobuf-dvb to be consistent with ↵Mauro Carvalho Chehab2007-10-104-4/+4
| | | | | | | | | | | | the other patches Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
* | V4L/DVB (6256): Remove the obsolete video-buf moduleMauro Carvalho Chehab2007-10-091-1424/+0
| | | | | | | | | | | | Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org> http://thread.gmane.org/gmane.comp.video.video4linux/34978/focus=34981 Reviewed-by: Ricardo Cerqueira <v4l@cerqueira.org>