When v4l-dvb starts to support this card? You already have well tested patch for this purpose. But it still "experimental". I had one doubt, i'm not sure if we need all of those chips, that patch contain, cos this card has only cx88x & mb86a16, so i exclude em, and it looks work.<br>
<br><br>diff -r 2a50a0a1c951 linux/drivers/media/video/cx88/cx88-cards.c<br>--- a/linux/drivers/media/video/cx88/cx88-cards.c Sat Jan 23 00:14:32 2010 -0200<br>+++ b/linux/drivers/media/video/cx88/cx88-cards.c Sun Jan 24 15:04:25 2010 +0300<br>
@@ -2120,6 +2120,18 @@<br> } },<br> .mpeg = CX88_MPEG_DVB,<br> },<br>+ [CX88_BOARD_TWINHAN_VP1027_DVBS] = {<br>+ .name = "Twinhan VP-1027 DVB-S",<br>+ .tuner_type = TUNER_ABSENT,<br>
+ .radio_type = UNSET,<br>+ .tuner_addr = ADDR_UNSET,<br>+ .radio_addr = ADDR_UNSET,<br>+ .input = {{<br>+ .type = CX88_VMUX_DVB,<br>+ .vmux = 0,<br>
+ } },<br>+ .mpeg = CX88_MPEG_DVB,<br>+ },<br> };<br> <br> /* ------------------------------------------------------------------ */<br>@@ -2584,6 +2596,10 @@<br> .subvendor = 0xb034,<br>
.subdevice = 0x3034,<br> .card = CX88_BOARD_PROF_7301,<br>+ }, {<br>+ .subvendor = 0x1822,<br>+ .subdevice = 0x0023,<br>+ .card = CX88_BOARD_TWINHAN_VP1027_DVBS,<br>
},<br> };<br> <br>@@ -3075,6 +3091,13 @@<br> cx_set(MO_GP1_IO, 0x10);<br> mdelay(50);<br> break;<br>+<br>+ case CX88_BOARD_TWINHAN_VP1027_DVBS:<br>+ cx_write(MO_GP0_IO, 0x00003230);<br>
+ cx_write(MO_GP0_IO, 0x00003210);<br>+ msleep(1);<br>+ cx_write(MO_GP0_IO, 0x00001230);<br>+ break;<br> }<br> }<br> <br>diff -r 2a50a0a1c951 linux/drivers/media/video/cx88/cx88-dvb.c<br>--- a/linux/drivers/media/video/cx88/cx88-dvb.c Sat Jan 23 00:14:32 2010 -0200<br>
+++ b/linux/drivers/media/video/cx88/cx88-dvb.c Sun Jan 24 15:04:25 2010 +0300<br>@@ -57,6 +57,7 @@<br> #include "stv0900.h"<br> #include "stb6100.h"<br> #include "stb6100_proc.h"<br>+#include "mb86a16.h"<br>
<br> MODULE_DESCRIPTION("driver for cx2388x based DVB cards");<br> MODULE_AUTHOR("Chris Pascoe <<a href="mailto:c.pascoe@itee.uq.edu.au">c.pascoe@itee.uq.edu.au</a>>");<br>@@ -251,6 +252,10 @@<br>
.if2 = 45600,<br> };<br> <br>+static struct mb86a16_config twinhan_vp1027 = {<br>+ .demod_address = 0x08,<br>+};<br>+<br> #if defined(CONFIG_VIDEO_CX88_VP3054) || (defined(CONFIG_VIDEO_CX88_VP3054_MODULE) && defined(MODULE))<br>
static int dntv_live_dvbt_pro_demod_init(struct dvb_frontend* fe)<br> {<br>@@ -446,6 +451,30 @@<br> return 0;<br> }<br> <br>+static int vp1027_set_voltage(struct dvb_frontend *fe,<br>+ fe_sec_voltage_t voltage)<br>
+{<br>+ struct cx8802_dev *dev = fe->dvb->priv;<br>+ struct cx88_core *core = dev->core;<br>+ switch (voltage) {<br>+ case SEC_VOLTAGE_OFF:<br>+ dprintk(1, "LNB Voltage OFF\n");<br>
+ cx_write(MO_GP0_IO, 0x00001230);<br>+ break;<br>+ case SEC_VOLTAGE_13:<br>+ dprintk(1, "LNB SEC Voltage=13\n");<br>+ cx_write(MO_GP0_IO, 0x00001220);<br>+ break;<br>
+ case SEC_VOLTAGE_18:<br>+ dprintk(1, "LNB SEC Voltage=18\n");<br>+ cx_write(MO_GP0_IO, 0x00001222);<br>+ break;<br>+ }<br>+ if (core->prev_set_voltage)<br>+ return core->prev_set_voltage(fe, voltage);<br>
+ return 0;<br>+};<br>+<br> static struct cx24123_config geniatech_dvbs_config = {<br> .demod_address = 0x55,<br> .set_ts_params = cx24123_set_ts_param,<br>@@ -1210,6 +1239,17 @@<br> }<br> break;<br>
}<br>+ case CX88_BOARD_TWINHAN_VP1027_DVBS:<br>+ dev->ts_gen_cntrl = 0x00;<br>+ fe0->dvb.frontend = dvb_attach(mb86a16_attach,<br>+ &twinhan_vp1027,<br>+ &core->i2c_adap);<br>
+ if (fe0->dvb.frontend) {<br>+ core->prev_set_voltage = fe0->dvb.frontend->ops.set_voltage;<br>+ fe0->dvb.frontend->ops.set_voltage = vp1027_set_voltage;<br>+ }<br>+ break;<br>
+<br> default:<br> printk(KERN_ERR "%s/2: The frontend of your DVB/ATSC card isn't supported yet\n",<br> core->name);<br>diff -r 2a50a0a1c951 linux/drivers/media/video/cx88/cx88.h<br>
--- a/linux/drivers/media/video/cx88/cx88.h Sat Jan 23 00:14:32 2010 -0200<br>+++ b/linux/drivers/media/video/cx88/cx88.h Sun Jan 24 15:04:25 2010 +0300<br>@@ -240,6 +240,7 @@<br> #define CX88_BOARD_WINFAST_DTV1800H 81<br>
#define CX88_BOARD_WINFAST_DTV2000H_J 82<br> #define CX88_BOARD_PROF_7301 83<br>+#define CX88_BOARD_TWINHAN_VP1027_DVBS 84<br> <br> enum cx88_itype {<br> CX88_VMUX_COMPOSITE1 = 1,<br><br>