V4L/DVB (8098): xc5000: add module option to load firmware during driver attach
authorMichael Krufky <mkrufky@linuxtv.org>
Sun, 22 Jun 2008 01:13:42 +0000 (22:13 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Sun, 20 Jul 2008 10:11:40 +0000 (07:11 -0300)
The xc5000 firmware download process can be slow on certain devices.

Add a module option, "init_fw" to perform the firmware download during
xc5000_attach(), which would get the firmware download over with well
before any tune request is made.

When this option is enabled, it will reduce the time it takes to get a
signal lock during the first tune after driver load, but will add a few
seconds to the driver initialization.

Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/common/tuners/xc5000.c

index 4878d64..5f99de0 100644 (file)
@@ -36,6 +36,10 @@ static int debug;
 module_param(debug, int, 0644);
 MODULE_PARM_DESC(debug, "Turn on/off debugging (default:off).");
 
+static int xc5000_load_fw_on_attach;
+module_param_named(init_fw, xc5000_load_fw_on_attach, int, 0644);
+MODULE_PARM_DESC(init_fw, "Load firmware during driver initialization.");
+
 #define dprintk(level,fmt, arg...) if (debug >= level) \
        printk(KERN_INFO "%s: " fmt, "xc5000", ## arg)
 
@@ -972,6 +976,9 @@ struct dvb_frontend *xc5000_attach(struct dvb_frontend *fe,
 
        fe->tuner_priv = priv;
 
+       if (xc5000_load_fw_on_attach)
+               xc5000_init(fe);
+
        return fe;
 }
 EXPORT_SYMBOL(xc5000_attach);