The patch number 8989 was added via Igor M. Liplianin <[EMAIL PROTECTED]> to http://linuxtv.org/hg/v4l-dvb master development tree.
Kernel patches in this development tree may be modified to be backward compatible with older kernels. Compatibility modifications will be removed before inclusion into the mainstream Kernel If anyone has any objections, please let us know by sending a message to: [EMAIL PROTECTED] ------ From: Igor M. Liplianin <[EMAIL PROTECTED]> Added support for TeVii S460 DVB-S/S2 card Added support for TeVii S460 DVB-S/S2 card. The card based on cx24116 demodulator. Signed-off-by: Igor M. Liplianin <[EMAIL PROTECTED]> --- linux/drivers/media/video/cx88/cx88-cards.c | 25 ++++++++++++ linux/drivers/media/video/cx88/cx88-dvb.c | 40 ++++++++++++++++++++ linux/drivers/media/video/cx88/cx88.h | 1 3 files changed, 65 insertions(+), 1 deletion(-) diff -r f03dc5bfc40f -r 556465835d4b linux/drivers/media/video/cx88/cx88-cards.c --- a/linux/drivers/media/video/cx88/cx88-cards.c Thu Sep 04 20:19:43 2008 -0400 +++ b/linux/drivers/media/video/cx88/cx88-cards.c Thu Sep 04 23:24:14 2008 +0300 @@ -1736,6 +1736,18 @@ static const struct cx88_board cx88_boar }, [CX88_BOARD_HAUPPAUGE_HVR4000LITE] = { .name = "Hauppauge WinTV-HVR4000(Lite) DVB-S/S2", + .tuner_type = UNSET, + .radio_type = UNSET, + .tuner_addr = ADDR_UNSET, + .radio_addr = ADDR_UNSET, + .input = {{ + .type = CX88_VMUX_DVB, + .vmux = 0, + } }, + .mpeg = CX88_MPEG_DVB, + }, + [CX88_BOARD_TEVII_S460] = { + .name = "TeVii S460 DVB-S/S2", .tuner_type = UNSET, .radio_type = UNSET, .tuner_addr = ADDR_UNSET, @@ -2115,6 +2127,10 @@ static const struct cx88_subid cx88_subi .subvendor = 0x0070, .subdevice = 0x6906, .card = CX88_BOARD_HAUPPAUGE_HVR4000LITE, + }, { + .subvendor = 0xD460, + .subdevice = 0x9022, + .card = CX88_BOARD_TEVII_S460, }, }; @@ -2686,7 +2702,14 @@ static void cx88_card_setup(struct cx88_ tea5767_cfg.priv = &ctl; cx88_call_i2c_clients(core, TUNER_SET_CONFIG, &tea5767_cfg); - } + break; + } + case CX88_BOARD_TEVII_S460: + cx_write(MO_SRST_IO, 0); + msleep(100); + cx_write(MO_SRST_IO, 1); + msleep(100); + break; } /*end switch() */ diff -r f03dc5bfc40f -r 556465835d4b linux/drivers/media/video/cx88/cx88-dvb.c --- a/linux/drivers/media/video/cx88/cx88-dvb.c Thu Sep 04 20:19:43 2008 -0400 +++ b/linux/drivers/media/video/cx88/cx88-dvb.c Thu Sep 04 23:24:14 2008 +0300 @@ -377,6 +377,31 @@ static int geniatech_dvbs_set_voltage(st return 0; } +static int tevii_dvbs_set_voltage(struct dvb_frontend *fe, + fe_sec_voltage_t voltage) +{ + struct cx8802_dev *dev= fe->dvb->priv; + struct cx88_core *core = dev->core; + + switch (voltage) { + case SEC_VOLTAGE_13: + printk("LNB Voltage SEC_VOLTAGE_13\n"); + cx_write(MO_GP0_IO, 0x00006040); + break; + case SEC_VOLTAGE_18: + printk("LNB Voltage SEC_VOLTAGE_18\n"); + cx_write(MO_GP0_IO, 0x00006060); + break; + case SEC_VOLTAGE_OFF: + printk("LNB Voltage SEC_VOLTAGE_off\n"); + break; + } + + if (core->prev_set_voltage) + return core->prev_set_voltage(fe, voltage); + return 0; +} + static int cx88_pci_nano_callback(void *ptr, int command, int arg) { struct cx88_core *core = ptr; @@ -553,6 +578,12 @@ static struct cx24116_config hauppauge_h .demod_address = 0x05, .set_ts_params = cx24116_set_ts_param, .reset_device = cx24116_reset_device, +}; + +static struct cx24116_config tevii_s460_config = { + .demod_address = 0x55, + .set_ts_params = cx24116_set_ts_param, + .reset_device = cx24116_reset_device, }; static int dvb_register(struct cx8802_dev *dev) @@ -933,6 +964,15 @@ static int dvb_register(struct cx8802_de 0x08, 0x00, 0x00); } break; + case CX88_BOARD_TEVII_S460: + dev->dvb.frontend = dvb_attach(cx24116_attach, + &tevii_s460_config, + &core->i2c_adap); + if (dev->dvb.frontend != NULL) { + core->prev_set_voltage = dev->dvb.frontend->ops.set_voltage; + dev->dvb.frontend->ops.set_voltage = tevii_dvbs_set_voltage; + } + break; default: printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n", core->name); diff -r f03dc5bfc40f -r 556465835d4b linux/drivers/media/video/cx88/cx88.h --- a/linux/drivers/media/video/cx88/cx88.h Thu Sep 04 20:19:43 2008 -0400 +++ b/linux/drivers/media/video/cx88/cx88.h Thu Sep 04 23:24:14 2008 +0300 @@ -224,6 +224,7 @@ extern struct sram_channel cx88_sram_cha #define CX88_BOARD_KWORLD_ATSC_120 67 #define CX88_BOARD_HAUPPAUGE_HVR4000 68 #define CX88_BOARD_HAUPPAUGE_HVR4000LITE 69 +#define CX88_BOARD_TEVII_S460 70 enum cx88_itype { CX88_VMUX_COMPOSITE1 = 1, --- Patch is available at: http://linuxtv.org/hg/v4l-dvb/rev/556465835d4bcf63c9ac5e2ecf24755be4aab7ba _______________________________________________ linuxtv-commits mailing list linuxtv-commits@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits