diff options
author | Michael Krufky <mkrufky@linuxtv.org> | 2008-06-21 21:13:42 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2008-07-20 06:11:40 -0400 |
commit | 7dc1b8844eb3e0a91911f20736db87f4876e14b4 (patch) | |
tree | c7d92c8dd6b45b7daa3daaa91a645201d302fac9 /drivers/media/common | |
parent | fa1035997cbba4c348a88f8b94eb135222aaba12 (diff) |
V4L/DVB (8098): xc5000: add module option to load firmware during driver attach
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>
Diffstat (limited to 'drivers/media/common')
-rw-r--r-- | drivers/media/common/tuners/xc5000.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/media/common/tuners/xc5000.c b/drivers/media/common/tuners/xc5000.c index 4878d6477a8c..5f99de0ad612 100644 --- a/drivers/media/common/tuners/xc5000.c +++ b/drivers/media/common/tuners/xc5000.c | |||
@@ -36,6 +36,10 @@ static int debug; | |||
36 | module_param(debug, int, 0644); | 36 | module_param(debug, int, 0644); |
37 | MODULE_PARM_DESC(debug, "Turn on/off debugging (default:off)."); | 37 | MODULE_PARM_DESC(debug, "Turn on/off debugging (default:off)."); |
38 | 38 | ||
39 | static int xc5000_load_fw_on_attach; | ||
40 | module_param_named(init_fw, xc5000_load_fw_on_attach, int, 0644); | ||
41 | MODULE_PARM_DESC(init_fw, "Load firmware during driver initialization."); | ||
42 | |||
39 | #define dprintk(level,fmt, arg...) if (debug >= level) \ | 43 | #define dprintk(level,fmt, arg...) if (debug >= level) \ |
40 | printk(KERN_INFO "%s: " fmt, "xc5000", ## arg) | 44 | printk(KERN_INFO "%s: " fmt, "xc5000", ## arg) |
41 | 45 | ||
@@ -972,6 +976,9 @@ struct dvb_frontend *xc5000_attach(struct dvb_frontend *fe, | |||
972 | 976 | ||
973 | fe->tuner_priv = priv; | 977 | fe->tuner_priv = priv; |
974 | 978 | ||
979 | if (xc5000_load_fw_on_attach) | ||
980 | xc5000_init(fe); | ||
981 | |||
975 | return fe; | 982 | return fe; |
976 | } | 983 | } |
977 | EXPORT_SYMBOL(xc5000_attach); | 984 | EXPORT_SYMBOL(xc5000_attach); |