aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/media/dvb/dvb-usb/af9015.c
diff options
context:
space:
mode:
authorAntti Palosaari <crope@iki.fi>2012-05-08 05:04:24 -0400
committerMauro Carvalho Chehab <mchehab@redhat.com>2012-05-15 09:46:13 -0400
commitbc050e6702725c6629cc0f1db95c49e63f1f32e8 (patch)
treef7536de7532d99c12b9a772f6fad4ce00c6d5ff5 /drivers/media/dvb/dvb-usb/af9015.c
parentf9b26cd8e2cb8979694c48ea642d30784e7aceb3 (diff)
[media] af9015: various small changes and clean-ups
Clean-up dvb_usb_device_properties and fix errors reported by checkpatch.pl. Some other very minor changes. Functionality remains untouched. Signed-off-by: Antti Palosaari <crope@iki.fi> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/dvb/dvb-usb/af9015.c')
-rw-r--r--drivers/media/dvb/dvb-usb/af9015.c495
1 files changed, 212 insertions, 283 deletions
diff --git a/drivers/media/dvb/dvb-usb/af9015.c b/drivers/media/dvb/dvb-usb/af9015.c
index 7e70ea50ef26..677fed79b01e 100644
--- a/drivers/media/dvb/dvb-usb/af9015.c
+++ b/drivers/media/dvb/dvb-usb/af9015.c
@@ -244,8 +244,7 @@ static int af9015_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg msg[],
244 u8 uninitialized_var(mbox), addr_len; 244 u8 uninitialized_var(mbox), addr_len;
245 struct req_t req; 245 struct req_t req;
246 246
247/* TODO: implement bus lock 247/*
248
249The bus lock is needed because there is two tuners both using same I2C-address. 248The bus lock is needed because there is two tuners both using same I2C-address.
250Due to that the only way to select correct tuner is use demodulator I2C-gate. 249Due to that the only way to select correct tuner is use demodulator I2C-gate.
251 250
@@ -789,7 +788,7 @@ static void af9015_set_remote_config(struct usb_device *udev,
789 /* try to load remote based USB ID */ 788 /* try to load remote based USB ID */
790 if (!props->rc.core.rc_codes) 789 if (!props->rc.core.rc_codes)
791 props->rc.core.rc_codes = af9015_rc_setup_match( 790 props->rc.core.rc_codes = af9015_rc_setup_match(
792 (vid << 16) + pid, af9015_rc_setup_usbids); 791 (vid << 16) | pid, af9015_rc_setup_usbids);
793 792
794 /* try to load remote based USB iManufacturer string */ 793 /* try to load remote based USB iManufacturer string */
795 if (!props->rc.core.rc_codes && vid == USB_VID_AFATECH) { 794 if (!props->rc.core.rc_codes && vid == USB_VID_AFATECH) {
@@ -1220,8 +1219,8 @@ static int af9015_af9013_frontend_attach(struct dvb_usb_adapter *adap)
1220 } 1219 }
1221 1220
1222 /* attach demodulator */ 1221 /* attach demodulator */
1223 adap->fe_adap[0].fe = dvb_attach(af9013_attach, &af9015_af9013_config[adap->id], 1222 adap->fe_adap[0].fe = dvb_attach(af9013_attach,
1224 &adap->dev->i2c_adap); 1223 &af9015_af9013_config[adap->id], &adap->dev->i2c_adap);
1225 1224
1226 /* 1225 /*
1227 * AF9015 firmware does not like if it gets interrupted by I2C adapter 1226 * AF9015 firmware does not like if it gets interrupted by I2C adapter
@@ -1324,14 +1323,15 @@ static int af9015_tuner_attach(struct dvb_usb_adapter *adap)
1324 switch (af9015_af9013_config[adap->id].tuner) { 1323 switch (af9015_af9013_config[adap->id].tuner) {
1325 case AF9013_TUNER_MT2060: 1324 case AF9013_TUNER_MT2060:
1326 case AF9013_TUNER_MT2060_2: 1325 case AF9013_TUNER_MT2060_2:
1327 ret = dvb_attach(mt2060_attach, adap->fe_adap[0].fe, &adap->dev->i2c_adap, 1326 ret = dvb_attach(mt2060_attach, adap->fe_adap[0].fe,
1328 &af9015_mt2060_config, 1327 &adap->dev->i2c_adap, &af9015_mt2060_config,
1329 af9015_config.mt2060_if1[adap->id]) 1328 af9015_config.mt2060_if1[adap->id])
1330 == NULL ? -ENODEV : 0; 1329 == NULL ? -ENODEV : 0;
1331 break; 1330 break;
1332 case AF9013_TUNER_QT1010: 1331 case AF9013_TUNER_QT1010:
1333 case AF9013_TUNER_QT1010A: 1332 case AF9013_TUNER_QT1010A:
1334 ret = dvb_attach(qt1010_attach, adap->fe_adap[0].fe, &adap->dev->i2c_adap, 1333 ret = dvb_attach(qt1010_attach, adap->fe_adap[0].fe,
1334 &adap->dev->i2c_adap,
1335 &af9015_qt1010_config) == NULL ? -ENODEV : 0; 1335 &af9015_qt1010_config) == NULL ? -ENODEV : 0;
1336 break; 1336 break;
1337 case AF9013_TUNER_TDA18271: 1337 case AF9013_TUNER_TDA18271:
@@ -1434,69 +1434,85 @@ enum af9015_usb_table_entry {
1434}; 1434};
1435 1435
1436static struct usb_device_id af9015_usb_table[] = { 1436static struct usb_device_id af9015_usb_table[] = {
1437 [AFATECH_9015] = 1437 [AFATECH_9015] = {
1438 {USB_DEVICE(USB_VID_AFATECH, USB_PID_AFATECH_AF9015_9015)}, 1438 USB_DEVICE(USB_VID_AFATECH, USB_PID_AFATECH_AF9015_9015)},
1439 [AFATECH_9016] = 1439 [AFATECH_9016] = {
1440 {USB_DEVICE(USB_VID_AFATECH, USB_PID_AFATECH_AF9015_9016)}, 1440 USB_DEVICE(USB_VID_AFATECH, USB_PID_AFATECH_AF9015_9016)},
1441 [WINFAST_DTV_GOLD] = 1441 [WINFAST_DTV_GOLD] = {
1442 {USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_GOLD)}, 1442 USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV_DONGLE_GOLD)},
1443 [PINNACLE_PCTV_71E] = 1443 [PINNACLE_PCTV_71E] = {
1444 {USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV71E)}, 1444 USB_DEVICE(USB_VID_PINNACLE, USB_PID_PINNACLE_PCTV71E)},
1445 [KWORLD_PLUSTV_399U] = 1445 [KWORLD_PLUSTV_399U] = {
1446 {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_399U)}, 1446 USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_399U)},
1447 [TINYTWIN] = {USB_DEVICE(USB_VID_VISIONPLUS, USB_PID_TINYTWIN)}, 1447 [TINYTWIN] = {
1448 [AZUREWAVE_TU700] = 1448 USB_DEVICE(USB_VID_VISIONPLUS, USB_PID_TINYTWIN)},
1449 {USB_DEVICE(USB_VID_VISIONPLUS, USB_PID_AZUREWAVE_AD_TU700)}, 1449 [AZUREWAVE_TU700] = {
1450 [TERRATEC_AF9015] = {USB_DEVICE(USB_VID_TERRATEC, 1450 USB_DEVICE(USB_VID_VISIONPLUS, USB_PID_AZUREWAVE_AD_TU700)},
1451 [TERRATEC_AF9015] = {
1452 USB_DEVICE(USB_VID_TERRATEC,
1451 USB_PID_TERRATEC_CINERGY_T_USB_XE_REV2)}, 1453 USB_PID_TERRATEC_CINERGY_T_USB_XE_REV2)},
1452 [KWORLD_PLUSTV_PC160] = 1454 [KWORLD_PLUSTV_PC160] = {
1453 {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_PC160_2T)}, 1455 USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_PC160_2T)},
1454 [AVERTV_VOLAR_X] = 1456 [AVERTV_VOLAR_X] = {
1455 {USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_VOLAR_X)}, 1457 USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_VOLAR_X)},
1456 [XTENSIONS_380U] = 1458 [XTENSIONS_380U] = {
1457 {USB_DEVICE(USB_VID_XTENSIONS, USB_PID_XTENSIONS_XD_380)}, 1459 USB_DEVICE(USB_VID_XTENSIONS, USB_PID_XTENSIONS_XD_380)},
1458 [MSI_DIGIVOX_DUO] = 1460 [MSI_DIGIVOX_DUO] = {
1459 {USB_DEVICE(USB_VID_MSI_2, USB_PID_MSI_DIGIVOX_DUO)}, 1461 USB_DEVICE(USB_VID_MSI_2, USB_PID_MSI_DIGIVOX_DUO)},
1460 [AVERTV_VOLAR_X_REV2] = 1462 [AVERTV_VOLAR_X_REV2] = {
1461 {USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_VOLAR_X_2)}, 1463 USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_VOLAR_X_2)},
1462 [TELESTAR_STARSTICK_2] = 1464 [TELESTAR_STARSTICK_2] = {
1463 {USB_DEVICE(USB_VID_TELESTAR, USB_PID_TELESTAR_STARSTICK_2)}, 1465 USB_DEVICE(USB_VID_TELESTAR, USB_PID_TELESTAR_STARSTICK_2)},
1464 [AVERMEDIA_A309_USB] = 1466 [AVERMEDIA_A309_USB] = {
1465 {USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A309)}, 1467 USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A309)},
1466 [MSI_DIGIVOX_MINI_III] = 1468 [MSI_DIGIVOX_MINI_III] = {
1467 {USB_DEVICE(USB_VID_MSI_2, USB_PID_MSI_DIGI_VOX_MINI_III)}, 1469 USB_DEVICE(USB_VID_MSI_2, USB_PID_MSI_DIGI_VOX_MINI_III)},
1468 [KWORLD_E396] = {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_395U)}, 1470 [KWORLD_E396] = {
1469 [KWORLD_E39B] = {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_395U_2)}, 1471 USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_395U)},
1470 [KWORLD_E395] = {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_395U_3)}, 1472 [KWORLD_E39B] = {
1471 [TREKSTOR_DVBT] = {USB_DEVICE(USB_VID_AFATECH, USB_PID_TREKSTOR_DVBT)}, 1473 USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_395U_2)},
1472 [AVERTV_A850] = {USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A850)}, 1474 [KWORLD_E395] = {
1473 [AVERTV_A805] = {USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A805)}, 1475 USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_395U_3)},
1474 [CONCEPTRONIC_CTVDIGRCU] = 1476 [TREKSTOR_DVBT] = {
1475 {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_CONCEPTRONIC_CTVDIGRCU)}, 1477 USB_DEVICE(USB_VID_AFATECH, USB_PID_TREKSTOR_DVBT)},
1476 [KWORLD_MC810] = {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_MC810)}, 1478 [AVERTV_A850] = {
1477 [GENIUS_TVGO_DVB_T03] = 1479 USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A850)},
1478 {USB_DEVICE(USB_VID_KYE, USB_PID_GENIUS_TVGO_DVB_T03)}, 1480 [AVERTV_A805] = {
1479 [KWORLD_399U_2] = {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_399U_2)}, 1481 USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A805)},
1480 [KWORLD_PC160_T] = 1482 [CONCEPTRONIC_CTVDIGRCU] = {
1481 {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_PC160_T)}, 1483 USB_DEVICE(USB_VID_KWORLD_2, USB_PID_CONCEPTRONIC_CTVDIGRCU)},
1482 [SVEON_STV20] = {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_SVEON_STV20)}, 1484 [KWORLD_MC810] = {
1483 [TINYTWIN_2] = {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_TINYTWIN_2)}, 1485 USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_MC810)},
1484 [WINFAST_DTV2000DS] = 1486 [GENIUS_TVGO_DVB_T03] = {
1485 {USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV2000DS)}, 1487 USB_DEVICE(USB_VID_KYE, USB_PID_GENIUS_TVGO_DVB_T03)},
1486 [KWORLD_UB383_T] = 1488 [KWORLD_399U_2] = {
1487 {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_UB383_T)}, 1489 USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_399U_2)},
1488 [KWORLD_E39A] = 1490 [KWORLD_PC160_T] = {
1489 {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_395U_4)}, 1491 USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_PC160_T)},
1490 [AVERMEDIA_A815M] = 1492 [SVEON_STV20] = {
1491 {USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A815M)}, 1493 USB_DEVICE(USB_VID_KWORLD_2, USB_PID_SVEON_STV20)},
1492 [CINERGY_T_STICK_RC] = {USB_DEVICE(USB_VID_TERRATEC, 1494 [TINYTWIN_2] = {
1495 USB_DEVICE(USB_VID_KWORLD_2, USB_PID_TINYTWIN_2)},
1496 [WINFAST_DTV2000DS] = {
1497 USB_DEVICE(USB_VID_LEADTEK, USB_PID_WINFAST_DTV2000DS)},
1498 [KWORLD_UB383_T] = {
1499 USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_UB383_T)},
1500 [KWORLD_E39A] = {
1501 USB_DEVICE(USB_VID_KWORLD_2, USB_PID_KWORLD_395U_4)},
1502 [AVERMEDIA_A815M] = {
1503 USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A815M)},
1504 [CINERGY_T_STICK_RC] = {
1505 USB_DEVICE(USB_VID_TERRATEC,
1493 USB_PID_TERRATEC_CINERGY_T_STICK_RC)}, 1506 USB_PID_TERRATEC_CINERGY_T_STICK_RC)},
1494 [CINERGY_T_DUAL_RC] = {USB_DEVICE(USB_VID_TERRATEC, 1507 [CINERGY_T_DUAL_RC] = {
1508 USB_DEVICE(USB_VID_TERRATEC,
1495 USB_PID_TERRATEC_CINERGY_T_STICK_DUAL_RC)}, 1509 USB_PID_TERRATEC_CINERGY_T_STICK_DUAL_RC)},
1496 [AVERTV_A850T] = 1510 [AVERTV_A850T] = {
1497 {USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A850T)}, 1511 USB_DEVICE(USB_VID_AVERMEDIA, USB_PID_AVERMEDIA_A850T)},
1498 [TINYTWIN_3] = {USB_DEVICE(USB_VID_GTEK, USB_PID_TINYTWIN_3)}, 1512 [TINYTWIN_3] = {
1499 [SVEON_STV22] = {USB_DEVICE(USB_VID_KWORLD_2, USB_PID_SVEON_STV22)}, 1513 USB_DEVICE(USB_VID_GTEK, USB_PID_TINYTWIN_3)},
1514 [SVEON_STV22] = {
1515 USB_DEVICE(USB_VID_KWORLD_2, USB_PID_SVEON_STV22)},
1500 { } 1516 { }
1501}; 1517};
1502MODULE_DEVICE_TABLE(usb, af9015_usb_table); 1518MODULE_DEVICE_TABLE(usb, af9015_usb_table);
@@ -1516,43 +1532,44 @@ static struct dvb_usb_device_properties af9015_properties[] = {
1516 .num_adapters = 2, 1532 .num_adapters = 2,
1517 .adapter = { 1533 .adapter = {
1518 { 1534 {
1519 .num_frontends = 1, 1535 .num_frontends = 1,
1520 .fe = {{ 1536 .fe = {
1521 .caps = DVB_USB_ADAP_HAS_PID_FILTER | 1537 {
1522 DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF, 1538 .caps = DVB_USB_ADAP_HAS_PID_FILTER |
1523 1539 DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF,
1524 .pid_filter_count = 32, 1540
1525 .pid_filter = af9015_pid_filter, 1541 .pid_filter_count = 32,
1526 .pid_filter_ctrl = af9015_pid_filter_ctrl, 1542 .pid_filter = af9015_pid_filter,
1527 1543 .pid_filter_ctrl = af9015_pid_filter_ctrl,
1528 .frontend_attach = 1544
1529 af9015_af9013_frontend_attach, 1545 .frontend_attach = af9015_af9013_frontend_attach,
1530 .tuner_attach = af9015_tuner_attach, 1546 .tuner_attach = af9015_tuner_attach,
1531 .stream = { 1547 .stream = {
1532 .type = USB_BULK, 1548 .type = USB_BULK,
1533 .count = 6, 1549 .count = 6,
1534 .endpoint = 0x84, 1550 .endpoint = 0x84,
1551 },
1552 }
1535 }, 1553 },
1536 }},
1537 }, 1554 },
1538 { 1555 {
1539 .num_frontends = 1, 1556 .num_frontends = 1,
1540 .fe = {{ 1557 .fe = {
1541 .frontend_attach = 1558 {
1542 af9015_af9013_frontend_attach, 1559 .frontend_attach = af9015_af9013_frontend_attach,
1543 .tuner_attach = af9015_tuner_attach, 1560 .tuner_attach = af9015_tuner_attach,
1544 .stream = { 1561 .stream = {
1545 .type = USB_BULK, 1562 .type = USB_BULK,
1546 .count = 6, 1563 .count = 6,
1547 .endpoint = 0x85, 1564 .endpoint = 0x85,
1548 .u = { 1565 .u = {
1549 .bulk = { 1566 .bulk = {
1550 .buffersize = 1567 .buffersize = TS_USB20_FRAME_SIZE,
1551 TS_USB20_FRAME_SIZE, 1568 }
1552 } 1569 }
1570 },
1553 } 1571 }
1554 }, 1572 },
1555 }},
1556 } 1573 }
1557 }, 1574 },
1558 1575
@@ -1575,102 +1592,67 @@ static struct dvb_usb_device_properties af9015_properties[] = {
1575 .cold_ids = { 1592 .cold_ids = {
1576 &af9015_usb_table[AFATECH_9015], 1593 &af9015_usb_table[AFATECH_9015],
1577 &af9015_usb_table[AFATECH_9016], 1594 &af9015_usb_table[AFATECH_9016],
1578 NULL
1579 }, 1595 },
1580 .warm_ids = {NULL}, 1596 }, {
1581 },
1582 {
1583 .name = "Leadtek WinFast DTV Dongle Gold", 1597 .name = "Leadtek WinFast DTV Dongle Gold",
1584 .cold_ids = { 1598 .cold_ids = {
1585 &af9015_usb_table[WINFAST_DTV_GOLD], 1599 &af9015_usb_table[WINFAST_DTV_GOLD],
1586 NULL
1587 }, 1600 },
1588 .warm_ids = {NULL}, 1601 }, {
1589 },
1590 {
1591 .name = "Pinnacle PCTV 71e", 1602 .name = "Pinnacle PCTV 71e",
1592 .cold_ids = { 1603 .cold_ids = {
1593 &af9015_usb_table[PINNACLE_PCTV_71E], 1604 &af9015_usb_table[PINNACLE_PCTV_71E],
1594 NULL
1595 }, 1605 },
1596 .warm_ids = {NULL}, 1606 }, {
1597 },
1598 {
1599 .name = "KWorld PlusTV Dual DVB-T Stick " \ 1607 .name = "KWorld PlusTV Dual DVB-T Stick " \
1600 "(DVB-T 399U)", 1608 "(DVB-T 399U)",
1601 .cold_ids = { 1609 .cold_ids = {
1602 &af9015_usb_table[KWORLD_PLUSTV_399U], 1610 &af9015_usb_table[KWORLD_PLUSTV_399U],
1603 &af9015_usb_table[KWORLD_399U_2], 1611 &af9015_usb_table[KWORLD_399U_2],
1604 NULL
1605 }, 1612 },
1606 .warm_ids = {NULL}, 1613 }, {
1607 },
1608 {
1609 .name = "DigitalNow TinyTwin DVB-T Receiver", 1614 .name = "DigitalNow TinyTwin DVB-T Receiver",
1610 .cold_ids = { 1615 .cold_ids = {
1611 &af9015_usb_table[TINYTWIN], 1616 &af9015_usb_table[TINYTWIN],
1612 &af9015_usb_table[TINYTWIN_2], 1617 &af9015_usb_table[TINYTWIN_2],
1613 &af9015_usb_table[TINYTWIN_3], 1618 &af9015_usb_table[TINYTWIN_3],
1614 NULL
1615 }, 1619 },
1616 .warm_ids = {NULL}, 1620 }, {
1617 },
1618 {
1619 .name = "TwinHan AzureWave AD-TU700(704J)", 1621 .name = "TwinHan AzureWave AD-TU700(704J)",
1620 .cold_ids = { 1622 .cold_ids = {
1621 &af9015_usb_table[AZUREWAVE_TU700], 1623 &af9015_usb_table[AZUREWAVE_TU700],
1622 NULL
1623 }, 1624 },
1624 .warm_ids = {NULL}, 1625 }, {
1625 },
1626 {
1627 .name = "TerraTec Cinergy T USB XE", 1626 .name = "TerraTec Cinergy T USB XE",
1628 .cold_ids = { 1627 .cold_ids = {
1629 &af9015_usb_table[TERRATEC_AF9015], 1628 &af9015_usb_table[TERRATEC_AF9015],
1630 NULL
1631 }, 1629 },
1632 .warm_ids = {NULL}, 1630 }, {
1633 },
1634 {
1635 .name = "KWorld PlusTV Dual DVB-T PCI " \ 1631 .name = "KWorld PlusTV Dual DVB-T PCI " \
1636 "(DVB-T PC160-2T)", 1632 "(DVB-T PC160-2T)",
1637 .cold_ids = { 1633 .cold_ids = {
1638 &af9015_usb_table[KWORLD_PLUSTV_PC160], 1634 &af9015_usb_table[KWORLD_PLUSTV_PC160],
1639 NULL
1640 }, 1635 },
1641 .warm_ids = {NULL}, 1636 }, {
1642 },
1643 {
1644 .name = "AVerMedia AVerTV DVB-T Volar X", 1637 .name = "AVerMedia AVerTV DVB-T Volar X",
1645 .cold_ids = { 1638 .cold_ids = {
1646 &af9015_usb_table[AVERTV_VOLAR_X], 1639 &af9015_usb_table[AVERTV_VOLAR_X],
1647 NULL
1648 }, 1640 },
1649 .warm_ids = {NULL}, 1641 }, {
1650 },
1651 {
1652 .name = "TerraTec Cinergy T Stick RC", 1642 .name = "TerraTec Cinergy T Stick RC",
1653 .cold_ids = { 1643 .cold_ids = {
1654 &af9015_usb_table[CINERGY_T_STICK_RC], 1644 &af9015_usb_table[CINERGY_T_STICK_RC],
1655 NULL
1656 }, 1645 },
1657 .warm_ids = {NULL}, 1646 }, {
1658 },
1659 {
1660 .name = "TerraTec Cinergy T Stick Dual RC", 1647 .name = "TerraTec Cinergy T Stick Dual RC",
1661 .cold_ids = { 1648 .cold_ids = {
1662 &af9015_usb_table[CINERGY_T_DUAL_RC], 1649 &af9015_usb_table[CINERGY_T_DUAL_RC],
1663 NULL
1664 }, 1650 },
1665 .warm_ids = {NULL}, 1651 }, {
1666 },
1667 {
1668 .name = "AverMedia AVerTV Red HD+ (A850T)", 1652 .name = "AverMedia AVerTV Red HD+ (A850T)",
1669 .cold_ids = { 1653 .cold_ids = {
1670 &af9015_usb_table[AVERTV_A850T], 1654 &af9015_usb_table[AVERTV_A850T],
1671 NULL
1672 }, 1655 },
1673 .warm_ids = {NULL},
1674 }, 1656 },
1675 } 1657 }
1676 }, { 1658 }, {
@@ -1686,43 +1668,44 @@ static struct dvb_usb_device_properties af9015_properties[] = {
1686 .num_adapters = 2, 1668 .num_adapters = 2,
1687 .adapter = { 1669 .adapter = {
1688 { 1670 {
1689 .num_frontends = 1, 1671 .num_frontends = 1,
1690 .fe = {{ 1672 .fe = {
1691 .caps = DVB_USB_ADAP_HAS_PID_FILTER | 1673 {
1692 DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF, 1674 .caps = DVB_USB_ADAP_HAS_PID_FILTER |
1693 1675 DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF,
1694 .pid_filter_count = 32, 1676
1695 .pid_filter = af9015_pid_filter, 1677 .pid_filter_count = 32,
1696 .pid_filter_ctrl = af9015_pid_filter_ctrl, 1678 .pid_filter = af9015_pid_filter,
1697 1679 .pid_filter_ctrl = af9015_pid_filter_ctrl,
1698 .frontend_attach = 1680
1699 af9015_af9013_frontend_attach, 1681 .frontend_attach = af9015_af9013_frontend_attach,
1700 .tuner_attach = af9015_tuner_attach, 1682 .tuner_attach = af9015_tuner_attach,
1701 .stream = { 1683 .stream = {
1702 .type = USB_BULK, 1684 .type = USB_BULK,
1703 .count = 6, 1685 .count = 6,
1704 .endpoint = 0x84, 1686 .endpoint = 0x84,
1687 },
1688 }
1705 }, 1689 },
1706 }},
1707 }, 1690 },
1708 { 1691 {
1709 .num_frontends = 1, 1692 .num_frontends = 1,
1710 .fe = {{ 1693 .fe = {
1711 .frontend_attach = 1694 {
1712 af9015_af9013_frontend_attach, 1695 .frontend_attach = af9015_af9013_frontend_attach,
1713 .tuner_attach = af9015_tuner_attach, 1696 .tuner_attach = af9015_tuner_attach,
1714 .stream = { 1697 .stream = {
1715 .type = USB_BULK, 1698 .type = USB_BULK,
1716 .count = 6, 1699 .count = 6,
1717 .endpoint = 0x85, 1700 .endpoint = 0x85,
1718 .u = { 1701 .u = {
1719 .bulk = { 1702 .bulk = {
1720 .buffersize = 1703 .buffersize = TS_USB20_FRAME_SIZE,
1721 TS_USB20_FRAME_SIZE, 1704 }
1722 } 1705 }
1706 },
1723 } 1707 }
1724 }, 1708 },
1725 }},
1726 } 1709 }
1727 }, 1710 },
1728 1711
@@ -1744,51 +1727,33 @@ static struct dvb_usb_device_properties af9015_properties[] = {
1744 .name = "Xtensions XD-380", 1727 .name = "Xtensions XD-380",
1745 .cold_ids = { 1728 .cold_ids = {
1746 &af9015_usb_table[XTENSIONS_380U], 1729 &af9015_usb_table[XTENSIONS_380U],
1747 NULL
1748 }, 1730 },
1749 .warm_ids = {NULL}, 1731 }, {
1750 },
1751 {
1752 .name = "MSI DIGIVOX Duo", 1732 .name = "MSI DIGIVOX Duo",
1753 .cold_ids = { 1733 .cold_ids = {
1754 &af9015_usb_table[MSI_DIGIVOX_DUO], 1734 &af9015_usb_table[MSI_DIGIVOX_DUO],
1755 NULL
1756 }, 1735 },
1757 .warm_ids = {NULL}, 1736 }, {
1758 },
1759 {
1760 .name = "Fujitsu-Siemens Slim Mobile USB DVB-T", 1737 .name = "Fujitsu-Siemens Slim Mobile USB DVB-T",
1761 .cold_ids = { 1738 .cold_ids = {
1762 &af9015_usb_table[AVERTV_VOLAR_X_REV2], 1739 &af9015_usb_table[AVERTV_VOLAR_X_REV2],
1763 NULL
1764 }, 1740 },
1765 .warm_ids = {NULL}, 1741 }, {
1766 },
1767 {
1768 .name = "Telestar Starstick 2", 1742 .name = "Telestar Starstick 2",
1769 .cold_ids = { 1743 .cold_ids = {
1770 &af9015_usb_table[TELESTAR_STARSTICK_2], 1744 &af9015_usb_table[TELESTAR_STARSTICK_2],
1771 NULL
1772 }, 1745 },
1773 .warm_ids = {NULL}, 1746 }, {
1774 },
1775 {
1776 .name = "AVerMedia A309", 1747 .name = "AVerMedia A309",
1777 .cold_ids = { 1748 .cold_ids = {
1778 &af9015_usb_table[AVERMEDIA_A309_USB], 1749 &af9015_usb_table[AVERMEDIA_A309_USB],
1779 NULL
1780 }, 1750 },
1781 .warm_ids = {NULL}, 1751 }, {
1782 },
1783 {
1784 .name = "MSI Digi VOX mini III", 1752 .name = "MSI Digi VOX mini III",
1785 .cold_ids = { 1753 .cold_ids = {
1786 &af9015_usb_table[MSI_DIGIVOX_MINI_III], 1754 &af9015_usb_table[MSI_DIGIVOX_MINI_III],
1787 NULL
1788 }, 1755 },
1789 .warm_ids = {NULL}, 1756 }, {
1790 },
1791 {
1792 .name = "KWorld USB DVB-T TV Stick II " \ 1757 .name = "KWorld USB DVB-T TV Stick II " \
1793 "(VS-DVB-T 395U)", 1758 "(VS-DVB-T 395U)",
1794 .cold_ids = { 1759 .cold_ids = {
@@ -1796,34 +1761,23 @@ static struct dvb_usb_device_properties af9015_properties[] = {
1796 &af9015_usb_table[KWORLD_E39B], 1761 &af9015_usb_table[KWORLD_E39B],
1797 &af9015_usb_table[KWORLD_E395], 1762 &af9015_usb_table[KWORLD_E395],
1798 &af9015_usb_table[KWORLD_E39A], 1763 &af9015_usb_table[KWORLD_E39A],
1799 NULL
1800 }, 1764 },
1801 .warm_ids = {NULL}, 1765 }, {
1802 },
1803 {
1804 .name = "TrekStor DVB-T USB Stick", 1766 .name = "TrekStor DVB-T USB Stick",
1805 .cold_ids = { 1767 .cold_ids = {
1806 &af9015_usb_table[TREKSTOR_DVBT], 1768 &af9015_usb_table[TREKSTOR_DVBT],
1807 NULL
1808 }, 1769 },
1809 .warm_ids = {NULL}, 1770 }, {
1810 },
1811 {
1812 .name = "AverMedia AVerTV Volar Black HD " \ 1771 .name = "AverMedia AVerTV Volar Black HD " \
1813 "(A850)", 1772 "(A850)",
1814 .cold_ids = { 1773 .cold_ids = {
1815 &af9015_usb_table[AVERTV_A850], 1774 &af9015_usb_table[AVERTV_A850],
1816 NULL
1817 }, 1775 },
1818 .warm_ids = {NULL}, 1776 }, {
1819 },
1820 {
1821 .name = "Sveon STV22 Dual USB DVB-T Tuner HDTV", 1777 .name = "Sveon STV22 Dual USB DVB-T Tuner HDTV",
1822 .cold_ids = { 1778 .cold_ids = {
1823 &af9015_usb_table[SVEON_STV22], 1779 &af9015_usb_table[SVEON_STV22],
1824 NULL
1825 }, 1780 },
1826 .warm_ids = {NULL},
1827 }, 1781 },
1828 } 1782 }
1829 }, { 1783 }, {
@@ -1839,43 +1793,44 @@ static struct dvb_usb_device_properties af9015_properties[] = {
1839 .num_adapters = 2, 1793 .num_adapters = 2,
1840 .adapter = { 1794 .adapter = {
1841 { 1795 {
1842 .num_frontends = 1, 1796 .num_frontends = 1,
1843 .fe = {{ 1797 .fe = {
1844 .caps = DVB_USB_ADAP_HAS_PID_FILTER | 1798 {
1845 DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF, 1799 .caps = DVB_USB_ADAP_HAS_PID_FILTER |
1846 1800 DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF,
1847 .pid_filter_count = 32, 1801
1848 .pid_filter = af9015_pid_filter, 1802 .pid_filter_count = 32,
1849 .pid_filter_ctrl = af9015_pid_filter_ctrl, 1803 .pid_filter = af9015_pid_filter,
1850 1804 .pid_filter_ctrl = af9015_pid_filter_ctrl,
1851 .frontend_attach = 1805
1852 af9015_af9013_frontend_attach, 1806 .frontend_attach = af9015_af9013_frontend_attach,
1853 .tuner_attach = af9015_tuner_attach, 1807 .tuner_attach = af9015_tuner_attach,
1854 .stream = { 1808 .stream = {
1855 .type = USB_BULK, 1809 .type = USB_BULK,
1856 .count = 6, 1810 .count = 6,
1857 .endpoint = 0x84, 1811 .endpoint = 0x84,
1812 },
1813 }
1858 }, 1814 },
1859 }},
1860 }, 1815 },
1861 { 1816 {
1862 .num_frontends = 1, 1817 .num_frontends = 1,
1863 .fe = {{ 1818 .fe = {
1864 .frontend_attach = 1819 {
1865 af9015_af9013_frontend_attach, 1820 .frontend_attach = af9015_af9013_frontend_attach,
1866 .tuner_attach = af9015_tuner_attach, 1821 .tuner_attach = af9015_tuner_attach,
1867 .stream = { 1822 .stream = {
1868 .type = USB_BULK, 1823 .type = USB_BULK,
1869 .count = 6, 1824 .count = 6,
1870 .endpoint = 0x85, 1825 .endpoint = 0x85,
1871 .u = { 1826 .u = {
1872 .bulk = { 1827 .bulk = {
1873 .buffersize = 1828 .buffersize = TS_USB20_FRAME_SIZE,
1874 TS_USB20_FRAME_SIZE, 1829 }
1875 } 1830 }
1831 },
1876 } 1832 }
1877 }, 1833 },
1878 }},
1879 } 1834 }
1880 }, 1835 },
1881 1836
@@ -1897,76 +1852,50 @@ static struct dvb_usb_device_properties af9015_properties[] = {
1897 .name = "AverMedia AVerTV Volar GPS 805 (A805)", 1852 .name = "AverMedia AVerTV Volar GPS 805 (A805)",
1898 .cold_ids = { 1853 .cold_ids = {
1899 &af9015_usb_table[AVERTV_A805], 1854 &af9015_usb_table[AVERTV_A805],
1900 NULL
1901 }, 1855 },
1902 .warm_ids = {NULL}, 1856 }, {
1903 },
1904 {
1905 .name = "Conceptronic USB2.0 DVB-T CTVDIGRCU " \ 1857 .name = "Conceptronic USB2.0 DVB-T CTVDIGRCU " \
1906 "V3.0", 1858 "V3.0",
1907 .cold_ids = { 1859 .cold_ids = {
1908 &af9015_usb_table[CONCEPTRONIC_CTVDIGRCU], 1860 &af9015_usb_table[CONCEPTRONIC_CTVDIGRCU],
1909 NULL
1910 }, 1861 },
1911 .warm_ids = {NULL}, 1862 }, {
1912 },
1913 {
1914 .name = "KWorld Digial MC-810", 1863 .name = "KWorld Digial MC-810",
1915 .cold_ids = { 1864 .cold_ids = {
1916 &af9015_usb_table[KWORLD_MC810], 1865 &af9015_usb_table[KWORLD_MC810],
1917 NULL
1918 }, 1866 },
1919 .warm_ids = {NULL}, 1867 }, {
1920 },
1921 {
1922 .name = "Genius TVGo DVB-T03", 1868 .name = "Genius TVGo DVB-T03",
1923 .cold_ids = { 1869 .cold_ids = {
1924 &af9015_usb_table[GENIUS_TVGO_DVB_T03], 1870 &af9015_usb_table[GENIUS_TVGO_DVB_T03],
1925 NULL
1926 }, 1871 },
1927 .warm_ids = {NULL}, 1872 }, {
1928 },
1929 {
1930 .name = "KWorld PlusTV DVB-T PCI Pro Card " \ 1873 .name = "KWorld PlusTV DVB-T PCI Pro Card " \
1931 "(DVB-T PC160-T)", 1874 "(DVB-T PC160-T)",
1932 .cold_ids = { 1875 .cold_ids = {
1933 &af9015_usb_table[KWORLD_PC160_T], 1876 &af9015_usb_table[KWORLD_PC160_T],
1934 NULL
1935 }, 1877 },
1936 .warm_ids = {NULL}, 1878 }, {
1937 },
1938 {
1939 .name = "Sveon STV20 Tuner USB DVB-T HDTV", 1879 .name = "Sveon STV20 Tuner USB DVB-T HDTV",
1940 .cold_ids = { 1880 .cold_ids = {
1941 &af9015_usb_table[SVEON_STV20], 1881 &af9015_usb_table[SVEON_STV20],
1942 NULL
1943 }, 1882 },
1944 .warm_ids = {NULL}, 1883 }, {
1945 },
1946 {
1947 .name = "Leadtek WinFast DTV2000DS", 1884 .name = "Leadtek WinFast DTV2000DS",
1948 .cold_ids = { 1885 .cold_ids = {
1949 &af9015_usb_table[WINFAST_DTV2000DS], 1886 &af9015_usb_table[WINFAST_DTV2000DS],
1950 NULL
1951 }, 1887 },
1952 .warm_ids = {NULL}, 1888 }, {
1953 },
1954 {
1955 .name = "KWorld USB DVB-T Stick Mobile " \ 1889 .name = "KWorld USB DVB-T Stick Mobile " \
1956 "(UB383-T)", 1890 "(UB383-T)",
1957 .cold_ids = { 1891 .cold_ids = {
1958 &af9015_usb_table[KWORLD_UB383_T], 1892 &af9015_usb_table[KWORLD_UB383_T],
1959 NULL
1960 }, 1893 },
1961 .warm_ids = {NULL}, 1894 }, {
1962 },
1963 {
1964 .name = "AverMedia AVerTV Volar M (A815Mac)", 1895 .name = "AverMedia AVerTV Volar M (A815Mac)",
1965 .cold_ids = { 1896 .cold_ids = {
1966 &af9015_usb_table[AVERMEDIA_A815M], 1897 &af9015_usb_table[AVERMEDIA_A815M],
1967 NULL
1968 }, 1898 },
1969 .warm_ids = {NULL},
1970 }, 1899 },
1971 } 1900 }
1972 }, 1901 },
@@ -2019,5 +1948,5 @@ static struct usb_driver af9015_usb_driver = {
2019module_usb_driver(af9015_usb_driver); 1948module_usb_driver(af9015_usb_driver);
2020 1949
2021MODULE_AUTHOR("Antti Palosaari <crope@iki.fi>"); 1950MODULE_AUTHOR("Antti Palosaari <crope@iki.fi>");
2022MODULE_DESCRIPTION("Driver for Afatech AF9015 DVB-T"); 1951MODULE_DESCRIPTION("Afatech AF9015 driver");
2023MODULE_LICENSE("GPL"); 1952MODULE_LICENSE("GPL");