The patch number 9859 was added via Jean-Francois Moine <moin...@free.fr> to http://linuxtv.org/hg/v4l-dvb master development tree.
Kernel patches in this development tree may be modified to be backward compatible with older kernels. Compatibility modifications will be removed before inclusion into the mainstream Kernel If anyone has any objections, please let us know by sending a message to: v4l-dvb-maintai...@linuxtv.org ------ From: Jim Paris <j...@jtan.com> gspca - ov534: Fix frame size so we don't miss the last pixel. The frame size is too small, so we lose the last YUYV pixel. Fix the setup and remove the last_pixel hack. Priority: normal Signed-off-by: Jim Paris <j...@jtan.com> Signed-off-by: Jean-Francois Moine <moin...@free.fr> --- linux/drivers/media/video/gspca/ov534.c | 33 ++++++------------------ 1 file changed, 9 insertions(+), 24 deletions(-) diff -r b73cbd7b3fb1 -r 42576099d1d1 linux/drivers/media/video/gspca/ov534.c --- a/linux/drivers/media/video/gspca/ov534.c Thu Dec 04 08:28:27 2008 +0100 +++ b/linux/drivers/media/video/gspca/ov534.c Thu Dec 04 08:36:14 2008 +0100 @@ -197,9 +197,9 @@ static const __u8 ov534_reg_initdata[][2 { 0x1d, 0x40 }, { 0x1d, 0x02 }, { 0x1d, 0x00 }, - { 0x1d, 0x02 }, - { 0x1d, 0x57 }, - { 0x1d, 0xff }, + { 0x1d, 0x02 }, /* frame size 0x025800 * 4 = 614400 */ + { 0x1d, 0x58 }, /* frame size */ + { 0x1d, 0x00 }, /* frame size */ { 0x8d, 0x1c }, { 0x8e, 0x80 }, @@ -409,30 +409,15 @@ static void sd_pkt_scan(struct gspca_dev static void sd_pkt_scan(struct gspca_dev *gspca_dev, struct gspca_frame *frame, __u8 *data, int len) { - /* - * The current camera setup doesn't stream the last pixel, so we set it - * to a dummy value - */ - __u8 last[4] = { 0, 0, 0, 0 }; int framesize = frame->v4l2_buf.length; - PDEBUG(D_PACK, ""); - PDEBUG(D_PACK, "** packet len = %d, framesize = %d", len, framesize); - PDEBUG(D_PACK, "** frame->data_end - frame->data + len = %d", - frame->data_end - frame->data + len); - -#if 0 - /* Can this check mask some tranfer errors? */ - if (len < gspca_dev->cam.bulk_size) { -#else - if (frame->data_end - frame->data + len == framesize - 4) { -#endif - PDEBUG(D_PACK, " end of frame!"); - gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len); - frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame, last, 4); - gspca_frame_add(gspca_dev, FIRST_PACKET, frame, data, 0); + if (len == framesize) { + frame = gspca_frame_add(gspca_dev, FIRST_PACKET, frame, + data, len); + frame = gspca_frame_add(gspca_dev, LAST_PACKET, frame, data, 0); } else - gspca_frame_add(gspca_dev, INTER_PACKET, frame, data, len); + PDEBUG(D_PACK, "packet len = %d, framesize = %d", len, + framesize); } /* sub-driver description */ --- Patch is available at: http://linuxtv.org/hg/v4l-dvb/rev/42576099d1d1e39e66b609db20e996b66abd1832 _______________________________________________ linuxtv-commits mailing list linuxtv-commits@linuxtv.org http://www.linuxtv.org/cgi-bin/mailman/listinfo/linuxtv-commits