From 05117165dd517dc999abd7499e68c1fc1c5502c6 Mon Sep 17 00:00:00 2001 From: Malcolm Priestley Date: Thu, 15 Dec 2011 18:43:44 -0300 Subject: [PATCH] --- yaml --- r: 285746 b: refs/heads/master c: f0e07d7658a81bc185b8ba58f062c16b79ac0e2b h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/media/dvb/dvb-usb/it913x.c | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 91901f67918f..2941355c89e1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 6a2329ad1cb80b158a75bbf1901b86dc2deb88ee +refs/heads/master: f0e07d7658a81bc185b8ba58f062c16b79ac0e2b diff --git a/trunk/drivers/media/dvb/dvb-usb/it913x.c b/trunk/drivers/media/dvb/dvb-usb/it913x.c index eb6a1bb6bffc..654aa7ceddf9 100644 --- a/trunk/drivers/media/dvb/dvb-usb/it913x.c +++ b/trunk/drivers/media/dvb/dvb-usb/it913x.c @@ -558,7 +558,7 @@ static int it913x_download_firmware(struct usb_device *udev, const struct firmware *fw) { int ret = 0, i = 0, pos = 0; - u8 packet_size; + u8 packet_size, min_pkt; u8 *fw_data; ret = it913x_wr_reg(udev, DEV_0, I2C_CLK, I2C_CLK_100); @@ -570,11 +570,16 @@ static int it913x_download_firmware(struct usb_device *udev, /* The firmware must start with 03 XX 00 */ /* and be the extact firmware length */ + if (it913x_config.chip_ver == 2) + min_pkt = 0x11; + else + min_pkt = 0x19; + while (i <= fw->size) { if (((fw->data[i] == 0x3) && (fw->data[i + 2] == 0x0)) || (i == fw->size)) { packet_size = i - pos; - if ((packet_size > 0x19) || (i == fw->size)) { + if ((packet_size > min_pkt) || (i == fw->size)) { fw_data = (u8 *)(fw->data + pos); pos += packet_size; if (packet_size > 0)