V4L/DVB (3313): FIX: Check if FW was downloaded or not + new firmware file

- When a firmware was downloaded dvb_usb_device_init returns NULL for the
  dvb_usb_device, then nothing should be done with that pointer and device,
  because it will re-enumerate.
- A new firmware should be used with digitv devices. 
- It should make "slave"-devices work and others, too.

Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
Patrick Boettcher 2006-02-07 06:49:12 -02:00 committed by Mauro Carvalho Chehab
parent 123aab2860
commit 21d06544a7

View File

@ -175,11 +175,13 @@ static int digitv_probe(struct usb_interface *intf,
if ((ret = dvb_usb_device_init(intf,&digitv_properties,THIS_MODULE,&d)) == 0) { if ((ret = dvb_usb_device_init(intf,&digitv_properties,THIS_MODULE,&d)) == 0) {
u8 b[4] = { 0 }; u8 b[4] = { 0 };
b[0] = 1; if (d != NULL) { /* do that only when the firmware is loaded */
digitv_ctrl_msg(d,USB_WRITE_REMOTE_TYPE,0,b,4,NULL,0); b[0] = 1;
digitv_ctrl_msg(d,USB_WRITE_REMOTE_TYPE,0,b,4,NULL,0);
b[0] = 0; b[0] = 0;
digitv_ctrl_msg(d,USB_WRITE_REMOTE,0,b,4,NULL,0); digitv_ctrl_msg(d,USB_WRITE_REMOTE,0,b,4,NULL,0);
}
} }
return ret; return ret;
} }
@ -194,7 +196,7 @@ static struct dvb_usb_properties digitv_properties = {
.caps = DVB_USB_IS_AN_I2C_ADAPTER, .caps = DVB_USB_IS_AN_I2C_ADAPTER,
.usb_ctrl = CYPRESS_FX2, .usb_ctrl = CYPRESS_FX2,
.firmware = "dvb-usb-digitv-01.fw", .firmware = "dvb-usb-digitv-02.fw",
.size_of_priv = 0, .size_of_priv = 0,
@ -229,6 +231,7 @@ static struct dvb_usb_properties digitv_properties = {
{ &digitv_table[0], NULL }, { &digitv_table[0], NULL },
{ NULL }, { NULL },
}, },
{ NULL },
} }
}; };