diff options
author | Luca Risolia <luca.risolia@studio.unibo.it> | 2006-02-25 01:50:47 -0500 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-03-20 17:49:59 -0500 |
commit | 2ffab02fea5880da284dc5511479b25a796a8dee (patch) | |
tree | b94481244ae823598d06cd72472b9c76e9639bd1 /drivers/usb/media/sn9c102_sensor.h | |
parent | 7039f4224d4e40b06308d5c1a97427af1a142459 (diff) |
[PATCH] USB: SN9C10x driver updates
SN9C10x driver updates.
Changes: + new, - removed, * cleanup, @ bugfix
@ Fix stream_interrupt()
@ Fix vidioc_enum_input() and split vidioc_gs_input()
@ Need usb_get|put_dev() when disconnecting, if the device is open
* Use wait_event_interruptible_timeout() instead of wait_event_interruptible()
when waiting for video frames
* replace wake_up_interruptible(&wait_stream) with wake_up(&wait_stream)
* Cleanups and updates in the documentation
+ Use per-device sensor structures
+ Add support for PAS202BCA image sensors
+ Add frame_timeout module parameter
Signed-off-by: Luca Risolia <luca.risolia@studio.unibo.it>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb/media/sn9c102_sensor.h')
-rw-r--r-- | drivers/usb/media/sn9c102_sensor.h | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/usb/media/sn9c102_sensor.h b/drivers/usb/media/sn9c102_sensor.h index 7d953b24f2f2..2afd9e9d09bb 100644 --- a/drivers/usb/media/sn9c102_sensor.h +++ b/drivers/usb/media/sn9c102_sensor.h | |||
@@ -66,6 +66,7 @@ extern int sn9c102_probe_hv7131d(struct sn9c102_device* cam); | |||
66 | extern int sn9c102_probe_mi0343(struct sn9c102_device* cam); | 66 | extern int sn9c102_probe_mi0343(struct sn9c102_device* cam); |
67 | extern int sn9c102_probe_ov7630(struct sn9c102_device* cam); | 67 | extern int sn9c102_probe_ov7630(struct sn9c102_device* cam); |
68 | extern int sn9c102_probe_pas106b(struct sn9c102_device* cam); | 68 | extern int sn9c102_probe_pas106b(struct sn9c102_device* cam); |
69 | extern int sn9c102_probe_pas202bca(struct sn9c102_device* cam); | ||
69 | extern int sn9c102_probe_pas202bcb(struct sn9c102_device* cam); | 70 | extern int sn9c102_probe_pas202bcb(struct sn9c102_device* cam); |
70 | extern int sn9c102_probe_tas5110c1b(struct sn9c102_device* cam); | 71 | extern int sn9c102_probe_tas5110c1b(struct sn9c102_device* cam); |
71 | extern int sn9c102_probe_tas5130d1b(struct sn9c102_device* cam); | 72 | extern int sn9c102_probe_tas5130d1b(struct sn9c102_device* cam); |
@@ -81,12 +82,17 @@ static int (*sn9c102_sensor_table[])(struct sn9c102_device*) = { \ | |||
81 | &sn9c102_probe_pas106b, /* strong detection based on SENSOR ids */ \ | 82 | &sn9c102_probe_pas106b, /* strong detection based on SENSOR ids */ \ |
82 | &sn9c102_probe_pas202bcb, /* strong detection based on SENSOR ids */ \ | 83 | &sn9c102_probe_pas202bcb, /* strong detection based on SENSOR ids */ \ |
83 | &sn9c102_probe_hv7131d, /* strong detection based on SENSOR ids */ \ | 84 | &sn9c102_probe_hv7131d, /* strong detection based on SENSOR ids */ \ |
85 | &sn9c102_probe_pas202bca, /* detection mostly based on USB pid/vid */ \ | ||
84 | &sn9c102_probe_ov7630, /* detection mostly based on USB pid/vid */ \ | 86 | &sn9c102_probe_ov7630, /* detection mostly based on USB pid/vid */ \ |
85 | &sn9c102_probe_tas5110c1b, /* detection based on USB pid/vid */ \ | 87 | &sn9c102_probe_tas5110c1b, /* detection based on USB pid/vid */ \ |
86 | &sn9c102_probe_tas5130d1b, /* detection based on USB pid/vid */ \ | 88 | &sn9c102_probe_tas5130d1b, /* detection based on USB pid/vid */ \ |
87 | NULL, \ | 89 | NULL, \ |
88 | }; | 90 | }; |
89 | 91 | ||
92 | /* Device identification */ | ||
93 | extern struct sn9c102_device* | ||
94 | sn9c102_match_id(struct sn9c102_device* cam, const struct usb_device_id *id); | ||
95 | |||
90 | /* Attach a probed sensor to the camera. */ | 96 | /* Attach a probed sensor to the camera. */ |
91 | extern void | 97 | extern void |
92 | sn9c102_attach_sensor(struct sn9c102_device* cam, | 98 | sn9c102_attach_sensor(struct sn9c102_device* cam, |
@@ -108,6 +114,7 @@ sn9c102_attach_sensor(struct sn9c102_device* cam, | |||
108 | static const struct usb_device_id sn9c102_id_table[] = { \ | 114 | static const struct usb_device_id sn9c102_id_table[] = { \ |
109 | { USB_DEVICE(0x0c45, 0x6001), }, /* TAS5110C1B */ \ | 115 | { USB_DEVICE(0x0c45, 0x6001), }, /* TAS5110C1B */ \ |
110 | { USB_DEVICE(0x0c45, 0x6005), }, /* TAS5110C1B */ \ | 116 | { USB_DEVICE(0x0c45, 0x6005), }, /* TAS5110C1B */ \ |
117 | { USB_DEVICE(0x0c45, 0x6007), }, \ | ||
111 | { USB_DEVICE(0x0c45, 0x6009), }, /* PAS106B */ \ | 118 | { USB_DEVICE(0x0c45, 0x6009), }, /* PAS106B */ \ |
112 | { USB_DEVICE(0x0c45, 0x600d), }, /* PAS106B */ \ | 119 | { USB_DEVICE(0x0c45, 0x600d), }, /* PAS106B */ \ |
113 | { USB_DEVICE(0x0c45, 0x6024), }, \ | 120 | { USB_DEVICE(0x0c45, 0x6024), }, \ |
@@ -126,7 +133,7 @@ static const struct usb_device_id sn9c102_id_table[] = { \ | |||
126 | { SN9C102_USB_DEVICE(0x0c45, 0x6088, 0xff), }, \ | 133 | { SN9C102_USB_DEVICE(0x0c45, 0x6088, 0xff), }, \ |
127 | { SN9C102_USB_DEVICE(0x0c45, 0x608a, 0xff), }, \ | 134 | { SN9C102_USB_DEVICE(0x0c45, 0x608a, 0xff), }, \ |
128 | { SN9C102_USB_DEVICE(0x0c45, 0x608b, 0xff), }, \ | 135 | { SN9C102_USB_DEVICE(0x0c45, 0x608b, 0xff), }, \ |
129 | { SN9C102_USB_DEVICE(0x0c45, 0x608c, 0xff), }, /* HV7131x */ \ | 136 | { SN9C102_USB_DEVICE(0x0c45, 0x608c, 0xff), }, /* HV7131/R */ \ |
130 | { SN9C102_USB_DEVICE(0x0c45, 0x608e, 0xff), }, /* CIS-VF10 */ \ | 137 | { SN9C102_USB_DEVICE(0x0c45, 0x608e, 0xff), }, /* CIS-VF10 */ \ |
131 | { SN9C102_USB_DEVICE(0x0c45, 0x608f, 0xff), }, /* OV7630 */ \ | 138 | { SN9C102_USB_DEVICE(0x0c45, 0x608f, 0xff), }, /* OV7630 */ \ |
132 | { SN9C102_USB_DEVICE(0x0c45, 0x60a0, 0xff), }, \ | 139 | { SN9C102_USB_DEVICE(0x0c45, 0x60a0, 0xff), }, \ |
@@ -359,12 +366,6 @@ struct sn9c102_sensor { | |||
359 | error code without rolling back. | 366 | error code without rolling back. |
360 | */ | 367 | */ |
361 | 368 | ||
362 | const struct usb_device* usbdev; | ||
363 | /* | ||
364 | Points to the usb_device struct after the sensor is attached. | ||
365 | Do not touch unless you know what you are doing. | ||
366 | */ | ||
367 | |||
368 | /* | 369 | /* |
369 | Do NOT write to the data below, it's READ ONLY. It is used by the | 370 | Do NOT write to the data below, it's READ ONLY. It is used by the |
370 | core module to store successfully updated values of the above | 371 | core module to store successfully updated values of the above |