aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOliver Endriss <o.endriss@gmx.de>2011-01-10 09:36:11 (GMT)
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-01-17 15:38:02 (GMT)
commit35583a994c7868790b51c3a9f7547e6abb70340f (patch)
tree93e5888e78187d85d2e4c4519599e97111b740bd
parente90e0a5675c5d59dfc6c1c31451093784a673412 (diff)
[media] ngene: Firmware 18 support
Small modifications for firmware 18. Signed-off-by: Oliver Endriss <o.endriss@gmx.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/dvb/ngene/ngene-core.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/media/dvb/ngene/ngene-core.c b/drivers/media/dvb/ngene/ngene-core.c
index dc073bd..cd5b1f3 100644
--- a/drivers/media/dvb/ngene/ngene-core.c
+++ b/drivers/media/dvb/ngene/ngene-core.c
@@ -1257,6 +1257,10 @@ static int ngene_load_firm(struct ngene *dev)
fw_name = "ngene_17.fw";
dev->cmd_timeout_workaround = true;
break;
+ case 18:
+ size = 0;
+ fw_name = "ngene_18.fw";
+ break;
}
if (request_firmware(&fw, fw_name, &dev->pci_dev->dev) < 0) {
@@ -1266,6 +1270,8 @@ static int ngene_load_firm(struct ngene *dev)
": Copy %s to your hotplug directory!\n", fw_name);
return -1;
}
+ if (size == 0)
+ size = fw->size;
if (size != fw->size) {
printk(KERN_ERR DEVICE_NAME
": Firmware %s has invalid size!", fw_name);
@@ -1365,7 +1371,7 @@ static int ngene_start(struct ngene *dev)
if (stat < 0)
goto fail;
- if (dev->card_info->fw_version == 17) {
+ if (dev->card_info->fw_version >= 17) {
u8 tsin4_config[6] = {
3072 / 64, 3072 / 64, 0, 3072 / 64, 3072 / 64, 0};
u8 default_config[6] = {
@@ -1374,7 +1380,7 @@ static int ngene_start(struct ngene *dev)
if (dev->card_info->io_type[3] == NGENE_IO_TSIN)
bconf = tsin4_config;
- dprintk(KERN_DEBUG DEVICE_NAME ": FW 17 buffer config\n");
+ dprintk(KERN_DEBUG DEVICE_NAME ": FW 17+ buffer config\n");
stat = ngene_command_config_free_buf(dev, bconf);
} else {
int bconf = BUFFER_CONFIG_4422;

Privacy Policy