aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarlos Corbacho <carlos@strangeworlds.co.uk>2011-06-25 09:24:28 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2011-07-27 16:55:53 -0400
commitdbe8740ddecfbeb81d97dd6e85e0298081a6085d (patch)
treee57e4925eaccb78dd9bc2de3271b1e3f9b2dc7eb
parent01434faf6d82f791c701d299f898bf261a724342 (diff)
[media] Make Compro VideoMate Vista T750F actually work
Based on the work of John Newbigin, Davor Emard and others who contributed on the mailing lists. The previous 'support' for this card was a partial merge of John's changes that, as far as I can tell, never actually got the thing working (no DVB-T, analog tuner not initialised). Initialise the analog tuner properly and hook up the DVB tuner and demodulator. DVB-T and analog now work (though I can't tune every DVB channel, but I think there's an issue with the aerial and signal boosters here that is causing me problems). Signed-off-by: Carlos Corbacho <carlos@strangeworlds.co.uk> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c13
-rw-r--r--drivers/media/video/saa7134/saa7134-dvb.c25
2 files changed, 37 insertions, 1 deletions
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c
index e2062b240e32..0f9fb99adeb4 100644
--- a/drivers/media/video/saa7134/saa7134-cards.c
+++ b/drivers/media/video/saa7134/saa7134-cards.c
@@ -4951,8 +4951,9 @@ struct saa7134_board saa7134_boards[] = {
4951 .audio_clock = 0x00187de7, 4951 .audio_clock = 0x00187de7,
4952 .tuner_type = TUNER_XC2028, 4952 .tuner_type = TUNER_XC2028,
4953 .radio_type = UNSET, 4953 .radio_type = UNSET,
4954 .tuner_addr = ADDR_UNSET, 4954 .tuner_addr = 0x61,
4955 .radio_addr = ADDR_UNSET, 4955 .radio_addr = ADDR_UNSET,
4956 .mpeg = SAA7134_MPEG_DVB,
4956 .inputs = {{ 4957 .inputs = {{
4957 .name = name_tv, 4958 .name = name_tv,
4958 .vmux = 3, 4959 .vmux = 3,
@@ -6992,6 +6993,11 @@ static int saa7134_xc2028_callback(struct saa7134_dev *dev,
6992 msleep(10); 6993 msleep(10);
6993 saa7134_set_gpio(dev, 18, 1); 6994 saa7134_set_gpio(dev, 18, 1);
6994 break; 6995 break;
6996 case SAA7134_BOARD_VIDEOMATE_T750:
6997 saa7134_set_gpio(dev, 20, 0);
6998 msleep(10);
6999 saa7134_set_gpio(dev, 20, 1);
7000 break;
6995 } 7001 }
6996 return 0; 7002 return 0;
6997 } 7003 }
@@ -7451,6 +7457,11 @@ int saa7134_board_init1(struct saa7134_dev *dev)
7451 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x0e050000, 0x0c050000); 7457 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x0e050000, 0x0c050000);
7452 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0e050000, 0x0c050000); 7458 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x0e050000, 0x0c050000);
7453 break; 7459 break;
7460 case SAA7134_BOARD_VIDEOMATE_T750:
7461 /* enable the analog tuner */
7462 saa_andorl(SAA7134_GPIO_GPMODE0 >> 2, 0x00008000, 0x00008000);
7463 saa_andorl(SAA7134_GPIO_GPSTATUS0 >> 2, 0x00008000, 0x00008000);
7464 break;
7454 } 7465 }
7455 return 0; 7466 return 0;
7456} 7467}
diff --git a/drivers/media/video/saa7134/saa7134-dvb.c b/drivers/media/video/saa7134/saa7134-dvb.c
index 996a206c6d79..1e4ef1669887 100644
--- a/drivers/media/video/saa7134/saa7134-dvb.c
+++ b/drivers/media/video/saa7134/saa7134-dvb.c
@@ -56,6 +56,7 @@
56#include "lgs8gxx.h" 56#include "lgs8gxx.h"
57 57
58#include "zl10353.h" 58#include "zl10353.h"
59#include "qt1010.h"
59 60
60#include "zl10036.h" 61#include "zl10036.h"
61#include "zl10039.h" 62#include "zl10039.h"
@@ -939,6 +940,18 @@ static struct zl10353_config behold_x7_config = {
939 .disable_i2c_gate_ctrl = 1, 940 .disable_i2c_gate_ctrl = 1,
940}; 941};
941 942
943static struct zl10353_config videomate_t750_zl10353_config = {
944 .demod_address = 0x0f,
945 .no_tuner = 1,
946 .parallel_ts = 1,
947 .disable_i2c_gate_ctrl = 1,
948};
949
950static struct qt1010_config videomate_t750_qt1010_config = {
951 .i2c_address = 0x62
952};
953
954
942/* ================================================================== 955/* ==================================================================
943 * tda10086 based DVB-S cards, helper functions 956 * tda10086 based DVB-S cards, helper functions
944 */ 957 */
@@ -1650,6 +1663,18 @@ static int dvb_init(struct saa7134_dev *dev)
1650 __func__); 1663 __func__);
1651 1664
1652 break; 1665 break;
1666 case SAA7134_BOARD_VIDEOMATE_T750:
1667 fe0->dvb.frontend = dvb_attach(zl10353_attach,
1668 &videomate_t750_zl10353_config,
1669 &dev->i2c_adap);
1670 if (fe0->dvb.frontend != NULL) {
1671 if (dvb_attach(qt1010_attach,
1672 fe0->dvb.frontend,
1673 &dev->i2c_adap,
1674 &videomate_t750_qt1010_config) == NULL)
1675 wprintk("error attaching QT1010\n");
1676 }
1677 break;
1653 case SAA7134_BOARD_ZOLID_HYBRID_PCI: 1678 case SAA7134_BOARD_ZOLID_HYBRID_PCI:
1654 fe0->dvb.frontend = dvb_attach(tda10048_attach, 1679 fe0->dvb.frontend = dvb_attach(tda10048_attach,
1655 &zolid_tda10048_config, 1680 &zolid_tda10048_config,