aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/video4linux/CARDLIST.em28xx1
-rw-r--r--drivers/media/video/em28xx/em28xx-cards.c27
-rw-r--r--drivers/media/video/em28xx/em28xx-dvb.c1
-rw-r--r--drivers/media/video/em28xx/em28xx.h1
4 files changed, 30 insertions, 0 deletions
diff --git a/Documentation/video4linux/CARDLIST.em28xx b/Documentation/video4linux/CARDLIST.em28xx
index 78d0a6eed571..bf58d957e0df 100644
--- a/Documentation/video4linux/CARDLIST.em28xx
+++ b/Documentation/video4linux/CARDLIST.em28xx
@@ -61,3 +61,4 @@
61 63 -> Kaiomy TVnPC U2 (em2860) [eb1a:e303] 61 63 -> Kaiomy TVnPC U2 (em2860) [eb1a:e303]
62 64 -> Easy Cap Capture DC-60 (em2860) 62 64 -> Easy Cap Capture DC-60 (em2860)
63 65 -> IO-DATA GV-MVP/SZ (em2820/em2840) [04bb:0515] 63 65 -> IO-DATA GV-MVP/SZ (em2820/em2840) [04bb:0515]
64 66 -> Empire dual TV (em2880)
diff --git a/drivers/media/video/em28xx/em28xx-cards.c b/drivers/media/video/em28xx/em28xx-cards.c
index 7c70738479dd..7cb93fbbbbf8 100644
--- a/drivers/media/video/em28xx/em28xx-cards.c
+++ b/drivers/media/video/em28xx/em28xx-cards.c
@@ -1095,6 +1095,31 @@ struct em28xx_board em28xx_boards[] = {
1095 .gpio = default_analog, 1095 .gpio = default_analog,
1096 } }, 1096 } },
1097 }, 1097 },
1098 [EM2880_BOARD_EMPIRE_DUAL_TV] = {
1099 .name = "Empire dual TV",
1100 .tuner_type = TUNER_XC2028,
1101 .tuner_gpio = default_tuner_gpio,
1102 .has_dvb = 1,
1103 .dvb_gpio = default_digital,
1104 .mts_firmware = 1,
1105 .decoder = EM28XX_TVP5150,
1106 .input = { {
1107 .type = EM28XX_VMUX_TELEVISION,
1108 .vmux = TVP5150_COMPOSITE0,
1109 .amux = EM28XX_AMUX_VIDEO,
1110 .gpio = default_analog,
1111 }, {
1112 .type = EM28XX_VMUX_COMPOSITE1,
1113 .vmux = TVP5150_COMPOSITE1,
1114 .amux = EM28XX_AMUX_LINE_IN,
1115 .gpio = default_analog,
1116 }, {
1117 .type = EM28XX_VMUX_SVIDEO,
1118 .vmux = TVP5150_SVIDEO,
1119 .amux = EM28XX_AMUX_LINE_IN,
1120 .gpio = default_analog,
1121 } },
1122 },
1098 [EM2881_BOARD_DNT_DA2_HYBRID] = { 1123 [EM2881_BOARD_DNT_DA2_HYBRID] = {
1099 .name = "DNT DA2 Hybrid", 1124 .name = "DNT DA2 Hybrid",
1100 .valid = EM28XX_BOARD_NOT_VALIDATED, 1125 .valid = EM28XX_BOARD_NOT_VALIDATED,
@@ -1437,6 +1462,7 @@ static struct em28xx_hash_table em28xx_eeprom_hash[] = {
1437 {0x6ce05a8f, EM2820_BOARD_PROLINK_PLAYTV_USB2, TUNER_YMEC_TVF_5533MF}, 1462 {0x6ce05a8f, EM2820_BOARD_PROLINK_PLAYTV_USB2, TUNER_YMEC_TVF_5533MF},
1438 {0x72cc5a8b, EM2820_BOARD_PROLINK_PLAYTV_BOX4_USB2, TUNER_YMEC_TVF_5533MF}, 1463 {0x72cc5a8b, EM2820_BOARD_PROLINK_PLAYTV_BOX4_USB2, TUNER_YMEC_TVF_5533MF},
1439 {0x966a0441, EM2880_BOARD_KWORLD_DVB_310U, TUNER_XC2028}, 1464 {0x966a0441, EM2880_BOARD_KWORLD_DVB_310U, TUNER_XC2028},
1465 {0x9567eb1a, EM2880_BOARD_EMPIRE_DUAL_TV, TUNER_XC2028},
1440}; 1466};
1441 1467
1442/* I2C devicelist hash table for devices with generic USB IDs */ 1468/* I2C devicelist hash table for devices with generic USB IDs */
@@ -1664,6 +1690,7 @@ static void em28xx_setup_xc3028(struct em28xx *dev, struct xc2028_ctrl *ctl)
1664 ctl->mts = em28xx_boards[dev->model].mts_firmware; 1690 ctl->mts = em28xx_boards[dev->model].mts_firmware;
1665 1691
1666 switch (dev->model) { 1692 switch (dev->model) {
1693 case EM2880_BOARD_EMPIRE_DUAL_TV:
1667 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: 1694 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900:
1668 ctl->demod = XC3028_FE_ZARLINK456; 1695 ctl->demod = XC3028_FE_ZARLINK456;
1669 break; 1696 break;
diff --git a/drivers/media/video/em28xx/em28xx-dvb.c b/drivers/media/video/em28xx/em28xx-dvb.c
index fcd25511209b..c8188dc2b4b5 100644
--- a/drivers/media/video/em28xx/em28xx-dvb.c
+++ b/drivers/media/video/em28xx/em28xx-dvb.c
@@ -431,6 +431,7 @@ static int dvb_init(struct em28xx *dev)
431 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900: 431 case EM2880_BOARD_HAUPPAUGE_WINTV_HVR_900:
432 case EM2880_BOARD_TERRATEC_HYBRID_XS: 432 case EM2880_BOARD_TERRATEC_HYBRID_XS:
433 case EM2880_BOARD_KWORLD_DVB_310U: 433 case EM2880_BOARD_KWORLD_DVB_310U:
434 case EM2880_BOARD_EMPIRE_DUAL_TV:
434 dvb->frontend = dvb_attach(zl10353_attach, 435 dvb->frontend = dvb_attach(zl10353_attach,
435 &em28xx_zl10353_with_xc3028, 436 &em28xx_zl10353_with_xc3028,
436 &dev->i2c_adap); 437 &dev->i2c_adap);
diff --git a/drivers/media/video/em28xx/em28xx.h b/drivers/media/video/em28xx/em28xx.h
index 4c4e58004f54..16f4c23f179b 100644
--- a/drivers/media/video/em28xx/em28xx.h
+++ b/drivers/media/video/em28xx/em28xx.h
@@ -102,6 +102,7 @@
102#define EM2860_BOARD_KAIOMY_TVNPC_U2 63 102#define EM2860_BOARD_KAIOMY_TVNPC_U2 63
103#define EM2860_BOARD_EASYCAP 64 103#define EM2860_BOARD_EASYCAP 64
104#define EM2820_BOARD_IODATA_GVMVP_SZ 65 104#define EM2820_BOARD_IODATA_GVMVP_SZ 65
105#define EM2880_BOARD_EMPIRE_DUAL_TV 66
105 106
106/* Limits minimum and default number of buffers */ 107/* Limits minimum and default number of buffers */
107#define EM28XX_MIN_BUF 4 108#define EM28XX_MIN_BUF 4