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

Reply via email to