]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Mon, 21 Nov 2011 23:39:37 +0000 (15:39 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 21 Nov 2011 23:39:37 +0000 (15:39 -0800)
added patches:
aacraid-controller-hangs-if-kernel-uses-non-default-aspm-policy.patch
drm-i915-pch-save-restore-pch_port_hotplug-across-suspend.patch
fix-warning-at-drivers-scsi-scsi_lib.c-1704.patch
genirq-fix-irqfixup-irqpoll-regression.patch
hpsa-disable-aspm.patch
saa7164-add-support-for-another-hvr2200-hardware-revision.patch

queue-3.0/aacraid-controller-hangs-if-kernel-uses-non-default-aspm-policy.patch [new file with mode: 0644]
queue-3.0/drm-i915-pch-save-restore-pch_port_hotplug-across-suspend.patch [new file with mode: 0644]
queue-3.0/fix-warning-at-drivers-scsi-scsi_lib.c-1704.patch [new file with mode: 0644]
queue-3.0/genirq-fix-irqfixup-irqpoll-regression.patch [new file with mode: 0644]
queue-3.0/hpsa-disable-aspm.patch [new file with mode: 0644]
queue-3.0/saa7164-add-support-for-another-hvr2200-hardware-revision.patch [new file with mode: 0644]
queue-3.0/series [new file with mode: 0644]

diff --git a/queue-3.0/aacraid-controller-hangs-if-kernel-uses-non-default-aspm-policy.patch b/queue-3.0/aacraid-controller-hangs-if-kernel-uses-non-default-aspm-policy.patch
new file mode 100644 (file)
index 0000000..4bba275
--- /dev/null
@@ -0,0 +1,65 @@
+From cf16123c9c8e346ed1dd171295a678d77648d7f8 Mon Sep 17 00:00:00 2001
+From: Vasily Averin <vvs@parallels.com>
+Date: Fri, 11 Nov 2011 13:42:16 +0400
+Subject: [SCSI] aacraid: controller hangs if kernel uses non-default ASPM policy
+
+From: Vasily Averin <vvs@parallels.com>
+
+commit cf16123c9c8e346ed1dd171295a678d77648d7f8 upstream.
+
+Aacraid controller can hang on some nodes if kernel uses non-default
+(powersave) ASPM policy.  Controller hangs shortly after successful load and
+hardware detection. Scsi error handler detects this hang and tries to restart
+hardware but it does not help.
+
+Initially it was noticed on RHEL6-based openVZ kernel after backporting
+aacraid driver from mainline (RHEL6 kernel with original driver works well)
+http://bugzilla.openvz.org/show_bug.cgi?id=2043
+
+This issue happens because default ASPM policy was changed in Red Hat
+kernels. Therefore guys from Red Hat have noticed this problem long time ago:
+on Fedora 12
+ https://bugzilla.redhat.com/show_bug.cgi?id=540478
+on Fedora 14
+ https://bugzilla.redhat.com/show_bug.cgi?id=679385
+
+In RHEL6 kernel this issue was fixed, ASPM was disabled in aacraid driver. In
+kernel changelog I've found that seems it was done by Matthew Garrett: -
+[scsi] aacraid: Disable ASPM by default (Matthew Garrett) [599735]
+
+However seems this patch was not submitted to mainline. I've reproduced this
+issue on vanilla 3.1.0 kernel booted with "pcie_aspm.policy=powersave" option,
+So I believe it makes sense to do it now.
+
+Signed-off-by: Vasily Averin <vvs@sw.ru>
+[mjg: Checking the Windows drivers indicates that they disable ASPM under all
+circumstances, so:]
+Acked-by: Matthew Garrett <mjg@redhat.com>
+Acked-by: Achim Leubner <Achim_Leubner@pmc-sierra.com>
+Signed-off-by: James Bottomley <JBottomley@Parallels.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/scsi/aacraid/linit.c |    4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/drivers/scsi/aacraid/linit.c
++++ b/drivers/scsi/aacraid/linit.c
+@@ -38,6 +38,7 @@
+ #include <linux/module.h>
+ #include <linux/moduleparam.h>
+ #include <linux/pci.h>
++#include <linux/pci-aspm.h>
+ #include <linux/slab.h>
+ #include <linux/mutex.h>
+ #include <linux/spinlock.h>
+@@ -1108,6 +1109,9 @@ static int __devinit aac_probe_one(struc
+               unique_id++;
+       }
++      pci_disable_link_state(pdev, PCIE_LINK_STATE_L0S | PCIE_LINK_STATE_L1 |
++                             PCIE_LINK_STATE_CLKPM);
++
+       error = pci_enable_device(pdev);
+       if (error)
+               goto out;
diff --git a/queue-3.0/drm-i915-pch-save-restore-pch_port_hotplug-across-suspend.patch b/queue-3.0/drm-i915-pch-save-restore-pch_port_hotplug-across-suspend.patch
new file mode 100644 (file)
index 0000000..a91745e
--- /dev/null
@@ -0,0 +1,58 @@
+From cda2bb78c24de7674eafa3210314dc75bed344a6 Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax@redhat.com>
+Date: Tue, 26 Jul 2011 16:53:06 -0400
+Subject: drm/i915/pch: Save/restore PCH_PORT_HOTPLUG across suspend
+
+From: Adam Jackson <ajax@redhat.com>
+
+commit cda2bb78c24de7674eafa3210314dc75bed344a6 upstream.
+
+At least on a Lenovo X220 the HPD bits of this are enabled at boot but
+cleared after resume, which means plug interrupts stop working.
+
+This also happens to fix DP displays re-lighting on resume.  I'm quite
+certain that's an accident: the first DP link train inevitably fails on
+that machine, and it's only serendipity that we're getting multiple plug
+interrupts and the second train works.  But I shall take my victories
+where I get them.
+
+Signed-off-by: Adam Jackson <ajax@redhat.com>
+Tested-by: Keith Packard <keithp@keithp.com>
+Reviewed-by: Keith Packard <keithp@keithp.com>
+Signed-off-by: Keith Packard <keithp@keithp.com>
+Cc: Jonathan Nieder <jrnieder@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/gpu/drm/i915/i915_drv.h     |    1 +
+ drivers/gpu/drm/i915/i915_suspend.c |    2 ++
+ 2 files changed, 3 insertions(+)
+
+--- a/drivers/gpu/drm/i915/i915_drv.h
++++ b/drivers/gpu/drm/i915/i915_drv.h
+@@ -541,6 +541,7 @@ typedef struct drm_i915_private {
+       u32 savePIPEB_LINK_M1;
+       u32 savePIPEB_LINK_N1;
+       u32 saveMCHBAR_RENDER_STANDBY;
++      u32 savePCH_PORT_HOTPLUG;
+       struct {
+               /** Bridge to intel-gtt-ko */
+--- a/drivers/gpu/drm/i915/i915_suspend.c
++++ b/drivers/gpu/drm/i915/i915_suspend.c
+@@ -814,6 +814,7 @@ int i915_save_state(struct drm_device *d
+               dev_priv->saveFDI_RXB_IMR = I915_READ(_FDI_RXB_IMR);
+               dev_priv->saveMCHBAR_RENDER_STANDBY =
+                       I915_READ(RSTDBYCTL);
++              dev_priv->savePCH_PORT_HOTPLUG = I915_READ(PCH_PORT_HOTPLUG);
+       } else {
+               dev_priv->saveIER = I915_READ(IER);
+               dev_priv->saveIMR = I915_READ(IMR);
+@@ -865,6 +866,7 @@ int i915_restore_state(struct drm_device
+               I915_WRITE(GTIMR, dev_priv->saveGTIMR);
+               I915_WRITE(_FDI_RXA_IMR, dev_priv->saveFDI_RXA_IMR);
+               I915_WRITE(_FDI_RXB_IMR, dev_priv->saveFDI_RXB_IMR);
++              I915_WRITE(PCH_PORT_HOTPLUG, dev_priv->savePCH_PORT_HOTPLUG);
+       } else {
+               I915_WRITE(IER, dev_priv->saveIER);
+               I915_WRITE(IMR, dev_priv->saveIMR);
diff --git a/queue-3.0/fix-warning-at-drivers-scsi-scsi_lib.c-1704.patch b/queue-3.0/fix-warning-at-drivers-scsi-scsi_lib.c-1704.patch
new file mode 100644 (file)
index 0000000..5688751
--- /dev/null
@@ -0,0 +1,106 @@
+From 4e6c82b3614a18740ef63109d58743a359266daf Mon Sep 17 00:00:00 2001
+From: James Bottomley <James.Bottomley@HansenPartnership.com>
+Date: Mon, 7 Nov 2011 08:51:24 -0600
+Subject: [SCSI] fix WARNING: at drivers/scsi/scsi_lib.c:1704
+
+From: James Bottomley <James.Bottomley@HansenPartnership.com>
+
+commit 4e6c82b3614a18740ef63109d58743a359266daf upstream.
+
+On Mon, 2011-11-07 at 17:24 +1100, Stephen Rothwell wrote:
+> Hi all,
+>
+> Starting some time last week I am getting the following during boot on
+> our PPC970 blade:
+>
+> calling  .ipr_init+0x0/0x68 @ 1
+> ipr: IBM Power RAID SCSI Device Driver version: 2.5.2 (April 27, 2011)
+> ipr 0000:01:01.0: Found IOA with IRQ: 26
+> ipr 0000:01:01.0: Starting IOA initialization sequence.
+> ipr 0000:01:01.0: Adapter firmware version: 06160039
+> ipr 0000:01:01.0: IOA initialized.
+> scsi0 : IBM 572E Storage Adapter
+> ------------[ cut here ]------------
+> WARNING: at drivers/scsi/scsi_lib.c:1704
+> Modules linked in:
+> NIP: c00000000053b3d4 LR: c00000000053e5b0 CTR: c000000000541d70
+> REGS: c0000000783c2f60 TRAP: 0700   Not tainted  (3.1.0-autokern1)
+> MSR: 8000000000029032 <EE,ME,CE,IR,DR>  CR: 24002024  XER: 20000002
+> TASK = c0000000783b8000[1] 'swapper' THREAD: c0000000783c0000 CPU: 0
+> GPR00: 0000000000000001 c0000000783c31e0 c000000000cf38b0 c00000000239a9d0
+> GPR04: c000000000cbe8f8 0000000000000000 c0000000783c3040 0000000000000000
+> GPR08: c000000075daf488 c000000078a3b7ff c000000000bcacc8 0000000000000000
+> GPR12: 0000000044002028 c000000007ffb000 0000000002e40000 000000000099b800
+> GPR16: 0000000000000000 c000000000bba5fc c000000000a61db8 0000000000000000
+> GPR20: 0000000001b77200 0000000000000000 c000000078990000 0000000000000001
+> GPR24: c000000002396828 0000000000000000 0000000000000000 c000000078a3b938
+> GPR28: fffffffffffffffa c0000000008ad2c0 c000000000c7faa8 c00000000239a9d0
+> NIP [c00000000053b3d4] .scsi_free_queue+0x24/0x90
+> LR [c00000000053e5b0] .scsi_alloc_sdev+0x280/0x2e0
+> Call Trace:
+> [c0000000783c31e0] [c000000000c7faa8] wireless_seq_fops+0x278d0/0x2eb88 (unreliable)
+> [c0000000783c3270] [c00000000053e5b0] .scsi_alloc_sdev+0x280/0x2e0
+> [c0000000783c3330] [c00000000053eba0] .scsi_probe_and_add_lun+0x390/0xb40
+> [c0000000783c34a0] [c00000000053f7ec] .__scsi_scan_target+0x16c/0x650
+> [c0000000783c35f0] [c00000000053fd90] .scsi_scan_channel+0xc0/0x100
+> [c0000000783c36a0] [c00000000053fefc] .scsi_scan_host_selected+0x12c/0x1c0
+> [c0000000783c3750] [c00000000083dcb4] .ipr_probe+0x2c0/0x390
+> [c0000000783c3830] [c0000000003f50b4] .local_pci_probe+0x34/0x50
+> [c0000000783c38a0] [c0000000003f5f78] .pci_device_probe+0x148/0x150
+> [c0000000783c3950] [c0000000004e1e8c] .driver_probe_device+0xdc/0x210
+> [c0000000783c39f0] [c0000000004e20cc] .__driver_attach+0x10c/0x110
+> [c0000000783c3a80] [c0000000004e1228] .bus_for_each_dev+0x98/0xf0
+> [c0000000783c3b30] [c0000000004e1bf8] .driver_attach+0x28/0x40
+> [c0000000783c3bb0] [c0000000004e07d8] .bus_add_driver+0x218/0x340
+> [c0000000783c3c60] [c0000000004e2a2c] .driver_register+0x9c/0x1b0
+> [c0000000783c3d00] [c0000000003f62d4] .__pci_register_driver+0x64/0x140
+> [c0000000783c3da0] [c000000000b99f88] .ipr_init+0x4c/0x68
+> [c0000000783c3e20] [c00000000000ad24] .do_one_initcall+0x1a4/0x1e0
+> [c0000000783c3ee0] [c000000000b512d0] .kernel_init+0x14c/0x1fc
+> [c0000000783c3f90] [c000000000022468] .kernel_thread+0x54/0x70
+> Instruction dump:
+> ebe1fff8 7c0803a6 4e800020 7c0802a6 fba1ffe8 fbe1fff8 7c7f1b78 f8010010
+> f821ff71 e8030398 3120ffff 7c090110 <0b000000> e86303b0 482de065 60000000
+> ---[ end trace 759bed76a85e8dec ]---
+> scsi 0:0:1:0: Direct-Access     IBM-ESXS MAY2036RC        T106 PQ: 0 ANSI: 5
+> ------------[ cut here ]------------
+>
+> I get lots more of these.  The obvious commit to point the finger at
+> is 3308511c93e6 ("[SCSI] Make scsi_free_queue() kill pending SCSI
+> commands") but the root cause may be something different.
+
+Caused by
+
+commit f7c9c6bb14f3104608a3a83cadea10a6943d2804
+Author: Anton Blanchard <anton@samba.org>
+Date:   Thu Nov 3 08:56:22 2011 +1100
+
+    [SCSI] Fix block queue and elevator memory leak in scsi_alloc_sdev
+
+Doesn't completely do the teardown.  The true fix is to do a proper
+teardown instead of hand rolling it
+
+Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
+Tested-by: Stephen Rothwell <sfr@canb.auug.org.au>
+Signed-off-by: James Bottomley <JBottomley@Parallels.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/scsi/scsi_scan.c |    6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+--- a/drivers/scsi/scsi_scan.c
++++ b/drivers/scsi/scsi_scan.c
+@@ -319,11 +319,7 @@ static struct scsi_device *scsi_alloc_sd
+       return sdev;
+ out_device_destroy:
+-      scsi_device_set_state(sdev, SDEV_DEL);
+-      transport_destroy_device(&sdev->sdev_gendev);
+-      put_device(&sdev->sdev_dev);
+-      scsi_free_queue(sdev->request_queue);
+-      put_device(&sdev->sdev_gendev);
++      __scsi_remove_device(sdev);
+ out:
+       if (display_failure_msg)
+               printk(ALLOC_FAILURE_MSG, __func__);
diff --git a/queue-3.0/genirq-fix-irqfixup-irqpoll-regression.patch b/queue-3.0/genirq-fix-irqfixup-irqpoll-regression.patch
new file mode 100644 (file)
index 0000000..7e4eef8
--- /dev/null
@@ -0,0 +1,40 @@
+From c75d720fca8a91ce99196d33adea383621027bf2 Mon Sep 17 00:00:00 2001
+From: Edward Donovan <edward.donovan@numble.net>
+Date: Tue, 1 Nov 2011 15:29:44 -0400
+Subject: genirq: Fix irqfixup, irqpoll regression
+
+From: Edward Donovan <edward.donovan@numble.net>
+
+commit c75d720fca8a91ce99196d33adea383621027bf2 upstream.
+
+commit d05c65fff0 ("genirq: spurious: Run only one poller at a time")
+introduced a regression, leaving the boot options 'irqfixup' and
+'irqpoll' non-functional. The patch placed tests in each function, to
+exit if the function is already running. The test in 'misrouted_irq'
+exited when it should have proceeded, effectively disabling
+'misrouted_irq' and 'poll_spurious_irqs'.
+
+The check for an already running poller needs to be "!= 1" not "== 1"
+as "1" is the value when the first poller starts running.
+
+Signed-off-by: Edward Donovan <edward.donovan@numble.net>
+Cc: maciej.rutecki@gmail.com
+Link: http://lkml.kernel.org/r/1320175784-6745-1-git-send-email-edward.donovan@numble.net
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ kernel/irq/spurious.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/kernel/irq/spurious.c
++++ b/kernel/irq/spurious.c
+@@ -115,7 +115,7 @@ static int misrouted_irq(int irq)
+       struct irq_desc *desc;
+       int i, ok = 0;
+-      if (atomic_inc_return(&irq_poll_active) == 1)
++      if (atomic_inc_return(&irq_poll_active) != 1)
+               goto out;
+       irq_poll_cpu = smp_processor_id();
diff --git a/queue-3.0/hpsa-disable-aspm.patch b/queue-3.0/hpsa-disable-aspm.patch
new file mode 100644 (file)
index 0000000..c2d32c8
--- /dev/null
@@ -0,0 +1,42 @@
+From e5a44df85e8d78e5c2d3d2e4f59b460905691e2f Mon Sep 17 00:00:00 2001
+From: Matthew Garrett <mjg@redhat.com>
+Date: Fri, 11 Nov 2011 11:14:23 -0500
+Subject: [SCSI] hpsa: Disable ASPM
+
+From: Matthew Garrett <mjg@redhat.com>
+
+commit e5a44df85e8d78e5c2d3d2e4f59b460905691e2f upstream.
+
+The Windows driver .inf disables ASPM on hpsa devices. Do the same because the
+selection of a non default ASPM policy can cause the device to hang.
+
+Signed-off-by: Matthew Garrett <mjg@redhat.com>
+Acked-by: Mike Miller <mike.miller@hp.com>
+Signed-off-by: James Bottomley <JBottomley@Parallels.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/scsi/hpsa.c |    5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/drivers/scsi/hpsa.c
++++ b/drivers/scsi/hpsa.c
+@@ -23,6 +23,7 @@
+ #include <linux/interrupt.h>
+ #include <linux/types.h>
+ #include <linux/pci.h>
++#include <linux/pci-aspm.h>
+ #include <linux/kernel.h>
+ #include <linux/slab.h>
+ #include <linux/delay.h>
+@@ -3887,6 +3888,10 @@ static int __devinit hpsa_pci_init(struc
+               dev_warn(&h->pdev->dev, "controller appears to be disabled\n");
+               return -ENODEV;
+       }
++
++      pci_disable_link_state(h->pdev, PCIE_LINK_STATE_L0S |
++                             PCIE_LINK_STATE_L1 | PCIE_LINK_STATE_CLKPM);
++
+       err = pci_enable_device(h->pdev);
+       if (err) {
+               dev_warn(&h->pdev->dev, "unable to enable PCI device\n");
diff --git a/queue-3.0/saa7164-add-support-for-another-hvr2200-hardware-revision.patch b/queue-3.0/saa7164-add-support-for-another-hvr2200-hardware-revision.patch
new file mode 100644 (file)
index 0000000..7f7c207
--- /dev/null
@@ -0,0 +1,143 @@
+From 62dd28d0c659db29bdb89cfe9f0aefe42f0adfe9 Mon Sep 17 00:00:00 2001
+From: Tony Jago <tony@hammertelecom.com.au>
+Date: Fri, 12 Aug 2011 00:19:11 -0300
+Subject: [media] saa7164: Add support for another HVR2200 hardware revision
+
+From: Tony Jago <tony@hammertelecom.com.au>
+
+commit 62dd28d0c659db29bdb89cfe9f0aefe42f0adfe9 upstream.
+
+Hauppauge have released a new model rev, sub id 8940, this adds
+support.
+
+[stoth@kernellabs.com: I modified Tony's patch slightly in relation to the
+ card numbering in saa7164.h, appending rather than inserting the new card
+ - normal practise]
+Signed-off-by: Tony Jago <tony@hammertelecom.com.au>
+Signed-off-by: Steven Toth <stoth@kernellabs.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
+Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/media/video/saa7164/saa7164-cards.c |   66 ++++++++++++++++++++++++++++
+ drivers/media/video/saa7164/saa7164-dvb.c   |    1 
+ drivers/media/video/saa7164/saa7164.h       |    1 
+ 3 files changed, 68 insertions(+)
+
+--- a/drivers/media/video/saa7164/saa7164-cards.c
++++ b/drivers/media/video/saa7164/saa7164-cards.c
+@@ -203,6 +203,66 @@ struct saa7164_board saa7164_boards[] =
+                       .i2c_reg_len    = REGLEN_8bit,
+               } },
+       },
++      [SAA7164_BOARD_HAUPPAUGE_HVR2200_4] = {
++              .name           = "Hauppauge WinTV-HVR2200",
++              .porta          = SAA7164_MPEG_DVB,
++              .portb          = SAA7164_MPEG_DVB,
++              .portc          = SAA7164_MPEG_ENCODER,
++              .portd          = SAA7164_MPEG_ENCODER,
++              .porte          = SAA7164_MPEG_VBI,
++              .portf          = SAA7164_MPEG_VBI,
++              .chiprev        = SAA7164_CHIP_REV3,
++              .unit           = {{
++                      .id             = 0x1d,
++                      .type           = SAA7164_UNIT_EEPROM,
++                      .name           = "4K EEPROM",
++                      .i2c_bus_nr     = SAA7164_I2C_BUS_0,
++                      .i2c_bus_addr   = 0xa0 >> 1,
++                      .i2c_reg_len    = REGLEN_8bit,
++              }, {
++                      .id             = 0x04,
++                      .type           = SAA7164_UNIT_TUNER,
++                      .name           = "TDA18271-1",
++                      .i2c_bus_nr     = SAA7164_I2C_BUS_1,
++                      .i2c_bus_addr   = 0xc0 >> 1,
++                      .i2c_reg_len    = REGLEN_8bit,
++              }, {
++                      .id             = 0x05,
++                      .type           = SAA7164_UNIT_ANALOG_DEMODULATOR,
++                      .name           = "TDA8290-1",
++                      .i2c_bus_nr     = SAA7164_I2C_BUS_1,
++                      .i2c_bus_addr   = 0x84 >> 1,
++                      .i2c_reg_len    = REGLEN_8bit,
++              }, {
++                      .id             = 0x1b,
++                      .type           = SAA7164_UNIT_TUNER,
++                      .name           = "TDA18271-2",
++                      .i2c_bus_nr     = SAA7164_I2C_BUS_2,
++                      .i2c_bus_addr   = 0xc0 >> 1,
++                      .i2c_reg_len    = REGLEN_8bit,
++              }, {
++                      .id             = 0x1c,
++                      .type           = SAA7164_UNIT_ANALOG_DEMODULATOR,
++                      .name           = "TDA8290-2",
++                      .i2c_bus_nr     = SAA7164_I2C_BUS_2,
++                      .i2c_bus_addr   = 0x84 >> 1,
++                      .i2c_reg_len    = REGLEN_8bit,
++              }, {
++                      .id             = 0x1e,
++                      .type           = SAA7164_UNIT_DIGITAL_DEMODULATOR,
++                      .name           = "TDA10048-1",
++                      .i2c_bus_nr     = SAA7164_I2C_BUS_1,
++                      .i2c_bus_addr   = 0x10 >> 1,
++                      .i2c_reg_len    = REGLEN_8bit,
++              }, {
++                      .id             = 0x1f,
++                      .type           = SAA7164_UNIT_DIGITAL_DEMODULATOR,
++                      .name           = "TDA10048-2",
++                      .i2c_bus_nr     = SAA7164_I2C_BUS_2,
++                      .i2c_bus_addr   = 0x12 >> 1,
++                      .i2c_reg_len    = REGLEN_8bit,
++              } },
++      },
+       [SAA7164_BOARD_HAUPPAUGE_HVR2250] = {
+               .name           = "Hauppauge WinTV-HVR2250",
+               .porta          = SAA7164_MPEG_DVB,
+@@ -426,6 +486,10 @@ struct saa7164_subid saa7164_subids[] =
+               .subvendor = 0x0070,
+               .subdevice = 0x8851,
+               .card      = SAA7164_BOARD_HAUPPAUGE_HVR2250_2,
++      }, {
++              .subvendor = 0x0070,
++              .subdevice = 0x8940,
++              .card      = SAA7164_BOARD_HAUPPAUGE_HVR2200_4,
+       },
+ };
+ const unsigned int saa7164_idcount = ARRAY_SIZE(saa7164_subids);
+@@ -469,6 +533,7 @@ void saa7164_gpio_setup(struct saa7164_d
+       case SAA7164_BOARD_HAUPPAUGE_HVR2200:
+       case SAA7164_BOARD_HAUPPAUGE_HVR2200_2:
+       case SAA7164_BOARD_HAUPPAUGE_HVR2200_3:
++      case SAA7164_BOARD_HAUPPAUGE_HVR2200_4:
+       case SAA7164_BOARD_HAUPPAUGE_HVR2250:
+       case SAA7164_BOARD_HAUPPAUGE_HVR2250_2:
+       case SAA7164_BOARD_HAUPPAUGE_HVR2250_3:
+@@ -549,6 +614,7 @@ void saa7164_card_setup(struct saa7164_d
+       case SAA7164_BOARD_HAUPPAUGE_HVR2200:
+       case SAA7164_BOARD_HAUPPAUGE_HVR2200_2:
+       case SAA7164_BOARD_HAUPPAUGE_HVR2200_3:
++      case SAA7164_BOARD_HAUPPAUGE_HVR2200_4:
+       case SAA7164_BOARD_HAUPPAUGE_HVR2250:
+       case SAA7164_BOARD_HAUPPAUGE_HVR2250_2:
+       case SAA7164_BOARD_HAUPPAUGE_HVR2250_3:
+--- a/drivers/media/video/saa7164/saa7164-dvb.c
++++ b/drivers/media/video/saa7164/saa7164-dvb.c
+@@ -475,6 +475,7 @@ int saa7164_dvb_register(struct saa7164_
+       case SAA7164_BOARD_HAUPPAUGE_HVR2200:
+       case SAA7164_BOARD_HAUPPAUGE_HVR2200_2:
+       case SAA7164_BOARD_HAUPPAUGE_HVR2200_3:
++      case SAA7164_BOARD_HAUPPAUGE_HVR2200_4:
+               i2c_bus = &dev->i2c_bus[port->nr + 1];
+               switch (port->nr) {
+               case 0:
+--- a/drivers/media/video/saa7164/saa7164.h
++++ b/drivers/media/video/saa7164/saa7164.h
+@@ -83,6 +83,7 @@
+ #define SAA7164_BOARD_HAUPPAUGE_HVR2200_3     6
+ #define SAA7164_BOARD_HAUPPAUGE_HVR2250_2     7
+ #define SAA7164_BOARD_HAUPPAUGE_HVR2250_3     8
++#define SAA7164_BOARD_HAUPPAUGE_HVR2200_4     9
+ #define SAA7164_MAX_UNITS             8
+ #define SAA7164_TS_NUMBER_OF_LINES    312
diff --git a/queue-3.0/series b/queue-3.0/series
new file mode 100644 (file)
index 0000000..a445537
--- /dev/null
@@ -0,0 +1,6 @@
+genirq-fix-irqfixup-irqpoll-regression.patch
+fix-warning-at-drivers-scsi-scsi_lib.c-1704.patch
+hpsa-disable-aspm.patch
+aacraid-controller-hangs-if-kernel-uses-non-default-aspm-policy.patch
+saa7164-add-support-for-another-hvr2200-hardware-revision.patch
+drm-i915-pch-save-restore-pch_port_hotplug-across-suspend.patch