V4L/DVB (4285): Cx88: add support for Geniatech Digistar / Digiwave 103g
This patch adds support for the Geniatech Digistar, aka Digiwave 103g DVB-S card. Acked-by: Andrew de Quincey <adq_dvb@lidskialf.net> Signed-off-by: Saqeb Akhter <johoja@gmail.com> Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
This commit is contained in:
parent
ccd214b273
commit
c02a34f4e3
@ -50,3 +50,4 @@
|
|||||||
49 -> PixelView PlayTV P7000 [1554:4813]
|
49 -> PixelView PlayTV P7000 [1554:4813]
|
||||||
50 -> NPG Tech Real TV FM Top 10 [14f1:0842]
|
50 -> NPG Tech Real TV FM Top 10 [14f1:0842]
|
||||||
51 -> WinFast DTV2000 H [107d:665e]
|
51 -> WinFast DTV2000 H [107d:665e]
|
||||||
|
52 -> Geniatech DVB-S [14f1:0084]
|
||||||
|
@ -1194,6 +1194,21 @@ struct cx88_board cx88_boards[] = {
|
|||||||
}},
|
}},
|
||||||
.dvb = 1,
|
.dvb = 1,
|
||||||
},
|
},
|
||||||
|
[CX88_BOARD_GENIATECH_DVBS] = {
|
||||||
|
.name = "Geniatech DVB-S",
|
||||||
|
.tuner_type = TUNER_ABSENT,
|
||||||
|
.radio_type = UNSET,
|
||||||
|
.tuner_addr = ADDR_UNSET,
|
||||||
|
.radio_addr = ADDR_UNSET,
|
||||||
|
.input = {{
|
||||||
|
.type = CX88_VMUX_DVB,
|
||||||
|
.vmux = 0,
|
||||||
|
},{
|
||||||
|
.type = CX88_VMUX_COMPOSITE1,
|
||||||
|
.vmux = 1,
|
||||||
|
}},
|
||||||
|
.dvb = 1,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards);
|
const unsigned int cx88_bcount = ARRAY_SIZE(cx88_boards);
|
||||||
|
|
||||||
@ -1439,6 +1454,10 @@ struct cx88_subid cx88_subids[] = {
|
|||||||
.subvendor = 0x18ac,
|
.subvendor = 0x18ac,
|
||||||
.subdevice = 0xd800, /* FusionHDTV 3 Gold (original revision) */
|
.subdevice = 0xd800, /* FusionHDTV 3 Gold (original revision) */
|
||||||
.card = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q,
|
.card = CX88_BOARD_DVICO_FUSIONHDTV_3_GOLD_Q,
|
||||||
|
},{
|
||||||
|
.subvendor = 0x14f1,
|
||||||
|
.subdevice = 0x0084,
|
||||||
|
.card = CX88_BOARD_GENIATECH_DVBS,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);
|
const unsigned int cx88_idcount = ARRAY_SIZE(cx88_subids);
|
||||||
|
@ -496,6 +496,26 @@ static int kworld_dvbs_100_set_voltage(struct dvb_frontend* fe, fe_sec_voltage_t
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int geniatech_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;
|
||||||
|
|
||||||
|
if (voltage == SEC_VOLTAGE_OFF) {
|
||||||
|
dprintk(1,"LNB Voltage OFF\n");
|
||||||
|
cx_write(MO_GP0_IO, 0x0000efff);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (core->prev_set_voltage)
|
||||||
|
return core->prev_set_voltage(fe, voltage);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static struct cx24123_config geniatech_dvbs_config = {
|
||||||
|
.demod_address = 0x55,
|
||||||
|
.set_ts_params = cx24123_set_ts_param,
|
||||||
|
};
|
||||||
|
|
||||||
static struct cx24123_config hauppauge_novas_config = {
|
static struct cx24123_config hauppauge_novas_config = {
|
||||||
.demod_address = 0x55,
|
.demod_address = 0x55,
|
||||||
.set_ts_params = cx24123_set_ts_param,
|
.set_ts_params = cx24123_set_ts_param,
|
||||||
@ -760,6 +780,14 @@ static int dvb_register(struct cx8802_dev *dev)
|
|||||||
dev->dvb.frontend->ops.set_voltage = kworld_dvbs_100_set_voltage;
|
dev->dvb.frontend->ops.set_voltage = kworld_dvbs_100_set_voltage;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case CX88_BOARD_GENIATECH_DVBS:
|
||||||
|
dev->dvb.frontend = cx24123_attach(&geniatech_dvbs_config,
|
||||||
|
&dev->core->i2c_adap);
|
||||||
|
if (dev->dvb.frontend) {
|
||||||
|
dev->core->prev_set_voltage = dev->dvb.frontend->ops.set_voltage;
|
||||||
|
dev->dvb.frontend->ops.set_voltage = geniatech_dvbs_set_voltage;
|
||||||
|
}
|
||||||
|
break;
|
||||||
#endif
|
#endif
|
||||||
default:
|
default:
|
||||||
printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n",
|
printk("%s: The frontend of your DVB/ATSC card isn't supported yet\n",
|
||||||
|
@ -196,6 +196,7 @@ extern struct sram_channel cx88_sram_channels[];
|
|||||||
#define CX88_BOARD_PIXELVIEW_PLAYTV_P7000 49
|
#define CX88_BOARD_PIXELVIEW_PLAYTV_P7000 49
|
||||||
#define CX88_BOARD_NPGTECH_REALTV_TOP10FM 50
|
#define CX88_BOARD_NPGTECH_REALTV_TOP10FM 50
|
||||||
#define CX88_BOARD_WINFAST_DTV2000H 51
|
#define CX88_BOARD_WINFAST_DTV2000H 51
|
||||||
|
#define CX88_BOARD_GENIATECH_DVBS 52
|
||||||
|
|
||||||
enum cx88_itype {
|
enum cx88_itype {
|
||||||
CX88_VMUX_COMPOSITE1 = 1,
|
CX88_VMUX_COMPOSITE1 = 1,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user