aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHermann Pitton <hermann-pitton@arcor.de>2006-10-02 19:18:26 -0400
committerMauro Carvalho Chehab <mchehab@infradead.org>2006-10-04 07:05:42 -0400
commit6b14ff9e901935a685ac430828452b53936dcbad (patch)
treee881681fc228294bd560cfda4f887d5e8377af37
parent17b10a73e697da71faa3e54e35421aca4531aa9b (diff)
V4L/DVB (4702): Fix: set antenna input for DVB-T for Asus P7131 Dual hybrid
This patch forces the correct antenna input input in DVB-T mode for this card. Signed-off-by: Hermann Pitton <hermann-pitton@arcor.de> 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.c32
1 files changed, 30 insertions, 2 deletions
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c
index fb741fa465a5..f72a91f30259 100644
--- a/drivers/media/video/saa7134/saa7134-dvb.c
+++ b/drivers/media/video/saa7134/saa7134-dvb.c
@@ -874,6 +874,34 @@ static struct tda1004x_config philips_tiger_config = {
874 874
875/* ------------------------------------------------------------------ */ 875/* ------------------------------------------------------------------ */
876 876
877static int asus_p7131_dual_tuner_init(struct dvb_frontend *fe)
878{
879 struct saa7134_dev *dev = fe->dvb->priv;
880 static u8 data[] = { 0x3c, 0x33, 0x6a};
881 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
882
883 if (i2c_transfer(&dev->i2c_adap, &msg, 1) != 1)
884 return -EIO;
885 /* make sure the DVB-T antenna input is set */
886 saa_setl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0200000);
887 return 0;
888}
889
890static int asus_p7131_dual_tuner_sleep(struct dvb_frontend *fe)
891{
892 struct saa7134_dev *dev = fe->dvb->priv;
893 static u8 data[] = { 0x3c, 0x33, 0x68};
894 struct i2c_msg msg = {.addr=0x08, .flags=0, .buf=data, .len = sizeof(data)};
895
896 i2c_transfer(&dev->i2c_adap, &msg, 1);
897 philips_tda827xa_tuner_sleep( 0x61, fe);
898 /* reset antenna inputs for analog usage */
899 saa_clearl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0200000);
900 return 0;
901}
902
903/* ------------------------------------------------------------------ */
904
877static int lifeview_trio_tuner_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) 905static int lifeview_trio_tuner_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params)
878{ 906{
879 int ret; 907 int ret;
@@ -1148,8 +1176,8 @@ static int dvb_init(struct saa7134_dev *dev)
1148 &philips_tiger_config, 1176 &philips_tiger_config,
1149 &dev->i2c_adap); 1177 &dev->i2c_adap);
1150 if (dev->dvb.frontend) { 1178 if (dev->dvb.frontend) {
1151 dev->dvb.frontend->ops.tuner_ops.init = philips_tiger_tuner_init; 1179 dev->dvb.frontend->ops.tuner_ops.init = asus_p7131_dual_tuner_init;
1152 dev->dvb.frontend->ops.tuner_ops.sleep = philips_tiger_tuner_sleep; 1180 dev->dvb.frontend->ops.tuner_ops.sleep = asus_p7131_dual_tuner_sleep;
1153 dev->dvb.frontend->ops.tuner_ops.set_params = philips_tiger_tuner_set_params; 1181 dev->dvb.frontend->ops.tuner_ops.set_params = philips_tiger_tuner_set_params;
1154 } 1182 }
1155 break; 1183 break;