diff options
Diffstat (limited to 'drivers/media/dvb/ttpci/budget-ci.c')
-rw-r--r-- | drivers/media/dvb/ttpci/budget-ci.c | 311 |
1 files changed, 311 insertions, 0 deletions
diff --git a/drivers/media/dvb/ttpci/budget-ci.c b/drivers/media/dvb/ttpci/budget-ci.c index 0a5aad45435d..3507463fdac9 100644 --- a/drivers/media/dvb/ttpci/budget-ci.c +++ b/drivers/media/dvb/ttpci/budget-ci.c | |||
@@ -43,6 +43,11 @@ | |||
43 | #include "stv0299.h" | 43 | #include "stv0299.h" |
44 | #include "stv0297.h" | 44 | #include "stv0297.h" |
45 | #include "tda1004x.h" | 45 | #include "tda1004x.h" |
46 | #include "stb0899_drv.h" | ||
47 | #include "stb0899_reg.h" | ||
48 | #include "stb0899_cfg.h" | ||
49 | #include "stb6100.h" | ||
50 | #include "stb6100_cfg.h" | ||
46 | #include "lnbp21.h" | 51 | #include "lnbp21.h" |
47 | #include "bsbe1.h" | 52 | #include "bsbe1.h" |
48 | #include "bsru6.h" | 53 | #include "bsru6.h" |
@@ -1071,7 +1076,271 @@ static struct tda10023_config tda10023_config = { | |||
1071 | .deltaf = 0xa511, | 1076 | .deltaf = 0xa511, |
1072 | }; | 1077 | }; |
1073 | 1078 | ||
1079 | /* TT S2-3200 DVB-S (STB0899) Inittab */ | ||
1080 | static const struct stb0899_s1_reg tt3200_stb0899_s1_init_1[] = { | ||
1081 | |||
1082 | { STB0899_DEV_ID , 0x81 }, | ||
1083 | { STB0899_DISCNTRL1 , 0x32 }, | ||
1084 | { STB0899_DISCNTRL2 , 0x80 }, | ||
1085 | { STB0899_DISRX_ST0 , 0x04 }, | ||
1086 | { STB0899_DISRX_ST1 , 0x00 }, | ||
1087 | { STB0899_DISPARITY , 0x00 }, | ||
1088 | { STB0899_DISFIFO , 0x00 }, | ||
1089 | { STB0899_DISSTATUS , 0x20 }, | ||
1090 | { STB0899_DISF22 , 0x8c }, | ||
1091 | { STB0899_DISF22RX , 0x9a }, | ||
1092 | { STB0899_SYSREG , 0x0b }, | ||
1093 | { STB0899_ACRPRESC , 0x11 }, | ||
1094 | { STB0899_ACRDIV1 , 0x0a }, | ||
1095 | { STB0899_ACRDIV2 , 0x05 }, | ||
1096 | { STB0899_DACR1 , 0x00 }, | ||
1097 | { STB0899_DACR2 , 0x00 }, | ||
1098 | { STB0899_OUTCFG , 0x00 }, | ||
1099 | { STB0899_MODECFG , 0x00 }, | ||
1100 | { STB0899_IRQSTATUS_3 , 0x30 }, | ||
1101 | { STB0899_IRQSTATUS_2 , 0x00 }, | ||
1102 | { STB0899_IRQSTATUS_1 , 0x00 }, | ||
1103 | { STB0899_IRQSTATUS_0 , 0x00 }, | ||
1104 | { STB0899_IRQMSK_3 , 0xf3 }, | ||
1105 | { STB0899_IRQMSK_2 , 0xfc }, | ||
1106 | { STB0899_IRQMSK_1 , 0xff }, | ||
1107 | { STB0899_IRQMSK_0 , 0xff }, | ||
1108 | { STB0899_IRQCFG , 0x00 }, | ||
1109 | { STB0899_I2CCFG , 0x88 }, | ||
1110 | { STB0899_I2CRPT , 0x48 }, /* 12k Pullup, Repeater=16, Stop=disabled */ | ||
1111 | { STB0899_IOPVALUE5 , 0x00 }, | ||
1112 | { STB0899_IOPVALUE4 , 0x20 }, | ||
1113 | { STB0899_IOPVALUE3 , 0xc9 }, | ||
1114 | { STB0899_IOPVALUE2 , 0x90 }, | ||
1115 | { STB0899_IOPVALUE1 , 0x40 }, | ||
1116 | { STB0899_IOPVALUE0 , 0x00 }, | ||
1117 | { STB0899_GPIO00CFG , 0x82 }, | ||
1118 | { STB0899_GPIO01CFG , 0x82 }, | ||
1119 | { STB0899_GPIO02CFG , 0x82 }, | ||
1120 | { STB0899_GPIO03CFG , 0x82 }, | ||
1121 | { STB0899_GPIO04CFG , 0x82 }, | ||
1122 | { STB0899_GPIO05CFG , 0x82 }, | ||
1123 | { STB0899_GPIO06CFG , 0x82 }, | ||
1124 | { STB0899_GPIO07CFG , 0x82 }, | ||
1125 | { STB0899_GPIO08CFG , 0x82 }, | ||
1126 | { STB0899_GPIO09CFG , 0x82 }, | ||
1127 | { STB0899_GPIO10CFG , 0x82 }, | ||
1128 | { STB0899_GPIO11CFG , 0x82 }, | ||
1129 | { STB0899_GPIO12CFG , 0x82 }, | ||
1130 | { STB0899_GPIO13CFG , 0x82 }, | ||
1131 | { STB0899_GPIO14CFG , 0x82 }, | ||
1132 | { STB0899_GPIO15CFG , 0x82 }, | ||
1133 | { STB0899_GPIO16CFG , 0x82 }, | ||
1134 | { STB0899_GPIO17CFG , 0x82 }, | ||
1135 | { STB0899_GPIO18CFG , 0x82 }, | ||
1136 | { STB0899_GPIO19CFG , 0x82 }, | ||
1137 | { STB0899_GPIO20CFG , 0x82 }, | ||
1138 | { STB0899_SDATCFG , 0xb8 }, | ||
1139 | { STB0899_SCLTCFG , 0xba }, | ||
1140 | { STB0899_AGCRFCFG , 0x1c }, /* 0x11 */ | ||
1141 | { STB0899_GPIO22 , 0x82 }, /* AGCBB2CFG */ | ||
1142 | { STB0899_GPIO21 , 0x91 }, /* AGCBB1CFG */ | ||
1143 | { STB0899_DIRCLKCFG , 0x82 }, | ||
1144 | { STB0899_CLKOUT27CFG , 0x7e }, | ||
1145 | { STB0899_STDBYCFG , 0x82 }, | ||
1146 | { STB0899_CS0CFG , 0x82 }, | ||
1147 | { STB0899_CS1CFG , 0x82 }, | ||
1148 | { STB0899_DISEQCOCFG , 0x20 }, | ||
1149 | { STB0899_GPIO32CFG , 0x82 }, | ||
1150 | { STB0899_GPIO33CFG , 0x82 }, | ||
1151 | { STB0899_GPIO34CFG , 0x82 }, | ||
1152 | { STB0899_GPIO35CFG , 0x82 }, | ||
1153 | { STB0899_GPIO36CFG , 0x82 }, | ||
1154 | { STB0899_GPIO37CFG , 0x82 }, | ||
1155 | { STB0899_GPIO38CFG , 0x82 }, | ||
1156 | { STB0899_GPIO39CFG , 0x82 }, | ||
1157 | { STB0899_NCOARSE , 0x15 }, /* 0x15 = 27 Mhz Clock, F/3 = 198MHz, F/6 = 99MHz */ | ||
1158 | { STB0899_SYNTCTRL , 0x02 }, /* 0x00 = CLK from CLKI, 0x02 = CLK from XTALI */ | ||
1159 | { STB0899_FILTCTRL , 0x00 }, | ||
1160 | { STB0899_SYSCTRL , 0x00 }, | ||
1161 | { STB0899_STOPCLK1 , 0x20 }, | ||
1162 | { STB0899_STOPCLK2 , 0x00 }, | ||
1163 | { STB0899_INTBUFSTATUS , 0x00 }, | ||
1164 | { STB0899_INTBUFCTRL , 0x0a }, | ||
1165 | { 0xffff , 0xff }, | ||
1166 | }; | ||
1167 | |||
1168 | static const struct stb0899_s1_reg tt3200_stb0899_s1_init_3[] = { | ||
1169 | { STB0899_DEMOD , 0x00 }, | ||
1170 | { STB0899_RCOMPC , 0xc9 }, | ||
1171 | { STB0899_AGC1CN , 0x41 }, | ||
1172 | { STB0899_AGC1REF , 0x10 }, | ||
1173 | { STB0899_RTC , 0x7a }, | ||
1174 | { STB0899_TMGCFG , 0x4e }, | ||
1175 | { STB0899_AGC2REF , 0x34 }, | ||
1176 | { STB0899_TLSR , 0x84 }, | ||
1177 | { STB0899_CFD , 0xc7 }, | ||
1178 | { STB0899_ACLC , 0x87 }, | ||
1179 | { STB0899_BCLC , 0x94 }, | ||
1180 | { STB0899_EQON , 0x41 }, | ||
1181 | { STB0899_LDT , 0xdd }, | ||
1182 | { STB0899_LDT2 , 0xc9 }, | ||
1183 | { STB0899_EQUALREF , 0xb4 }, | ||
1184 | { STB0899_TMGRAMP , 0x10 }, | ||
1185 | { STB0899_TMGTHD , 0x30 }, | ||
1186 | { STB0899_IDCCOMP , 0xfb }, | ||
1187 | { STB0899_QDCCOMP , 0x03 }, | ||
1188 | { STB0899_POWERI , 0x3b }, | ||
1189 | { STB0899_POWERQ , 0x3d }, | ||
1190 | { STB0899_RCOMP , 0x81 }, | ||
1191 | { STB0899_AGCIQIN , 0x80 }, | ||
1192 | { STB0899_AGC2I1 , 0x04 }, | ||
1193 | { STB0899_AGC2I2 , 0xf5 }, | ||
1194 | { STB0899_TLIR , 0x25 }, | ||
1195 | { STB0899_RTF , 0x80 }, | ||
1196 | { STB0899_DSTATUS , 0x00 }, | ||
1197 | { STB0899_LDI , 0xca }, | ||
1198 | { STB0899_CFRM , 0xf1 }, | ||
1199 | { STB0899_CFRL , 0xf3 }, | ||
1200 | { STB0899_NIRM , 0x2a }, | ||
1201 | { STB0899_NIRL , 0x05 }, | ||
1202 | { STB0899_ISYMB , 0x17 }, | ||
1203 | { STB0899_QSYMB , 0xfa }, | ||
1204 | { STB0899_SFRH , 0x2f }, | ||
1205 | { STB0899_SFRM , 0x68 }, | ||
1206 | { STB0899_SFRL , 0x40 }, | ||
1207 | { STB0899_SFRUPH , 0x2f }, | ||
1208 | { STB0899_SFRUPM , 0x68 }, | ||
1209 | { STB0899_SFRUPL , 0x40 }, | ||
1210 | { STB0899_EQUAI1 , 0xfd }, | ||
1211 | { STB0899_EQUAQ1 , 0x04 }, | ||
1212 | { STB0899_EQUAI2 , 0x0f }, | ||
1213 | { STB0899_EQUAQ2 , 0xff }, | ||
1214 | { STB0899_EQUAI3 , 0xdf }, | ||
1215 | { STB0899_EQUAQ3 , 0xfa }, | ||
1216 | { STB0899_EQUAI4 , 0x37 }, | ||
1217 | { STB0899_EQUAQ4 , 0x0d }, | ||
1218 | { STB0899_EQUAI5 , 0xbd }, | ||
1219 | { STB0899_EQUAQ5 , 0xf7 }, | ||
1220 | { STB0899_DSTATUS2 , 0x00 }, | ||
1221 | { STB0899_VSTATUS , 0x00 }, | ||
1222 | { STB0899_VERROR , 0xff }, | ||
1223 | { STB0899_IQSWAP , 0x2a }, | ||
1224 | { STB0899_ECNT1M , 0x00 }, | ||
1225 | { STB0899_ECNT1L , 0x00 }, | ||
1226 | { STB0899_ECNT2M , 0x00 }, | ||
1227 | { STB0899_ECNT2L , 0x00 }, | ||
1228 | { STB0899_ECNT3M , 0x00 }, | ||
1229 | { STB0899_ECNT3L , 0x00 }, | ||
1230 | { STB0899_FECAUTO1 , 0x06 }, | ||
1231 | { STB0899_FECM , 0x01 }, | ||
1232 | { STB0899_VTH12 , 0xf0 }, | ||
1233 | { STB0899_VTH23 , 0xa0 }, | ||
1234 | { STB0899_VTH34 , 0x78 }, | ||
1235 | { STB0899_VTH56 , 0x4e }, | ||
1236 | { STB0899_VTH67 , 0x48 }, | ||
1237 | { STB0899_VTH78 , 0x38 }, | ||
1238 | { STB0899_PRVIT , 0xff }, | ||
1239 | { STB0899_VITSYNC , 0x19 }, | ||
1240 | { STB0899_RSULC , 0xb1 }, /* DVB = 0xb1, DSS = 0xa1 */ | ||
1241 | { STB0899_TSULC , 0x42 }, | ||
1242 | { STB0899_RSLLC , 0x40 }, | ||
1243 | { STB0899_TSLPL , 0x12 }, | ||
1244 | { STB0899_TSCFGH , 0x0c }, | ||
1245 | { STB0899_TSCFGM , 0x00 }, | ||
1246 | { STB0899_TSCFGL , 0x0c }, | ||
1247 | { STB0899_TSOUT , 0x0d }, /* 0x0d for CAM */ | ||
1248 | { STB0899_RSSYNCDEL , 0x00 }, | ||
1249 | { STB0899_TSINHDELH , 0x02 }, | ||
1250 | { STB0899_TSINHDELM , 0x00 }, | ||
1251 | { STB0899_TSINHDELL , 0x00 }, | ||
1252 | { STB0899_TSLLSTKM , 0x00 }, | ||
1253 | { STB0899_TSLLSTKL , 0x00 }, | ||
1254 | { STB0899_TSULSTKM , 0x00 }, | ||
1255 | { STB0899_TSULSTKL , 0xab }, | ||
1256 | { STB0899_PCKLENUL , 0x00 }, | ||
1257 | { STB0899_PCKLENLL , 0xcc }, | ||
1258 | { STB0899_RSPCKLEN , 0xcc }, | ||
1259 | { STB0899_TSSTATUS , 0x80 }, | ||
1260 | { STB0899_ERRCTRL1 , 0xb6 }, | ||
1261 | { STB0899_ERRCTRL2 , 0x96 }, | ||
1262 | { STB0899_ERRCTRL3 , 0x89 }, | ||
1263 | { STB0899_DMONMSK1 , 0x27 }, | ||
1264 | { STB0899_DMONMSK0 , 0x03 }, | ||
1265 | { STB0899_DEMAPVIT , 0x5c }, | ||
1266 | { STB0899_PLPARM , 0x1f }, | ||
1267 | { STB0899_PDELCTRL , 0x48 }, | ||
1268 | { STB0899_PDELCTRL2 , 0x00 }, | ||
1269 | { STB0899_BBHCTRL1 , 0x00 }, | ||
1270 | { STB0899_BBHCTRL2 , 0x00 }, | ||
1271 | { STB0899_HYSTTHRESH , 0x77 }, | ||
1272 | { STB0899_MATCSTM , 0x00 }, | ||
1273 | { STB0899_MATCSTL , 0x00 }, | ||
1274 | { STB0899_UPLCSTM , 0x00 }, | ||
1275 | { STB0899_UPLCSTL , 0x00 }, | ||
1276 | { STB0899_DFLCSTM , 0x00 }, | ||
1277 | { STB0899_DFLCSTL , 0x00 }, | ||
1278 | { STB0899_SYNCCST , 0x00 }, | ||
1279 | { STB0899_SYNCDCSTM , 0x00 }, | ||
1280 | { STB0899_SYNCDCSTL , 0x00 }, | ||
1281 | { STB0899_ISI_ENTRY , 0x00 }, | ||
1282 | { STB0899_ISI_BIT_EN , 0x00 }, | ||
1283 | { STB0899_MATSTRM , 0x00 }, | ||
1284 | { STB0899_MATSTRL , 0x00 }, | ||
1285 | { STB0899_UPLSTRM , 0x00 }, | ||
1286 | { STB0899_UPLSTRL , 0x00 }, | ||
1287 | { STB0899_DFLSTRM , 0x00 }, | ||
1288 | { STB0899_DFLSTRL , 0x00 }, | ||
1289 | { STB0899_SYNCSTR , 0x00 }, | ||
1290 | { STB0899_SYNCDSTRM , 0x00 }, | ||
1291 | { STB0899_SYNCDSTRL , 0x00 }, | ||
1292 | { STB0899_CFGPDELSTATUS1 , 0x10 }, | ||
1293 | { STB0899_CFGPDELSTATUS2 , 0x00 }, | ||
1294 | { STB0899_BBFERRORM , 0x00 }, | ||
1295 | { STB0899_BBFERRORL , 0x00 }, | ||
1296 | { STB0899_UPKTERRORM , 0x00 }, | ||
1297 | { STB0899_UPKTERRORL , 0x00 }, | ||
1298 | { 0xffff , 0xff }, | ||
1299 | }; | ||
1074 | 1300 | ||
1301 | static struct stb0899_config tt3200_config = { | ||
1302 | .init_dev = tt3200_stb0899_s1_init_1, | ||
1303 | .init_s2_demod = stb0899_s2_init_2, | ||
1304 | .init_s1_demod = tt3200_stb0899_s1_init_3, | ||
1305 | .init_s2_fec = stb0899_s2_init_4, | ||
1306 | .init_tst = stb0899_s1_init_5, | ||
1307 | |||
1308 | .postproc = NULL, | ||
1309 | |||
1310 | .demod_address = 0x68, | ||
1311 | |||
1312 | .xtal_freq = 27000000, | ||
1313 | .inversion = IQ_SWAP_ON, /* 1 */ | ||
1314 | |||
1315 | .lo_clk = 76500000, | ||
1316 | .hi_clk = 99000000, | ||
1317 | |||
1318 | .esno_ave = STB0899_DVBS2_ESNO_AVE, | ||
1319 | .esno_quant = STB0899_DVBS2_ESNO_QUANT, | ||
1320 | .avframes_coarse = STB0899_DVBS2_AVFRAMES_COARSE, | ||
1321 | .avframes_fine = STB0899_DVBS2_AVFRAMES_FINE, | ||
1322 | .miss_threshold = STB0899_DVBS2_MISS_THRESHOLD, | ||
1323 | .uwp_threshold_acq = STB0899_DVBS2_UWP_THRESHOLD_ACQ, | ||
1324 | .uwp_threshold_track = STB0899_DVBS2_UWP_THRESHOLD_TRACK, | ||
1325 | .uwp_threshold_sof = STB0899_DVBS2_UWP_THRESHOLD_SOF, | ||
1326 | .sof_search_timeout = STB0899_DVBS2_SOF_SEARCH_TIMEOUT, | ||
1327 | |||
1328 | .btr_nco_bits = STB0899_DVBS2_BTR_NCO_BITS, | ||
1329 | .btr_gain_shift_offset = STB0899_DVBS2_BTR_GAIN_SHIFT_OFFSET, | ||
1330 | .crl_nco_bits = STB0899_DVBS2_CRL_NCO_BITS, | ||
1331 | .ldpc_max_iter = STB0899_DVBS2_LDPC_MAX_ITER, | ||
1332 | |||
1333 | .tuner_get_frequency = stb6100_get_frequency, | ||
1334 | .tuner_set_frequency = stb6100_set_frequency, | ||
1335 | .tuner_set_bandwidth = stb6100_set_bandwidth, | ||
1336 | .tuner_get_bandwidth = stb6100_get_bandwidth, | ||
1337 | .tuner_set_rfsiggain = NULL | ||
1338 | }; | ||
1339 | |||
1340 | struct stb6100_config tt3200_stb6100_config = { | ||
1341 | .tuner_address = 0x60, | ||
1342 | .refclock = 27000000, | ||
1343 | }; | ||
1075 | 1344 | ||
1076 | static void frontend_init(struct budget_ci *budget_ci) | 1345 | static void frontend_init(struct budget_ci *budget_ci) |
1077 | { | 1346 | { |
@@ -1152,6 +1421,46 @@ static void frontend_init(struct budget_ci *budget_ci) | |||
1152 | } | 1421 | } |
1153 | } | 1422 | } |
1154 | break; | 1423 | break; |
1424 | |||
1425 | case 0x1019: // TT S2-3200 PCI | ||
1426 | /* | ||
1427 | * NOTE! on some STB0899 versions, the internal PLL takes a longer time | ||
1428 | * to settle, aka LOCK. On the older revisions of the chip, we don't see | ||
1429 | * this, as a result on the newer chips the entire clock tree, will not | ||
1430 | * be stable after a freshly POWER 'ed up situation. | ||
1431 | * In this case, we should RESET the STB0899 (Active LOW) and wait for | ||
1432 | * PLL stabilization. | ||
1433 | * | ||
1434 | * On the TT S2 3200 and clones, the STB0899 demodulator's RESETB is | ||
1435 | * connected to the SAA7146 GPIO, GPIO2, Pin 142 | ||
1436 | */ | ||
1437 | /* Reset Demodulator */ | ||
1438 | saa7146_setgpio(budget_ci->budget.dev, 2, SAA7146_GPIO_OUTLO); | ||
1439 | /* Wait for everything to die */ | ||
1440 | msleep(50); | ||
1441 | /* Pull it up out of Reset state */ | ||
1442 | saa7146_setgpio(budget_ci->budget.dev, 2, SAA7146_GPIO_OUTHI); | ||
1443 | /* Wait for PLL to stabilize */ | ||
1444 | msleep(250); | ||
1445 | /* | ||
1446 | * PLL state should be stable now. Ideally, we should check | ||
1447 | * for PLL LOCK status. But well, never mind! | ||
1448 | */ | ||
1449 | budget_ci->budget.dvb_frontend = dvb_attach(stb0899_attach, &tt3200_config, &budget_ci->budget.i2c_adap); | ||
1450 | if (budget_ci->budget.dvb_frontend) { | ||
1451 | if (dvb_attach(stb6100_attach, budget_ci->budget.dvb_frontend, &tt3200_stb6100_config, &budget_ci->budget.i2c_adap)) { | ||
1452 | if (!dvb_attach(lnbp21_attach, budget_ci->budget.dvb_frontend, &budget_ci->budget.i2c_adap, 0, 0)) { | ||
1453 | printk("%s: No LNBP21 found!\n", __FUNCTION__); | ||
1454 | dvb_frontend_detach(budget_ci->budget.dvb_frontend); | ||
1455 | budget_ci->budget.dvb_frontend = NULL; | ||
1456 | } | ||
1457 | } else { | ||
1458 | dvb_frontend_detach(budget_ci->budget.dvb_frontend); | ||
1459 | budget_ci->budget.dvb_frontend = NULL; | ||
1460 | } | ||
1461 | } | ||
1462 | break; | ||
1463 | |||
1155 | } | 1464 | } |
1156 | 1465 | ||
1157 | if (budget_ci->budget.dvb_frontend == NULL) { | 1466 | if (budget_ci->budget.dvb_frontend == NULL) { |
@@ -1242,6 +1551,7 @@ MAKE_BUDGET_INFO(ttbt2, "TT-Budget/WinTV-NOVA-T PCI", BUDGET_TT); | |||
1242 | MAKE_BUDGET_INFO(ttbtci, "TT-Budget-T-CI PCI", BUDGET_TT); | 1551 | MAKE_BUDGET_INFO(ttbtci, "TT-Budget-T-CI PCI", BUDGET_TT); |
1243 | MAKE_BUDGET_INFO(ttbcci, "TT-Budget-C-CI PCI", BUDGET_TT); | 1552 | MAKE_BUDGET_INFO(ttbcci, "TT-Budget-C-CI PCI", BUDGET_TT); |
1244 | MAKE_BUDGET_INFO(ttc1501, "TT-Budget C-1501 PCI", BUDGET_TT); | 1553 | MAKE_BUDGET_INFO(ttc1501, "TT-Budget C-1501 PCI", BUDGET_TT); |
1554 | MAKE_BUDGET_INFO(tt3200, "TT-Budget S2-3200 PCI", BUDGET_TT); | ||
1245 | 1555 | ||
1246 | static struct pci_device_id pci_tbl[] = { | 1556 | static struct pci_device_id pci_tbl[] = { |
1247 | MAKE_EXTENSION_PCI(ttbci, 0x13c2, 0x100c), | 1557 | MAKE_EXTENSION_PCI(ttbci, 0x13c2, 0x100c), |
@@ -1251,6 +1561,7 @@ static struct pci_device_id pci_tbl[] = { | |||
1251 | MAKE_EXTENSION_PCI(ttbtci, 0x13c2, 0x1012), | 1561 | MAKE_EXTENSION_PCI(ttbtci, 0x13c2, 0x1012), |
1252 | MAKE_EXTENSION_PCI(ttbs2, 0x13c2, 0x1017), | 1562 | MAKE_EXTENSION_PCI(ttbs2, 0x13c2, 0x1017), |
1253 | MAKE_EXTENSION_PCI(ttc1501, 0x13c2, 0x101a), | 1563 | MAKE_EXTENSION_PCI(ttc1501, 0x13c2, 0x101a), |
1564 | MAKE_EXTENSION_PCI(tt3200, 0x13c2, 0x1019), | ||
1254 | { | 1565 | { |
1255 | .vendor = 0, | 1566 | .vendor = 0, |
1256 | } | 1567 | } |