From: Greg Kroah-Hartman Date: Thu, 5 Jun 2014 03:31:35 +0000 (-0700) Subject: 3.4-stable patches X-Git-Tag: v3.14.6~14 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6f4cabda1d9b25fdd4b5ab047049ace992cd1a8f;p=thirdparty%2Fkernel%2Fstable-queue.git 3.4-stable patches added patches: ata_piix-add-device-ids-for-intel-lynx-point-lp-pch.patch drivers-rtc-rtc-pl031.c-fix-the-missing-operation-on-enable.patch drivers-rtc-rtc-pl031.c-restore-st-variant-functionality.patch i2c-tegra-check-the-clk_prepare_enable-return-value.patch ixgbe-fix-registration-order-of-driver-and-dca-nofitication.patch msi-wmi-fix-memory-leak.patch random-fix-accounting-race-condition-with-lockless-irq-entropy_count-update.patch rapidio-tsi721-fix-bug-in-msi-interrupt-handling.patch rapidio-tsi721-fix-interrupt-mask-when-handling-msi.patch rt2800usb-add-support-for-2001-3c1e-d-link-dwa-125-rev-b1-usb-wi-fi-adapter.patch speakup-lower-default-software-speech-rate.patch wireless-rt2x00-add-device-id-for-sweex-lw323-to-rt2800usb.c.patch wireless-rt2x00-rt-2500-73-usb.c-put-back-duplicate-id.patch --- diff --git a/queue-3.4/ata_piix-add-device-ids-for-intel-lynx-point-lp-pch.patch b/queue-3.4/ata_piix-add-device-ids-for-intel-lynx-point-lp-pch.patch new file mode 100644 index 00000000000..9042fd5e330 --- /dev/null +++ b/queue-3.4/ata_piix-add-device-ids-for-intel-lynx-point-lp-pch.patch @@ -0,0 +1,38 @@ +From d3493114eccc62a0a74f183adaf1fbb58f3bfc38 Mon Sep 17 00:00:00 2001 +From: James Ralston +Date: Thu, 9 Aug 2012 09:34:20 -0700 +Subject: ata_piix: Add Device IDs for Intel Lynx Point-LP PCH + +From: James Ralston + +commit 389cd784969e9148fedcde0608f15bd74d6b769e upstream. + +This patch adds the IDE-mode SATA Device IDs for the Intel Lynx Point-LP PCH + +Signed-off-by: James Ralston +Signed-off-by: Jeff Garzik +Signed-off-by: Ben Hutchings +Cc: Qiang Huang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/ata/ata_piix.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +--- a/drivers/ata/ata_piix.c ++++ b/drivers/ata/ata_piix.c +@@ -331,6 +331,14 @@ static const struct pci_device_id piix_p + { 0x8086, 0x8c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata_snb }, + /* SATA Controller IDE (Lynx Point) */ + { 0x8086, 0x8c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, ++ /* SATA Controller IDE (Lynx Point-LP) */ ++ { 0x8086, 0x9c00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb }, ++ /* SATA Controller IDE (Lynx Point-LP) */ ++ { 0x8086, 0x9c01, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_sata_snb }, ++ /* SATA Controller IDE (Lynx Point-LP) */ ++ { 0x8086, 0x9c08, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, ++ /* SATA Controller IDE (Lynx Point-LP) */ ++ { 0x8086, 0x9c09, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, + /* SATA Controller IDE (DH89xxCC) */ + { 0x8086, 0x2326, PCI_ANY_ID, PCI_ANY_ID, 0, 0, ich8_2port_sata }, + /* SATA Controller IDE (Avoton) */ diff --git a/queue-3.4/drivers-rtc-rtc-pl031.c-fix-the-missing-operation-on-enable.patch b/queue-3.4/drivers-rtc-rtc-pl031.c-fix-the-missing-operation-on-enable.patch new file mode 100644 index 00000000000..24dfb2dc5a8 --- /dev/null +++ b/queue-3.4/drivers-rtc-rtc-pl031.c-fix-the-missing-operation-on-enable.patch @@ -0,0 +1,65 @@ +From 6ec37f6672820465afae0a1dee6d52b11248f7cd Mon Sep 17 00:00:00 2001 +From: Haojian Zhuang +Date: Mon, 4 Feb 2013 14:28:54 -0800 +Subject: drivers/rtc/rtc-pl031.c: fix the missing operation on enable + +From: Haojian Zhuang + +commit e7e034e18a0ab6bafb2425c3242cac311164f4d6 upstream. + +The RTC control register should be enabled in the process of +initializing. + +Without this patch, I failed to enable RTC in Hisilicon Hi3620 SoC. The +register mapping section in RTC is always read as zero. So I doubt that +ST guys may already enable this register in bootloader. So they won't +meet this issue. + +Signed-off-by: Haojian Zhuang +Cc: Srinidhi Kasagar +Cc: Linus Walleij +Cc: Alessandro Zummo +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +[bwh: Backported to 3.2: adjust context] +Signed-off-by: Ben Hutchings +Cc: Qiang Huang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/rtc/rtc-pl031.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +--- a/drivers/rtc/rtc-pl031.c ++++ b/drivers/rtc/rtc-pl031.c +@@ -44,6 +44,7 @@ + #define RTC_YMR 0x34 /* Year match register */ + #define RTC_YLR 0x38 /* Year data load register */ + ++#define RTC_CR_EN (1 << 0) /* counter enable bit */ + #define RTC_CR_CWEN (1 << 26) /* Clockwatch enable bit */ + + #define RTC_TCR_EN (1 << 1) /* Periodic timer enable bit */ +@@ -312,7 +313,7 @@ static int pl031_probe(struct amba_devic + int ret; + struct pl031_local *ldata; + struct rtc_class_ops *ops = id->data; +- unsigned long time; ++ unsigned long time, data; + + ret = amba_request_regions(adev, NULL); + if (ret) +@@ -339,10 +340,11 @@ static int pl031_probe(struct amba_devic + dev_dbg(&adev->dev, "designer ID = 0x%02x\n", ldata->hw_designer); + dev_dbg(&adev->dev, "revision = 0x%01x\n", ldata->hw_revision); + ++ data = readl(ldata->base + RTC_CR); + /* Enable the clockwatch on ST Variants */ + if (ldata->hw_designer == AMBA_VENDOR_ST) +- writel(readl(ldata->base + RTC_CR) | RTC_CR_CWEN, +- ldata->base + RTC_CR); ++ data |= RTC_CR_CWEN; ++ writel(data | RTC_CR_EN, ldata->base + RTC_CR); + + /* + * On ST PL031 variants, the RTC reset value does not provide correct diff --git a/queue-3.4/drivers-rtc-rtc-pl031.c-restore-st-variant-functionality.patch b/queue-3.4/drivers-rtc-rtc-pl031.c-restore-st-variant-functionality.patch new file mode 100644 index 00000000000..458da349bd6 --- /dev/null +++ b/queue-3.4/drivers-rtc-rtc-pl031.c-restore-st-variant-functionality.patch @@ -0,0 +1,45 @@ +From 7366b52c44b46c073a4bf1285ca09ca6ce5d9b39 Mon Sep 17 00:00:00 2001 +From: Linus Walleij +Date: Tue, 12 Feb 2013 13:46:19 -0800 +Subject: drivers/rtc/rtc-pl031.c: restore ST variant functionality + +From: Linus Walleij + +commit 3399cfb5df9594495b876d1843a7165f77366b2b upstream. + +Commit e7e034e18a0a ("drivers/rtc/rtc-pl031.c: fix the missing operation +on enable") accidentally broke the ST variants of PL031. + +The bit that is being poked as "clockwatch" enable bit for the ST +variants does the work of bit 0 on this variant. Bit 0 is used for a +clock divider on the ST variants, and setting it to 1 will affect +timekeeping in a very bad way. + +Signed-off-by: Linus Walleij +Acked-by: Haojian Zhuang +Cc: Mian Yousaf KAUKAB +Cc: Srinidhi Kasagar +Cc: Alessandro Zummo +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Ben Hutchings +Cc: Qiang Huang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/rtc/rtc-pl031.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/rtc/rtc-pl031.c ++++ b/drivers/rtc/rtc-pl031.c +@@ -344,7 +344,9 @@ static int pl031_probe(struct amba_devic + /* Enable the clockwatch on ST Variants */ + if (ldata->hw_designer == AMBA_VENDOR_ST) + data |= RTC_CR_CWEN; +- writel(data | RTC_CR_EN, ldata->base + RTC_CR); ++ else ++ data |= RTC_CR_EN; ++ writel(data, ldata->base + RTC_CR); + + /* + * On ST PL031 variants, the RTC reset value does not provide correct diff --git a/queue-3.4/i2c-tegra-check-the-clk_prepare_enable-return-value.patch b/queue-3.4/i2c-tegra-check-the-clk_prepare_enable-return-value.patch new file mode 100644 index 00000000000..a67fc1c2524 --- /dev/null +++ b/queue-3.4/i2c-tegra-check-the-clk_prepare_enable-return-value.patch @@ -0,0 +1,61 @@ +From e52ca26060bbe254ea3f8d7b31ecc998e085ec02 Mon Sep 17 00:00:00 2001 +From: Laxman Dewangan +Date: Fri, 15 Mar 2013 05:34:08 +0000 +Subject: i2c: tegra: check the clk_prepare_enable() return value + +From: Laxman Dewangan + +commit 132c803f7b70b17322579f6f4f3f65cf68e55135 upstream. + +NVIDIA's Tegra SoC allows read/write of controller register only +if controller clock is enabled. System hangs if read/write happens +to registers without enabling clock. + +clk_prepare_enable() can be fail due to unknown reason and hence +adding check for return value of this function. If this function +success then only access register otherwise return to caller with +error. + +Signed-off-by: Laxman Dewangan +Reviewed-by: Stephen Warren +Signed-off-by: Wolfram Sang +[bwh: Backported to 3.2: + - Adjust context + - Keep calling clk_enable() directly] +Signed-off-by: Ben Hutchings +Cc: Qiang Huang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/i2c/busses/i2c-tegra.c | 13 +++++++++++-- + 1 file changed, 11 insertions(+), 2 deletions(-) + +--- a/drivers/i2c/busses/i2c-tegra.c ++++ b/drivers/i2c/busses/i2c-tegra.c +@@ -341,7 +341,11 @@ static int tegra_i2c_init(struct tegra_i + u32 val; + int err = 0; + +- clk_enable(i2c_dev->clk); ++ err = clk_enable(i2c_dev->clk); ++ if (err < 0) { ++ dev_err(i2c_dev->dev, "Clock enable failed %d\n", err); ++ return err; ++ } + + tegra_periph_reset_assert(i2c_dev->clk); + udelay(2); +@@ -543,7 +547,12 @@ static int tegra_i2c_xfer(struct i2c_ada + if (i2c_dev->is_suspended) + return -EBUSY; + +- clk_enable(i2c_dev->clk); ++ ret = clk_enable(i2c_dev->clk); ++ if (ret < 0) { ++ dev_err(i2c_dev->dev, "Clock enable failed %d\n", ret); ++ return ret; ++ } ++ + for (i = 0; i < num; i++) { + int stop = (i == (num - 1)) ? 1 : 0; + ret = tegra_i2c_xfer_msg(i2c_dev, &msgs[i], stop); diff --git a/queue-3.4/ixgbe-fix-registration-order-of-driver-and-dca-nofitication.patch b/queue-3.4/ixgbe-fix-registration-order-of-driver-and-dca-nofitication.patch new file mode 100644 index 00000000000..d5918a9bb6b --- /dev/null +++ b/queue-3.4/ixgbe-fix-registration-order-of-driver-and-dca-nofitication.patch @@ -0,0 +1,47 @@ +From 8ebfe28181b02766ac41d9d841801c146e6161c1 Mon Sep 17 00:00:00 2001 +From: Jakub Kicinski +Date: Wed, 3 Apr 2013 16:50:54 +0000 +Subject: ixgbe: fix registration order of driver and DCA nofitication + +From: Jakub Kicinski + +commit f01fc1a82c2ee68726b400fadb156bd623b5f2f1 upstream. + +ixgbe_notify_dca cannot be called before driver registration +because it expects driver's klist_devices to be allocated and +initialized. While on it make sure debugfs files are removed +when registration fails. + +Signed-off-by: Jakub Kicinski +Tested-by: Phil Schmitt +Signed-off-by: Jeff Kirsher +Signed-off-by: David S. Miller +[bwh: Backported to 3.2: no debugfs support] +Signed-off-by: Ben Hutchings +Cc: Qiang Huang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +--- a/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c ++++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_main.c +@@ -7464,12 +7464,15 @@ static int __init ixgbe_init_module(void + pr_info("%s - version %s\n", ixgbe_driver_string, ixgbe_driver_version); + pr_info("%s\n", ixgbe_copyright); + ++ ret = pci_register_driver(&ixgbe_driver); ++ if (ret) ++ return ret; ++ + #ifdef CONFIG_IXGBE_DCA + dca_register_notify(&dca_notifier); + #endif + +- ret = pci_register_driver(&ixgbe_driver); +- return ret; ++ return 0; + } + + module_init(ixgbe_init_module); diff --git a/queue-3.4/msi-wmi-fix-memory-leak.patch b/queue-3.4/msi-wmi-fix-memory-leak.patch new file mode 100644 index 00000000000..e699c691545 --- /dev/null +++ b/queue-3.4/msi-wmi-fix-memory-leak.patch @@ -0,0 +1,44 @@ +From b2fd07f1a7d242f1f53711546cbd5f8fecba8891 Mon Sep 17 00:00:00 2001 +From: Maxim Mikityanskiy +Date: Sat, 15 Dec 2012 19:31:31 +0200 +Subject: msi-wmi: Fix memory leak + +From: Maxim Mikityanskiy + +commit 51c94491c82c3d9029f6e87a1a153db321d88e35 upstream. + +Fix memory leak - don't forget to kfree ACPI object when returning from +msi_wmi_notify() after suppressing key event. + +Signed-off-by: Maxim Mikityanskiy +Acked-by: Anisse Astier +Signed-off-by: Lee, Chun-Yi +Signed-off-by: Matthew Garrett +Signed-off-by: Ben Hutchings +Cc: Qiang Huang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/platform/x86/msi-wmi.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +--- a/drivers/platform/x86/msi-wmi.c ++++ b/drivers/platform/x86/msi-wmi.c +@@ -176,7 +176,7 @@ static void msi_wmi_notify(u32 value, vo + pr_debug("Suppressed key event 0x%X - " + "Last press was %lld us ago\n", + key->code, ktime_to_us(diff)); +- return; ++ goto msi_wmi_notify_exit; + } + last_pressed[key->code - SCANCODE_BASE] = cur; + +@@ -195,6 +195,8 @@ static void msi_wmi_notify(u32 value, vo + pr_info("Unknown key pressed - %x\n", eventcode); + } else + pr_info("Unknown event received\n"); ++ ++msi_wmi_notify_exit: + kfree(response.pointer); + } + diff --git a/queue-3.4/random-fix-accounting-race-condition-with-lockless-irq-entropy_count-update.patch b/queue-3.4/random-fix-accounting-race-condition-with-lockless-irq-entropy_count-update.patch new file mode 100644 index 00000000000..958473b8e68 --- /dev/null +++ b/queue-3.4/random-fix-accounting-race-condition-with-lockless-irq-entropy_count-update.patch @@ -0,0 +1,74 @@ +From c1bfba08b91429f57ee1184e52a607b7ec1739e4 Mon Sep 17 00:00:00 2001 +From: Jiri Kosina +Date: Fri, 24 May 2013 15:55:33 -0700 +Subject: random: fix accounting race condition with lockless irq entropy_count update + +From: Jiri Kosina + +commit 10b3a32d292c21ea5b3ad5ca5975e88bb20b8d68 upstream. + +Commit 902c098a3663 ("random: use lockless techniques in the interrupt +path") turned IRQ path from being spinlock protected into lockless +cmpxchg-retry update. + +That commit removed r->lock serialization between crediting entropy bits +from IRQ context and accounting when extracting entropy on userspace +read path, but didn't turn the r->entropy_count reads/updates in +account() to use cmpxchg as well. + +It has been observed, that under certain circumstances this leads to +read() on /dev/urandom to return 0 (EOF), as r->entropy_count gets +corrupted and becomes negative, which in turn results in propagating 0 +all the way from account() to the actual read() call. + +Convert the accounting code to be the proper lockless counterpart of +what has been partially done by 902c098a3663. + +Signed-off-by: Jiri Kosina +Cc: Theodore Ts'o +Cc: Greg KH +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +[bwh: Backported to 3.2: adjust context] +Signed-off-by: Ben Hutchings +Cc: Qiang Huang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/char/random.c | 22 +++++++++++++++------- + 1 file changed, 15 insertions(+), 7 deletions(-) + +--- a/drivers/char/random.c ++++ b/drivers/char/random.c +@@ -867,16 +867,24 @@ static size_t account(struct entropy_sto + if (r->entropy_count / 8 < min + reserved) { + nbytes = 0; + } else { ++ int entropy_count, orig; ++retry: ++ entropy_count = orig = ACCESS_ONCE(r->entropy_count); + /* If limited, never pull more than available */ +- if (r->limit && nbytes + reserved >= r->entropy_count / 8) +- nbytes = r->entropy_count/8 - reserved; ++ if (r->limit && nbytes + reserved >= entropy_count / 8) ++ nbytes = entropy_count/8 - reserved; + +- if (r->entropy_count / 8 >= nbytes + reserved) +- r->entropy_count -= nbytes*8; +- else +- r->entropy_count = reserved; ++ if (entropy_count / 8 >= nbytes + reserved) { ++ entropy_count -= nbytes*8; ++ if (cmpxchg(&r->entropy_count, orig, entropy_count) != orig) ++ goto retry; ++ } else { ++ entropy_count = reserved; ++ if (cmpxchg(&r->entropy_count, orig, entropy_count) != orig) ++ goto retry; ++ } + +- if (r->entropy_count < random_write_wakeup_thresh) { ++ if (entropy_count < random_write_wakeup_thresh) { + wake_up_interruptible(&random_write_wait); + kill_fasync(&fasync, SIGIO, POLL_OUT); + } diff --git a/queue-3.4/rapidio-tsi721-fix-bug-in-msi-interrupt-handling.patch b/queue-3.4/rapidio-tsi721-fix-bug-in-msi-interrupt-handling.patch new file mode 100644 index 00000000000..062c9542b5e --- /dev/null +++ b/queue-3.4/rapidio-tsi721-fix-bug-in-msi-interrupt-handling.patch @@ -0,0 +1,61 @@ +From 1619f441963ea57fa1082d046da867acfcd4d099 Mon Sep 17 00:00:00 2001 +From: Alexandre Bounine +Date: Fri, 24 May 2013 15:55:17 -0700 +Subject: rapidio/tsi721: fix bug in MSI interrupt handling + +From: Alexandre Bounine + +commit 1ccc819da6fda9bee10ab8b72e9adbb5ad3e4959 upstream. + +Fix bug in MSI interrupt handling which causes loss of event +notifications. + +Typical indication of lost MSI interrupts are stalled message and +doorbell transfers between RapidIO endpoints. To avoid loss of MSI +interrupts all interrupts from the device must be disabled on entering +the interrupt handler routine and re-enabled when exiting it. +Re-enabling device interrupts will trigger new MSI message(s) if Tsi721 +registered new events since entering interrupt handler routine. + +This patch is applicable to kernel versions starting from v3.2. + +Signed-off-by: Alexandre Bounine +Cc: Matt Porter +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +[bwh: Backported to 3.2: adjust context] +Signed-off-by: Ben Hutchings +Cc: Qiang Huang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/rapidio/devices/tsi721.c | 11 +++++++++++ + 1 file changed, 11 insertions(+) + +--- a/drivers/rapidio/devices/tsi721.c ++++ b/drivers/rapidio/devices/tsi721.c +@@ -475,6 +475,10 @@ static irqreturn_t tsi721_irqhandler(int + u32 intval; + u32 ch_inte; + ++ /* For MSI mode disable all device-level interrupts */ ++ if (priv->flags & TSI721_USING_MSI) ++ iowrite32(0, priv->regs + TSI721_DEV_INTE); ++ + dev_int = ioread32(priv->regs + TSI721_DEV_INT); + if (!dev_int) + return IRQ_NONE; +@@ -548,6 +552,13 @@ static irqreturn_t tsi721_irqhandler(int + tsi721_pw_handler(mport); + } + ++ /* For MSI mode re-enable device-level interrupts */ ++ if (priv->flags & TSI721_USING_MSI) { ++ dev_int = TSI721_DEV_INT_SR2PC_CH | TSI721_DEV_INT_SRIO | ++ TSI721_DEV_INT_SMSG_CH | TSI721_DEV_INT_BDMA_CH; ++ iowrite32(dev_int, priv->regs + TSI721_DEV_INTE); ++ } ++ + return IRQ_HANDLED; + } + diff --git a/queue-3.4/rapidio-tsi721-fix-interrupt-mask-when-handling-msi.patch b/queue-3.4/rapidio-tsi721-fix-interrupt-mask-when-handling-msi.patch new file mode 100644 index 00000000000..2695d384097 --- /dev/null +++ b/queue-3.4/rapidio-tsi721-fix-interrupt-mask-when-handling-msi.patch @@ -0,0 +1,36 @@ +From 94e0104bca7d6927e85119030b8e6e31fde88a7a Mon Sep 17 00:00:00 2001 +From: Ben Hutchings +Date: Sun, 2 Jun 2013 03:34:36 +0100 +Subject: rapidio/tsi721: Fix interrupt mask when handling MSI + +From: Ben Hutchings + +commit 94e0104bca7d6927e85119030b8e6e31fde88a7a upstream. + +Commit 1619f441963e 'rapidio/tsi721: fix bug in MSI interrupt +handling' (commit 1ccc819da6fd upstream) makes the MSI handler disable +and re-enable interrupts. When re-enabling interrupts, we should set +the same flags as were originally set, but this changed in Linux 3.5 so +the flags are now inconsistent in 3.2. In fact, the extra flag isn't +even defined in 3.2. Remove the extra flag from the MSI handler. + +Reported-by: Steve Conklin +Signed-off-by: Ben Hutchings +Cc: Qiang Huang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/rapidio/devices/tsi721.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/rapidio/devices/tsi721.c ++++ b/drivers/rapidio/devices/tsi721.c +@@ -555,7 +555,7 @@ static irqreturn_t tsi721_irqhandler(int + /* For MSI mode re-enable device-level interrupts */ + if (priv->flags & TSI721_USING_MSI) { + dev_int = TSI721_DEV_INT_SR2PC_CH | TSI721_DEV_INT_SRIO | +- TSI721_DEV_INT_SMSG_CH | TSI721_DEV_INT_BDMA_CH; ++ TSI721_DEV_INT_SMSG_CH; + iowrite32(dev_int, priv->regs + TSI721_DEV_INTE); + } + diff --git a/queue-3.4/rt2800usb-add-support-for-2001-3c1e-d-link-dwa-125-rev-b1-usb-wi-fi-adapter.patch b/queue-3.4/rt2800usb-add-support-for-2001-3c1e-d-link-dwa-125-rev-b1-usb-wi-fi-adapter.patch new file mode 100644 index 00000000000..b4e3007d6a8 --- /dev/null +++ b/queue-3.4/rt2800usb-add-support-for-2001-3c1e-d-link-dwa-125-rev-b1-usb-wi-fi-adapter.patch @@ -0,0 +1,42 @@ +From 31317e96c36a1d45bf6618a8f02839c924d2bcaf Mon Sep 17 00:00:00 2001 +From: Maia Kozheva +Date: Sun, 9 Dec 2012 16:07:40 +0700 +Subject: rt2800usb: Add support for 2001:3c1e (D-Link DWA-125 rev B1) USB Wi-Fi adapter + +From: Maia Kozheva + +commit fd7b9270120ca7e53fbf0469febe0c68acf6a0a2 upstream. + +D-Link DWA-125/B1 is a relatively new USB Wi-Fi adapter, using a +Ralink chipset supported by the rt2800usb driver. Currently, to work +around the problem (it's missing in all present kernel versions, +up to and including 3.7.x), I had to add this to /etc/rc.local: + +echo 2001 3c1e >> /sys/bus/usb/drivers/rt2800usb/new_id + +After that, the device works without problems. Been using it for over +a week with no bugs in sight. + +The attached patch is trivial and simply adds the new USB ID to the +list of devices handled by rt2800usb. + +Signed-off-by: Maia Kozheva +Signed-off-by: John W. Linville +Signed-off-by: Ben Hutchings +Cc: Qiang Huang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/rt2x00/rt2800usb.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/net/wireless/rt2x00/rt2800usb.c ++++ b/drivers/net/wireless/rt2x00/rt2800usb.c +@@ -1009,6 +1009,7 @@ static struct usb_device_id rt2800usb_de + { USB_DEVICE(0x07d1, 0x3c15) }, + { USB_DEVICE(0x07d1, 0x3c16) }, + { USB_DEVICE(0x2001, 0x3c1b) }, ++ { USB_DEVICE(0x2001, 0x3c1e) }, + /* Draytek */ + { USB_DEVICE(0x07fa, 0x7712) }, + /* DVICO */ diff --git a/queue-3.4/series b/queue-3.4/series index f9acea671d0..89ce7a068d7 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -185,3 +185,16 @@ drm-pad-drm_mode_get_connector-to-64-bit-boundary.patch drm-ttm-fix-memory-type-compatibility-check.patch drm-radeon-fix-hdmi-mode-enable-on-rs600-rs690-rs740.patch drm-radeon-always-program-the-mc-on-startup.patch +drivers-rtc-rtc-pl031.c-fix-the-missing-operation-on-enable.patch +wireless-rt2x00-rt-2500-73-usb.c-put-back-duplicate-id.patch +wireless-rt2x00-add-device-id-for-sweex-lw323-to-rt2800usb.c.patch +rt2800usb-add-support-for-2001-3c1e-d-link-dwa-125-rev-b1-usb-wi-fi-adapter.patch +drivers-rtc-rtc-pl031.c-restore-st-variant-functionality.patch +ata_piix-add-device-ids-for-intel-lynx-point-lp-pch.patch +speakup-lower-default-software-speech-rate.patch +i2c-tegra-check-the-clk_prepare_enable-return-value.patch +ixgbe-fix-registration-order-of-driver-and-dca-nofitication.patch +msi-wmi-fix-memory-leak.patch +rapidio-tsi721-fix-bug-in-msi-interrupt-handling.patch +rapidio-tsi721-fix-interrupt-mask-when-handling-msi.patch +random-fix-accounting-race-condition-with-lockless-irq-entropy_count-update.patch diff --git a/queue-3.4/speakup-lower-default-software-speech-rate.patch b/queue-3.4/speakup-lower-default-software-speech-rate.patch new file mode 100644 index 00000000000..d29ff621e86 --- /dev/null +++ b/queue-3.4/speakup-lower-default-software-speech-rate.patch @@ -0,0 +1,38 @@ +From 6f06c8d13890b34a9de8760e7c0dc76291fdf682 Mon Sep 17 00:00:00 2001 +From: Samuel Thibault +Date: Sun, 26 Aug 2012 23:35:17 +0200 +Subject: speakup: lower default software speech rate + +From: Samuel Thibault + +commit cfd757010691eae4e17acc246f74e7622c3a2f05 upstream. + +Speech synthesis beginners need a low speech rate, and trained people +want a high speech rate. A medium speech rate is thus actually not a +good default for neither. Since trained people will typically know how +to change the rate, better default for a low speech rate, which +beginners can grasp and learn how to increase it afterwards + +This was agreed with users on the speakup mailing list. + +Signed-off-by: Samuel Thibault +Signed-off-by: Greg Kroah-Hartman +Signed-off-by: Ben Hutchings +Cc: Qiang Huang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/staging/speakup/speakup_soft.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/staging/speakup/speakup_soft.c ++++ b/drivers/staging/speakup/speakup_soft.c +@@ -46,7 +46,7 @@ static int misc_registered; + static struct var_t vars[] = { + { CAPS_START, .u.s = {"\x01+3p" } }, + { CAPS_STOP, .u.s = {"\x01-3p" } }, +- { RATE, .u.n = {"\x01%ds", 5, 0, 9, 0, 0, NULL } }, ++ { RATE, .u.n = {"\x01%ds", 2, 0, 9, 0, 0, NULL } }, + { PITCH, .u.n = {"\x01%dp", 5, 0, 9, 0, 0, NULL } }, + { VOL, .u.n = {"\x01%dv", 5, 0, 9, 0, 0, NULL } }, + { TONE, .u.n = {"\x01%dx", 1, 0, 2, 0, 0, NULL } }, diff --git a/queue-3.4/wireless-rt2x00-add-device-id-for-sweex-lw323-to-rt2800usb.c.patch b/queue-3.4/wireless-rt2x00-add-device-id-for-sweex-lw323-to-rt2800usb.c.patch new file mode 100644 index 00000000000..b28d1496f7a --- /dev/null +++ b/queue-3.4/wireless-rt2x00-add-device-id-for-sweex-lw323-to-rt2800usb.c.patch @@ -0,0 +1,36 @@ +From 8d675985b73d797b21e945979c473613690916cd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jaume=20Delcl=C3=B2s?= +Date: Fri, 2 Nov 2012 23:35:20 +0100 +Subject: Wireless: rt2x00: Add device id for Sweex LW323 to rt2800usb.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: =?UTF-8?q?Jaume=20Delcl=C3=B2s?= + +commit 36f318bb124b231c01db6965a009f46d5731f012 upstream. + +This patch adds detection for the Sweex LW323 USB wireless network card +in the rt2x00 driver (just one line in rt2800usb.c). +It applies to linux-3.7-rc3. + +Signed-off-by: Jaume Delclòs +Signed-off-by: John W. Linville +Signed-off-by: Ben Hutchings +Cc: Qiang Huang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/rt2x00/rt2800usb.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/net/wireless/rt2x00/rt2800usb.c ++++ b/drivers/net/wireless/rt2x00/rt2800usb.c +@@ -1140,6 +1140,7 @@ static struct usb_device_id rt2800usb_de + { USB_DEVICE(0x177f, 0x0153) }, + { USB_DEVICE(0x177f, 0x0302) }, + { USB_DEVICE(0x177f, 0x0313) }, ++ { USB_DEVICE(0x177f, 0x0323) }, + /* U-Media */ + { USB_DEVICE(0x157e, 0x300e) }, + { USB_DEVICE(0x157e, 0x3013) }, diff --git a/queue-3.4/wireless-rt2x00-rt-2500-73-usb.c-put-back-duplicate-id.patch b/queue-3.4/wireless-rt2x00-rt-2500-73-usb.c-put-back-duplicate-id.patch new file mode 100644 index 00000000000..f179b69fe2f --- /dev/null +++ b/queue-3.4/wireless-rt2x00-rt-2500-73-usb.c-put-back-duplicate-id.patch @@ -0,0 +1,48 @@ +From 647adb462006c503a7e9f5756685fb9a1f6b1334 Mon Sep 17 00:00:00 2001 +From: Xose Vazquez Perez +Date: Sat, 14 Apr 2012 23:00:01 +0200 +Subject: wireless: rt2x00: rt{2500,73}usb.c put back duplicate id + +From: Xose Vazquez Perez + +commit 8f35f787b75e9b6435ea37dabcae2d40dc72d31c upstream. + +put back 0x050d,0x7050 to rt73usb, same usb_id for two chips: + +K7SF5D7050A ver 2xxx is rt2500 +K7SF5D7050B ver 3xxx is rt73 + + + +Signed-off-by: Xose Vazquez Perez +Signed-off-by: John W. Linville +Signed-off-by: Ben Hutchings +Cc: Qiang Huang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/net/wireless/rt2x00/rt2500usb.c | 2 +- + drivers/net/wireless/rt2x00/rt73usb.c | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/net/wireless/rt2x00/rt2500usb.c ++++ b/drivers/net/wireless/rt2x00/rt2500usb.c +@@ -1921,7 +1921,7 @@ static struct usb_device_id rt2500usb_de + { USB_DEVICE(0x0b05, 0x1706) }, + { USB_DEVICE(0x0b05, 0x1707) }, + /* Belkin */ +- { USB_DEVICE(0x050d, 0x7050) }, ++ { USB_DEVICE(0x050d, 0x7050) }, /* FCC ID: K7SF5D7050A ver. 2.x */ + { USB_DEVICE(0x050d, 0x7051) }, + /* Cisco Systems */ + { USB_DEVICE(0x13b1, 0x000d) }, +--- a/drivers/net/wireless/rt2x00/rt73usb.c ++++ b/drivers/net/wireless/rt2x00/rt73usb.c +@@ -2422,6 +2422,7 @@ static struct usb_device_id rt73usb_devi + { USB_DEVICE(0x0b05, 0x1723) }, + { USB_DEVICE(0x0b05, 0x1724) }, + /* Belkin */ ++ { USB_DEVICE(0x050d, 0x7050) }, /* FCC ID: K7SF5D7050B ver. 3.x */ + { USB_DEVICE(0x050d, 0x705a) }, + { USB_DEVICE(0x050d, 0x905b) }, + { USB_DEVICE(0x050d, 0x905c) },