Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c02a34f4 authored by Saqeb Akhter's avatar Saqeb Akhter Committed by Mauro Carvalho Chehab
Browse files

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: default avatarAndrew de Quincey <adq_dvb@lidskialf.net>

Signed-off-by: default avatarSaqeb Akhter <johoja@gmail.com>
Signed-off-by: default avatarMichael Krufky <mkrufky@linuxtv.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@infradead.org>
parent ccd214b2
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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]
+19 −0
Original line number Diff line number Diff line
@@ -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);
+28 −0
Original line number Diff line number Diff line
@@ -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",
+1 −0
Original line number Diff line number Diff line
@@ -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,