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

Commit a205729e authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb

* master.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb: (26 commits)
  V4L/DVB (4380): Bttv: Revert VBI_OFFSET to previous value, it works better
  V4L/DVB (4379): Videodev: Check return value of class_device_register() correctly
  V4L/DVB (4373): Correctly handle sysfs error leg file removal in pvrusb2
  V4L/DVB (4368): Bttv: use class_device_create_file and handle errors
  V4L/DVB (4367): Videodev: Handle class_device related errors
  V4L/DVB (4365): OVERLAY flag were enabled by mistake
  V4L/DVB (4344): Fix broken dependencies on media Kconfig 
  V4L/DVB (4343): Fix for compilation without V4L1 or V4L1_COMPAT
  V4L/DVB (4342): Fix ext_controls align on 64 bit architectures
  V4L/DVB (4341): VIDIOCSMICROCODE were missing on compat_ioctl32
  V4L/DVB (4322): Fix dvb-pll autoprobing
  V4L/DVB (4311): Fix possible dvb-pll oops
  V4L/DVB (4337): Refine dead code elimination in pvrusb2
  V4L/DVB (4323): [budget/budget-av/budget-ci/budget-patch drivers] fixed DMA start/stop code
  V4L/DVB (4316): Check __must_check warnings
  V4L/DVB (4314): Set the Auxiliary Byte when tuning LG H06xF in analog mode
  V4L/DVB (4313): Bugfix for keycode calculation on NPG remotes
  V4L/DVB (4310): Saa7134: rename dmasound_{init, exit}
  V4L/DVB (4306): Support non interlaced capture by default for saa713x
  V4L/DVB (4298): Check all __must_check warnings in bttv.
  ...
parents 49b1e3ea ddecbe11
Loading
Loading
Loading
Loading
+9 −6
Original line number Diff line number Diff line
@@ -526,7 +526,9 @@ static int dvb_frontend_thread(void *data)
	fepriv->delay = 3*HZ;
	fepriv->status = 0;
	fepriv->wakeup = 0;
	fepriv->reinitialise = 1;
	fepriv->reinitialise = 0;

	dvb_frontend_init(fe);

	while (1) {
		up(&fepriv->sem);	    /* is locked when we enter the thread... */
@@ -1013,17 +1015,18 @@ static int dvb_frontend_open(struct inode *inode, struct file *file)
		return ret;

	if ((file->f_flags & O_ACCMODE) != O_RDONLY) {

		/* normal tune mode when opened R/W */
		fepriv->tune_mode_flags &= ~FE_TUNE_MODE_ONESHOT;
		fepriv->tone = -1;
		fepriv->voltage = -1;

		ret = dvb_frontend_start (fe);
		if (ret)
			dvb_generic_release (inode, file);

		/*  empty event queue */
		fepriv->events.eventr = fepriv->events.eventw = 0;

		/* normal tune mode when opened R/W */
		fepriv->tune_mode_flags &= ~FE_TUNE_MODE_ONESHOT;
		fepriv->tone = -1;
		fepriv->voltage = -1;
	}

	return ret;
+19 −5
Original line number Diff line number Diff line
@@ -194,11 +194,11 @@ struct dvb_pll_desc dvb_pll_tda665x = {
		{  253834000, 36249333, 166667, 0xca, 0x62 /* 011 0 0 0  10 */ },
		{  383834000, 36249333, 166667, 0xca, 0xa2 /* 101 0 0 0  10 */ },
		{  443834000, 36249333, 166667, 0xca, 0xc2 /* 110 0 0 0  10 */ },
		{  444000000, 36249333, 166667, 0xca, 0xc3 /* 110 0 0 0  11 */ },
		{  583834000, 36249333, 166667, 0xca, 0x63 /* 011 0 0 0  11 */ },
		{  793834000, 36249333, 166667, 0xca, 0xa3 /* 101 0 0 0  11 */ },
		{  444834000, 36249333, 166667, 0xca, 0xc3 /* 110 0 0 0  11 */ },
		{  861000000, 36249333, 166667, 0xca, 0xe3 /* 111 0 0 0  11 */ },
		{  444000000, 36249333, 166667, 0xca, 0xc4 /* 110 0 0 1  00 */ },
		{  583834000, 36249333, 166667, 0xca, 0x64 /* 011 0 0 1  00 */ },
		{  793834000, 36249333, 166667, 0xca, 0xa4 /* 101 0 0 1  00 */ },
		{  444834000, 36249333, 166667, 0xca, 0xc4 /* 110 0 0 1  00 */ },
		{  861000000, 36249333, 166667, 0xca, 0xe4 /* 111 0 0 1  00 */ },
	}
};
EXPORT_SYMBOL(dvb_pll_tda665x);
@@ -613,7 +613,21 @@ static struct dvb_tuner_ops dvb_pll_tuner_ops = {

int dvb_pll_attach(struct dvb_frontend *fe, int pll_addr, struct i2c_adapter *i2c, struct dvb_pll_desc *desc)
{
	u8 b1 [] = { 0 };
	struct i2c_msg msg = { .addr = pll_addr, .flags = I2C_M_RD, .buf = b1, .len = 1 };
	struct dvb_pll_priv *priv = NULL;
	int ret;

	if (i2c != NULL) {
		if (fe->ops.i2c_gate_ctrl)
			fe->ops.i2c_gate_ctrl(fe, 1);

		ret = i2c_transfer (i2c, &msg, 1);
		if (ret != 1)
			return -1;
		if (fe->ops.i2c_gate_ctrl)
			     fe->ops.i2c_gate_ctrl(fe, 0);
	}

	priv = kzalloc(sizeof(struct dvb_pll_priv), GFP_KERNEL);
	if (priv == NULL)
+2 −2
Original line number Diff line number Diff line
@@ -2203,8 +2203,8 @@ static int frontend_init(struct av7110 *av7110)
				av7110->fe->ops.tuner_ops.set_params = nexusca_stv0297_tuner_set_params;

				/* set TDA9819 into DVB mode */
				saa7146_setgpio(av7110->dev, 1, SAA7146_GPIO_OUTLO); // TDA9198 pin9(STD)
				saa7146_setgpio(av7110->dev, 3, SAA7146_GPIO_OUTLO); // TDA9198 pin30(VIF)
				saa7146_setgpio(av7110->dev, 1, SAA7146_GPIO_OUTLO); // TDA9819 pin9(STD)
				saa7146_setgpio(av7110->dev, 3, SAA7146_GPIO_OUTLO); // TDA9819 pin30(VIF)

				/* tuner on this needs a slower i2c bus speed */
				av7110->dev->i2c_bitrate = SAA7146_I2C_BUS_BIT_RATE_240;
+6 −6
Original line number Diff line number Diff line
@@ -272,8 +272,8 @@ static int av7110_dvb_c_switch(struct saa7146_fh *fh)
				if (ves1820_writereg(dev, 0x09, 0x0f, 0x60))
					dprintk(1, "setting band in demodulator failed.\n");
			} else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) {
				saa7146_setgpio(dev, 1, SAA7146_GPIO_OUTHI); // TDA9198 pin9(STD)
				saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI); // TDA9198 pin30(VIF)
				saa7146_setgpio(dev, 1, SAA7146_GPIO_OUTHI); // TDA9819 pin9(STD)
				saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTHI); // TDA9819 pin30(VIF)
			}
			if (i2c_writereg(av7110, 0x48, 0x02, 0xd0) != 1)
				dprintk(1, "saa7113 write failed @ card %d", av7110->dvb_adapter.num);
@@ -308,8 +308,8 @@ static int av7110_dvb_c_switch(struct saa7146_fh *fh)
			if (ves1820_writereg(dev, 0x09, 0x0f, 0x20))
				dprintk(1, "setting band in demodulator failed.\n");
		} else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) {
			saa7146_setgpio(dev, 1, SAA7146_GPIO_OUTLO); // TDA9198 pin9(STD)
			saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO); // TDA9198 pin30(VIF)
			saa7146_setgpio(dev, 1, SAA7146_GPIO_OUTLO); // TDA9819 pin9(STD)
			saa7146_setgpio(dev, 3, SAA7146_GPIO_OUTLO); // TDA9819 pin30(VIF)
		}
	}

@@ -750,8 +750,8 @@ int av7110_init_analog_module(struct av7110 *av7110)
			if (ves1820_writereg(av7110->dev, 0x09, 0x0f, 0x20))
				dprintk(1, "setting band in demodulator failed.\n");
		} else if (av7110->analog_tuner_flags & ANALOG_TUNER_STV0297) {
			saa7146_setgpio(av7110->dev, 1, SAA7146_GPIO_OUTLO); // TDA9198 pin9(STD)
			saa7146_setgpio(av7110->dev, 3, SAA7146_GPIO_OUTLO); // TDA9198 pin30(VIF)
			saa7146_setgpio(av7110->dev, 1, SAA7146_GPIO_OUTLO); // TDA9819 pin9(STD)
			saa7146_setgpio(av7110->dev, 3, SAA7146_GPIO_OUTLO); // TDA9819 pin30(VIF)
		}

		/* init the saa7113 */
+3 −0
Original line number Diff line number Diff line
@@ -1303,6 +1303,9 @@ static int budget_av_attach(struct saa7146_dev *dev, struct saa7146_pci_extensio
	budget_av->budget.dvb_adapter.priv = budget_av;
	frontend_init(budget_av);
	ciintf_init(budget_av);

	ttpci_budget_init_hooks(&budget_av->budget);

	return 0;
}

Loading