]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
more patches added
authorGreg Kroah-Hartman <gregkh@suse.de>
Fri, 30 Mar 2007 20:28:29 +0000 (13:28 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 30 Mar 2007 20:28:29 +0000 (13:28 -0700)
queue-2.6.20/dvb-core-fix-several-locking-related-problems.patch [new file with mode: 0644]
queue-2.6.20/dvb-fix-nxt200x-rf-input-switching.patch [new file with mode: 0644]
queue-2.6.20/dvb-isl6421-don-t-reference-freed-memory.patch [new file with mode: 0644]
queue-2.6.20/i2o-block-io-errors-on-i2o-disk.patch [new file with mode: 0644]
queue-2.6.20/ide-revert-ide-fix-drive-side-80c-cable-check-take-2-for-now.patch [new file with mode: 0644]
queue-2.6.20/jmicron-make-ide-jmicron-driver-play-nice-with-libata-ones.patch [new file with mode: 0644]
queue-2.6.20/series
queue-2.6.20/v4l-fix-secam-handling-on-saa7115.patch [new file with mode: 0644]
queue-2.6.20/v4l-msp_attach-must-return-0-if-no-msp3400-was-found.patch [new file with mode: 0644]
queue-2.6.20/v4l-radio-fix-error-in-kbuild-file.patch [new file with mode: 0644]
queue-2.6.20/v4l-saa7146-fix-allocation-of-clipping-memory.patch [new file with mode: 0644]

diff --git a/queue-2.6.20/dvb-core-fix-several-locking-related-problems.patch b/queue-2.6.20/dvb-core-fix-several-locking-related-problems.patch
new file mode 100644 (file)
index 0000000..f283ca0
--- /dev/null
@@ -0,0 +1,169 @@
+From stable-bounces@linux.kernel.org Wed Mar 28 18:24:10 2007
+From: Simon Arlott <simon@fire.lp0.eu>
+Date: Wed, 28 Mar 2007 21:22:40 -0400
+Subject: dvb-core: fix several locking related problems
+To: stable@kernel.org
+Message-ID: <460B14E0.2040100@linuxtv.org>
+
+
+From: Simon Arlott <simon@fire.lp0.eu>
+
+dvb-core: fix several locking related problems
+
+Fix several instances of dvb-core functions using mutex_lock_interruptible
+and returning -ERESTARTSYS where the calling function will either never
+retry or never check the return value.
+
+These cause a race condition with dvb_dmxdev_filter_free and
+dvb_dvr_release, both of which are filesystem release functions whose
+return value is ignored and will never be retried.  When this happens it
+becomes impossible to open dvr0 again (-EBUSY) since it has not been
+released properly.
+
+(cherry picked from commit c278850206fd9df0bb62a72ca0b277fe20c5a452)
+
+Signed-off-by: Simon Arlott <simon@fire.lp0.eu>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Acked-By: Johannes Stezenbach <js@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/dmxdev.c    |   12 +++---------
+ drivers/media/dvb/dvb-core/dvb_demux.c |   21 +++++++--------------
+ drivers/media/dvb/dvb-core/dvbdev.c    |    9 +++------
+ 3 files changed, 13 insertions(+), 29 deletions(-)
+
+--- a/drivers/media/dvb/dvb-core/dmxdev.c
++++ b/drivers/media/dvb/dvb-core/dmxdev.c
+@@ -181,8 +181,7 @@ static int dvb_dvr_release(struct inode 
+       struct dvb_device *dvbdev = file->private_data;
+       struct dmxdev *dmxdev = dvbdev->priv;
+-      if (mutex_lock_interruptible(&dmxdev->mutex))
+-              return -ERESTARTSYS;
++      mutex_lock(&dmxdev->mutex);
+       if ((file->f_flags & O_ACCMODE) == O_WRONLY) {
+               dmxdev->demux->disconnect_frontend(dmxdev->demux);
+@@ -674,13 +673,8 @@ static int dvb_demux_open(struct inode *
+ static int dvb_dmxdev_filter_free(struct dmxdev *dmxdev,
+                                 struct dmxdev_filter *dmxdevfilter)
+ {
+-      if (mutex_lock_interruptible(&dmxdev->mutex))
+-              return -ERESTARTSYS;
+-
+-      if (mutex_lock_interruptible(&dmxdevfilter->mutex)) {
+-              mutex_unlock(&dmxdev->mutex);
+-              return -ERESTARTSYS;
+-      }
++      mutex_lock(&dmxdev->mutex);
++      mutex_lock(&dmxdevfilter->mutex);
+       dvb_dmxdev_filter_stop(dmxdevfilter);
+       dvb_dmxdev_filter_reset(dmxdevfilter);
+--- a/drivers/media/dvb/dvb-core/dvb_demux.c
++++ b/drivers/media/dvb/dvb-core/dvb_demux.c
+@@ -673,8 +673,7 @@ static int dmx_ts_feed_stop_filtering(st
+       struct dvb_demux *demux = feed->demux;
+       int ret;
+-      if (mutex_lock_interruptible(&demux->mutex))
+-              return -ERESTARTSYS;
++      mutex_lock(&demux->mutex);
+       if (feed->state < DMX_STATE_GO) {
+               mutex_unlock(&demux->mutex);
+@@ -748,8 +747,7 @@ static int dvbdmx_release_ts_feed(struct
+       struct dvb_demux *demux = (struct dvb_demux *)dmx;
+       struct dvb_demux_feed *feed = (struct dvb_demux_feed *)ts_feed;
+-      if (mutex_lock_interruptible(&demux->mutex))
+-              return -ERESTARTSYS;
++      mutex_lock(&demux->mutex);
+       if (feed->state == DMX_STATE_FREE) {
+               mutex_unlock(&demux->mutex);
+@@ -916,8 +914,7 @@ static int dmx_section_feed_stop_filteri
+       struct dvb_demux *dvbdmx = dvbdmxfeed->demux;
+       int ret;
+-      if (mutex_lock_interruptible(&dvbdmx->mutex))
+-              return -ERESTARTSYS;
++      mutex_lock(&dvbdmx->mutex);
+       if (!dvbdmx->stop_feed) {
+               mutex_unlock(&dvbdmx->mutex);
+@@ -942,8 +939,7 @@ static int dmx_section_feed_release_filt
+       struct dvb_demux_feed *dvbdmxfeed = (struct dvb_demux_feed *)feed;
+       struct dvb_demux *dvbdmx = dvbdmxfeed->demux;
+-      if (mutex_lock_interruptible(&dvbdmx->mutex))
+-              return -ERESTARTSYS;
++      mutex_lock(&dvbdmx->mutex);
+       if (dvbdmxfilter->feed != dvbdmxfeed) {
+               mutex_unlock(&dvbdmx->mutex);
+@@ -1016,8 +1012,7 @@ static int dvbdmx_release_section_feed(s
+       struct dvb_demux_feed *dvbdmxfeed = (struct dvb_demux_feed *)feed;
+       struct dvb_demux *dvbdmx = (struct dvb_demux *)demux;
+-      if (mutex_lock_interruptible(&dvbdmx->mutex))
+-              return -ERESTARTSYS;
++      mutex_lock(&dvbdmx->mutex);
+       if (dvbdmxfeed->state == DMX_STATE_FREE) {
+               mutex_unlock(&dvbdmx->mutex);
+@@ -1126,8 +1121,7 @@ static int dvbdmx_connect_frontend(struc
+       if (demux->frontend)
+               return -EINVAL;
+-      if (mutex_lock_interruptible(&dvbdemux->mutex))
+-              return -ERESTARTSYS;
++      mutex_lock(&dvbdemux->mutex);
+       demux->frontend = frontend;
+       mutex_unlock(&dvbdemux->mutex);
+@@ -1138,8 +1132,7 @@ static int dvbdmx_disconnect_frontend(st
+ {
+       struct dvb_demux *dvbdemux = (struct dvb_demux *)demux;
+-      if (mutex_lock_interruptible(&dvbdemux->mutex))
+-              return -ERESTARTSYS;
++      mutex_lock(&dvbdemux->mutex);
+       demux->frontend = NULL;
+       mutex_unlock(&dvbdemux->mutex);
+--- a/drivers/media/dvb/dvb-core/dvbdev.c
++++ b/drivers/media/dvb/dvb-core/dvbdev.c
+@@ -204,8 +204,7 @@ int dvb_register_device(struct dvb_adapt
+       int id;
+-      if (mutex_lock_interruptible(&dvbdev_register_lock))
+-              return -ERESTARTSYS;
++      mutex_lock(&dvbdev_register_lock);
+       if ((id = dvbdev_get_free_id (adap, type)) < 0) {
+               mutex_unlock(&dvbdev_register_lock);
+@@ -295,8 +294,7 @@ int dvb_register_adapter(struct dvb_adap
+ {
+       int num;
+-      if (mutex_lock_interruptible(&dvbdev_register_lock))
+-              return -ERESTARTSYS;
++      mutex_lock(&dvbdev_register_lock);
+       if ((num = dvbdev_get_free_adapter_num ()) < 0) {
+               mutex_unlock(&dvbdev_register_lock);
+@@ -324,8 +322,7 @@ EXPORT_SYMBOL(dvb_register_adapter);
+ int dvb_unregister_adapter(struct dvb_adapter *adap)
+ {
+-      if (mutex_lock_interruptible(&dvbdev_register_lock))
+-              return -ERESTARTSYS;
++      mutex_lock(&dvbdev_register_lock);
+       list_del (&adap->list_head);
+       mutex_unlock(&dvbdev_register_lock);
+       return 0;
diff --git a/queue-2.6.20/dvb-fix-nxt200x-rf-input-switching.patch b/queue-2.6.20/dvb-fix-nxt200x-rf-input-switching.patch
new file mode 100644 (file)
index 0000000..a94efcd
--- /dev/null
@@ -0,0 +1,45 @@
+From stable-bounces@linux.kernel.org Wed Mar 28 18:23:55 2007
+From: Michael Krufky <mkrufky@linuxtv.org>
+Date: Wed, 28 Mar 2007 21:22:16 -0400
+Subject: DVB: fix nxt200x rf input switching
+To: stable@kernel.org
+Message-ID: <460B14C8.9050707@linuxtv.org>
+
+From: Michael Krufky <mkrufky@linuxtv.org>
+
+DVB: fix nxt200x rf input switching
+
+After dvb tuner refactoring, the pll buffer has been altered such that
+the pll address is now stored in buf[0].  Instead of sending buf to
+set_pll_input, we should send buf+1.
+
+(cherry picked from commit f5ae29e284b328e0976789d5c199bbbe80e4b005)
+
+Signed-off-by: Michael Krufky <mkrufky@linuxtv.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/dvb/frontends/nxt200x.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/media/dvb/frontends/nxt200x.c
++++ b/drivers/media/dvb/frontends/nxt200x.c
+@@ -562,7 +562,7 @@ static int nxt200x_setup_frontend_parame
+                       /* set input */
+                       if (state->config->set_pll_input)
+-                              state->config->set_pll_input(buf, 1);
++                              state->config->set_pll_input(buf+1, 1);
+                       break;
+               case VSB_8:
+                       /* Set non-punctured clock for VSB */
+@@ -571,7 +571,7 @@ static int nxt200x_setup_frontend_parame
+                       /* set input */
+                       if (state->config->set_pll_input)
+-                              state->config->set_pll_input(buf, 0);
++                              state->config->set_pll_input(buf+1, 0);
+                       break;
+               default:
+                       return -EINVAL;
diff --git a/queue-2.6.20/dvb-isl6421-don-t-reference-freed-memory.patch b/queue-2.6.20/dvb-isl6421-don-t-reference-freed-memory.patch
new file mode 100644 (file)
index 0000000..c76237e
--- /dev/null
@@ -0,0 +1,34 @@
+From stable-bounces@linux.kernel.org Wed Mar 28 18:24:01 2007
+From: Thomas Viehweger <Thomas.Viehweger@marconi.com>
+Date: Wed, 28 Mar 2007 21:22:37 -0400
+Subject: DVB: isl6421: don't reference freed memory
+To: stable@kernel.org
+Message-ID: <460B14DD.5000707@linuxtv.org>
+
+From: Thomas Viehweger <Thomas.Viehweger@marconi.com>
+
+DVB: isl6421: don't reference freed memory
+
+After freeing a block there should be no reference to this block.
+
+(cherry picked from commit 09d4895488d4df5c58b739573846f514ceabc911)
+
+Signed-off-by: Thomas Viehweger <Thomas.Viehweger@marconi.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/frontends/isl6421.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/media/dvb/frontends/isl6421.c
++++ b/drivers/media/dvb/frontends/isl6421.c
+@@ -122,6 +122,7 @@ struct dvb_frontend *isl6421_attach(stru
+       /* detect if it is present or not */
+       if (isl6421_set_voltage(fe, SEC_VOLTAGE_OFF)) {
+               kfree(isl6421);
++              fe->sec_priv = NULL;
+               return NULL;
+       }
diff --git a/queue-2.6.20/i2o-block-io-errors-on-i2o-disk.patch b/queue-2.6.20/i2o-block-io-errors-on-i2o-disk.patch
new file mode 100644 (file)
index 0000000..211ae43
--- /dev/null
@@ -0,0 +1,72 @@
+From stable-bounces@linux.kernel.org Wed Mar 28 09:36:44 2007
+From: Vasily Averin <vvs@sw.ru>
+Date: Wed, 28 Mar 2007 12:35:29 -0400
+Subject: i2o: block IO errors on i2o disk
+To: linux-stable <stable@kernel.org>
+Message-ID: <460A9951.4050106@redhat.com>
+
+From: Vasily Averin <vvs@sw.ru>
+
+[PATCH] i2o: block IO errors on i2o disk
+
+I2O subsystem has been broken in mainstream several months ago (after
+2.6.18).  Commit 4aff5e2333c9a1609662f2091f55c3f6fffdad36 from Jens
+Axboe split struct request ->flags into two parts: cmd_type and
+cmd_flags.
+
+In i2o layer this patch has replaced flag REQ_SPECIAL by the according
+cmd_type.  However i2o has used REQ_SPECIAL not as command type but as
+driver-specific flag for the debug purposes.  As result all i2o requests
+have type "special" now, are not processed to the hardware and fail with
+I/O error:
+
+   i2o/hda:<3>Buffer I/O error on device i2o/hda, logical block 0
+  Buffer I/O error on device i2o/hda, logical block 0
+  Buffer I/O error on device i2o/hda, logical block 0
+   unable to read partition table
+  block-osm: device added (TID: 207): i2o/hda
+
+The following patch removes the extra debug checks without any drawbacks and
+restores the normal driver's work.
+
+Signed-off-by: Vasily Averin <vvs@sw.ru>
+Acked-by: Markus Lidel <Markus.Lidel@shadowconnect.com>
+Cc: Jens Axboe <jens.axboe@oracle.com>
+From: Chuck Ebbert <cebbert@redhat.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/message/i2o/i2o_block.c |   12 +-----------
+ 1 file changed, 1 insertion(+), 11 deletions(-)
+
+--- a/drivers/message/i2o/i2o_block.c
++++ b/drivers/message/i2o/i2o_block.c
+@@ -390,13 +390,6 @@ static int i2o_block_prep_req_fn(struct 
+               return BLKPREP_KILL;
+       }
+-      /* request is already processed by us, so return */
+-      if (blk_special_request(req)) {
+-              osm_debug("REQ_SPECIAL already set!\n");
+-              req->cmd_flags |= REQ_DONTPREP;
+-              return BLKPREP_OK;
+-      }
+-
+       /* connect the i2o_block_request to the request */
+       if (!req->special) {
+               ireq = i2o_block_request_alloc();
+@@ -408,11 +401,8 @@ static int i2o_block_prep_req_fn(struct 
+               ireq->i2o_blk_dev = i2o_blk_dev;
+               req->special = ireq;
+               ireq->req = req;
+-      } else
+-              ireq = req->special;
+-
++      }
+       /* do not come back here */
+-      req->cmd_type = REQ_TYPE_SPECIAL;
+       req->cmd_flags |= REQ_DONTPREP;
+       return BLKPREP_OK;
diff --git a/queue-2.6.20/ide-revert-ide-fix-drive-side-80c-cable-check-take-2-for-now.patch b/queue-2.6.20/ide-revert-ide-fix-drive-side-80c-cable-check-take-2-for-now.patch
new file mode 100644 (file)
index 0000000..05cc4a4
--- /dev/null
@@ -0,0 +1,62 @@
+From stable-bounces@linux.kernel.org Wed Mar 28 12:12:44 2007
+From: Chuck Ebbert <cebbert@redhat.com>
+Date: Wed, 28 Mar 2007 15:11:13 -0400
+Subject: ide: revert "ide: fix drive side 80c cable check, take 2" for now
+To: linux-stable <stable@kernel.org>
+Message-ID: <460ABDD1.3050608@redhat.com>
+
+From: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
+
+[PATCH] ide: revert "ide: fix drive side 80c cable check, take 2" for now
+
+"ide: fix drive side 80c cable check, take 2" patch from Tejun Heo (commit
+fab59375b9543f84d1714f7dd00f5d11e531bd3e) fixed 80c bit test (bit13 of word93)
+but we also need to fix master/slave IDENTIFY order (slave device should be
+probed first in order to make it release PDIAG- signal) and we should also
+check for pre-ATA3 slave devices (which may not release PDIAG- signal).
+
+Unfortunately the fact that IDE driver doesn't reset devices itself helps
+only a bit as it seems that some BIOS-es reset ATA devices after programming
+the chipset, some BIOS-es can be set to not probe/configure selected devices,
+there may be no BIOS in case of add-on cards etc.
+
+Since we are quite late in the release cycle and the required changes will
+affect a lot of systems just revert the fix for now.
+
+[ Please also see libata commit f31f0cc2f0b7527072d94d02da332d9bb8d7d94c. ]
+
+Cc: Chuck Ebbert <cebbert@redhat.com>
+Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/ide/ide-iops.c |    9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/drivers/ide/ide-iops.c
++++ b/drivers/ide/ide-iops.c
+@@ -598,6 +598,9 @@ u8 eighty_ninty_three (ide_drive_t *driv
+       if(HWIF(drive)->udma_four == 0)
+               return 0;
++      printk(KERN_INFO "%s: hw_config=%04x\n",
++                       drive->name, drive->id->hw_config);
++
+       /* Check for SATA but only if we are ATA5 or higher */
+       if (drive->id->hw_config == 0 && (drive->id->major_rev_num & 0x7FE0))
+               return 1;
+@@ -607,8 +610,14 @@ u8 eighty_ninty_three (ide_drive_t *driv
+       if(!(drive->id->hw_config & 0x4000))
+               return 0;
+ #endif /* CONFIG_IDEDMA_IVB */
++/*
++ * FIXME: enable this after fixing master/slave IDENTIFY order,
++ *      also ignore the result if the slave device is pre-ATA3 one
++ */
++#if 0
+       if (!(drive->id->hw_config & 0x2000))
+               return 0;
++#endif
+       return 1;
+ }
diff --git a/queue-2.6.20/jmicron-make-ide-jmicron-driver-play-nice-with-libata-ones.patch b/queue-2.6.20/jmicron-make-ide-jmicron-driver-play-nice-with-libata-ones.patch
new file mode 100644 (file)
index 0000000..fdb91bf
--- /dev/null
@@ -0,0 +1,73 @@
+From stable-bounces@linux.kernel.org Wed Mar 28 09:33:18 2007
+From: Tejun Heo <htejun@gmail.com>
+Date: Wed, 28 Mar 2007 12:31:53 -0400
+Subject: jmicron: make ide jmicron driver play nice with libata ones
+To: linux-stable <stable@kernel.org>
+Message-ID: <460A9879.7040902@redhat.com>
+
+From: Tejun Heo <htejun@gmail.com>
+
+jmicron: make ide jmicron driver play nice with libata ones
+
+When libata is configured, the device is configured such that SATA and
+PATA ports live in separate functions with different programming
+interfaces.  pata_jmicron and ide jmicron drivers can drive only the
+PATA part.
+
+This patch makes jmicron match PCI class code such that it doesn't
+attach itself to the SATA part preventing the proper ahci driver from
+attaching.
+
+This change is suggested by Bartlomiej.
+
+Signed-off-by: Tejun Heo <htejun@gmail.com>
+Cc: Jeff Garzik <jeff@garzik.org>
+Cc: justin@jmicron.com
+Cc: Chuck Ebbert <cebbert@redhat.com>
+Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+
+---
+ drivers/ide/pci/jmicron.c |   29 ++++++++++++++++++++++++-----
+ 1 file changed, 24 insertions(+), 5 deletions(-)
+
+--- a/drivers/ide/pci/jmicron.c
++++ b/drivers/ide/pci/jmicron.c
+@@ -240,12 +240,31 @@ static int __devinit jmicron_init_one(st
+       return 0;
+ }
++/* If libata is configured, jmicron PCI quirk will configure it such
++ * that the SATA ports are in AHCI function while the PATA ports are
++ * in a separate IDE function.  In such cases, match device class and
++ * attach only to IDE.  If libata isn't configured, keep the old
++ * behavior for backward compatibility.
++ */
++#if defined(CONFIG_ATA) || defined(CONFIG_ATA_MODULE)
++#define JMB_CLASS     PCI_CLASS_STORAGE_IDE << 8
++#define JMB_CLASS_MASK        0xffff00
++#else
++#define JMB_CLASS     0
++#define JMB_CLASS_MASK        0
++#endif
++
+ static struct pci_device_id jmicron_pci_tbl[] = {
+-      { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB361, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
+-      { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB363, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1},
+-      { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB365, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 2},
+-      { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB366, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 3},
+-      { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB368, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4},
++      { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB361,
++        PCI_ANY_ID, PCI_ANY_ID, JMB_CLASS, JMB_CLASS_MASK, 0},
++      { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB363,
++        PCI_ANY_ID, PCI_ANY_ID, JMB_CLASS, JMB_CLASS_MASK, 1},
++      { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB365,
++        PCI_ANY_ID, PCI_ANY_ID, JMB_CLASS, JMB_CLASS_MASK, 2},
++      { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB366,
++        PCI_ANY_ID, PCI_ANY_ID, JMB_CLASS, JMB_CLASS_MASK, 3},
++      { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB368,
++        PCI_ANY_ID, PCI_ANY_ID, JMB_CLASS, JMB_CLASS_MASK, 4},
+       { 0, },
+ };
index eb1398c4a572fe28b29b6a0ad29abda6d910388e..c8739e4dd5423d2168c67d4922067ece42dfb0c6 100644 (file)
@@ -17,3 +17,13 @@ net-fix-sock_attach_fd-failure-in-sys_accept.patch
 sparc-fix-sparc-builds-with-gcc-4.2.x.patch
 fix-decnet-endianness.patch
 net-fix-fib-rules-compatability.patch
+dvb-fix-nxt200x-rf-input-switching.patch
+v4l-radio-fix-error-in-kbuild-file.patch
+v4l-fix-secam-handling-on-saa7115.patch
+v4l-msp_attach-must-return-0-if-no-msp3400-was-found.patch
+dvb-isl6421-don-t-reference-freed-memory.patch
+dvb-core-fix-several-locking-related-problems.patch
+v4l-saa7146-fix-allocation-of-clipping-memory.patch
+jmicron-make-ide-jmicron-driver-play-nice-with-libata-ones.patch
+i2o-block-io-errors-on-i2o-disk.patch
+ide-revert-ide-fix-drive-side-80c-cable-check-take-2-for-now.patch
diff --git a/queue-2.6.20/v4l-fix-secam-handling-on-saa7115.patch b/queue-2.6.20/v4l-fix-secam-handling-on-saa7115.patch
new file mode 100644 (file)
index 0000000..0a01da5
--- /dev/null
@@ -0,0 +1,33 @@
+From stable-bounces@linux.kernel.org Wed Mar 28 18:23:50 2007
+From: Mauro Carvalho Chehab <mchehab@infradead.org>
+Date: Wed, 28 Mar 2007 21:22:32 -0400
+Subject: V4L: Fix SECAM handling on saa7115
+To: stable@kernel.org
+Message-ID: <460B14D8.2050704@linuxtv.org>
+
+
+From: Mauro Carvalho Chehab <mchehab@infradead.org>
+
+V4L: Fix SECAM handling on saa7115
+
+(cherry picked from commit a9aaec4e83e687d23b78b38e331bbd6a10b96380)
+
+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/saa7115.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/media/video/saa7115.c
++++ b/drivers/media/video/saa7115.c
+@@ -960,7 +960,7 @@ static void saa711x_set_v4lstd(struct i2
+                       reg |= 0x10;
+               } else if (std == V4L2_STD_NTSC_M_JP) {
+                       reg |= 0x40;
+-              } else if (std == V4L2_STD_SECAM) {
++              } else if (std & V4L2_STD_SECAM) {
+                       reg |= 0x50;
+               }
+               saa711x_write(client, R_0E_CHROMA_CNTL_1, reg);
diff --git a/queue-2.6.20/v4l-msp_attach-must-return-0-if-no-msp3400-was-found.patch b/queue-2.6.20/v4l-msp_attach-must-return-0-if-no-msp3400-was-found.patch
new file mode 100644 (file)
index 0000000..b37d394
--- /dev/null
@@ -0,0 +1,46 @@
+From stable-bounces@linux.kernel.org Wed Mar 28 18:24:18 2007
+From: Hans Verkuil <hverkuil@xs4all.nl>
+Date: Wed, 28 Mar 2007 21:22:35 -0400
+Subject: V4L: msp_attach must return 0 if no msp3400 was found.
+To: stable@kernel.org
+Message-ID: <460B14DB.20303@linuxtv.org>
+
+From: Hans Verkuil <hverkuil@xs4all.nl>
+
+V4L: msp_attach must return 0 if no msp3400 was found.
+
+Returning -1 causes the probe to stop, but it should just continue
+instead. This patch fixes an annoying 'i2c_adapter i2c-7: Client
+creation failed at 0x44 (-1)' kernel message that appeared in 2.6.20
+
+(cherry picked from commit 3284b4e077cb2322754ea7455b8f8af7ce3777b8)
+
+Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
+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/msp3400-driver.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/media/video/msp3400-driver.c
++++ b/drivers/media/video/msp3400-driver.c
+@@ -825,7 +825,7 @@ static int msp_attach(struct i2c_adapter
+       if (msp_reset(client) == -1) {
+               v4l_dbg(1, msp_debug, client, "msp3400 not found\n");
+               kfree(client);
+-              return -1;
++              return 0;
+       }
+       state = kmalloc(sizeof(*state), GFP_KERNEL);
+@@ -859,7 +859,7 @@ static int msp_attach(struct i2c_adapter
+               v4l_dbg(1, msp_debug, client, "not an msp3400 (cannot read chip version)\n");
+               kfree(state);
+               kfree(client);
+-              return -1;
++              return 0;
+       }
+       msp_set_audio(client);
diff --git a/queue-2.6.20/v4l-radio-fix-error-in-kbuild-file.patch b/queue-2.6.20/v4l-radio-fix-error-in-kbuild-file.patch
new file mode 100644 (file)
index 0000000..043cd39
--- /dev/null
@@ -0,0 +1,38 @@
+From stable-bounces@linux.kernel.org Wed Mar 28 18:23:50 2007
+From: Trent Piepho <xyzzy@speakeasy.org>
+Date: Wed, 28 Mar 2007 21:22:28 -0400
+Subject: V4L: radio: Fix error in Kbuild file
+To: stable@kernel.org
+Message-ID: <460B14D4.7060109@linuxtv.org>
+
+From: Trent Piepho <xyzzy@speakeasy.org>
+
+V4L: radio: Fix error in Kbuild file
+
+All the radio drivers need video_dev, but they were depending on
+VIDEO_DEV!=n.  That meant that one could try to compile the driver into
+the kernel when VIDEO_DEV=m, which will not work.  If video_dev is a
+module, then the radio drivers must be modules too.
+
+(cherry picked from commit b10fece583fdfdb3d2f29b0da3896ec58b8fe122)
+
+Signed-off-by: Trent Piepho <xyzzy@speakeasy.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/radio/Kconfig |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/media/radio/Kconfig
++++ b/drivers/media/radio/Kconfig
+@@ -3,7 +3,7 @@
+ #
+ menu "Radio Adapters"
+-      depends on VIDEO_DEV!=n
++      depends on VIDEO_DEV
+ config RADIO_CADET
+       tristate "ADS Cadet AM/FM Tuner"
diff --git a/queue-2.6.20/v4l-saa7146-fix-allocation-of-clipping-memory.patch b/queue-2.6.20/v4l-saa7146-fix-allocation-of-clipping-memory.patch
new file mode 100644 (file)
index 0000000..c42c862
--- /dev/null
@@ -0,0 +1,43 @@
+From stable-bounces@linux.kernel.org Wed Mar 28 18:24:18 2007
+From: Oliver Endriss <o.endriss@gmx.de>
+Date: Wed, 28 Mar 2007 21:22:42 -0400
+Subject: V4L: saa7146: Fix allocation of clipping memory
+To: stable@kernel.org
+Message-ID: <460B14E2.70904@linuxtv.org>
+
+From: Oliver Endriss <o.endriss@gmx.de>
+
+V4L: saa7146: Fix allocation of clipping memory
+
+Olaf Hering pointed out that SAA7146_CLIPPING_MEM would become
+very large for PAGE_SIZE > 4K.
+
+In fact, the number of clipping windows is limited to 16,
+and calculate_clipping_registers_rect() does not use more
+than 256 bytes. SAA7146_CLIPPING_MEM adjusted accordingly.
+
+(cherry picked from commit 7a7cd1920969dd9da4e0d99aab573b3eba24c799)
+
+Thanks-to: Olaf Hering <olaf@aepfle.de>
+Acked-by: Michael Hunold <hunold@linuxtv.org>
+Signed-off-by: Oliver Endriss <o.endriss@gmx.de>
+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>
+
+---
+ include/media/saa7146_vv.h |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/include/media/saa7146_vv.h
++++ b/include/media/saa7146_vv.h
+@@ -239,7 +239,8 @@ void saa7146_res_free(struct saa7146_fh 
+ #define SAA7146_HPS_SYNC_PORT_B               0x01
+ /* some memory sizes */
+-#define SAA7146_CLIPPING_MEM  (14*PAGE_SIZE)
++/* max. 16 clipping rectangles */
++#define SAA7146_CLIPPING_MEM  (16 * 4 * sizeof(u32))
+ /* some defines for the various clipping-modes */
+ #define SAA7146_CLIPPING_RECT         0x4