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

Commit 92abe9ee authored by Darron Broad's avatar Darron Broad Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (9223): MFE: Fix a number of bugs and some tidying up



A number of reference to videobuf_dvb_get_frontend used an invalid
index. This has been fixed.

The section for the HVR3000 in advise_acquire was redundant as
the same logic is used on the HVR4000. This has been removed
and both cards now use the same function.

A number of small errors and whitespace errors are also fixed.

Signed-off-by: default avatarDarron Broad <darron@kewl.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 363c35fc
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -314,7 +314,7 @@ static int dvb_register(struct cx23885_tsport *port)
	struct cx23885_i2c *i2c_bus = NULL;
	struct videobuf_dvb_frontend *fe0;

	fe0 = videobuf_dvb_get_frontend(&port->frontends, 0);
	fe0 = videobuf_dvb_get_frontend(&port->frontends, 1);
	if (!fe0)
		return -EINVAL;

@@ -336,7 +336,7 @@ static int dvb_register(struct cx23885_tsport *port)
		break;
	case CX23885_BOARD_HAUPPAUGE_HVR1800:
		i2c_bus = &dev->i2c_bus[0];
		switch (alt_tuner) { // XXXXXX multifrontend?
		switch (alt_tuner) {
		case 1:
			fe0->dvb.frontend =
				dvb_attach(s5h1409_attach,
@@ -554,7 +554,7 @@ int cx23885_dvb_register(struct cx23885_tsport *port)
	struct cx23885_dev *dev = port->dev;
	int err;

	fe0 = videobuf_dvb_get_frontend(&port->frontends, 0);
	fe0 = videobuf_dvb_get_frontend(&port->frontends, 1);
	if (!fe0)
		err = -EINVAL;

@@ -583,7 +583,7 @@ int cx23885_dvb_unregister(struct cx23885_tsport *port)
{
	struct videobuf_dvb_frontend *fe0;

	fe0 = videobuf_dvb_get_frontend(&port->frontends, 0);
	fe0 = videobuf_dvb_get_frontend(&port->frontends, 1);
	/* dvb */
	if(fe0->dvb.frontend)
		videobuf_dvb_unregister_bus(&port->frontends);
+0 −1
Original line number Diff line number Diff line
@@ -3004,7 +3004,6 @@ struct cx88_core *cx88_core_create(struct pci_dev *pci, int nr)
		cx88_card_list(core, pci);
	}

	memset(&core->board, 0, sizeof(core->board));
	memcpy(&core->board, &cx88_boards[core->boardnr], sizeof(core->board));

	if (!core->board.num_frontends)
+4 −34
Original line number Diff line number Diff line
@@ -124,7 +124,6 @@ static int cx88_dvb_bus_ctrl(struct dvb_frontend* fe, int acquire)
		return -EINVAL;
	}


	drv = cx8802_get_driver(dev, CX88_MPEG_DVB);
	if (drv) {
		if (acquire){
@@ -1136,35 +1135,7 @@ static int cx8802_dvb_advise_acquire(struct cx8802_driver *drv)
		udelay(1000);
		break;

	case CX88_BOARD_HAUPPAUGE_HVR3000: /* ? */
		if(core->dvbdev->frontends.active_fe_id == 1) {
			/* DVB-S/S2 Enabled */

			/* Toggle reset on cx22702 leaving i2c active */
			cx_write(MO_GP0_IO, core->board.input[0].gpio0);
			udelay(1000);
			cx_clear(MO_GP0_IO, 0x00000080);
			udelay(50);
			cx_set(MO_GP0_IO, 0x00000080); /* cx22702 out of reset */
			cx_set(MO_GP0_IO, 0x00000004); /* tri-state the cx22702 pins */
			udelay(1000);

			cx_write(MO_SRST_IO, 1); /* Take the cx24116/cx24123 out of reset */
			core->dvbdev->ts_gen_cntrl = 0x02; /* Parallel IO */
		} else
		if (core->dvbdev->frontends.active_fe_id == 2) {
			/* DVB-T Enabled */

			/* Put the cx24116/cx24123 into reset */
			cx_write(MO_SRST_IO, 0);

			/* cx22702 out of reset and enable it */
			cx_set(MO_GP0_IO,   0x00000080);
			cx_clear(MO_GP0_IO, 0x00000004);
			core->dvbdev->ts_gen_cntrl = 0x0c; /* Serial IO */
			udelay(1000);
		}
		break;
	case CX88_BOARD_HAUPPAUGE_HVR3000:
	case CX88_BOARD_HAUPPAUGE_HVR4000:
		if(core->dvbdev->frontends.active_fe_id == 1) {
			/* DVB-S/S2 Enabled */
@@ -1267,7 +1238,6 @@ static int cx8802_dvb_probe(struct cx8802_driver *drv)
	if (err != 0)
		printk(KERN_ERR "%s/2: dvb_register failed (err = %d)\n",
		       core->name, err);

fail_core:
	return err;
}
+0 −1
Original line number Diff line number Diff line
@@ -495,7 +495,6 @@ void cx88_ir_irq(struct cx88_core *core)
	case CX88_BOARD_PINNACLE_PCTV_HD_800i:
		ircode = ir_decode_biphase(ir->samples, ir->scount, 5, 7);
		ir_dprintk("biphase decoded: %x\n", ircode);
//TODO Darron has other code here
		if ((ircode & 0xfffff000) != 0x3000)
			break;
		ir_input_keydown(ir->input, &ir->ir, ircode & 0x3f, ircode);
+4 −3
Original line number Diff line number Diff line
@@ -537,7 +537,8 @@ static int configure_tda827x_fe(struct saa7134_dev *dev,
{
	struct videobuf_dvb_frontend *fe0;

	fe0 = videobuf_dvb_get_frontend(&dev->frontends, 0);
	/* Get the first frontend */
	fe0 = videobuf_dvb_get_frontend(&dev->frontends, 1);

	fe0->dvb.frontend = dvb_attach(tda10046_attach, cdec_conf, &dev->i2c_adap);
	if (fe0->dvb.frontend) {
@@ -951,7 +952,7 @@ static int dvb_init(struct saa7134_dev *dev)
	struct videobuf_dvb_frontend *fe0;

	/* Get the first frontend */
	fe0 = videobuf_dvb_get_frontend(&dev->frontends, 0);
	fe0 = videobuf_dvb_get_frontend(&dev->frontends, 1);
	if (!fe0)
		return -EINVAL;

@@ -1070,7 +1071,7 @@ static int dvb_init(struct saa7134_dev *dev)
					 &tda827x_cfg_0) < 0)
			goto dettach_frontend;
		break;
	case SAA7134_BOARD_FLYDVB_TRIO: // XXXXXX multifrontend
	case SAA7134_BOARD_FLYDVB_TRIO:
		if (!use_frontend) {	/* terrestrial */
			if (configure_tda827x_fe(dev, &lifeview_trio_config,
						 &tda827x_cfg_0) < 0)
Loading