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

Commit 67dd8f35 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull media fixes from Mauro Carvalho Chehab:
 "A series of driver fixes:
   - fix DVB-S tuning with tda1071
   - fix tuner probe on af9035 when the device has a bad eeprom
   - some fixes for the new si2168/2157 drivers
   - one Kconfig build fix (for omap4iss)
   - fixes at vpif error path
   - don't lock saa7134 ioctl at driver's base core level, as it now
     uses V4L2 and VB2 locking schema
   - fix audio at hdpvr driver
   - fix the aspect ratio at the digital timings table
   - one new USB ID (at gspca_pac7302): Genius i-Look 317 webcam"

* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
  [media] gspca_pac7302: Add new usb-id for Genius i-Look 317
  [media] tda10071: fix returned symbol rate calculation
  [media] tda10071: fix spec inversion reporting
  [media] tda10071: add missing DVB-S2/PSK-8 FEC AUTO
  [media] tda10071: force modulation to QPSK on DVB-S
  [media] hdpvr: fix two audio bugs
  [media] davinci: vpif: missing unlocks on error
  [media] af9035: override tuner id when bad value set into eeprom
  [media] saa7134: use unlocked_ioctl instead of ioctl
  [media] media: v4l2-core: v4l2-dv-timings.c: Cleaning up code wrong value used in aspect ratio
  [media] si2168: firmware download fix
  [media] si2157: add one missing parenthesis
  [media] si2168: add one missing parenthesis
  [media] staging: tighten omap4iss dependencies
parents 6890ad4b 242841d3
Loading
Loading
Loading
Loading
+1 −15
Original line number Diff line number Diff line
@@ -60,7 +60,7 @@ static int si2168_cmd_execute(struct si2168 *s, struct si2168_cmd *cmd)
				jiffies_to_msecs(jiffies) -
				(jiffies_to_msecs(timeout) - TIMEOUT));

		if (!(cmd->args[0] >> 7) & 0x01) {
		if (!((cmd->args[0] >> 7) & 0x01)) {
			ret = -ETIMEDOUT;
			goto err_mutex_unlock;
		}
@@ -485,20 +485,6 @@ static int si2168_init(struct dvb_frontend *fe)
	if (ret)
		goto err;

	cmd.args[0] = 0x05;
	cmd.args[1] = 0x00;
	cmd.args[2] = 0xaa;
	cmd.args[3] = 0x4d;
	cmd.args[4] = 0x56;
	cmd.args[5] = 0x40;
	cmd.args[6] = 0x00;
	cmd.args[7] = 0x00;
	cmd.wlen = 8;
	cmd.rlen = 1;
	ret = si2168_cmd_execute(s, &cmd);
	if (ret)
		goto err;

	/* cold state - try to download firmware */
	dev_info(&s->client->dev, "%s: found a '%s' in cold state\n",
			KBUILD_MODNAME, si2168_ops.info.name);
+1 −1
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@
#include <linux/firmware.h>
#include <linux/i2c-mux.h>

#define SI2168_FIRMWARE "dvb-demod-si2168-01.fw"
#define SI2168_FIRMWARE "dvb-demod-si2168-02.fw"

/* state struct */
struct si2168 {
+8 −4
Original line number Diff line number Diff line
@@ -668,6 +668,7 @@ static int tda10071_set_frontend(struct dvb_frontend *fe)
	struct dtv_frontend_properties *c = &fe->dtv_property_cache;
	int ret, i;
	u8 mode, rolloff, pilot, inversion, div;
	fe_modulation_t modulation;

	dev_dbg(&priv->i2c->dev,
			"%s: delivery_system=%d modulation=%d frequency=%d symbol_rate=%d inversion=%d pilot=%d rolloff=%d\n",
@@ -702,10 +703,13 @@ static int tda10071_set_frontend(struct dvb_frontend *fe)

	switch (c->delivery_system) {
	case SYS_DVBS:
		modulation = QPSK;
		rolloff = 0;
		pilot = 2;
		break;
	case SYS_DVBS2:
		modulation = c->modulation;

		switch (c->rolloff) {
		case ROLLOFF_20:
			rolloff = 2;
@@ -750,7 +754,7 @@ static int tda10071_set_frontend(struct dvb_frontend *fe)

	for (i = 0, mode = 0xff; i < ARRAY_SIZE(TDA10071_MODCOD); i++) {
		if (c->delivery_system == TDA10071_MODCOD[i].delivery_system &&
			c->modulation == TDA10071_MODCOD[i].modulation &&
			modulation == TDA10071_MODCOD[i].modulation &&
			c->fec_inner == TDA10071_MODCOD[i].fec) {
			mode = TDA10071_MODCOD[i].val;
			dev_dbg(&priv->i2c->dev, "%s: mode found=%02x\n",
@@ -834,10 +838,10 @@ static int tda10071_get_frontend(struct dvb_frontend *fe)

	switch ((buf[1] >> 0) & 0x01) {
	case 0:
		c->inversion = INVERSION_OFF;
		c->inversion = INVERSION_ON;
		break;
	case 1:
		c->inversion = INVERSION_ON;
		c->inversion = INVERSION_OFF;
		break;
	}

@@ -856,7 +860,7 @@ static int tda10071_get_frontend(struct dvb_frontend *fe)
	if (ret)
		goto error;

	c->symbol_rate = (buf[0] << 16) | (buf[1] << 8) | (buf[2] << 0);
	c->symbol_rate = ((buf[0] << 16) | (buf[1] << 8) | (buf[2] << 0)) * 1000;

	return ret;
error:
+1 −0
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ static struct tda10071_modcod {
	{ SYS_DVBS2, QPSK,  FEC_8_9,  0x0a },
	{ SYS_DVBS2, QPSK,  FEC_9_10, 0x0b },
	/* 8PSK */
	{ SYS_DVBS2, PSK_8, FEC_AUTO, 0x00 },
	{ SYS_DVBS2, PSK_8, FEC_3_5,  0x0c },
	{ SYS_DVBS2, PSK_8, FEC_2_3,  0x0d },
	{ SYS_DVBS2, PSK_8, FEC_3_4,  0x0e },
+1 −1
Original line number Diff line number Diff line
@@ -179,7 +179,7 @@ static const struct v4l2_file_operations ts_fops =
	.read	  = vb2_fop_read,
	.poll	  = vb2_fop_poll,
	.mmap	  = vb2_fop_mmap,
	.ioctl	  = video_ioctl2,
	.unlocked_ioctl = video_ioctl2,
};

static const struct v4l2_ioctl_ops ts_ioctl_ops = {
Loading