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

Commit 44e3ff32 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'master' of ssh://master.kernel.org/pub/scm/linux/kernel/git/mchehab/v4l-dvb:
  V4L/DVB (6220a): fix build error for et61x251 driver
  V4L/DVB (6188): Avoid a NULL pointer dereference during mpeg_open()
  V4L/DVB (6173a): Documentation: Remove reference to dead "cpia_pp=" boot-time option
  V4L/DVB (6148): Fix a warning at saa7191_probe
  V4L/DVB (6147): Pwc: Fix a broken debug message
  V4L/DVB (6144): Fix mux setup for composite sound on AverTV 307
  V4L/DVB (6095): ivtv: fix VIDIOC_G_ENC_INDEX flag handling
parents 7a1fa065 e90ff923
Loading
Loading
Loading
Loading
+10 −13
Original line number Diff line number Diff line
@@ -468,9 +468,6 @@ and is between 256 and 4096 characters. It is defined in the file
			Format:
			<first_slot>,<last_slot>,<port>,<enum_bit>[,<debug>]

	cpia_pp=	[HW,PPT]
			Format: { parport<nr> | auto | none }

	crashkernel=nn[KMG]@ss[KMG]
			[KNL] Reserve a chunk of physical memory to
			hold a kernel to switch to with kexec on panic.
+3 −1
Original line number Diff line number Diff line
@@ -407,8 +407,10 @@ Description
		u32 length;		// Length of this frame
		u32 offset_low;		// Offset in the file of the
		u32 offset_high;	// start of this frame
		u32 mask1;		// Bits 0-1 are the type mask:
		u32 mask1;		// Bits 0-2 are the type mask:
					// 1=I, 2=P, 4=B
					// 0=End of Program Index, other fields
					//   are invalid.
		u32 pts;		// The PTS of the frame
		u32 mask2;		// Bit 0 is bit 32 of the pts.
	};
+1 −1
Original line number Diff line number Diff line
@@ -580,7 +580,7 @@ struct cx8802_dev * cx8802_get_device(struct inode *inode)

	list_for_each(list,&cx8802_devlist) {
		h = list_entry(list, struct cx8802_dev, devlist);
		if (h->mpeg_dev->minor == minor)
		if (h->mpeg_dev && h->mpeg_dev->minor == minor)
			return h;
	}

+4 −2
Original line number Diff line number Diff line
@@ -190,7 +190,9 @@ static void ivtv_update_pgm_info(struct ivtv *itv)
		int idx = (itv->pgm_info_write_idx + i) % itv->pgm_info_num;
		struct v4l2_enc_idx_entry *e = itv->pgm_info + idx;
		u32 addr = itv->pgm_info_offset + 4 + idx * 24;
		const int mapping[] = { V4L2_ENC_IDX_FRAME_P, V4L2_ENC_IDX_FRAME_I, V4L2_ENC_IDX_FRAME_B, 0 };
		const int mapping[8] = { -1, V4L2_ENC_IDX_FRAME_I, V4L2_ENC_IDX_FRAME_P, -1,
			V4L2_ENC_IDX_FRAME_B, -1, -1, -1 };
					// 1=I, 2=P, 4=B

		e->offset = read_enc(addr + 4) + ((u64)read_enc(addr + 8) << 32);
		if (e->offset > itv->mpg_data_received) {
@@ -199,7 +201,7 @@ static void ivtv_update_pgm_info(struct ivtv *itv)
		e->offset += itv->vbi_data_inserted;
		e->length = read_enc(addr);
		e->pts = read_enc(addr + 16) + ((u64)(read_enc(addr + 20) & 1) << 32);
		e->flags = mapping[read_enc(addr + 12) & 3];
		e->flags = mapping[read_enc(addr + 12) & 7];
		i++;
	}
	itv->pgm_info_write_idx = (itv->pgm_info_write_idx + i) % itv->pgm_info_num;
+12 −5
Original line number Diff line number Diff line
@@ -1099,14 +1099,21 @@ int ivtv_v4l2_ioctls(struct ivtv *itv, struct file *filp, unsigned int cmd, void

	case VIDIOC_G_ENC_INDEX: {
		struct v4l2_enc_idx *idx = arg;
		struct v4l2_enc_idx_entry *e = idx->entry;
		int entries;
		int i;

		idx->entries = (itv->pgm_info_write_idx + IVTV_MAX_PGM_INDEX - itv->pgm_info_read_idx) %
		entries = (itv->pgm_info_write_idx + IVTV_MAX_PGM_INDEX - itv->pgm_info_read_idx) %
					IVTV_MAX_PGM_INDEX;
		if (idx->entries > V4L2_ENC_IDX_ENTRIES)
			idx->entries = V4L2_ENC_IDX_ENTRIES;
		for (i = 0; i < idx->entries; i++) {
			idx->entry[i] = itv->pgm_info[(itv->pgm_info_read_idx + i) % IVTV_MAX_PGM_INDEX];
		if (entries > V4L2_ENC_IDX_ENTRIES)
			entries = V4L2_ENC_IDX_ENTRIES;
		idx->entries = 0;
		for (i = 0; i < entries; i++) {
			*e = itv->pgm_info[(itv->pgm_info_read_idx + i) % IVTV_MAX_PGM_INDEX];
			if ((e->flags & V4L2_ENC_IDX_FRAME_MASK) <= V4L2_ENC_IDX_FRAME_B) {
				idx->entries++;
				e++;
			}
		}
		itv->pgm_info_read_idx = (itv->pgm_info_read_idx + idx->entries) % IVTV_MAX_PGM_INDEX;
		break;
Loading