- 25 4月, 2008 5 次提交
-
-
由 Mike Isely 提交于
This change significantly rearranges pvr2_context level initialization and operation: 1. A new kernel thread is set up for management of the context. 2. Destruction of the pvr2_context instance is moved into the kernel thread. No other context is able to remove the instance; doing this simplifies lock handling. 3. The callback into pvrusb2-main, which is used to trigger initialization of each interface, is now issued from this kernel thread. Previously it had been indirectly issued out of the work queue thread in pvr2_hdw, which led to deadlock issues if the interface needed to change a control setting (which in turn requires dispatch of another work queue entry). 4. Callbacks into the interfaces (via the pvr2_channel structure) are now issued strictly from this thread. The net result of this is that such callback functions can now also safely operate driver controls without deadlocking the work queue. (At the moment this is not actually a problem, but I'm anticipating issues with this in the future). 5. There is no longer any need for anyone to enter / exit the pvr2_context structure. Implementation of the kernel thread here allows this all to be internal now, simplifying other logic. 6. A very very longstanding issue involving a mutex deadlock between the pvrusb2 driver and v4l should now be solved. The deadlock involved the pvr2_context mutex and a globals-protecting mutex in v4l. During initialization the driver would take the pvr2_context mutex first then the v4l2 interface would register with v4l and implicitly take the v4l mutex. Later when v4l would call back into the driver, the two mutexes could possibly be taken in the opposite order, a situation that can lead to deadlock. In practice this really wasn't an issue unless a v4l app tried to start VERY early after the driver appeared. However it still needed to be solved, and with the use of the kernel thread relieving need for pvr2_context mutex, the problem should be finally solved. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
The pvrusb2 driver has used hardcoded logic to control the LED on the device. However this is really Hauppauge-specific behavior. This change defines a new device attribute for LED control and sets things up appropriately for Hauppauge devices. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
This is a major pvrusb2 change. The driver core has an algorithm that is used to cleanly sequence the changes needed to enable / disable video streaming. The algorithm had originally been written for analog streaming, but when in digital mode the pipeline is considerably Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
- 26 1月, 2008 5 次提交
-
-
由 Mike Isely 提交于
pvrusb2: Eliminate use of volatile in pipeline control state variables. These were all cases of paranoia; upon further review the overall mechanism employed here should not require use of volatile. This had originally been done out of paranoia, and I have since been convinced that the paranoia is not required. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
pvrusb2: Remove use of volatile for command sequencer; these variables are set by interrupt-context code and we check their state in such a manner that there should be no race conditions. This had originally been done out of paranoia, and I have since been convinced that the paranoia is not required. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
Device-specific driver behavior is now defined by generic device characteristics rather than by specific device model information. With this change, the hardware type field can go away, thus this change. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
The pvrusb2 driver currently supports two variants of the Hauppauge PVR USB2. However there are other hardware types potentially supportable, but the driver at the moment is not structured to make it easy to describe these minor variations. This changeset is the first set of changes to make such additional device support possible. Device attributes are held in several tables all contained within pvrusb2-devattr.c; all other device-specific driver behavior now derives from these tables. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
This is a new implementation for video pipeline control within the pvrusb2 driver. Actual start/stop of the pipeline is moved to the driver's kernel thread. Pipeline stages are controlled autonomously based on surrounding pipeline or application control state. Kernel thread management is also cleaned up and moved into the internal control structure of the driver, solving a set up / tear down race along the way. Better failure recovery is implemented with this new control strategy. Also with this change comes better control of the cx23416 encoder, building on additional information learned about the peculiarities of controlling this part (this information was the original trigger for this rework). With this change, overall encoder stability should be considerably improved. Yes, this is a large change for this driver, but due to the nature of the feature being worked on, the changes are fairly pervasive and would be difficult to break into smaller pieces with any semblence of step-wise stability. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
- 22 10月, 2007 1 次提交
-
-
由 Mike Isely 提交于
This is a minor change to help with tracking the viability of the encoder chip within the PVR USB2 device. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
- 10 10月, 2007 1 次提交
-
-
由 Mike Isely 提交于
The pvrusb2 driver already has a method for extracting the FX2's program memory back out to a user application; this ability is used to facilitate manual firmware extraction as per the procedure documented on the pvrusb2 web site. This change follows that pattern and implements a corresponding method to grab the binary contents of the PVR USB2 prom (which for PVR USB2 devices can contain information in addition to the usual Hauppauge metadata). Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
- 28 4月, 2007 1 次提交
-
-
由 Mike Isely 提交于
The V4L2 API requires a unique bus_info string returned as part of the v4l2_capability structure. These changes gather up the USB address information, from the underlying device, into a string and report that out through v4l2 and via sysfs (for completeness). Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
- 21 2月, 2007 7 次提交
-
-
由 Mike Isely 提交于
The automodeswitch control was a feature that enable automatic radio / tv switching based on the selected frequency. However since frequency ranges can overlap and also since apparently in some cases it's possible for the same frequency range to be both tv and radio in a specific region, then this feature can't safely work. So it's removed. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
Clean up use of VIDIOC_G_TUNER; we now correctly gather info from all the I2C client modules. Also abide by V4L2_TUNER_CAP_LOW appropriately. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
Separate track radio versus tv frequency so that when we switch modes we can also switch to a sane frequency appropriate for the mode. Also implement logic to automate mode switching in certain cases. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
Implement new method for doing integer range checking, so that we can more intelligently range-check radio and tv ranges at once. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
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: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Pantelis Koukousoulas 提交于
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). Signed-off-by: NPantelis Koukousoulas <pakt223@freemail.gr> Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
- 26 9月, 2006 4 次提交
-
-
由 Mike Isely 提交于
Support for 24xxx devices was previously explicitly bracketed with CONFIG_VIDEO_PVRUSB2_24XXX inside the code because we didn't trust the stability of these changes. We trust it now; so there's no reason to leave this out of the driver anymore. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
The internal control implementation in the pvrusb2 driver normally encodes integer range limits using literal values in a const structure. This change adds two function pointers, which if not null will be called through in order to determine integer min / max values. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
Fix a few miscellaneous issues in the pvrusb2 driver related to use of the new mpeg controls. This also should fix problems involving update of the saa7115 / cx25840 configuration as control changes are made. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mauro Carvalho Chehab 提交于
Since kernel include autoconf.h via command line, those config.h inclusion can be removed. Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
- 01 7月, 2006 1 次提交
-
-
由 Adrian Bunk 提交于
This patch contains the following possible cleanups: - make needlessly global code static - #if 0 unused global functions Signed-off-by: NAdrian Bunk <bunk@stusta.de> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
- 27 6月, 2006 4 次提交
-
-
由 Mike Isely 提交于
Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-
由 Mike Isely 提交于
Implement V4L2 driver for the Hauppauge PVR USB2 TV tuner. The Hauppauge PVR USB2 is a USB connected TV tuner with an embedded cx23416 hardware MPEG2 encoder. There are two major variants of this device; this driver handles both. Any V4L2 application which understands MPEG2 video stream data should be able to work with this device. Signed-off-by: NMike Isely <isely@pobox.com> Signed-off-by: NMauro Carvalho Chehab <mchehab@infradead.org>
-