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

Commit a3a58467 authored by Frank Zago's avatar Frank Zago Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (9090): gspca: Restart the state machine when no frame buffer in finepix.

parent b1043e56
Loading
Loading
Loading
Loading
+11 −10
Original line number Diff line number Diff line
@@ -135,10 +135,8 @@ static void urb_callback(struct urb *urb)
		struct gspca_frame *frame;

		frame = gspca_get_i_frame(&dev->gspca_dev);
		if (frame == NULL) {
		if (frame == NULL)
			gspca_dev->last_packet_type = DISCARD_PACKET;
			break;
		}
		if (urb->actual_length < FPIX_MAX_TRANSFER ||
			(data[urb->actual_length-2] == 0xff &&
				data[urb->actual_length-1] == 0xd9)) {
@@ -149,6 +147,7 @@ static void urb_callback(struct urb *urb)
			 * but there's nothing we can do. We also end
			 * here if the the jpeg ends right at the end
			 * of the frame. */
			if (frame)
				gspca_frame_add(gspca_dev, LAST_PACKET,
						frame,
						data, urb->actual_length);
@@ -157,8 +156,10 @@ static void urb_callback(struct urb *urb)
		} else {

			/* got a partial image */
			if (frame)
				gspca_frame_add(gspca_dev,
				    gspca_dev->last_packet_type == LAST_PACKET
						gspca_dev->last_packet_type
								== LAST_PACKET
						? FIRST_PACKET : INTER_PACKET,
						frame,
					data, urb->actual_length);