[media] KWorld 355U and 380U support

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>
This commit is contained in:
Aivar Päkk 2011-12-11 18:15:00 -03:00 committed by Mauro Carvalho Chehab
parent f36472da3a
commit 1985f6fb89
2 changed files with 26 additions and 0 deletions

View File

@ -856,6 +856,10 @@ struct em28xx_board em28xx_boards[] = {
[EM2870_BOARD_KWORLD_355U] = { [EM2870_BOARD_KWORLD_355U] = {
.name = "Kworld 355 U DVB-T", .name = "Kworld 355 U DVB-T",
.valid = EM28XX_BOARD_NOT_VALIDATED, .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] = { [EM2870_BOARD_PINNACLE_PCTV_DVB] = {
.name = "Pinnacle PCTV DVB-T", .name = "Pinnacle PCTV DVB-T",
@ -1947,6 +1951,8 @@ struct usb_device_id em28xx_id_table[] = {
.driver_info = EM2800_BOARD_GRABBEEX_USB2800 }, .driver_info = EM2800_BOARD_GRABBEEX_USB2800 },
{ USB_DEVICE(0xeb1a, 0xe357), { USB_DEVICE(0xeb1a, 0xe357),
.driver_info = EM2870_BOARD_KWORLD_355U }, .driver_info = EM2870_BOARD_KWORLD_355U },
{ USB_DEVICE(0xeb1a, 0xe359),
.driver_info = EM2870_BOARD_KWORLD_355U },
{ USB_DEVICE(0x1b80, 0xe302), { USB_DEVICE(0x1b80, 0xe302),
.driver_info = EM2820_BOARD_PINNACLE_DVC_90 }, /* Kaiser Baas Video to DVD maker */ .driver_info = EM2820_BOARD_PINNACLE_DVC_90 }, /* Kaiser Baas Video to DVD maker */
{ USB_DEVICE(0x1b80, 0xe304), { USB_DEVICE(0x1b80, 0xe304),

View File

@ -44,6 +44,7 @@
#include "drxk.h" #include "drxk.h"
#include "tda10071.h" #include "tda10071.h"
#include "a8293.h" #include "a8293.h"
#include "qt1010.h"
MODULE_DESCRIPTION("driver for em28xx based DVB cards"); MODULE_DESCRIPTION("driver for em28xx based DVB cards");
MODULE_AUTHOR("Mauro Carvalho Chehab <mchehab@infradead.org>"); 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) */ .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) 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; goto out_free;
} }
break; 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 EM2883_BOARD_KWORLD_HYBRID_330U:
case EM2882_BOARD_EVGA_INDTUBE: case EM2882_BOARD_EVGA_INDTUBE:
dvb->fe[0] = dvb_attach(s5h1409_attach, dvb->fe[0] = dvb_attach(s5h1409_attach,