aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/staging/go7007/go7007-priv.h
diff options
context:
space:
mode:
authorPete Eberlein <pete@sensoray.com>2009-11-16 15:07:42 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2009-12-05 18:42:00 -0200
commit0b398f4f124e2b4b03f9acf726370c8459610c5c (patch)
treee391f4794df042eb50f228663d9df720adc1db60 /drivers/staging/go7007/go7007-priv.h
parentV4L/DVB (13453): gspca - all subdrivers: Remove the unused frame ptr from pkt_scan(). (diff)
downloadlinux-dev-0b398f4f124e2b4b03f9acf726370c8459610c5c.tar.xz
linux-dev-0b398f4f124e2b4b03f9acf726370c8459610c5c.zip
V4L/DVB (13455): go7007: Add struct v4l2_device.
This adds a struct v4l2_device to the go7007 device struct and registers it during v4l2 initialization. The v4l2_device registration overwrites the go->dev device_data, which is a struct usb_interface with intfdata set to the struct go7007. This changes intfdata to point to the struct v4l2_device inside struct go7007, which is what v4l2_device_register will also set it to (and warn about non-null drvdata on register.) Since usb disconnect can happen any time, this intfdata should always be present. Signed-off-by: Pete Eberlein <pete@sensoray.com> Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/staging/go7007/go7007-priv.h')
-rw-r--r--drivers/staging/go7007/go7007-priv.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/staging/go7007/go7007-priv.h b/drivers/staging/go7007/go7007-priv.h
index ce9307e3e186..b58c394c6555 100644
--- a/drivers/staging/go7007/go7007-priv.h
+++ b/drivers/staging/go7007/go7007-priv.h
@@ -21,6 +21,8 @@
* user-space applications.
*/
+#include <media/v4l2-device.h>
+
struct go7007;
/* IDs to activate board-specific support code */
@@ -167,6 +169,7 @@ struct go7007 {
int channel_number; /* for multi-channel boards like Adlink PCI-MPG24 */
char name[64];
struct video_device *video_dev;
+ struct v4l2_device v4l2_dev;
int ref_count;
enum { STATUS_INIT, STATUS_ONLINE, STATUS_SHUTDOWN } status;
spinlock_t spinlock;
@@ -240,6 +243,11 @@ struct go7007 {
unsigned short interrupt_data;
};
+static inline struct go7007 *to_go7007(struct v4l2_device *v4l2_dev)
+{
+ return container_of(v4l2_dev, struct go7007, v4l2_dev);
+}
+
/* All of these must be called with the hpi_lock mutex held! */
#define go7007_interface_reset(go) \
((go)->hpi_ops->interface_reset(go))