--- /dev/null
+From af7d08db1a47fef67f7096bb7183299adf4cfa6d Mon Sep 17 00:00:00 2001
+From: Grant Likely <grant.likely@secretlab.ca>
+Date: Sun, 7 Jan 2007 10:33:30 -0300
+Subject: [PATCH] V4L: Fix quickcam communicator driver for big endian architectures
+
+Host endianess does not affect the order that pixel rgb data comes
+in from the quickcam (the values are bytes, not words or longs). The
+driver is erroniously swapping the order of rgb values for big endian
+machines. This patch is needed get the Quickcam communicator working
+on big endian machines (tested on powerpc)
+
+(cherry picked from commit c6d704c8c4453f05717ba88792f70f8babf95268)
+
+Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/usbvideo/quickcam_messenger.h | 14 --------------
+ 1 file changed, 14 deletions(-)
+
+--- linux-2.6.19.4.orig/drivers/media/video/usbvideo/quickcam_messenger.h
++++ linux-2.6.19.4/drivers/media/video/usbvideo/quickcam_messenger.h
+@@ -35,27 +35,13 @@ struct rgb {
+ };
+
+ struct bayL0 {
+-#ifdef __BIG_ENDIAN
+- u8 r;
+- u8 g;
+-#elif __LITTLE_ENDIAN
+ u8 g;
+ u8 r;
+-#else
+-#error not byte order defined
+-#endif
+ };
+
+ struct bayL1 {
+-#ifdef __BIG_ENDIAN
+- u8 g;
+- u8 b;
+-#elif __LITTLE_ENDIAN
+ u8 b;
+ u8 g;
+-#else
+-#error not byte order defined
+-#endif
+ };
+
+ struct cam_size {
--- /dev/null
+From 9a211062bff9e9dee4c0c10545e524fb7449605f Mon Sep 17 00:00:00 2001
+From: Oleg Nesterov <oleg@tv-sign.ru>
+Date: Tue, 23 Jan 2007 20:04:13 -0300
+Subject: [PATCH] V4L: buf_qbuf: fix videobuf_queue->stream corruption and lockup
+
+We are doing ->buf_prepare(buf) before adding buf to q->stream list. This
+means that videobuf_qbuf() should not try to re-add a STATE_PREPARED buffer.
+
+(cherry picked from commit 419dd8378dfa32985672ab7927b4bc827f33b332)
+
+Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/video-buf.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- linux-2.6.19.4.orig/drivers/media/video/video-buf.c
++++ linux-2.6.19.4/drivers/media/video/video-buf.c
+@@ -700,6 +700,7 @@ videobuf_qbuf(struct videobuf_queue *q,
+ goto done;
+ }
+ if (buf->state == STATE_QUEUED ||
++ buf->state == STATE_PREPARED ||
+ buf->state == STATE_ACTIVE) {
+ dprintk(1,"qbuf: buffer is already queued or active.\n");
+ goto done;
--- /dev/null
+From 93b966dfcbb67f5fc80f72c8962942bc7cd2a433 Mon Sep 17 00:00:00 2001
+From: Robert Hancock <hancockr@shaw.ca>
+Date: Sun, 7 Jan 2007 08:12:19 -0300
+Subject: [PATCH] V4L: cx88: Fix lockup on suspend
+
+Suspending with the cx88xx module loaded causes the system to lock up
+because the cx88_audio_thread kthread was missing a try_to_freeze()
+call, which caused it to go into a tight loop and result in softlockup
+when suspending. Fix that.
+
+(cherry picked from commit a96afb3e9428f2e7463344f12dbc85faf08e2e09)
+
+Signed-off-by: Robert Hancock <hancockr@shaw.ca>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/cx88/cx88-tvaudio.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- linux-2.6.19.4.orig/drivers/media/video/cx88/cx88-tvaudio.c
++++ linux-2.6.19.4/drivers/media/video/cx88/cx88-tvaudio.c
+@@ -38,6 +38,7 @@
+ #include <linux/module.h>
+ #include <linux/moduleparam.h>
+ #include <linux/errno.h>
++#include <linux/freezer.h>
+ #include <linux/kernel.h>
+ #include <linux/slab.h>
+ #include <linux/mm.h>
+@@ -974,6 +975,7 @@ int cx88_audio_thread(void *data)
+ msleep_interruptible(1000);
+ if (kthread_should_stop())
+ break;
++ try_to_freeze();
+
+ /* just monitor the audio status for now ... */
+ memset(&t, 0, sizeof(t));
--- /dev/null
+From fcd5a0e170936416c537398f8444b8f94b708df9 Mon Sep 17 00:00:00 2001
+From: Martin Samuelsson <sam@home.se>
+Date: Sun, 7 Jan 2007 20:50:27 -0300
+Subject: [PATCH] V4L: fix ks0127 status flags
+
+Or status flags together in DECODER_GET_STATUS instead of and-zapping them.
+
+(cherry picked from commit 55d5440d4587454628a850ce26703639885af678)
+
+Signed-off-by: Martin Samuelsson <sam@home.se>
+Signed-off-by: Andrew Morton <akpm@osdl.org>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/ks0127.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- linux-2.6.19.4.orig/drivers/media/video/ks0127.c
++++ linux-2.6.19.4/drivers/media/video/ks0127.c
+@@ -712,13 +712,13 @@ static int ks0127_command(struct i2c_cli
+ *iarg = 0;
+ status = ks0127_read(ks, KS_STAT);
+ if (!(status & 0x20)) /* NOVID not set */
+- *iarg = (*iarg & DECODER_STATUS_GOOD);
++ *iarg = (*iarg | DECODER_STATUS_GOOD);
+ if ((status & 0x01)) /* CLOCK set */
+- *iarg = (*iarg & DECODER_STATUS_COLOR);
++ *iarg = (*iarg | DECODER_STATUS_COLOR);
+ if ((status & 0x08)) /* PALDET set */
+- *iarg = (*iarg & DECODER_STATUS_PAL);
++ *iarg = (*iarg | DECODER_STATUS_PAL);
+ else
+- *iarg = (*iarg & DECODER_STATUS_NTSC);
++ *iarg = (*iarg | DECODER_STATUS_NTSC);
+ break;
+
+ //Catch any unknown command
--- /dev/null
+From 397da4781ffd4c4fbc2bc48c4cbf97705287dcda Mon Sep 17 00:00:00 2001
+From: Michael Krufky <mkrufky@linuxtv.org>
+Date: Fri, 12 Jan 2007 17:38:05 -0300
+Subject: [PATCH] V4L: tveeprom: autodetect LG TAPC G701D as tuner type 37
+
+Autodetect LG TAPC G701D as tuner type 37, fixing
+mis-detected tuners in some Hauppauge tv tuner cards.
+
+Thanks to Adonis Papas, for pointing this out.
+
+(cherry picked from commit 1323fbda1343f50f198bc8bd6d1d59c8b7fc45bf)
+
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/tveeprom.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- linux-2.6.19.4.orig/drivers/media/video/tveeprom.c
++++ linux-2.6.19.4/drivers/media/video/tveeprom.c
+@@ -184,7 +184,7 @@ hauppauge_tuner[] =
+ { TUNER_ABSENT, "Thompson DTT757"},
+ /* 80-89 */
+ { TUNER_ABSENT, "Philips FQ1216LME MK3"},
+- { TUNER_ABSENT, "LG TAPC G701D"},
++ { TUNER_LG_PAL_NEW_TAPC, "LG TAPC G701D"},
+ { TUNER_LG_NTSC_NEW_TAPC, "LG TAPC H791F"},
+ { TUNER_LG_PAL_NEW_TAPC, "TCL 2002MB 3"},
+ { TUNER_LG_PAL_NEW_TAPC, "TCL 2002MI 3"},
--- /dev/null
+V4L-cx88-Fix-lockup-on-suspend.patch
+V4L-Fix-quickcam-communicator-driver-for-big-endian-architectures.patch
+V4L-fix-ks0127-status-flags.patch
+V4L-tveeprom-autodetect-LG-TAPC-G701D-as-tuner-type-37.patch
+V4L-buf_qbuf-fix-videobuf_queue-stream-corruption-and-lockup.patch