diff options
Diffstat (limited to 'drivers/media/video/cx88/cx88-cards.c')
-rw-r--r-- | drivers/media/video/cx88/cx88-cards.c | 63 |
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 | }; |
950 | const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards); | 986 | const 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 | }; |
1114 | const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids); | 1166 | const 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 | |||
1146 | static void hauppauge_eeprom(struct cx88_core *core, u8 *eeprom_data) | 1195 | static 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; |