V4L/DVB (12486): cx88: fix TBS 8920 card support
authorIgor M. Liplianin <liplianin@me.by>
Wed, 29 Jul 2009 22:18:28 +0000 (19:18 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sat, 12 Sep 2009 15:19:09 +0000 (12:19 -0300)
It does matter to set explicitly gpio0 value in
cx88_board structure for TBS 8920 card.

Signed-off-by: Igor M. Liplianin <liplianin@me.by>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/video/cx88/cx88-cards.c
drivers/media/video/cx88/cx88-dvb.c

index 43aa7e0..e5f07fb 100644 (file)
@@ -1953,7 +1953,8 @@ static const struct cx88_board cx88_boards[] = {
                .radio_addr     = ADDR_UNSET,
                .input          = {{
                        .type   = CX88_VMUX_DVB,
-                       .vmux   = 1,
+                       .vmux   = 0,
+                       .gpio0  = 0x8080,
                } },
                .mpeg           = CX88_MPEG_DVB,
        },
@@ -3211,7 +3212,11 @@ static void cx88_card_setup(struct cx88_core *core)
        case  CX88_BOARD_PROF_6200:
        case  CX88_BOARD_PROF_7300:
        case  CX88_BOARD_SATTRADE_ST4200:
+               cx_write(MO_GP0_IO, 0x8000);
+               msleep(100);
                cx_write(MO_SRST_IO, 0);
+               msleep(10);
+               cx_write(MO_GP0_IO, 0x8080);
                msleep(100);
                cx_write(MO_SRST_IO, 1);
                msleep(100);
index 1203e8d..5d63aa5 100644 (file)
@@ -424,17 +424,16 @@ static int tevii_dvbs_set_voltage(struct dvb_frontend *fe,
        struct cx8802_dev *dev= fe->dvb->priv;
        struct cx88_core *core = dev->core;
 
+       cx_set(MO_GP0_IO, 0x6040);
        switch (voltage) {
                case SEC_VOLTAGE_13:
-                       printk("LNB Voltage SEC_VOLTAGE_13\n");
-                       cx_write(MO_GP0_IO, 0x00006040);
+                       cx_clear(MO_GP0_IO, 0x20);
                        break;
                case SEC_VOLTAGE_18:
-                       printk("LNB Voltage SEC_VOLTAGE_18\n");
-                       cx_write(MO_GP0_IO, 0x00006060);
+                       cx_set(MO_GP0_IO, 0x20);
                        break;
                case SEC_VOLTAGE_OFF:
-                       printk("LNB Voltage SEC_VOLTAGE_off\n");
+                       cx_clear(MO_GP0_IO, 0x20);
                        break;
        }