aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNico Sabbi <nsabbi@tiscali.it>2006-11-15 20:06:56 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-12-10 05:51:28 -0500
commit1f683cd8bc8512c02a7d1b8358d71937d4c5134b (patch)
treedc4599f3c6c0fefd5fb559b497b7944b6a04bfbb
parent550a9a5e5f8086ae410832f134a5d80b9bd7fdb6 (diff)
V4L/DVB (4836): Added support for both DVB frontends of the Lifeview Trio
This card (like some others) supports both, DVB-T and a DVB-S. The patch adds an insmod option to select the frontend: use_frontend=0 -> DVB-T use_frontend=1 -> DVB-S Signed-off-by: Nico Sabbi <nsabbi@tiscali.it> Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/video/saa7134/saa7134-dvb.c31
1 files changed, 25 insertions, 6 deletions
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c
index ce888f704956..fa8339879095 100644
--- a/drivers/media/video/saa7134/saa7134-dvb.c
+++ b/drivers/media/video/saa7134/saa7134-dvb.c
@@ -50,6 +50,10 @@ static unsigned int antenna_pwr = 0;
50module_param(antenna_pwr, int, 0444); 50module_param(antenna_pwr, int, 0444);
51MODULE_PARM_DESC(antenna_pwr,"enable antenna power (Pinnacle 300i)"); 51MODULE_PARM_DESC(antenna_pwr,"enable antenna power (Pinnacle 300i)");
52 52
53static int use_frontent = 0;
54module_param(use_frontent, int, 0644);
55MODULE_PARM_DESC(use_frontent,"for cards with multiple frontends (0: terrestrial, 1: satellite)");
56
53/* ------------------------------------------------------------------ */ 57/* ------------------------------------------------------------------ */
54static int pinnacle_antenna_pwr(struct saa7134_dev *dev, int on) 58static int pinnacle_antenna_pwr(struct saa7134_dev *dev, int on)
55{ 59{
@@ -1299,12 +1303,27 @@ static int dvb_init(struct saa7134_dev *dev)
1299 } 1303 }
1300 break; 1304 break;
1301 case SAA7134_BOARD_FLYDVB_TRIO: 1305 case SAA7134_BOARD_FLYDVB_TRIO:
1302 dev->dvb.frontend = dvb_attach(tda10046_attach, 1306 if(! use_frontent) { //terrestrial
1303 &lifeview_trio_config, 1307 dev->dvb.frontend = dvb_attach(tda10046_attach,
1304 &dev->i2c_adap); 1308 &lifeview_trio_config,
1305 if (dev->dvb.frontend) { 1309 &dev->i2c_adap);
1306 dev->dvb.frontend->ops.tuner_ops.sleep = lifeview_trio_tuner_sleep; 1310 if (dev->dvb.frontend) {
1307 dev->dvb.frontend->ops.tuner_ops.set_params = lifeview_trio_tuner_set_params; 1311 dev->dvb.frontend->ops.tuner_ops.sleep = lifeview_trio_tuner_sleep;
1312 dev->dvb.frontend->ops.tuner_ops.set_params =
1313 lifeview_trio_tuner_set_params;
1314 }
1315 } else { //satellite
1316 dev->dvb.frontend = dvb_attach(tda10086_attach, &flydvbs, &dev->i2c_adap);
1317 if (dev->dvb.frontend) {
1318 if (dvb_attach(tda826x_attach, dev->dvb.frontend, 0x63,
1319 &dev->i2c_adap, 0) == NULL) {
1320 printk("%s: Lifeview Trio, No tda826x found!\n", __FUNCTION__);
1321 }
1322 if (dvb_attach(isl6421_attach, dev->dvb.frontend, &dev->i2c_adap,
1323 0x08, 0, 0) == NULL) {
1324 printk("%s: Lifeview Trio, No ISL6421 found!\n", __FUNCTION__);
1325 }
1326 }
1308 } 1327 }
1309 break; 1328 break;
1310 case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331: 1329 case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331: