Skip to content

Commit

Permalink
V4L/DVB (4650): Misc fixes for dib0700 download
Browse files Browse the repository at this point in the history
Several fixes for dib0700-module. (Firmware error checking, dependency)

Signed-off-by: Patrick Boettcher <pb@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
  • Loading branch information
Patrick Boettcher authored and Mauro Carvalho Chehab committed Oct 3, 2006
1 parent 0540c49 commit 5bc6360
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 7 deletions.
1 change: 1 addition & 0 deletions drivers/media/dvb/dvb-usb/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@ config DVB_USB_DIB0700
tristate "DiBcom DiB0700 USB DVB devices (see help for supported devices)"
depends on DVB_USB
select DVB_DIB7000M
select DVB_DIB3000MC
select DVB_TUNER_MT2060
help
Support for USB2.0/1.1 DVB receivers based on the DiB0700 USB bridge. The
Expand Down
8 changes: 3 additions & 5 deletions drivers/media/dvb/dvb-usb/dib0700_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,6 @@ int dib0700_identify_state(struct usb_device *udev, struct dvb_usb_device_proper
buf[0], USB_TYPE_VENDOR | USB_DIR_OUT, 0, 0, buf, 3, USB_CTRL_GET_TIMEOUT) != 3;

deb_info("cold: %d\n", *cold);

*cold = 0;
return 0;
}

Expand Down Expand Up @@ -171,11 +169,11 @@ int dib0700_download_firmware(struct usb_device *udev, const struct firmware *fw
u8 buf[260];

while ((ret = dvb_usb_get_hexline(fw, &hx, &pos)) > 0) {
deb_fwdata("writing to address 0x%04x (buffer: 0x%02x %02x)\n",hx.addr, hx.len, hx.chk);
deb_fwdata("writing to address 0x%08x (buffer: 0x%02x %02x)\n",hx.addr, hx.len, hx.chk);

buf[0] = hx.len;
buf[1] = hx.addr >> 8;
buf[2] = hx.addr & 0xff;
buf[1] = (hx.addr >> 8) & 0xff;
buf[2] = hx.addr & 0xff;
buf[3] = hx.type;
memcpy(&buf[4],hx.data,hx.len);
buf[4+hx.len] = hx.chk;
Expand Down
1 change: 0 additions & 1 deletion drivers/media/dvb/dvb-usb/dvb-usb-firmware.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@ int dvb_usb_download_firmware(struct usb_device *udev, struct dvb_usb_device_pro
int ret;
const struct firmware *fw = NULL;


if ((ret = request_firmware(&fw, props->firmware, &udev->dev)) != 0) {
err("did not find the firmware file. (%s) "
"Please see linux/Documentation/dvb/ for more details on firmware-problems. (%d)",
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/dvb/dvb-usb/dvb-usb-init.c
Original file line number Diff line number Diff line change
Expand Up @@ -228,7 +228,7 @@ int dvb_usb_device_init(struct usb_interface *intf, struct dvb_usb_device_proper
if (cold) {
info("found a '%s' in cold state, will try to load a firmware",desc->name);
ret = dvb_usb_download_firmware(udev,props);
if (!props->no_reconnect)
if (!props->no_reconnect || ret != 0)
return ret;
}

Expand Down

0 comments on commit 5bc6360

Please sign in to comment.