aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video
diff options
context:
space:
mode:
authorHartmut Hackmann <hartmut.hackmann@t-online.de>2008-04-22 13:46:10 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-04-24 13:07:52 -0400
commite9c1ac9d8d75eaf15126e38cc7d09db03d1a3fd6 (patch)
tree92fbc578aaa12331a0aa2f216659e48f3a65a86b /drivers/media/video
parenta4df8e1d6ae460546dfa3b4f23a85cb5a4255109 (diff)
V4L/DVB (7395): saa7134: start 2nd LND supply of Medion cards only if needed
The ISL6405 LNB supply is used on several Creatix / Medion cards. But only the MD8800 needs its second section. So don't start it unless it is needed. Signed-off-by: Hartmut Hackmann <hartmut.hackmann@t-online.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'drivers/media/video')
-rw-r--r--drivers/media/video/saa7134/saa7134-dvb.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c
index f95f5f2fbf72..07614a8d8949 100644
--- a/drivers/media/video/saa7134/saa7134-dvb.c
+++ b/drivers/media/video/saa7134/saa7134-dvb.c
@@ -1052,10 +1052,12 @@ static int dvb_init(struct saa7134_dev *dev)
1052 &dev->i2c_adap, 0x08, 0, 0) == NULL) 1052 &dev->i2c_adap, 0x08, 0, 0) == NULL)
1053 wprintk("%s: Medion Quadro, no ISL6405 " 1053 wprintk("%s: Medion Quadro, no ISL6405 "
1054 "found !\n", __func__); 1054 "found !\n", __func__);
1055 /* fire up the 2nd section of the LNB supply since we can't do 1055 if (dev_id == 0x07) {
1056 this from the other section */ 1056 /* fire up the 2nd section of the LNB supply since
1057 msg.buf = &data; 1057 we can't do this from the other section */
1058 i2c_transfer(&dev->i2c_adap, &msg, 1); 1058 msg.buf = &data;
1059 i2c_transfer(&dev->i2c_adap, &msg, 1);
1060 }
1059 fe->ops.i2c_gate_ctrl(fe, 0); 1061 fe->ops.i2c_gate_ctrl(fe, 0);
1060 dev->original_set_voltage = fe->ops.set_voltage; 1062 dev->original_set_voltage = fe->ops.set_voltage;
1061 fe->ops.set_voltage = md8800_set_voltage; 1063 fe->ops.set_voltage = md8800_set_voltage;
@@ -1248,7 +1250,7 @@ static int dvb_fini(struct saa7134_dev *dev)
1248 /* otherwise we don't detect the tuner on next insmod */ 1250 /* otherwise we don't detect the tuner on next insmod */
1249 saa7134_i2c_call_clients(dev, TUNER_SET_CONFIG, &tda9887_cfg); 1251 saa7134_i2c_call_clients(dev, TUNER_SET_CONFIG, &tda9887_cfg);
1250 } else if (dev->board == SAA7134_BOARD_MEDION_MD8800_QUADRO) { 1252 } else if (dev->board == SAA7134_BOARD_MEDION_MD8800_QUADRO) {
1251 if ((dev->eedata[2] != 0x08) && use_frontend) { 1253 if ((dev->eedata[2] == 0x07) && use_frontend) {
1252 /* turn off the 2nd lnb supply */ 1254 /* turn off the 2nd lnb supply */
1253 u8 data = 0x80; 1255 u8 data = 0x80;
1254 struct i2c_msg msg = {.addr = 0x08, .buf = &data, .flags = 0, .len = 1}; 1256 struct i2c_msg msg = {.addr = 0x08, .buf = &data, .flags = 0, .len = 1};