aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/video/cx88/cx88-cards.c
diff options
context:
space:
mode:
authorSteven Toth <stoth@hauppauge.com>2006-01-09 12:25:12 -0500
committerMauro Carvalho Chehab <mchehab@brturbo.com.br>2006-01-09 12:25:12 -0500
commit611900c1858747a87657eb405ebab5b1e72bb57c (patch)
tree661e767af2ee8a655dae18cd8872cfcb897e3ebb /drivers/media/video/cx88/cx88-cards.c
parent35dc0fefb18eea1b4180a8fafbb83db6a9b7c401 (diff)
V4L/DVB (3089): Adding support for the Hauppauge HVR1100 and HVR1100-LP products.
- Add support for the Hauppauge HVR1100 and HVR1100-LP products. - Add i2c_gate_ctrl callback function to dvb_frontend_ops struct. Signed-off-by: Steven Toth <stoth@hauppauge.com> Signed-off-by: Michael Krufky <mkrufky@m1k.net> Signed-off-by: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
Diffstat (limited to 'drivers/media/video/cx88/cx88-cards.c')
-rw-r--r--drivers/media/video/cx88/cx88-cards.c63
1 files changed, 58 insertions, 5 deletions
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
index fd173e6ac605..b4fd1ef007ea 100644
--- a/drivers/media/video/cx88/cx88-cards.c
+++ b/drivers/media/video/cx88/cx88-cards.c
@@ -903,7 +903,6 @@ struct cx88_board cx88_boards[] = {
903 .radio_type = UNSET, 903 .radio_type = UNSET,
904 .tuner_addr = ADDR_UNSET, 904 .tuner_addr = ADDR_UNSET,
905 .radio_addr = ADDR_UNSET, 905 .radio_addr = ADDR_UNSET,
906 /* fixme: add the analog gpio stuff here */
907 .input = {{ 906 .input = {{
908 .type = CX88_VMUX_DVB, 907 .type = CX88_VMUX_DVB,
909 .vmux = 0, 908 .vmux = 0,
@@ -946,6 +945,43 @@ struct cx88_board cx88_boards[] = {
946 }}, 945 }},
947 .dvb = 1, 946 .dvb = 1,
948 }, 947 },
948 [CX88_BOARD_HAUPPAUGE_HVR1100] = {
949 .name = "Hauppauge WinTV-HVR1100 DVB-T/Hybrid",
950 .tuner_type = TUNER_PHILIPS_FMD1216ME_MK3,
951 .radio_type = UNSET,
952 .tuner_addr = ADDR_UNSET,
953 .radio_addr = ADDR_UNSET,
954 .tda9887_conf = TDA9887_PRESENT,
955 .input = {{
956 .type = CX88_VMUX_TELEVISION,
957 .vmux = 0,
958 },{
959 .type = CX88_VMUX_COMPOSITE1,
960 .vmux = 1,
961 },{
962 .type = CX88_VMUX_SVIDEO,
963 .vmux = 2,
964 }},
965 /* fixme: Add radio support */
966 .dvb = 1,
967 },
968 [CX88_BOARD_HAUPPAUGE_HVR1100LP] = {
969 .name = "Hauppauge WinTV-HVR1100 DVB-T/Hybrid (Low Profile)",
970 .tuner_type = TUNER_PHILIPS_FMD1216ME_MK3,
971 .radio_type = UNSET,
972 .tuner_addr = ADDR_UNSET,
973 .radio_addr = ADDR_UNSET,
974 .tda9887_conf = TDA9887_PRESENT,
975 .input = {{
976 .type = CX88_VMUX_TELEVISION,
977 .vmux = 0,
978 },{
979 .type = CX88_VMUX_COMPOSITE1,
980 .vmux = 1,
981 }},
982 /* fixme: Add radio support */
983 .dvb = 1,
984 },
949}; 985};
950const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards); 986const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards);
951 987
@@ -1109,6 +1145,22 @@ struct cx88_subid cx88_subids[] = {
1109 .subvendor = 0x17de, 1145 .subvendor = 0x17de,
1110 .subdevice = 0x08b2, 1146 .subdevice = 0x08b2,
1111 .card = CX88_BOARD_KWORLD_DVBS_100, 1147 .card = CX88_BOARD_KWORLD_DVBS_100,
1148 },{
1149 .subvendor = 0x0070,
1150 .subdevice = 0x9400,
1151 .card = CX88_BOARD_HAUPPAUGE_HVR1100,
1152 },{
1153 .subvendor = 0x0070,
1154 .subdevice = 0x9402,
1155 .card = CX88_BOARD_HAUPPAUGE_HVR1100,
1156 },{
1157 .subvendor = 0x0070,
1158 .subdevice = 0x9800,
1159 .card = CX88_BOARD_HAUPPAUGE_HVR1100LP,
1160 },{
1161 .subvendor = 0x0070,
1162 .subdevice = 0x9802,
1163 .card = CX88_BOARD_HAUPPAUGE_HVR1100LP,
1112 }, 1164 },
1113}; 1165};
1114const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids); 1166const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);
@@ -1140,9 +1192,6 @@ static void __devinit leadtek_eeprom(struct cx88_core *core, u8 *eeprom_data)
1140 core->name, core->tuner_type, eeprom_data[0]); 1192 core->name, core->tuner_type, eeprom_data[0]);
1141} 1193}
1142 1194
1143
1144/* ----------------------------------------------------------------------- */
1145
1146static void hauppauge_eeprom(struct cx88_core *core, u8 *eeprom_data) 1195static void hauppauge_eeprom(struct cx88_core *core, u8 *eeprom_data)
1147{ 1196{
1148 struct tveeprom tv; 1197 struct tveeprom tv;
@@ -1161,7 +1210,9 @@ static void hauppauge_eeprom(struct cx88_core *core, u8 *eeprom_data)
1161 case 90500: /* Nova-T-PCI (oem) */ 1210 case 90500: /* Nova-T-PCI (oem) */
1162 case 90501: /* Nova-T-PCI (oem/IR) */ 1211 case 90501: /* Nova-T-PCI (oem/IR) */
1163 case 92000: /* Nova-SE2 (OEM, No Video or IR) */ 1212 case 92000: /* Nova-SE2 (OEM, No Video or IR) */
1164 1213 case 94009: /* WinTV-HVR1100 (Video and IR Retail) */
1214 case 94501: /* WinTV-HVR1100 (Video and IR OEM) */
1215 case 98559: /* WinTV-HVR1100LP (Video no IR, Retail - Low Profile) */
1165 /* known */ 1216 /* known */
1166 break; 1217 break;
1167 default: 1218 default:
@@ -1279,6 +1330,8 @@ void cx88_card_setup(struct cx88_core *core)
1279 case CX88_BOARD_HAUPPAUGE_NOVASPLUS_S1: 1330 case CX88_BOARD_HAUPPAUGE_NOVASPLUS_S1:
1280 case CX88_BOARD_HAUPPAUGE_NOVASE2_S1: 1331 case CX88_BOARD_HAUPPAUGE_NOVASE2_S1:
1281 case CX88_BOARD_HAUPPAUGE_DVB_T1: 1332 case CX88_BOARD_HAUPPAUGE_DVB_T1:
1333 case CX88_BOARD_HAUPPAUGE_HVR1100:
1334 case CX88_BOARD_HAUPPAUGE_HVR1100LP:
1282 if (0 == core->i2c_rc) 1335 if (0 == core->i2c_rc)
1283 hauppauge_eeprom(core,eeprom); 1336 hauppauge_eeprom(core,eeprom);
1284 break; 1337 break;