diff options
| -rw-r--r-- | drivers/media/video/saa7134/saa7134-dvb.c | 32 |
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 | ||
| 877 | static 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 | |||
| 890 | static 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 | |||
| 877 | static int lifeview_trio_tuner_set_params(struct dvb_frontend *fe, struct dvb_frontend_parameters *params) | 905 | static 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; |
