summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/pvrusb2/pvrusb2-hdw.h
AgeCommit message (Collapse)Author
2007-11-25pvrusb2: Implement functions to pass descriptive hardware infoMike Isely
From: Mike Isely <isely@pobox.com> Implement additional pvrusb2 device info table entries for a device identifier and a device description. Export this information via the driver's internal API. Make this information available via the sysfs driver interface. Also propagate this information into the v4l2 capability structure. An app can now retrieve and report a descriptive string about the particular type of hardware device it is operating. Signed-off-by: Mike Isely <isely@pobox.com>
2007-11-25pvrusb2: Centralize device specific attributes into a single place.Mike Isely
From: Mike Isely <isely@pobox.com> 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: Mike Isely <isely@pobox.com>
2007-11-25pvrusb2: Rework pipeline state controlMike Isely
From: Mike Isely <isely@pobox.com> 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: Mike Isely <isely@pobox.com>
2007-09-08pvrusb2: Implement programmatic means to extract prom contentsMike Isely
From: Mike Isely <isely@pobox.com> 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: Mike Isely <isely@pobox.com>
2007-07-02Fix v4l-dvb backward compatibilityMauro Carvalho Chehab
From: Mauro Carvalho Chehab <mchehab@infradead.org> Due to several internal API changes on kernel, kernel backward compatibility were lost. Basically, compat.h should be the last include for it to work properly. This patch basically reorders kernel headers to allow backward compat to work fine. Also: Some includes were added after some non-include macros, on old drivers. Better to keep all includes at the beginning of the files. Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-04-07pvrusb2: Gather USB bus address info and report itMike Isely
From: Mike Isely <isely@pobox.com> 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: Mike Isely <isely@pobox.com>
2007-02-24Improve chip matching in v4l2_register for VIDIOC_DBG_G/S_REGISTERHans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> The chip matching in struct v4l2_register was rather primitive. It could not be extended to other busses besides i2c and it lacked a way to differentiate between two i2c chips driven by the same driver on one board (e.g. a PVR500 with two tuner chips, one for analog TV and one for radio). It has now been improved making it much more powerful. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> CC: Mike Isely <isely@isely.net> CC: Trent Piepho <xyzzy@speakeasy.org>
2007-01-28pvrusb2: VIDIOC_DBG_[S|G]_REGISTER fixupsMike Isely
From: Mike Isely <isely@pobox.com> Support 64 bit register IDs internally. Only allow root access to this API (for both set and get). Note that actual 64 bit access only becomes possible once the definition for v4l2_register is updated, but this change clears the way for it from the viewpoint of the pvrusb2 driver. Signed-off-by: Mike Isely <isely@pobox.com>
2007-01-23Make VIDIOC_INT_[SG]_REGISTER ioctls no longer internal onlyTrent Piepho
From: Trent Piepho <xyzzy@speakeasy.org> The direct register access ioctls were defined as kernel internal only, but they are very useful for debugging hardware from userspace and are used as such. Officially export them. VIDIOC_INT_[SG]_REGISTER is renamed to VIDIOC_DBG_[SG]_REGISTER Definition of ioctl and struct v4l2_register is moved from v4l2-common.h to videodev2.h. Types used in struct v4l2_register are changed to the userspace exportable versions (u32 -> __u32, etc). Use of VIDIOC_DBG_S_REGISTER requires CAP_SYS_ADMIN permission, so move the check into the video_ioctl2() dispatcher so it doesn't need to be duplicated in each driver's call-back function. CAP_SYS_ADMIN check is added to pvrusb2 (which doesn't use video_ioctl2). Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
2007-01-19pvrusb2: VIDIOC_G_TUNER cleanupMike Isely
From: Mike Isely <isely@pobox.com> 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: 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: 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 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-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-07-18Refine dead code elimination in pvrusb2Mike Isely
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com>
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-25Implement use of cx2341x module in pvrusb2 driverMike 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-04-20Change pvrusb2 subsystem definition bits for easier handlingMike Isely
From: Mike Isely <isely@pobox.com> Subsystem bits are defined as ordinal values now instead of bits in a mask. 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-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-26Get rid of static PVR2_CID_COUNT in pvrusb2Mike Isely
From: Mike Isely <isely@pobox.com> Eliminate the need to track the number pvrusb2 CIDs at compile time from within the pvrusb2 driver. This is part of a control structure cleanup. Signed-off-by: Mike Isely <isely@pobox.com>
2006-03-25Merge from masterMike Isely
From: Mike Isely <isely@pobox.com> Signed-off-by: Mike Isely <isely@pobox.com>
2006-03-25Implement method in pvrusb2 to force the decoder to resetMike Isely
From: Mike Isely <isely@pobox.com> This change threads logic through the pvrusb2 to make it possible to command the decoder chip to reset itself. The method is decoder-agnostic; the part of the pvrusb2 which control's that chip's module has to provide the final hook. This just lays the foundation. Signed-off-by: Mike Isely <isely@pobox.com>
2006-03-25Tweaks to pvrusb2 init sequenceMike Isely
From: Mike Isely <isely@pobox.com> Rename a pvrusb2 function to reflect its true meaning, and tweak the driver initialization sequence so that the I2C adapter isn't started until after the hardware has been given a powerup command. 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-10Fix const inconsistency in pvrusb2Mike Isely
From: Mike Isely <isely@pobox.com> Clean up a missing const declaration in the initialization pathway of the pvrusb2 driver. Signed-off-by: Mike Isely <isely@pobox.com>
2006-03-10Make pvrusb2 aware of alternative hardware typesMike Isely
From: Mike Isely <isely@pobox.com> Notice and track actual hardware type of device. This information is also used now to select the correct FX2 firmware file to load (because they can be different, unfortunately). Signed-off-by: Mike Isely <isely@pobox.com>
2006-03-04Implement new method in pvrusb2 to detect the FX2 firmwareMike Isely
From: Mike Isely <isely@pobox.com> The pvrusb2 driver as part of its initialization might have to load the FX2's firmware image. We must only do this when it is actually needed. The previous method just detected this requirement by noticing something unusual about the USB configuration of the device. Unfortunately with newer PVR USB2 devices this method no longer works. What we do now is also attempt a simple non-destructive endpoint 1 transaction; failure of that transfer will indicate a need to load the firmware. Signed-off-by: Mike Isely <isely@pobox.com>
2006-02-26moved pvrusb2 driver into the kernel treeMichael Krufky
From: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>