summaryrefslogtreecommitdiff
path: root/linux/drivers/media/video/pvrusb2/pvrusb2-hdw.c
AgeCommit message (Collapse)Author
2009-03-06pvrusb2: Issue required core init broadcast to all sub-devicesMike Isely
From: Mike Isely <isely@pobox.com> The v4l2-subdev infrastructure requires that an initialization call must be issued to all attached sub-devices before normal operation can start. This change satisfies that requirement. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Implement mechanism to force a full sub-device updateMike Isely
From: Mike Isely <isely@pobox.com> When a pvrusb2 driver instance first initializes, we need to be sure to send out a complete state update for everything to all attached modules. The old i2c layer did this by keeping a separate mask of "stale" bits for each attached module - and setting that mask to all stale when that module attaches. But the new sub-device adaptation I've implemented here no longer has per-module stale bits. So instead there's now a global "force dirty" bit that is set upon instance initialization, before the sub-devices are attached. After the first update, this bit is cleared, allowing for normal update-on-dirty behavior. In this manner, we ensure that all sub-devices have been properly synchronized at initialization. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Implement trace print for stream on / off actionMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Define default I2C address for cx25840 sub-deviceMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Broadcast tuner type change to sub-devicesMike Isely
From: Mike Isely <isely@pobox.com> The tuner sub-device isn't going to work very well unless we tell it the correct tuner type to use... Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Deal with space-after-comma coding style idiocyMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Sub-device update must happen BEFORE state dirty bits are clearedMike Isely
From: Mike Isely <isely@pobox.com> The sub-device update mechanism relies on various "dirty" bits in the driver in order to know what pieces of state need to be propagated out to the various sub-devices. But that won't work if the dirty bits are cleared before the update gets a chance to run. This change ensures that the update takes place before the dirty bits are cleared. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Allow sub-devices to insert correctlyMike Isely
From: Mike Isely <isely@pobox.com> A sub-device won't successfully attach to our I2C adapter if its class isn't set to zero. Right the class is still set to I2C_CLASS_TV_ANALOG in order to allow the old mechanism to still work. This change temporarily sets the class to zero during the interval when the sub-device attaches. This code will get removed when the old i2c layer is finally removed from the driver. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Fix bugs involved in listing of sub-devicesMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Fix uninitialized counterMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Define default i2c address for wm8775 sub-deviceMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Implement more sub-device loading trace and improve error handlingMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Tie in cx25840 sub-device supportMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Tie in msp3400 sub-device supportMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: make sub-device specific update function names uniformMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Make audio sample rate update into a sub-device broadcastMike Isely
From: Mike Isely <isely@pobox.com> The pvrusb2 driver had previously been using i2c module specific calls to set the sample rate (a long long time ago this was needed). These days it is safe to use a broadcast so let's just broadcast this when communicating audio sample rate to sub-devices. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Tie in saa7115 sub-device handlingMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Tie in wm8775 sub-device handlingMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Implement sub-device specific update frameworkMike Isely
From: Mike Isely <isely@pobox.com> Lay down a foundation whereby it becomes possible to send customized updates to specific sub-devices. (This becomes useful for routing configuration, which is a very sub-device specific operation.) Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Implement reporting of connected sub-devicesMike Isely
From: Mike Isely <isely@pobox.com> The pvrusb2 driver has a function that reports internal state. It can be accessed from either the debug interface or as the result of a v4l log status request. This change adds information listing sub-devices to the report. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Cause overall initialization to fail if sub-driver(s) failMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Tie in sub-device decoder start/stopMike Isely
From: Mike Isely <isely@pobox.com> Implement code to send appropriate streaming start/stop commands to attached sub-devices Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Clean-up / placeholders inserted for additional developmentMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Note who our video decoder sub-device is, and set it upMike Isely
From: Mike Isely <isely@pobox.com> Other code may need to treat the video decoder sub-device in a special manner, so this change implements code to recognize when such a sub-device is connected to the driver, does any special processing for it, and notes who the device is for future reference. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Tie in various v4l2 operations into the sub-device mechanismMike Isely
From: Mike Isely <isely@pobox.com> This is another step in the v42l-subdev assimilation. This implements various call-outs to sub-devices based on state changes within the pvrusb2 driver. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Implement status fetching from sub-devicesMike Isely
From: Mike Isely <isely@pobox.com> Implement status fetching operations in terms of calling out to sub-device(s). Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Tie in debug register access to sub-devicesMike Isely
From: Mike Isely <isely@pobox.com> Implement tie-in for v4l2 debug register access such that the appropriate attached sub-device is handled. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Tie-in sub-device log requestsMike Isely
From: Mike Isely <isely@pobox.com> Trigger a broadcast to attached sub-devices when a logging request is made. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Lay foundation for triggering sub-device updatesMike Isely
From: Mike Isely <isely@pobox.com> These changes set up the spot where we'll check for and set general updates to any attached sub-devices. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Tie up loose ends with v4l2-subdev setupMike Isely
From: Mike Isely <isely@pobox.com> Tie up loose ends with v4l2-subdev setup. Set attached module's group ID to match our internal ID, emit a few useful messages when sub-devices are dealt with, implement better error legs, and fix an error in the old i2c layer (caused by changes related to the v4l2-subdev work here). Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Providing means to stop tracking an old i2c moduleMike Isely
From: Mike Isely <isely@pobox.com> This implements a temporary mechanism to "untrack" an i2c module from the old i2c layer. The v4l2-subdev related code in the driver will use this to remove a sub-device from the old i2c layer. In the end, once the old i2c layer is removed, this will also eventually go away. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: New device attribute mechanism to specify sub-devicesMike Isely
From: Mike Isely <isely@pobox.com> Set up new mechanism for declaring and loading appropriate sub-devices when driver initializes. This is another part of the v4l2-subdev adoption. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Changes to further isolate old i2c layerMike Isely
From: Mike Isely <isely@pobox.com> This introduces some additional isolation in the pvrusb2 from the old i2c layer, a step along the way to separate the driver from that layer and to make it easier to introduce the common v4l2-subdev framework as the eventual replacement. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-06pvrusb2: Set up v4l2_device instanceMike Isely
From: Mike Isely <isely@pobox.com> Define a v4l2_device instance in the pvrusb2 driver and initialize / tear it down appropriately. This is a step in the v4l2-subdev adoption effort. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-03-07pvrusb2: Split i2c module handling from i2c adapterMike Isely
From: Mike Isely <isely@pobox.com> This is the first step in the effort to move the pvrusb2 driver over to using the v4l2-subdev framework. This commit involves mainly splitting apart pvrusb2-i2c-core - part of it is the driver's I2C adapter driver and the rest is the old i2c module handling logic. The i2c module handling junk is moved out to pvrusb2-i2c-track and various header references are correspondingly updated. Yes, this patch has a huge pile of checkpatch complaints, but I'm NOT going to fix any of it. Why? First, I'm moving a large chunk of existing code and I'm not going to spend time adjusting it to match someone's idea of coding style. Second, in the end I expect all that moved code to go away by the time the rework is done so wasting time on it now to adhere to the standard is in the end a large waste of time. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-01-22pvrusb2: Use usb_make_path() to determine device bus locationMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2009-01-14pvrusb2: Generate a device-unique identifierMauro Carvalho Chehab
From: Mike Isely <isely@pobox.com> Implement a new internal function to create a string device identifier. This ID stays with the specific device, making it useful to user space to identify specific devices. We use the serial number if available; otherwise we give up and just spit out a unit/instance ID. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2009-01-14changeset: 10235:e30767d80056Mauro Carvalho Chehab
From: Trent Piepho <xyzzy@speakeasy.org> tag: tip user: Mauro Carvalho Chehab <mchehab@redhat.com> date: Wed Jan 14 09:45:53 2009 -0200 files: linux/drivers/media/video/pvrusb2/pvrusb2-hdw.c description: USB: change interface to usb_lock_device_for_reset() backport commit 011b15df465745474e3ec85482633685933ed5a7 Author: Alan Stern <stern@rowland.harvard.edu> Date: Tue Nov 4 11:29:27 2008 -0500 USB: change interface to usb_lock_device_for_reset() This patch (as1161) changes the interface to usb_lock_device_for_reset(). The existing interface is apparently not very clear, judging from the fact that several of its callers don't use it correctly. The new interface always returns 0 for success and it always requires the caller to unlock the device afterward. The new routine will not return immediately if it is called while the driver's probe method is running. Instead it will wait until the probe is over and the device has been unlocked. This shouldn't cause any problems; I don't know of any cases where drivers call usb_lock_device_for_reset() during probe. kernel-sync: Signed-off-by: Trent Piepho <xyzzy@speakeasy.org> Acked-by: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-12-30v4l2: debugging API changed to match against driver name instead of ID.Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Since the i2c driver ID will be removed in the near future we have to modify the v4l2 debugging API to use the driver name instead of driver ID. Note that this API is not used in applications other than v4l2-dbg.cpp as it is for debugging and testing only. Should anyone use the old VIDIOC_G_CHIP_IDENT, then this will be logged with a warning that it is deprecated and will be removed in 2.6.30. Priority: normal Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
2008-10-30V4L: struct device - replace bus_id with dev_name(), dev_set_name()Mauro Carvalho Chehab
From: Kay Sievers <kay.sievers@vrfy.org> This patch is part of a larger patch series which will remove the "char bus_id[20]" name string from struct device. The device name is managed in the kobject anyway, and without any size limitation, and just needlessly copied into "struct device". To set and read the device name dev_name(dev) and dev_set_name(dev) must be used. If your code uses static kobjects, which it shouldn't do, "const char *init_name" can be used to statically provide the name the registered device should have. At registration time, the init_name field is cleared, to enforce the use of dev_name(dev) to access the device name at a later time. We need to get rid of all occurrences of bus_id in the entire tree to be able to enable the new interface. Please apply this patch, and possibly convert any remaining remaining occurrences of bus_id. We want to submit a patch to -next, which will remove bus_id from "struct device", to find the remaining pieces to convert, and finally switch over to the new api, which will remove the 20 bytes array and does no longer have a size limitation. Thanks, Kay Acked-by: Greg Kroah-Hartman <gregkh@suse.de> Signed-Off-By: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
2008-10-19pvrusb2: Fix deadlock problemMike Isely
From: Mike Isely <isely@pobox.com> Fix deadlock problem in 2.6.27 caused by new USB core behavior in response to a USB device reset request. With older kernels, the USB device reset was "in line"; the reset simply took place and the driver retained its association with the hardware. However now this reset triggers a disconnect, and worse still the disconnect callback happens in the context of the caller who asked for the device reset. This results in an attempt by the pvrusb2 driver to recursively take a mutex it already has, which deadlocks the driver's worker thread. (Even if the disconnect callback were to happen on a different thread we'd still have problems however - because while the driver should survive and correctly disconnect / reconnect, it will then trigger another device reset during the repeated initialization, which will then cause another disconect, etc, forever.) The fix here is simply to not attempt the device reset (it was of marginal value anyway). Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2008-09-03pvrusb2: Remove comment lines which refer to checkpatch's behaviorMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2008-08-31pvrusb2: Implement cropping pass throughMike Isely
From: Mike Isely <isely@pobox.com> This builds upon the previous pvrusb2 change to more formally implement full cropping support. This enables access from the driver's V4L interface, and enables access to full capabilities from sysfs as well. Note that this is only effective when in analog mode. It also will only work when the underlying digitizer's driver (saa7115 or cx25840 depending on the hardware) also implements the appropriate functions. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2008-08-31pvrusb2: Mark crop window size change as being disruptive to the encoderMike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2008-08-30pvrusb2: Implement crop supportMike Isely
From: vdb128@picaros.org <vdb128@picaros.org> Implement pvrusb2 driver plumbing to support cropping. Submitted by a pvrusb2 user. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2008-08-30pvrusb2: Fail gracefully if an alien USB ID is usedMike Isely
From: Mike Isely <isely@pobox.com> The driver includes an internal table specifying additional information on a per device-type basis. This works great until somebody tries to run-time associate another USB ID with the driver. This change should hopefully allow the driver to fail gracefully under such a circumstance. Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2008-08-30pvrusb2: Add comment elaborating on direct use of swab32()Mike Isely
From: Mike Isely <isely@pobox.com> Priority: normal Signed-off-by: Mike Isely <isely@pobox.com>
2008-08-18pvrusb2: use proper byteorder interfaceMauro Carvalho Chehab
From: Harvey Harrison <harvey.harrison@gmail.com> ___swab32 is an internal detail of the implementation. Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Acked-By: Mike Isely <isely@pobox.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2008-07-25pvrusb2: Enable IR chip on HVR-1900 class devicesMike Isely
From: Mike Isely <isely@pobox.com> The Zilog IR chip on HVR-1900 devices is held in reset when the device initializes. We have to bring this chip out of reset before LIRC has any chance of operating the chip. So do it. Signed-off-by: Mike Isely <isely@pobox.com>
2008-07-08v4l-dvb: remove support for kernels < 2.6.13Hans Verkuil
From: Hans Verkuil <hverkuil@xs4all.nl> Phase 3 of the compat cleanup. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>