public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Add support for Twinhan 1027 DVB-S card
       [not found] <d7fc510e1001290151q3520d106g88aceca5db22778b@mail.gmail.com>
@ 2010-01-30  8:04 ` Sergey Ivanov
  2010-02-02 18:54   ` Mauro Carvalho Chehab
  0 siblings, 1 reply; 2+ messages in thread
From: Sergey Ivanov @ 2010-01-30  8:04 UTC (permalink / raw)
  To: linux-media

This patch is the modified version of sfstudio (Denis Romanenko)
patch, adapted for current mercurial revision.

diff -r d6520e486ee6 linux/drivers/media/video/cx88/cx88-cards.c
--- a/linux/drivers/media/video/cx88/cx88-cards.c       Sat Jan 30
01:27:34 2010 -0200
+++ b/linux/drivers/media/video/cx88/cx88-cards.c       Sat Jan 30
11:02:24 2010 +0300
@@ -2120,6 +2120,18 @@
                } },
                .mpeg           = CX88_MPEG_DVB,
        },
+       [CX88_BOARD_TWINHAN_VP1027_DVBS] = {
+               .name           = "Twinhan VP-1027 DVB-S",
+               .tuner_type     = TUNER_ABSENT,
+               .radio_type     = UNSET,
+               .tuner_addr     = ADDR_UNSET,
+               .radio_addr     = ADDR_UNSET,
+               .input          = {{
+                      .type   = CX88_VMUX_DVB,
+                      .vmux   = 0,
+               } },
+               .mpeg           = CX88_MPEG_DVB,
+       },
 };

 /* ------------------------------------------------------------------ */
@@ -2584,6 +2596,10 @@
                .subvendor = 0xb034,
                .subdevice = 0x3034,
                .card      = CX88_BOARD_PROF_7301,
+       }, {
+               .subvendor = 0x1822,
+               .subdevice = 0x0023,
+               .card      = CX88_BOARD_TWINHAN_VP1027_DVBS,
        },
 };

@@ -3075,6 +3091,13 @@
                cx_set(MO_GP1_IO, 0x10);
                mdelay(50);
                break;
+
+       case CX88_BOARD_TWINHAN_VP1027_DVBS:
+               cx_write(MO_GP0_IO, 0x00003230);
+               cx_write(MO_GP0_IO, 0x00003210);
+               msleep(1);
+               cx_write(MO_GP0_IO, 0x00001230);
+               break;
        }
 }

diff -r d6520e486ee6 linux/drivers/media/video/cx88/cx88-dvb.c
--- a/linux/drivers/media/video/cx88/cx88-dvb.c Sat Jan 30 01:27:34 2010 -0200
+++ b/linux/drivers/media/video/cx88/cx88-dvb.c Sat Jan 30 11:02:24 2010 +0300
@@ -57,6 +57,7 @@
 #include "stv0900.h"
 #include "stb6100.h"
 #include "stb6100_proc.h"
+#include "mb86a16.h"

 MODULE_DESCRIPTION("driver for cx2388x based DVB cards");
 MODULE_AUTHOR("Chris Pascoe <c.pascoe@itee.uq.edu.au>");
@@ -251,6 +252,10 @@
        .if2           = 45600,
 };

+static struct mb86a16_config twinhan_vp1027 = {
+       .demod_address  = 0x08,
+};
+
 #if defined(CONFIG_VIDEO_CX88_VP3054) ||
(defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE))
 static int dntv_live_dvbt_pro_demod_init(struct dvb_frontend* fe)
 {
@@ -430,15 +435,41 @@

        cx_set(MO_GP0_IO, 0x6040);
        switch (voltage) {
-               case SEC_VOLTAGE_13:
-                       cx_clear(MO_GP0_IO, 0x20);
-                       break;
-               case SEC_VOLTAGE_18:
-                       cx_set(MO_GP0_IO, 0x20);
-                       break;
-               case SEC_VOLTAGE_OFF:
-                       cx_clear(MO_GP0_IO, 0x20);
-                       break;
+       case SEC_VOLTAGE_13:
+               cx_clear(MO_GP0_IO, 0x20);
+               break;
+       case SEC_VOLTAGE_18:
+               cx_set(MO_GP0_IO, 0x20);
+               break;
+       case SEC_VOLTAGE_OFF:
+               cx_clear(MO_GP0_IO, 0x20);
+               break;
+       }
+
+       if (core->prev_set_voltage)
+               return core->prev_set_voltage(fe, voltage);
+       return 0;
+}
+
+static int vp1027_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:
+               dprintk(1, "LNB SEC Voltage=13\n");
+               cx_write(MO_GP0_IO, 0x00001220);
+               break;
+       case SEC_VOLTAGE_18:
+               dprintk(1, "LNB SEC Voltage=18\n");
+               cx_write(MO_GP0_IO, 0x00001222);
+               break;
+       case SEC_VOLTAGE_OFF:
+               dprintk(1, "LNB Voltage OFF\n");
+               cx_write(MO_GP0_IO, 0x00001230);
+               break;
        }

        if (core->prev_set_voltage)
@@ -1210,6 +1241,19 @@
                }
                break;
                }
+       case CX88_BOARD_TWINHAN_VP1027_DVBS:
+               dev->ts_gen_cntrl = 0x00;
+               fe0->dvb.frontend = dvb_attach(mb86a16_attach,
+                                               &twinhan_vp1027,
+                                               &core->i2c_adap);
+               if (fe0->dvb.frontend) {
+                       core->prev_set_voltage =
+                                       fe0->dvb.frontend->ops.set_voltage;
+                       fe0->dvb.frontend->ops.set_voltage =
+                                       vp1027_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 d6520e486ee6 linux/drivers/media/video/cx88/cx88.h
--- a/linux/drivers/media/video/cx88/cx88.h     Sat Jan 30 01:27:34 2010 -0200
+++ b/linux/drivers/media/video/cx88/cx88.h     Sat Jan 30 11:02:24 2010 +0300
@@ -240,6 +240,7 @@
 #define CX88_BOARD_WINFAST_DTV1800H        81
 #define CX88_BOARD_WINFAST_DTV2000H_J      82
 #define CX88_BOARD_PROF_7301               83
+#define CX88_BOARD_TWINHAN_VP1027_DVBS     84

 enum cx88_itype {
        CX88_VMUX_COMPOSITE1 = 1,


--------------------------------------------------------------
WBR Sergey Kash Ivanov

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] Add support for Twinhan 1027 DVB-S card
  2010-01-30  8:04 ` [PATCH] Add support for Twinhan 1027 DVB-S card Sergey Ivanov
@ 2010-02-02 18:54   ` Mauro Carvalho Chehab
  0 siblings, 0 replies; 2+ messages in thread
From: Mauro Carvalho Chehab @ 2010-02-02 18:54 UTC (permalink / raw)
  To: Sergey Ivanov; +Cc: linux-media

Sergey Ivanov wrote:
> This patch is the modified version of sfstudio (Denis Romanenko)
> patch, adapted for current mercurial revision.

the patch didn't apply:

$ test_patch 
patching file drivers/media/video/cx88/cx88-cards.c
Hunk #1 FAILED at 2120.
Hunk #2 FAILED at 2596.
Hunk #3 FAILED at 3091.
3 out of 3 hunks FAILED -- saving rejects to file drivers/media/video/cx88/cx88-cards.c.rej
patching file drivers/media/video/cx88/cx88-dvb.c
Hunk #1 succeeded at 56 (offset -1 lines).
patch: **** malformed patch at line 91: (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE))

Patch may be line wrapped
patching file drivers/media/video/cx88/cx88-cards.c
Hunk #1 FAILED at 2120.
Hunk #2 FAILED at 2596.
Hunk #3 FAILED at 3091.
3 out of 3 hunks FAILED -- saving rejects to file drivers/media/video/cx88/cx88-cards.c.rej
patching file drivers/media/video/cx88/cx88-dvb.c
Hunk #1 succeeded at 56 (offset -1 lines).
Hunk #2 succeeded at 252 with fuzz 1.
Hunk #3 FAILED at 435.
Hunk #4 FAILED at 1241.
2 out of 4 hunks FAILED -- saving rejects to file drivers/media/video/cx88/cx88-dvb.c.rej
patching file drivers/media/video/cx88/cx88.h
Hunk #1 succeeded at 239 with fuzz 1 (offset -1 lines).
Patch doesn't apply


My scripts detected that the patch got line-wrapped by your emailer and ran a logic to unwrap. Even so,
they keep failing.

So, please correct it and re-submit.


> 
> diff -r d6520e486ee6 linux/drivers/media/video/cx88/cx88-cards.c
> --- a/linux/drivers/media/video/cx88/cx88-cards.c       Sat Jan 30
> 01:27:34 2010 -0200
> +++ b/linux/drivers/media/video/cx88/cx88-cards.c       Sat Jan 30
> 11:02:24 2010 +0300
> @@ -2120,6 +2120,18 @@
>                 } },
>                 .mpeg           = CX88_MPEG_DVB,
>         },
> +       [CX88_BOARD_TWINHAN_VP1027_DVBS] = {
> +               .name           = "Twinhan VP-1027 DVB-S",
> +               .tuner_type     = TUNER_ABSENT,
> +               .radio_type     = UNSET,
> +               .tuner_addr     = ADDR_UNSET,
> +               .radio_addr     = ADDR_UNSET,
> +               .input          = {{
> +                      .type   = CX88_VMUX_DVB,
> +                      .vmux   = 0,
> +               } },
> +               .mpeg           = CX88_MPEG_DVB,
> +       },
>  };
> 
>  /* ------------------------------------------------------------------ */
> @@ -2584,6 +2596,10 @@
>                 .subvendor = 0xb034,
>                 .subdevice = 0x3034,
>                 .card      = CX88_BOARD_PROF_7301,
> +       }, {
> +               .subvendor = 0x1822,
> +               .subdevice = 0x0023,
> +               .card      = CX88_BOARD_TWINHAN_VP1027_DVBS,
>         },
>  };
> 
> @@ -3075,6 +3091,13 @@
>                 cx_set(MO_GP1_IO, 0x10);
>                 mdelay(50);
>                 break;
> +
> +       case CX88_BOARD_TWINHAN_VP1027_DVBS:
> +               cx_write(MO_GP0_IO, 0x00003230);
> +               cx_write(MO_GP0_IO, 0x00003210);
> +               msleep(1);
> +               cx_write(MO_GP0_IO, 0x00001230);
> +               break;
>         }
>  }
> 
> diff -r d6520e486ee6 linux/drivers/media/video/cx88/cx88-dvb.c
> --- a/linux/drivers/media/video/cx88/cx88-dvb.c Sat Jan 30 01:27:34 2010 -0200
> +++ b/linux/drivers/media/video/cx88/cx88-dvb.c Sat Jan 30 11:02:24 2010 +0300
> @@ -57,6 +57,7 @@
>  #include "stv0900.h"
>  #include "stb6100.h"
>  #include "stb6100_proc.h"
> +#include "mb86a16.h"
> 
>  MODULE_DESCRIPTION("driver for cx2388x based DVB cards");
>  MODULE_AUTHOR("Chris Pascoe <c.pascoe@itee.uq.edu.au>");
> @@ -251,6 +252,10 @@
>         .if2           = 45600,
>  };
> 
> +static struct mb86a16_config twinhan_vp1027 = {
> +       .demod_address  = 0x08,
> +};
> +
>  #if defined(CONFIG_VIDEO_CX88_VP3054) ||
> (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE))
>  static int dntv_live_dvbt_pro_demod_init(struct dvb_frontend* fe)
>  {
> @@ -430,15 +435,41 @@
> 
>         cx_set(MO_GP0_IO, 0x6040);
>         switch (voltage) {
> -               case SEC_VOLTAGE_13:
> -                       cx_clear(MO_GP0_IO, 0x20);
> -                       break;
> -               case SEC_VOLTAGE_18:
> -                       cx_set(MO_GP0_IO, 0x20);
> -                       break;
> -               case SEC_VOLTAGE_OFF:
> -                       cx_clear(MO_GP0_IO, 0x20);
> -                       break;
> +       case SEC_VOLTAGE_13:
> +               cx_clear(MO_GP0_IO, 0x20);
> +               break;
> +       case SEC_VOLTAGE_18:
> +               cx_set(MO_GP0_IO, 0x20);
> +               break;
> +       case SEC_VOLTAGE_OFF:
> +               cx_clear(MO_GP0_IO, 0x20);
> +               break;
> +       }
> +
> +       if (core->prev_set_voltage)
> +               return core->prev_set_voltage(fe, voltage);
> +       return 0;
> +}
> +
> +static int vp1027_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:
> +               dprintk(1, "LNB SEC Voltage=13\n");
> +               cx_write(MO_GP0_IO, 0x00001220);
> +               break;
> +       case SEC_VOLTAGE_18:
> +               dprintk(1, "LNB SEC Voltage=18\n");
> +               cx_write(MO_GP0_IO, 0x00001222);
> +               break;
> +       case SEC_VOLTAGE_OFF:
> +               dprintk(1, "LNB Voltage OFF\n");
> +               cx_write(MO_GP0_IO, 0x00001230);
> +               break;
>         }
> 
>         if (core->prev_set_voltage)
> @@ -1210,6 +1241,19 @@
>                 }
>                 break;
>                 }
> +       case CX88_BOARD_TWINHAN_VP1027_DVBS:
> +               dev->ts_gen_cntrl = 0x00;
> +               fe0->dvb.frontend = dvb_attach(mb86a16_attach,
> +                                               &twinhan_vp1027,
> +                                               &core->i2c_adap);
> +               if (fe0->dvb.frontend) {
> +                       core->prev_set_voltage =
> +                                       fe0->dvb.frontend->ops.set_voltage;
> +                       fe0->dvb.frontend->ops.set_voltage =
> +                                       vp1027_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 d6520e486ee6 linux/drivers/media/video/cx88/cx88.h
> --- a/linux/drivers/media/video/cx88/cx88.h     Sat Jan 30 01:27:34 2010 -0200
> +++ b/linux/drivers/media/video/cx88/cx88.h     Sat Jan 30 11:02:24 2010 +0300
> @@ -240,6 +240,7 @@
>  #define CX88_BOARD_WINFAST_DTV1800H        81
>  #define CX88_BOARD_WINFAST_DTV2000H_J      82
>  #define CX88_BOARD_PROF_7301               83
> +#define CX88_BOARD_TWINHAN_VP1027_DVBS     84
> 
>  enum cx88_itype {
>         CX88_VMUX_COMPOSITE1 = 1,
> 
> 
> --------------------------------------------------------------
> WBR Sergey Kash Ivanov
> --
> To unsubscribe from this list: send the line "unsubscribe linux-media" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


-- 

Cheers,
Mauro

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-02-02 18:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <d7fc510e1001290151q3520d106g88aceca5db22778b@mail.gmail.com>
2010-01-30  8:04 ` [PATCH] Add support for Twinhan 1027 DVB-S card Sergey Ivanov
2010-02-02 18:54   ` Mauro Carvalho Chehab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox