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

Commit feff0485 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab Committed by Linus Torvalds
Browse files

[PATCH] v4l: 864: improved isoc error detection



- Improved isoc error detection.

Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@brturbo.com.br>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 45632c4f
Loading
Loading
Loading
Loading
+11 −2
Original line number Original line Diff line number Diff line
@@ -573,8 +573,16 @@ static inline void em2820_isoc_video_copy(struct em2820 *dev,


	if ((*f)->fieldbytesused + len > dev->field_size)
	if ((*f)->fieldbytesused + len > dev->field_size)
		len =dev->field_size - (*f)->fieldbytesused;
		len =dev->field_size - (*f)->fieldbytesused;
	remain = len;

	if (buf[0] != 0x88 && buf[0] != 0x22) {
		em2820_isocdbg("frame is not complete\n");
		startread = buf;
		len+=4;
	} else
		startread = buf + 4;
		startread = buf + 4;

	remain = len;

	if ((*f)->top_field)
	if ((*f)->top_field)
		fieldstart = (*f)->bufmem;
		fieldstart = (*f)->bufmem;
	else
	else
@@ -653,6 +661,7 @@ void em2820_isocIrq(struct urb *urb, struct pt_regs *regs)
				em2820_isocdbg("data error: [%d] len=%d, status=%d", i,
				em2820_isocdbg("data error: [%d] len=%d, status=%d", i,
					urb->iso_frame_desc[i].actual_length,
					urb->iso_frame_desc[i].actual_length,
					urb->iso_frame_desc[i].status);
					urb->iso_frame_desc[i].status);
				if (urb->iso_frame_desc[i].status != -EPROTO)
					continue;
					continue;
			}
			}
			if (urb->iso_frame_desc[i].actual_length <= 0) {
			if (urb->iso_frame_desc[i].actual_length <= 0) {