mirror of https://gitee.com/openkylin/linux.git
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]
|
||||
50 -> NPG Tech Real TV FM Top 10 [14f1:0842]
|
||||
51 -> WinFast DTV2000 H [107d:665e]
|
||||
52 -> Geniatech DVB-S [14f1:0084]
|
||||
|
|
|
@ -1194,6 +1194,21 @@ struct cx88_board cx88_boards[] = {
|
|||
}},
|
||||
.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);
|
||||
|
||||
|
@ -1439,6 +1454,10 @@ struct cx88_subid cx88_subids[] = {
|
|||
.subvendor = 0x18ac,
|
||||
.subdevice = 0xd800, /* FusionHDTV 3 Gold (original revision) */
|
||||
.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);
|
||||
|
|
|
@ -496,6 +496,26 @@ static int kworld_dvbs_100_set_voltage(struct dvb_frontend* fe, fe_sec_voltage_t
|
|||
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 = {
|
||||
.demod_address = 0x55,
|
||||
.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;
|
||||
}
|
||||
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
|
||||
default:
|
||||
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_NPGTECH_REALTV_TOP10FM 50
|
||||
#define CX88_BOARD_WINFAST_DTV2000H 51
|
||||
#define CX88_BOARD_GENIATECH_DVBS 52
|
||||
|
||||
enum cx88_itype {
|
||||
CX88_VMUX_COMPOSITE1 = 1,
|
||||
|
|
Loading…
Reference in New Issue