summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/pvrusb2/pvrusb2-v4l2.c
AgeCommit message (Collapse)Author
2006-12-30pvrusb2: Be smarter about mode restoration when /dev/radioX is closedMike Isely
From: Mike Isely <isely@pobox.com> Switch back to the previous input selection when the radio device is closed - but only do that if the current input selection is still the radio (i.e. it appears that it hasn't been messed with). Signed-off-by: Mike Isely <isely@pobox.com>
2006-12-30pvrusb2: bug fix involving switch into radio modeMike Isely
From: Mike Isely <isely@pobox.com> When the input is switched by opening /dev/radioX, we must also commit that change into the driver core. Signed-off-by: Mike Isely <isely@pobox.com>
2006-12-30pvrusb2: Stream configuration cleanupsMike Isely
From: Mike Isely <isely@pobox.com> Clean up and tighten logic involving stream configuration. This mainly involves changes to pvrusb2-v4l2.c, where we better clarify how we use the stream configuration enum and implement a cleaner means to control streaming for a given device node. Signed-off-by: Mike Isely <isely@pobox.com>
2006-12-27pvrusb2: Remove stream claiming hack from /dev/radio implementationMike Isely
From: Mike Isely <isely@pobox.com> Trying to temporarily check that the stream is not claimed during open of the radio device is at best a race condition. What's to stop another app from claiming the stream anyway the instant after the check is done? The implementation for this was dicey anyway. So it's removed. The only "price" for this is that if /dev/radioX is opened while streaming video, then the video stream is just going to switch to radio mode anyway. If a user does this, he gets what he expects... Signed-off-by: Mike Isely <isely@pobox.com>
2006-12-27pvrusb2: v4l2 API implementation frequency tweaksMike Isely
From: Mike Isely <isely@pobox.com> Report and set correctly converted frequency to/from a V4L2 app. Signed-off-by: Mike Isely <isely@pobox.com>
2006-12-27pvrusb2: Fix heap corruption introduced by radio modsMike Isely
From: Mike Isely <isely@pobox.com> We can't allocate v4l device structures in a block, since the v4l core governs when each device actually gets freed. This bug was introduced as part of the core radio implementation. Fix it. Signed-off-by: Mike Isely <isely@pobox.com>
2006-12-27pvrusb2: Implement means to override vbi and radio device minor numbersMike Isely
From: Mike Isely <isely@pobox.com> Support specification of vbi and radio device minor numbers in a manner similar to the video device minor number. Signed-off-by: Mike Isely <isely@pobox.com>
2006-12-27pvrusb2: Use separate enumeration for get/store of minor numberMike Isely
From: Mike Isely <isely@pobox.com> Use separate enum for get/store of minor number; we want pvr2_config to go away eventually and since it really means something different, don't use it here Signed-off-by: Mike Isely <isely@pobox.com>
2006-12-27pvrusb2: Use enumeration for minor number get / store codeMike Isely
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com>
2006-12-27pvrusb2: Implement /dev/radioXMike Isely
From: Pantelis Koukousoulas <pakt223@freemail.gr> The "main" V4L2 interface patch. This is yet very incomplete, incorrect and probably inappropriate for inclusion as-is, but at least with this I 'm able to tune and play radio through a V4L2 program (pvr-radio.c, a "thumb" version of ivtv-radio.c with just the essentials). Therefore, it kinda gives an idea of what is needed to support this, hm, interface (partly used also by e.g., kradio). Please point out any mistakes on this code. I 'm sure I 'm messing up some struct initialization somewhere but currently I 'm too lazy to actually think this through until I complete the functionality (e.g., handle the VIDIOC_S_STD, ENUMINPUT, etc ioctls appropriately). --Pantelis Signed-off-by: Pantelis Koukousoulas <pakt223@freemail.gr> Signed-off-by: Mike Isely <isely@pobox.com>
2006-12-27pvrusb2: Implement multiple minor device number handlingMike Isely
From: Pantelis Koukousoulas <pakt223@freemail.gr> This is the first patch in preparation of the V4L2/IVTV radio interface. It does away with the assumption of only one minor per device. It also adds a file to show the radio minor as well. This can be useful for a program like pvr-radio.c (when it grows up), since this way it can search for the minor of the /dev/radioX device it opened and use the video minor of the same driver instance to get to the actual stream. The implementation looks kinda ugly. Feel free to improve (that is the reason behind separate patches anyway). --Pantelis Signed-off-by: Pantelis Koukousoulas <pakt223@freemail.gr> Signed-off-by: Mike Isely <isely@pobox.com>
2006-10-29pvrusb2: use NULL instead of 0Mauro Carvalho Chehab
From: Randy Dunlap <randy.dunlap@oracle.com> Fix sparse NULL usage warnings: drivers/media/video/pvrusb2/pvrusb2-v4l2.c:714:14: warning: Using plain integer as NULL pointer drivers/media/video/pvrusb2/pvrusb2-v4l2.c:715:16: warning: Using plain integer as NULL pointer drivers/media/video/pvrusb2/pvrusb2-v4l2.c:1079:10: warning: Using plain integer as NULL pointer drivers/media/video/pvrusb2/pvrusb2-cx2584x-v4l.c:224:58: warning: Using plain integer as NULL pointer Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-09-28pvrusb2: Fix VIDIOC_INT_[G|S]_REGISTER so that it actually works nowMike Isely
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com>
2006-09-23pvrusb2: Don't use videodev.h; use v4l2-dev.h in its placeMike Isely
From: Mike Isely <isely@pobox.com> The function prototype needed in pvrusb2-v4l2.c has been moved to v4l2-dev.h. Track that change. Signed-off-by: Mike Isely <isely@pobox.com>
2006-09-23pvrusb2: Get rid of private global context array brain damageMike Isely
From: Mike Isely <isely@pobox.com> A previous attempt to deal with the upcoming loss of video_set_drvdata() and video_get_drvdata() resulted in logic which causes a circular locking dependency - also known as a deadlock. This changeset attacks the problem in a different manner, using a technique that no longer requires the problematic mutex (or that private global array either). Signed-off-by: Mike Isely <isely@pobox.com>
2006-09-23pvrusb2: Implement VIDIOC_INT_[G|S]_REGISTERMike Isely
From: Mike Isely <isely@pobox.com> Implement VIDIOC_INT_SET_REGISTER and VIDIOC_INT_GET_REGISTER for the pvrusb2 driver. This is a debugging aid which will not be enabled unless CONFIG_VIDEO_ADV_DEBUG has been enabled. Signed-off-by: Mike Isely <isely@pobox.com>
2006-09-01Fix VIDIOC_S_FMT min/max check in pvrusb2Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Acked-by: Mike Isely <isely@pobox.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2006-07-26Eliminate hardcoded limits in VIDIOC_[S|TRY]_FMT for pvrusb2Mike Isely
From: Mike Isely <isely@pobox.com> The pvrusb2 implementation for VIDIOC_[S|TRY]_FMT was hardcoding limits on the range for allowed resolution, but it would be much better if we instead just queried the internal control for these values. This then opens the door for the driver to adjust these limits based on the detected hardware. Signed-off-by: Mike Isely <isely@pobox.com>
2006-06-30Clean out a zillion sparse warnings in pvrusb2Mauro Carvalho Chehab
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-06-30Pvrusb2/: possible cleanupsMauro Carvalho Chehab
From: Adrian Bunk <bunk@stusta.de> This patch contains the following possible cleanups: - make needlessly global code static - #if 0 unused global functions Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-06-29Always log pvrusb2 device register / unregister eventsMike Isely
From: Mike Isely <isely@pobox.com> Previously the pvrusb2 driver was conditionalizing printing of the device register / unregister messages against a debug mask. This sort of information should always appear, thus this patch. Signed-off-by: Mike Isely <isely@pobox.com>
2006-06-26Included required header for in-kernel compilationMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-06-25Reduce the amount of pvrusb2-sourced noise going into the system logMike Isely
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com>
2006-06-25Exploit new V4L control features in pvrusb2Mike Isely
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com>
2006-06-25Various V4L control enhancements in pvrusb2Mike Isely
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com>
2006-06-25Handle boolean controls in pvrusb2Mike Isely
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com>
2006-06-25Make sure flags field is initialized when quering a control in pvrusb2Mike Isely
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com>
2006-06-25Move LOG_STATUS bracketing to a different part of the pvrusb2 driverMike Isely
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com>
2006-06-25Clean up long-standing video format handling mess in pvrusb2-v4l2.cMike Isely
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com>
2006-06-08Remove last bits of V4L1 dependant codeMike Isely
From: Mike Isely <isely@pobox.com> With the removal of the V4L1 API, we also lose the functionality provided by the video_get_drvdata() and video_set_drvdata() functions. These functions had made it possible for a driver to stuff a pointer to its own context inside the V4L device handle context - a useful ability. However now that's going away, so the driver is on its own to find its context when called into from a more generic context (e.g. the open() entrypoint). The changes in this patch implement a global context mapping array, an array index back-reference per instance, and a new global mutex to protect the entire thing. The array is indexed by the minor device id of the V4L device inode. All this fun is present to work around what used to be roughly 4 lines of code. Sigh... Signed-off-by: Mike Isely <isely@pobox.com>
2006-04-25Remove dead code.Mike Isely
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com>
2006-04-20Fix pvrusb2 bug involving bad return on V4L query control ioctlMike Isely
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com>
2006-04-19Another rework of pvrusb2 video standard handlingMike Isely
From: Mike Isely <isely@pobox.com> Clean up logic for handling video standards in the pvrusb2 driver. New implementation should be able to handle all possible V4L defined video standards now, and it should be far easier to maintain this going forward. Signed-off-by: Mike Isely <isely@pobox.com>
2006-04-19Rework pvrusb2 internal controls implementationMike Isely
From: Mike Isely <isely@pobox.com> Rework controls internal architecture. Rework video standard handling. This is a major change. Signed-off-by: Mike Isely <isely@pobox.com>
2006-04-11Merge: from V4L1 treeMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-04-02Delimit LOG_STATUS output with standardized linesHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Add standard lines before/after the LOG_STATUS output: this allows easy reading and parsing from the kernel log with e.g. ivtvctl (to be added to v4l-dvb at a later date). Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2006-03-28Major pvrusb2 rework to remove translationsMike Isely
From: Mike Isely <isely@pobox.com> Rework entire internal controls interface to eliminate the need for visibly defined control IDs which must otherwise be translated by the V4L2 public interface. As part of this work, internal structures which mimiced various V4L2 structures (video standards, audio modes) have been reworked to actually use the native structures. This triggered a _significant_ rework for how video standards are dealt with (and what is in place now should be much more flexible and forgiving for various handling less-common video standards). Signed-off-by: Mike Isely <isely@pobox.com>
2006-03-26Propagate default control values out to V4L apps from within pvrusb2Mike Isely
From: Mike Isely <isely@pobox.com> When a V4L app queries a pvrusb2 control, make sure we also tell it what the control's default value is. Signed-off-by: Mike Isely <isely@pobox.com>
2006-03-23Merge from mkrufky pvrusb2 treeMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> merge: Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2006-03-18Implement mpeg2 garbage filter in pvrusb2Mike Isely
From: Mike Isely <isely@pobox.com> The PVR USB2 hardware seems to like emitting some garbage data before real stream data appears. This problem has been present all along, but with the older 29xxx model series it was benign because the garbage data in question didn't seem to bother mpeg2 players. But with the 24xxx model series, the garbage data includes what looks like a corrupted mpeg2 packet, which kills mythtv and ffmpeg. This fix causes incoming stream data to be discarded until valid mpeg2 data is seen. Signed-off-by: Mike Isely <isely@pobox.com>
2006-03-18Implement V4L2_TUNER_MODE_LANG1_LANG2 audio modeHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Add a new audio mode V4L2_TUNER_MODE_LANG1_LANG2 (used by VIDIOC_G/S_TUNER). This mode allows the user to select both languages of a bilingual transmission, one language on the left, one on the right audio channel. If there is no bilingual transmission, or it is not supported, then this mode should act like V4L2_TUNER_MODE_STEREO. This mode is introduced for PVR-like drivers where it is useful to be able to record both languages of a bilingual broadcast. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2006-03-11pvrusb2: remove "ifdef notdef"Michael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> - Changed all occurances of "#ifdef notdef" to "#if 0" - This code will remain visible in the v4l-dvb repositories, but will be held back from git. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2006-03-11pvrusb2: video device register/unregister message conformityMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> - device registration messages altered to conform with the other v4l drivers. Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
2006-02-26moved pvrusb2 driver into the kernel treeMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>