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

Commit 846f29a6 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull media fixes from Mauro Carvalho Chehab:
 "A dvb core deadlock fix, a couple videobuf2 fixes an a series of media
  driver fixes"

* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (30 commits)
  [media] videobuf2-dma-sg: fix possible memory leak
  [media] vb2: regression fix: always set length field.
  [media] mt9p031: Include linux/of.h header
  [media] rtl2830: add parent for I2C adapter
  [media] media: marvell-ccic: use devm to release clk
  [media] ths7303: Declare as static a private function
  [media] em28xx-video: Swap release order to avoid lock nesting
  [media] usbtv: Add support for PAL video source
  [media] media_tree: Fix spelling errors
  [media] videobuf2: Add support for file access mode flags for DMABUF exporting
  [media] radio-shark2: Mark shark_resume_leds() inline to kill compiler warning
  [media] radio-shark: Mark shark_resume_leds() inline to kill compiler warning
  [media] af9035: unlock on error in af9035_i2c_master_xfer()
  [media] af9033: fix broken I2C
  [media] v4l: omap3isp: Don't check for missing get_fmt op on remote subdev
  [media] af9035: fix broken I2C and USB I/O
  [media] wm8775: fix broken audio routing
  [media] marvell-ccic: drop resource free in driver remove
  [media] tef6862/radio-tea5764: actually assign clamp result
  [media] cx231xx: use after free on error path in probe
  ...
parents 86b581f6 64c832a4
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -73,7 +73,8 @@ range from zero to the maximal number of valid planes for the currently active
format. For the single-planar API, applications must set <structfield> plane
</structfield> to zero.  Additional flags may be posted in the <structfield>
flags </structfield> field.  Refer to a manual for open() for details.
Currently only O_CLOEXEC is supported.  All other fields must be set to zero.
Currently only O_CLOEXEC, O_RDONLY, O_WRONLY, and O_RDWR are supported.  All
other fields must be set to zero.
In the case of multi-planar API, every plane is exported separately using
multiple <constant> VIDIOC_EXPBUF </constant> calls. </para>

@@ -170,8 +171,9 @@ multi-planar API. Otherwise this value must be set to zero. </entry>
	    <entry>__u32</entry>
	    <entry><structfield>flags</structfield></entry>
	    <entry>Flags for the newly created file, currently only <constant>
O_CLOEXEC </constant> is supported, refer to the manual of open() for more
details.</entry>
O_CLOEXEC </constant>, <constant>O_RDONLY</constant>, <constant>O_WRONLY
</constant>, and <constant>O_RDWR</constant> are supported, refer to the manual
of open() for more details.</entry>
	  </row>
	  <row>
	    <entry>__s32</entry>
+2 −2
Original line number Diff line number Diff line
@@ -955,7 +955,7 @@ struct sms_rx_stats {
	u32 modem_state;		/* from SMSHOSTLIB_DVB_MODEM_STATE_ET */
	s32 SNR;		/* dB */
	u32 ber;		/* Post Viterbi ber [1E-5] */
	u32 ber_error_count;	/* Number of erronous SYNC bits. */
	u32 ber_error_count;	/* Number of erroneous SYNC bits. */
	u32 ber_bit_count;	/* Total number of SYNC bits. */
	u32 ts_per;		/* Transport stream PER,
	0xFFFFFFFF indicate N/A */
@@ -981,7 +981,7 @@ struct sms_rx_stats_ex {
	u32 modem_state;		/* from SMSHOSTLIB_DVB_MODEM_STATE_ET */
	s32 SNR;		/* dB */
	u32 ber;		/* Post Viterbi ber [1E-5] */
	u32 ber_error_count;	/* Number of erronous SYNC bits. */
	u32 ber_error_count;	/* Number of erroneous SYNC bits. */
	u32 ber_bit_count;	/* Total number of SYNC bits. */
	u32 ts_per;		/* Transport stream PER,
	0xFFFFFFFF indicate N/A */
+1 −1
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ struct RECEPTION_STATISTICS_PER_SLICES_S {
	u32 is_demod_locked;	/* 0 - not locked, 1 - locked */

	u32 ber_bit_count;	/* Total number of SYNC bits. */
	u32 ber_error_count;	/* Number of erronous SYNC bits. */
	u32 ber_error_count;	/* Number of erroneous SYNC bits. */

	s32 MRC_SNR;		/* dB */
	s32 mrc_in_band_pwr;	/* In band power in dBM */
+7 −2
Original line number Diff line number Diff line
@@ -435,7 +435,7 @@ static void dvb_dmx_swfilter_packet(struct dvb_demux *demux, const u8 *buf)
		dprintk_tscheck("TEI detected. "
				"PID=0x%x data1=0x%x\n",
				pid, buf[1]);
		/* data in this packet cant be trusted - drop it unless
		/* data in this packet can't be trusted - drop it unless
		 * module option dvb_demux_feed_err_pkts is set */
		if (!dvb_demux_feed_err_pkts)
			return;
@@ -1032,8 +1032,13 @@ static int dmx_section_feed_release_filter(struct dmx_section_feed *feed,
		return -EINVAL;
	}

	if (feed->is_filtering)
	if (feed->is_filtering) {
		/* release dvbdmx->mutex as far as it is
		   acquired by stop_filtering() itself */
		mutex_unlock(&dvbdmx->mutex);
		feed->stop_filtering(feed);
		mutex_lock(&dvbdmx->mutex);
	}

	spin_lock_irq(&dvbdmx->lock);
	f = dvbdmxfeed->filter;
+6 −6
Original line number Diff line number Diff line
@@ -170,18 +170,18 @@ static int af9033_rd_reg_mask(struct af9033_state *state, u32 reg, u8 *val,
static int af9033_wr_reg_val_tab(struct af9033_state *state,
		const struct reg_val *tab, int tab_len)
{
#define MAX_TAB_LEN 212
	int ret, i, j;
	u8 buf[MAX_XFER_SIZE];
	u8 buf[1 + MAX_TAB_LEN];

	dev_dbg(&state->i2c->dev, "%s: tab_len=%d\n", __func__, tab_len);

	if (tab_len > sizeof(buf)) {
		dev_warn(&state->i2c->dev,
			 "%s: i2c wr len=%d is too big!\n",
		dev_warn(&state->i2c->dev, "%s: tab len %d is too big\n",
				KBUILD_MODNAME, tab_len);
		return -EINVAL;
	}

	dev_dbg(&state->i2c->dev, "%s: tab_len=%d\n", __func__, tab_len);

	for (i = 0, j = 0; i < tab_len; i++) {
		buf[j] = tab[i].val;

Loading