[media] KWorld 355U and 380U support
authorAivar Päkk <aivar11@gmail.com>
Sun, 11 Dec 2011 21:15:00 +0000 (18:15 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 30 Dec 2011 19:25:00 +0000 (17:25 -0200)
This patch adds Kworld 355U and 380U support

Signed-off-by: Aivar Päkk <aivar11@gmail.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/em28xx/em28xx-cards.c
drivers/media/video/em28xx/em28xx-dvb.c

index 1704da05540db05f740ff9fae6679885062b9b2b..6cab22d0665cf1cf00d0b0f85fbaee6a1ec94d5f 100644 (file)
@@ -856,6 +856,10 @@ struct em28xx_board em28xx_boards[] = {
        [EM2870_BOARD_KWORLD_355U] = {
                .name         = "Kworld 355 U DVB-T",
                .valid        = EM28XX_BOARD_NOT_VALIDATED,
+               .tuner_type   = TUNER_ABSENT,
+               .tuner_gpio   = default_tuner_gpio,
+               .has_dvb      = 1,
+               .dvb_gpio     = default_digital,
        },
        [EM2870_BOARD_PINNACLE_PCTV_DVB] = {
                .name         = "Pinnacle PCTV DVB-T",
@@ -1947,6 +1951,8 @@ struct usb_device_id em28xx_id_table[] = {
                        .driver_info = EM2800_BOARD_GRABBEEX_USB2800 },
        { USB_DEVICE(0xeb1a, 0xe357),
                        .driver_info = EM2870_BOARD_KWORLD_355U },
+       { USB_DEVICE(0xeb1a, 0xe359),
+                       .driver_info = EM2870_BOARD_KWORLD_355U },
        { USB_DEVICE(0x1b80, 0xe302),
                        .driver_info = EM2820_BOARD_PINNACLE_DVC_90 }, /* Kaiser Baas Video to DVD maker */
        { USB_DEVICE(0x1b80, 0xe304),
index e733b8ea25648da8c8d61ba6871581747a1a3432..b0e5cbe1b40f0e341e9f37084145784e8dc5e2fd 100644 (file)
@@ -44,6 +44,7 @@
 #include "drxk.h"
 #include "tda10071.h"
 #include "a8293.h"
+#include "qt1010.h"
 
 MODULE_DESCRIPTION("driver for em28xx based DVB cards");
 MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@infradead.org>");
@@ -524,6 +525,17 @@ static const struct a8293_config em28xx_a8293_config = {
        .i2c_addr = 0x08, /* (0x10 >> 1) */
 };
 
+static struct zl10353_config em28xx_zl10353_no_i2c_gate_dev = {
+       .demod_address = (0x1e >> 1),
+       .disable_i2c_gate_ctrl = 1,
+       .no_tuner = 1,
+       .parallel_ts = 1,
+};
+static struct qt1010_config em28xx_qt1010_config = {
+       .i2c_address = 0x62
+
+};
+
 /* ------------------------------------------------------------------ */
 
 static int em28xx_attach_xc3028(u8 addr, struct em28xx *dev)
@@ -776,6 +788,14 @@ static int em28xx_dvb_init(struct em28xx *dev)
                        goto out_free;
                }
                break;
+       case EM2870_BOARD_KWORLD_355U:
+               dvb->fe[0] = dvb_attach(zl10353_attach,
+                                          &em28xx_zl10353_no_i2c_gate_dev,
+                                          &dev->i2c_adap);
+               if (dvb->fe[0] != NULL)
+                       dvb_attach(qt1010_attach, dvb->fe[0],
+                                  &dev->i2c_adap, &em28xx_qt1010_config);
+               break;
        case EM2883_BOARD_KWORLD_HYBRID_330U:
        case EM2882_BOARD_EVGA_INDTUBE:
                dvb->fe[0] = dvb_attach(s5h1409_attach,