summaryrefslogtreecommitdiff
path: root/drivers/staging/media/go7007/go7007-usb.c
diff options
context:
space:
mode:
authorVolokh Konstantin <my84@bk.ru>2012-05-11 02:18:37 -0300
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-05-20 10:29:47 -0300
commit0982db20aba5fd124bb5942d679d8732478e992a (patch)
tree2cc07ce3dd1b1c921fd81af21c2619dfb8d7ee7e /drivers/staging/media/go7007/go7007-usb.c
parentccb5cf9bfcec739506d91737c4a9675e78868db2 (diff)
[media] staging: media: go7007: Adlink MPG24 board issues
This issuses applyed only for Adlink MPG24 board with go7007 & wis2804, all whese changes was tested for continuos load&restart mode This is minimal changes needed for start up go7007&wis2804 to work correctly in 3.4 branch Changes: - When go7007 reset device, i2c was not worked (need rewrite GPIO5) - As wis2804 has i2c_addr=0x00/*really*/, so Need set I2C_CLIENT_TEN flag for validity - some main nonzero initialization, rewrites with kzalloc instead kmalloc - STATUS_SHUTDOWN was placed in incorrect place, so if firmware wasn`t loaded, we failed v4l2_device_unregister with kernel panic (OOPS) - some new v4l2 style features as call_all(...s_stream...) for using subdev calls - wis-tw2804.ko module code was incompatible with 3.4 branch in initialization v4l2_subdev parts. now i2c_get_clientdata(...) contains v4l2_subdev struct instead non standart wis_tw2804 struct Adds: - Additional chipset tw2804 controls with: gain,auto gain,inputs[0,1],color kill,chroma gain,gain balances, for all 4 channels (from tw2804.pdf) - Power control for each 4 ADC (tw2804) up when s_stream(...,1), down otherwise Signed-off-by: Volokh Konstantin <volokh84@gmail.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/staging/media/go7007/go7007-usb.c')
-rw-r--r--drivers/staging/media/go7007/go7007-usb.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/staging/media/go7007/go7007-usb.c b/drivers/staging/media/go7007/go7007-usb.c
index 5443e25086e9..9dbf5ecd05a2 100644
--- a/drivers/staging/media/go7007/go7007-usb.c
+++ b/drivers/staging/media/go7007/go7007-usb.c
@@ -1110,9 +1110,6 @@ static int go7007_usb_probe(struct usb_interface *intf,
} else {
u16 channel;
- /* set GPIO5 to be an output, currently low */
- go7007_write_addr(go, 0x3c82, 0x0000);
- go7007_write_addr(go, 0x3c80, 0x00df);
/* read channel number from GPIO[1:0] */
go7007_read_addr(go, 0x3c81, &channel);
channel &= 0x3;
@@ -1245,7 +1242,6 @@ static void go7007_usb_disconnect(struct usb_interface *intf)
struct urb *vurb, *aurb;
int i;
- go->status = STATUS_SHUTDOWN;
usb_kill_urb(usb->intr_urb);
/* Free USB-related structs */
@@ -1269,6 +1265,7 @@ static void go7007_usb_disconnect(struct usb_interface *intf)
kfree(go->hpi_context);
go7007_remove(go);
+ go->status = STATUS_SHUTDOWN;
}
static struct usb_driver go7007_usb_driver = {