--- /dev/null
+From 5450633199aea4868252193f7421369381150851 Mon Sep 17 00:00:00 2001
+From: Jin-Bong lee <jinbong.lee@samsung.com>
+Date: Tue, 27 Feb 2007 14:52:17 -0500
+Subject: [PATCH] DVB: cxusb: fix firmware patch for big endian systems
+
+From: Jin-Bong lee <jinbong.lee@samsung.com>
+
+Without this patch, the device will not be detected after firmware download
+on big endian systems.
+
+Signed-off-by: Jin-Bong lee <jinbong.lee@samsung.com>
+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/dvb/dvb-usb/cxusb.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- linux-2.6.19.6.orig/drivers/media/dvb/dvb-usb/cxusb.c
++++ linux-2.6.19.6/drivers/media/dvb/dvb-usb/cxusb.c
+@@ -471,8 +471,8 @@ static int bluebird_patch_dvico_firmware
+ if (fw->data[BLUEBIRD_01_ID_OFFSET] == (USB_VID_DVICO & 0xff) &&
+ fw->data[BLUEBIRD_01_ID_OFFSET + 1] == USB_VID_DVICO >> 8) {
+
+- fw->data[BLUEBIRD_01_ID_OFFSET + 2] = udev->descriptor.idProduct + 1;
+- fw->data[BLUEBIRD_01_ID_OFFSET + 3] = udev->descriptor.idProduct >> 8;
++ fw->data[BLUEBIRD_01_ID_OFFSET + 2] = le16_to_cpu(udev->descriptor.idProduct) + 1;
++ fw->data[BLUEBIRD_01_ID_OFFSET + 3] = le16_to_cpu(udev->descriptor.idProduct) >> 8;
+
+ return usb_cypress_load_firmware(udev,fw,CYPRESS_FX2);
+ }
--- /dev/null
+From c322dff341a5bc83e4a26b7a98df72d33a37bdf3 Mon Sep 17 00:00:00 2001
+From: Michael Krufky <mkrufky@linuxtv.org>
+Date: Wed, 21 Feb 2007 21:47:15 -0300
+Subject: [PATCH] DVB: digitv: open nxt6000 i2c_gate for TDED4 tuner handling
+
+From: Michael Krufky <mkrufky@linuxtv.org>
+
+dvb-pll normally opens the i2c gate before attempting to communicate with
+the pll, but the code for this device is not using dvb-pll. This should
+be cleaned up in the future, but for now, just open the i2c gate at the
+appropriate place in order to fix this driver bug.
+
+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/dvb/dvb-usb/digitv.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- linux-2.6.19.6.orig/drivers/media/dvb/dvb-usb/digitv.c
++++ linux-2.6.19.6/drivers/media/dvb/dvb-usb/digitv.c
+@@ -119,6 +119,8 @@ static int digitv_nxt6000_tuner_set_para
+ struct dvb_usb_adapter *adap = fe->dvb->priv;
+ u8 b[5];
+ dvb_usb_tuner_calc_regs(fe,fep,b, 5);
++ if (fe->ops.i2c_gate_ctrl)
++ fe->ops.i2c_gate_ctrl(fe, 1);
+ return digitv_ctrl_msg(adap->dev, USB_WRITE_TUNER, 0, &b[1], 4, NULL, 0);
+ }
+
--- /dev/null
+From abe45bbc797fffe5ea892209b09da83d3e7a21f2 Mon Sep 17 00:00:00 2001
+From: Marcel Siegert <mws@linuxtv.org>
+Date: Tue, 27 Feb 2007 13:09:49 -0500
+Subject: [PATCH] dvbdev: fix illegal re-usage of fileoperations struct
+
+From: Marcel Siegert <mws@linuxtv.org>
+
+Arjan van de Ven <arjan@infradead.org> reported an illegal re-usage of
+the fileoperations struct if more than one dvb device (e.g. frontend) is
+present.
+
+This patch fixes this issue.
+
+It allocates a new fileoperations struct each time a device is
+registered and copies the default template fileops.
+
+Signed-off-by: Marcel Siegert <mws@linuxtv.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/dvb/dvb-core/dvbdev.c | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+--- linux-2.6.19.6.orig/drivers/media/dvb/dvb-core/dvbdev.c
++++ linux-2.6.19.6/drivers/media/dvb/dvb-core/dvbdev.c
+@@ -200,6 +200,8 @@ int dvb_register_device(struct dvb_adapt
+ const struct dvb_device *template, void *priv, int type)
+ {
+ struct dvb_device *dvbdev;
++ struct file_operations *dvbdevfops;
++
+ int id;
+
+ if (mutex_lock_interruptible(&dvbdev_register_lock))
+@@ -219,12 +221,22 @@ int dvb_register_device(struct dvb_adapt
+ return -ENOMEM;
+ }
+
++ dvbdevfops = kzalloc(sizeof(struct file_operations), GFP_KERNEL);
++
++ if (!dvbdevfops) {
++ kfree (dvbdev);
++ mutex_unlock(&dvbdev_register_lock);
++ return -ENOMEM;
++ }
++
+ memcpy(dvbdev, template, sizeof(struct dvb_device));
+ dvbdev->type = type;
+ dvbdev->id = id;
+ dvbdev->adapter = adap;
+ dvbdev->priv = priv;
++ dvbdev->fops = dvbdevfops;
+
++ memcpy(dvbdev->fops, template->fops, sizeof(struct file_operations));
+ dvbdev->fops->owner = adap->module;
+
+ list_add_tail (&dvbdev->list_head, &adap->device_list);
+@@ -252,6 +264,7 @@ void dvb_unregister_device(struct dvb_de
+ dvbdev->type, dvbdev->id)));
+
+ list_del (&dvbdev->list_head);
++ kfree (dvbdev->fops);
+ kfree (dvbdev);
+ }
+ EXPORT_SYMBOL(dvb_unregister_device);
--- /dev/null
+dvbdev-fix-illegal-re-usage-of-fileoperations-struct.patch
+DVB-digitv-open-nxt6000-i2c_gate-for-TDED4-tuner-handling.patch
+DVB-cxusb-fix-firmware-patch-for-big-endian-systems.patch