Commit 1f683cd8 authored by Nico Sabbi's avatar Nico Sabbi Committed by Mauro Carvalho Chehab

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: default avatarNico Sabbi <nsabbi@tiscali.it>
Signed-off-by: default avatarHartmut Hackmann <hartmut.hackmann@t-online.de>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent 550a9a5e
...@@ -50,6 +50,10 @@ static unsigned int antenna_pwr = 0; ...@@ -50,6 +50,10 @@ static unsigned int antenna_pwr = 0;
module_param(antenna_pwr, int, 0444); module_param(antenna_pwr, int, 0444);
MODULE_PARM_DESC(antenna_pwr,"enable antenna power (Pinnacle 300i)"); MODULE_PARM_DESC(antenna_pwr,"enable antenna power (Pinnacle 300i)");
static int use_frontent = 0;
module_param(use_frontent, int, 0644);
MODULE_PARM_DESC(use_frontent,"for cards with multiple frontends (0: terrestrial, 1: satellite)");
/* ------------------------------------------------------------------ */ /* ------------------------------------------------------------------ */
static int pinnacle_antenna_pwr(struct saa7134_dev *dev, int on) static int pinnacle_antenna_pwr(struct saa7134_dev *dev, int on)
{ {
...@@ -1299,12 +1303,27 @@ static int dvb_init(struct saa7134_dev *dev) ...@@ -1299,12 +1303,27 @@ static int dvb_init(struct saa7134_dev *dev)
} }
break; break;
case SAA7134_BOARD_FLYDVB_TRIO: case SAA7134_BOARD_FLYDVB_TRIO:
dev->dvb.frontend = dvb_attach(tda10046_attach, if(! use_frontent) { //terrestrial
&lifeview_trio_config, dev->dvb.frontend = dvb_attach(tda10046_attach,
&dev->i2c_adap); &lifeview_trio_config,
if (dev->dvb.frontend) { &dev->i2c_adap);
dev->dvb.frontend->ops.tuner_ops.sleep = lifeview_trio_tuner_sleep; if (dev->dvb.frontend) {
dev->dvb.frontend->ops.tuner_ops.set_params = lifeview_trio_tuner_set_params; dev->dvb.frontend->ops.tuner_ops.sleep = lifeview_trio_tuner_sleep;
dev->dvb.frontend->ops.tuner_ops.set_params =
lifeview_trio_tuner_set_params;
}
} else { //satellite
dev->dvb.frontend = dvb_attach(tda10086_attach, &flydvbs, &dev->i2c_adap);
if (dev->dvb.frontend) {
if (dvb_attach(tda826x_attach, dev->dvb.frontend, 0x63,
&dev->i2c_adap, 0) == NULL) {
printk("%s: Lifeview Trio, No tda826x found!\n", __FUNCTION__);
}
if (dvb_attach(isl6421_attach, dev->dvb.frontend, &dev->i2c_adap,
0x08, 0, 0) == NULL) {
printk("%s: Lifeview Trio, No ISL6421 found!\n", __FUNCTION__);
}
}
} }
break; break;
case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331: case SAA7134_BOARD_ADS_DUO_CARDBUS_PTV331:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment