summaryrefslogtreecommitdiffstats
path: root/freed-ora/current/f16
diff options
context:
space:
mode:
authorAlexandre Oliva <lxoliva@fsfla.org>2012-07-07 01:19:52 +0000
committerAlexandre Oliva <lxoliva@fsfla.org>2012-07-07 01:19:52 +0000
commit094f7d47a77950286eee77e3a89acc5677435a90 (patch)
tree2fac0dd655e128c97a8d9445c97ff957ec1ac19e /freed-ora/current/f16
parentb644c5fbf91ff858dcf756debb3b975b298b1930 (diff)
downloadlinux-libre-raptor-094f7d47a77950286eee77e3a89acc5677435a90.tar.gz
linux-libre-raptor-094f7d47a77950286eee77e3a89acc5677435a90.zip
3.4.4-4.fc16.gnu
Diffstat (limited to 'freed-ora/current/f16')
-rw-r--r--freed-ora/current/f16/ACPI-video-Still-use-ACPI-backlight-control-if-_DOS-doesnt-exist.patch34
-rw-r--r--freed-ora/current/f16/USB-qmi_wwan-Add-ZTE-Vodafone-K3520-Z.patch54
-rw-r--r--freed-ora/current/f16/USB-qmi_wwan-Make-forced-int-4-whitelist-generic.patch47
-rw-r--r--freed-ora/current/f16/ath9k-fix-panic-caused-by-returning-a-descriptor-we-.patch66
-rw-r--r--freed-ora/current/f16/drm-nouveau-fbcon-using-nv_two_heads-is-not-a-good-i.patch40
-rw-r--r--freed-ora/current/f16/kernel.spec56
-rw-r--r--freed-ora/current/f16/net-qmi_wwan-fix-Gobi-device-probing.patch194
-rw-r--r--freed-ora/current/f16/rt2x00usb-fix-indexes-ordering-on-RX-queue-kick.patch43
-rw-r--r--freed-ora/current/f16/tg3-Apply-short-DMA-frag-workaround-to-5906.patch32
9 files changed, 565 insertions, 1 deletions
diff --git a/freed-ora/current/f16/ACPI-video-Still-use-ACPI-backlight-control-if-_DOS-doesnt-exist.patch b/freed-ora/current/f16/ACPI-video-Still-use-ACPI-backlight-control-if-_DOS-doesnt-exist.patch
new file mode 100644
index 000000000..a89711132
--- /dev/null
+++ b/freed-ora/current/f16/ACPI-video-Still-use-ACPI-backlight-control-if-_DOS-doesnt-exist.patch
@@ -0,0 +1,34 @@
+
+This is a regression introduced by commit
+ea9f8856bd6d4ed45885b06a338f7362cd6c60e5
+https://bugzilla.kernel.org/show_bug.cgi?id=43168
+
+Some platforms don't have _DOS control method, but the ACPI
+backlight still works.
+We should not invoke _DOS for these platforms.
+
+CC : Igor Murzov <intergalactic.anonymous@gmail.com>
+Signed-off-by: Zhang Rui <rui.zhang@intel.com>
+---
+ drivers/acpi/video.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+Index: rtd3/drivers/acpi/video.c
+===================================================================
+--- rtd3.orig/drivers/acpi/video.c
++++ rtd3/drivers/acpi/video.c
+@@ -558,6 +558,8 @@ acpi_video_bus_DOS(struct acpi_video_bus
+ union acpi_object arg0 = { ACPI_TYPE_INTEGER };
+ struct acpi_object_list args = { 1, &arg0 };
+
++ if (!video->cap._DOS)
++ return 0;
+
+ if (bios_flag < 0 || bios_flag > 3 || lcd_flag < 0 || lcd_flag > 1)
+ return -EINVAL;
+
+
+--
+To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at http://vger.kernel.org/majordomo-info.html \ No newline at end of file
diff --git a/freed-ora/current/f16/USB-qmi_wwan-Add-ZTE-Vodafone-K3520-Z.patch b/freed-ora/current/f16/USB-qmi_wwan-Add-ZTE-Vodafone-K3520-Z.patch
new file mode 100644
index 000000000..9ce05cc72
--- /dev/null
+++ b/freed-ora/current/f16/USB-qmi_wwan-Add-ZTE-Vodafone-K3520-Z.patch
@@ -0,0 +1,54 @@
+From f7142e6c226076fd40c2ebaad9fb0c9a631b790e Mon Sep 17 00:00:00 2001
+From: "Andrew Bird (Sphere Systems)" <ajb@spheresystems.co.uk>
+Date: Sat, 19 May 2012 22:28:38 +0000
+Subject: [PATCH] USB: qmi_wwan: Add ZTE (Vodafone) K3520-Z
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Andrew Bird <ajb@spheresystems.co.uk>
+Acked-by: Bjørn Mork <bjorn@mork.no>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/usb/qmi_wwan.c | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
+index b381368..63cfd0b 100644
+--- a/drivers/net/usb/qmi_wwan.c
++++ b/drivers/net/usb/qmi_wwan.c
+@@ -356,6 +356,15 @@ static const struct driver_info qmi_wwan_gobi = {
+ };
+
+ /* ZTE suck at making USB descriptors */
++static const struct driver_info qmi_wwan_force_int1 = {
++ .description = "Qualcomm WWAN/QMI device",
++ .flags = FLAG_WWAN,
++ .bind = qmi_wwan_bind_shared,
++ .unbind = qmi_wwan_unbind_shared,
++ .manage_power = qmi_wwan_manage_power,
++ .data = BIT(1), /* interface whitelist bitmap */
++};
++
+ static const struct driver_info qmi_wwan_force_int4 = {
+ .description = "Qualcomm WWAN/QMI device",
+ .flags = FLAG_WWAN,
+@@ -438,6 +447,15 @@ static const struct usb_device_id products[] = {
+ .bInterfaceProtocol = 0xff,
+ .driver_info = (unsigned long)&qmi_wwan_force_int4,
+ },
++ { /* ZTE (Vodafone) K3520-Z */
++ .match_flags = USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_INT_INFO,
++ .idVendor = 0x19d2,
++ .idProduct = 0x0055,
++ .bInterfaceClass = 0xff,
++ .bInterfaceSubClass = 0xff,
++ .bInterfaceProtocol = 0xff,
++ .driver_info = (unsigned long)&qmi_wwan_force_int1,
++ },
+ { /* ZTE (Vodafone) K3565-Z */
+ .match_flags = USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_INT_INFO,
+ .idVendor = 0x19d2,
+--
+1.7.10.2
+
diff --git a/freed-ora/current/f16/USB-qmi_wwan-Make-forced-int-4-whitelist-generic.patch b/freed-ora/current/f16/USB-qmi_wwan-Make-forced-int-4-whitelist-generic.patch
new file mode 100644
index 000000000..87e84a0bd
--- /dev/null
+++ b/freed-ora/current/f16/USB-qmi_wwan-Make-forced-int-4-whitelist-generic.patch
@@ -0,0 +1,47 @@
+From 00001880cd8faaa349fe2ebb158f7e0cd8026048 Mon Sep 17 00:00:00 2001
+From: "Andrew Bird (Sphere Systems)" <ajb@spheresystems.co.uk>
+Date: Sat, 19 May 2012 22:28:36 +0000
+Subject: [PATCH] USB: qmi_wwan: Make forced int 4 whitelist generic
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Change the forced interface 4 whitelist to use the generic shared
+binder instead of the Gobi specific one. Certain ZTE devices
+(K3520-Z & K3765-Z) don't work with the Gobi version, but function
+quite happily with the generic. This has been tested with the following
+devices:
+K3520-Z
+K3565-Z
+K3765-Z
+K4505-Z
+It hasn't been tested with the ZTE MF820D, which is the only other
+device that uses this whitelist at present. Although Bjorn doesn't
+expect any problems, any testing with that device would be appreciated.
+
+Signed-off-by: Andrew Bird <ajb@spheresystems.co.uk>
+Acked-by: Bjørn Mork <bjorn@mork.no>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/usb/qmi_wwan.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
+index fc1ebef..a0fee0d 100644
+--- a/drivers/net/usb/qmi_wwan.c
++++ b/drivers/net/usb/qmi_wwan.c
+@@ -357,9 +357,9 @@ static const struct driver_info qmi_wwan_gobi = {
+
+ /* ZTE suck at making USB descriptors */
+ static const struct driver_info qmi_wwan_force_int4 = {
+- .description = "Qualcomm Gobi wwan/QMI device",
++ .description = "Qualcomm WWAN/QMI device",
+ .flags = FLAG_WWAN,
+- .bind = qmi_wwan_bind_gobi,
++ .bind = qmi_wwan_bind_shared,
+ .unbind = qmi_wwan_unbind_shared,
+ .manage_power = qmi_wwan_manage_power,
+ .data = BIT(4), /* interface whitelist bitmap */
+--
+1.7.10.2
+
diff --git a/freed-ora/current/f16/ath9k-fix-panic-caused-by-returning-a-descriptor-we-.patch b/freed-ora/current/f16/ath9k-fix-panic-caused-by-returning-a-descriptor-we-.patch
new file mode 100644
index 000000000..aec1f4245
--- /dev/null
+++ b/freed-ora/current/f16/ath9k-fix-panic-caused-by-returning-a-descriptor-we-.patch
@@ -0,0 +1,66 @@
+From 6bb51c70cabaadddc54a6454844eceba91a56083 Mon Sep 17 00:00:00 2001
+From: Tom Hughes <tom@compton.nu>
+Date: Wed, 27 Jun 2012 18:21:15 +0100
+Subject: [PATCH] ath9k: fix panic caused by returning a descriptor we have
+ queued for reuse
+
+Commit 3a2923e83c introduced a bug when a corrupt descriptor
+is encountered - although the following descriptor is discarded
+and returned to the queue for reuse the associated frame is
+also returned for processing. This leads to a panic:
+
+BUG: unable to handle kernel NULL pointer dereference at 000000000000003a
+IP: [<ffffffffa02599a5>] ath_rx_tasklet+0x165/0x1b00 [ath9k]
+Call Trace:
+<IRQ>
+[<ffffffff812d7fa0>] ? map_single+0x60/0x60
+[<ffffffffa028f044>] ? ath9k_ioread32+0x34/0x90 [ath9k]
+[<ffffffffa0292eec>] athk9k_tasklet+0xdc/0x160 [ath9k]
+[<ffffffff8105e133>] tasklet_action+0x63/0xd0
+[<ffffffff8105dbc0>] __do_softirq+0xc0/0x1e0
+[<ffffffff8101a873>] ? native_sched_clock+0x13/0x80
+[<ffffffff815f9d5c>] call_softirq+0x1c/0x30
+[<ffffffff810151f5>] do_softirq+0x75/0xb0
+[<ffffffff8105df95>] irq_exit+0xb5/0xc0
+[<ffffffff815fa5b3>] do_IRQ+0x63/0xe0
+[<ffffffff815f0cea>] common_interrupt+0x6a/0x6a
+<EOI>
+[<ffffffff8131840a>] ? intel_idle+0xea/0x150
+[<ffffffff813183eb>] ? intel_idle+0xcb/0x150
+[<ffffffff814a1db9>] cpuidle_enter+0x19/0x20
+[<ffffffff814a23d9>] cpuidle_idle_call+0xa9/0x240
+[<ffffffff8101c4bf>] cpu_idle+0xaf/0x120
+[<ffffffff815cda8e>] rest_init+0x72/0x74
+[<ffffffff81cf4c1a>] start_kernel+0x3b7/0x3c4
+[<ffffffff81cf4662>] ? repair_env_string+0x5e/0x5e
+[<ffffffff81cf4346>] x86_64_start_reservations+0x131/0x135
+[<ffffffff81cf444a>] x86_64_start_kernel+0x100/0x10f
+
+Making sure bf is cleared to NULL in this case restores the
+old behaviour.
+
+Signed-off-by: Tom Hughes <tom@compton.nu>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+---
+ drivers/net/wireless/ath/ath9k/recv.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c
+index 599667a..0735aeb 100644
+--- a/drivers/net/wireless/ath/ath9k/recv.c
++++ b/drivers/net/wireless/ath/ath9k/recv.c
+@@ -695,9 +695,9 @@ static bool ath_edma_get_buffers(struct ath_softc *sc,
+ __skb_unlink(skb, &rx_edma->rx_fifo);
+ list_add_tail(&bf->list, &sc->rx.rxbuf);
+ ath_rx_edma_buf_link(sc, qtype);
+- } else {
+- bf = NULL;
+ }
++
++ bf = NULL;
+ }
+
+ *dest = bf;
+--
+1.7.10.2
+
diff --git a/freed-ora/current/f16/drm-nouveau-fbcon-using-nv_two_heads-is-not-a-good-i.patch b/freed-ora/current/f16/drm-nouveau-fbcon-using-nv_two_heads-is-not-a-good-i.patch
new file mode 100644
index 000000000..2b164755d
--- /dev/null
+++ b/freed-ora/current/f16/drm-nouveau-fbcon-using-nv_two_heads-is-not-a-good-i.patch
@@ -0,0 +1,40 @@
+From 9bd0c15fcfb42f6245447c53347d65ad9e72080b Mon Sep 17 00:00:00 2001
+From: Ben Skeggs <bskeggs@redhat.com>
+Date: Tue, 26 Jun 2012 12:12:30 +1000
+Subject: [PATCH] drm/nouveau/fbcon: using nv_two_heads is not a good idea
+
+nv_two_heads() was never meant to be used outside of pre-nv50 code. The
+code checks for >= NV_10 for 2 CRTCs, then downgrades a few specific
+chipsets to 1 CRTC based on (pci_device & 0x0ff0).
+
+The breakage example seen is on GTX 560Ti, with a pciid of 0x1200, which
+gets detected as an NV20 (0x020x) with 1 CRTC by nv_two_heads(), causing
+memory corruption because there's actually 2 CRTCs..
+
+This switches fbcon to use the CRTC count directly from the mode_config
+structure, which will also fix the same issue on Kepler boards which have
+4 CRTCs.
+
+Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Dave Airlie <airlied@redhat.com>
+---
+ drivers/gpu/drm/nouveau/nouveau_fbcon.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
+index 153b9a1..1074bc5 100644
+--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c
++++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
+@@ -467,7 +467,7 @@ int nouveau_fbcon_init(struct drm_device *dev)
+ nfbdev->helper.funcs = &nouveau_fbcon_helper_funcs;
+
+ ret = drm_fb_helper_init(dev, &nfbdev->helper,
+- nv_two_heads(dev) ? 2 : 1, 4);
++ dev->mode_config.num_crtc, 4);
+ if (ret) {
+ kfree(nfbdev);
+ return ret;
+--
+1.7.10.2
+
diff --git a/freed-ora/current/f16/kernel.spec b/freed-ora/current/f16/kernel.spec
index fb1232f87..60a19af7e 100644
--- a/freed-ora/current/f16/kernel.spec
+++ b/freed-ora/current/f16/kernel.spec
@@ -54,7 +54,7 @@ Summary: The Linux kernel
# For non-released -rc kernels, this will be appended after the rcX and
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
#
-%global baserelease 3
+%global baserelease 4
%global fedora_build %{baserelease}
# base_sublevel is the kernel version we're starting with and patching
@@ -838,6 +838,26 @@ Patch22036: block-fix-infinite-loop-in-__getblk_slow.patch
#rhbz 832867
Patch22040: mm-correctly-synchronize-rss-counters-at-exit-exec.patch
+#rhbz 832927
+Patch22041: ath9k-fix-panic-caused-by-returning-a-descriptor-we-.patch
+
+#rhbz 834910
+Patch22042: ACPI-video-Still-use-ACPI-backlight-control-if-_DOS-doesnt-exist.patch
+
+#rhbz 828824
+Patch22043: rt2x00usb-fix-indexes-ordering-on-RX-queue-kick.patch
+
+#rhbz 825123
+Patch22044: tg3-Apply-short-DMA-frag-workaround-to-5906.patch
+
+#rhbz 830359
+Patch22045: drm-nouveau-fbcon-using-nv_two_heads-is-not-a-good-i.patch
+
+#rhbz 829880
+Patch22046: USB-qmi_wwan-Make-forced-int-4-whitelist-generic.patch
+Patch22047: USB-qmi_wwan-Add-ZTE-Vodafone-K3520-Z.patch
+Patch22048: net-qmi_wwan-fix-Gobi-device-probing.patch
+
# END OF PATCH DEFINITIONS
%endif
@@ -1548,6 +1568,26 @@ ApplyPatch block-fix-infinite-loop-in-__getblk_slow.patch
#rhbz 832867
ApplyPatch mm-correctly-synchronize-rss-counters-at-exit-exec.patch
+#rhbz 832927
+ApplyPatch ath9k-fix-panic-caused-by-returning-a-descriptor-we-.patch
+
+#rhbz 834910
+ApplyPatch ACPI-video-Still-use-ACPI-backlight-control-if-_DOS-doesnt-exist.patch
+
+#rhbz 828824
+ApplyPatch rt2x00usb-fix-indexes-ordering-on-RX-queue-kick.patch
+
+#rhbz 825123
+ApplyPatch tg3-Apply-short-DMA-frag-workaround-to-5906.patch
+
+#rhbz 830359
+ApplyPatch drm-nouveau-fbcon-using-nv_two_heads-is-not-a-good-i.patch
+
+#rhbz 829880
+ApplyPatch USB-qmi_wwan-Make-forced-int-4-whitelist-generic.patch
+ApplyPatch USB-qmi_wwan-Add-ZTE-Vodafone-K3520-Z.patch
+ApplyPatch net-qmi_wwan-fix-Gobi-device-probing.patch
+
# END OF PATCH APPLICATIONS
%endif
@@ -2286,6 +2326,20 @@ fi
# and build.
%changelog
+* Thu Jul 05 2012 Josh Boyer <jwboyer@redhat.com>
+- Fix device misprobe for Gobi devices (rhbz 829880)
+- Fix breakage in nouveau with nv_two_heads (rhbz 830359)
+- Apply patch to fix tg3 watchdog hangs on BCM5906 devices (rhbz 825123)
+
+* Wed Jul 4 2012 Josh Boyer <jwboyer@redhat.com>
+- Patch from Stanislaw Gruszka to fix rt2x00 USB access point (rhbz 828824)
+
+* Tue Jul 3 2012 Josh Boyer <jwboyer@redhat.com>
+- Allow ACPI backlight to still work if _DOS isn't present (rhbz 834910)
+
+* Fri Jun 29 2012 John W. Linville <linville@redhat.com>
+- ath9k: fix panic caused by returning a descriptor we have... (rhbz 832927)
+
* Tue Jun 26 2012 Dave Jones <davej@redhat.com> 3.4.4-3
- Add mm-correctly-synchronize-rss-counters-at-exit-exec.patch (rhbz 832867)
diff --git a/freed-ora/current/f16/net-qmi_wwan-fix-Gobi-device-probing.patch b/freed-ora/current/f16/net-qmi_wwan-fix-Gobi-device-probing.patch
new file mode 100644
index 000000000..9dce14f4a
--- /dev/null
+++ b/freed-ora/current/f16/net-qmi_wwan-fix-Gobi-device-probing.patch
@@ -0,0 +1,194 @@
+From b9f90eb2740203ff2592efe640409ad48335d1c2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn@mork.no>
+Date: Thu, 21 Jun 2012 02:45:58 +0000
+Subject: [PATCH] net: qmi_wwan: fix Gobi device probing
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Ignoring interfaces with additional descriptors is not a reliable
+method for locating the correct interface on Gobi devices. There
+is at least one device where this method fails:
+https://bbs.archlinux.org/viewtopic.php?id=143506
+
+The result is that the AT command port (interface #2) is hidden
+from qcserial, preventing traditional serial modem usage:
+
+[ 15.562552] qmi_wwan 4-1.6:1.0: cdc-wdm0: USB WDM device
+[ 15.562691] qmi_wwan 4-1.6:1.0: wwan0: register 'qmi_wwan' at usb-0000:00:1d.0-1.6, Qualcomm Gobi wwan/QMI device, 1e:df:3c:3a:4e:3b
+[ 15.563383] qmi_wwan: probe of 4-1.6:1.1 failed with error -22
+[ 15.564189] qmi_wwan 4-1.6:1.2: cdc-wdm1: USB WDM device
+[ 15.564302] qmi_wwan 4-1.6:1.2: wwan1: register 'qmi_wwan' at usb-0000:00:1d.0-1.6, Qualcomm Gobi wwan/QMI device, 1e:df:3c:3a:4e:3b
+[ 15.564328] qmi_wwan: probe of 4-1.6:1.3 failed with error -22
+[ 15.569376] qcserial 4-1.6:1.1: Qualcomm USB modem converter detected
+[ 15.569440] usb 4-1.6: Qualcomm USB modem converter now attached to ttyUSB0
+[ 15.570372] qcserial 4-1.6:1.3: Qualcomm USB modem converter detected
+[ 15.570430] usb 4-1.6: Qualcomm USB modem converter now attached to ttyUSB1
+
+Use static interface numbers taken from the interface map in
+qcserial for all Gobi devices instead:
+
+ Gobi 1K USB layout:
+ 0: serial port (doesn't respond)
+ 1: serial port (doesn't respond)
+ 2: AT-capable modem port
+ 3: QMI/net
+
+ Gobi 2K+ USB layout:
+ 0: QMI/net
+ 1: DM/DIAG (use libqcdm from ModemManager for communication)
+ 2: AT-capable modem port
+ 3: NMEA
+
+This should be more reliable over all, and will also prevent the
+noisy "probe failed" messages. The whitelisting logic is expected
+to be replaced by direct interface number matching in 3.6.
+
+Reported-by: Heinrich Siebmanns (Harvey) <H.Siebmanns@t-online.de>
+Cc: <stable@vger.kernel.org> # v3.4: 0000188 USB: qmi_wwan: Make forced int 4 whitelist generic
+Cc: <stable@vger.kernel.org> # v3.4: f7142e6 USB: qmi_wwan: Add ZTE (Vodafone) K3520-Z
+Cc: <stable@vger.kernel.org> # v3.4
+Signed-off-by: Bjørn Mork <bjorn@mork.no>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/usb/qmi_wwan.c | 83 +++++++++++++++++++++-----------------------
+ 1 file changed, 40 insertions(+), 43 deletions(-)
+
+diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
+index 3b20678..3767a12 100644
+--- a/drivers/net/usb/qmi_wwan.c
++++ b/drivers/net/usb/qmi_wwan.c
+@@ -257,29 +257,6 @@ err:
+ return rv;
+ }
+
+-/* Gobi devices uses identical class/protocol codes for all interfaces regardless
+- * of function. Some of these are CDC ACM like and have the exact same endpoints
+- * we are looking for. This leaves two possible strategies for identifying the
+- * correct interface:
+- * a) hardcoding interface number, or
+- * b) use the fact that the wwan interface is the only one lacking additional
+- * (CDC functional) descriptors
+- *
+- * Let's see if we can get away with the generic b) solution.
+- */
+-static int qmi_wwan_bind_gobi(struct usbnet *dev, struct usb_interface *intf)
+-{
+- int rv = -EINVAL;
+-
+- /* ignore any interface with additional descriptors */
+- if (intf->cur_altsetting->extralen)
+- goto err;
+-
+- rv = qmi_wwan_bind_shared(dev, intf);
+-err:
+- return rv;
+-}
+-
+ static void qmi_wwan_unbind_shared(struct usbnet *dev, struct usb_interface *intf)
+ {
+ struct usb_driver *subdriver = (void *)dev->data[0];
+@@ -347,15 +324,15 @@ static const struct driver_info qmi_wwan_shared = {
+ .manage_power = qmi_wwan_manage_power,
+ };
+
+-static const struct driver_info qmi_wwan_gobi = {
+- .description = "Qualcomm Gobi wwan/QMI device",
++static const struct driver_info qmi_wwan_force_int0 = {
++ .description = "Qualcomm WWAN/QMI device",
+ .flags = FLAG_WWAN,
+- .bind = qmi_wwan_bind_gobi,
++ .bind = qmi_wwan_bind_shared,
+ .unbind = qmi_wwan_unbind_shared,
+ .manage_power = qmi_wwan_manage_power,
++ .data = BIT(0), /* interface whitelist bitmap */
+ };
+
+-/* ZTE suck at making USB descriptors */
+ static const struct driver_info qmi_wwan_force_int1 = {
+ .description = "Qualcomm WWAN/QMI device",
+ .flags = FLAG_WWAN,
+@@ -365,6 +342,15 @@ static const struct driver_info qmi_wwan_force_int1 = {
+ .data = BIT(1), /* interface whitelist bitmap */
+ };
+
++static const struct driver_info qmi_wwan_force_int3 = {
++ .description = "Qualcomm WWAN/QMI device",
++ .flags = FLAG_WWAN,
++ .bind = qmi_wwan_bind_shared,
++ .unbind = qmi_wwan_unbind_shared,
++ .manage_power = qmi_wwan_manage_power,
++ .data = BIT(3), /* interface whitelist bitmap */
++};
++
+ static const struct driver_info qmi_wwan_force_int4 = {
+ .description = "Qualcomm WWAN/QMI device",
+ .flags = FLAG_WWAN,
+@@ -390,16 +376,23 @@ static const struct driver_info qmi_wwan_force_int4 = {
+ static const struct driver_info qmi_wwan_sierra = {
+ .description = "Sierra Wireless wwan/QMI device",
+ .flags = FLAG_WWAN,
+- .bind = qmi_wwan_bind_gobi,
++ .bind = qmi_wwan_bind_shared,
+ .unbind = qmi_wwan_unbind_shared,
+ .manage_power = qmi_wwan_manage_power,
+ .data = BIT(8) | BIT(19), /* interface whitelist bitmap */
+ };
+
+ #define HUAWEI_VENDOR_ID 0x12D1
++
++/* Gobi 1000 QMI/wwan interface number is 3 according to qcserial */
++#define QMI_GOBI1K_DEVICE(vend, prod) \
++ USB_DEVICE(vend, prod), \
++ .driver_info = (unsigned long)&qmi_wwan_force_int3
++
++/* Gobi 2000 and Gobi 3000 QMI/wwan interface number is 0 according to qcserial */
+ #define QMI_GOBI_DEVICE(vend, prod) \
+ USB_DEVICE(vend, prod), \
+- .driver_info = (unsigned long)&qmi_wwan_gobi
++ .driver_info = (unsigned long)&qmi_wwan_force_int0
+
+ static const struct usb_device_id products[] = {
+ { /* Huawei E392, E398 and possibly others sharing both device id and more... */
+@@ -510,20 +503,24 @@ static const struct usb_device_id products[] = {
+ .bInterfaceProtocol = 0xff,
+ .driver_info = (unsigned long)&qmi_wwan_sierra,
+ },
+- {QMI_GOBI_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */
+- {QMI_GOBI_DEVICE(0x03f0, 0x1f1d)}, /* HP un2400 Gobi Modem Device */
+- {QMI_GOBI_DEVICE(0x03f0, 0x371d)}, /* HP un2430 Mobile Broadband Module */
+- {QMI_GOBI_DEVICE(0x04da, 0x250d)}, /* Panasonic Gobi Modem device */
+- {QMI_GOBI_DEVICE(0x413c, 0x8172)}, /* Dell Gobi Modem device */
+- {QMI_GOBI_DEVICE(0x1410, 0xa001)}, /* Novatel Gobi Modem device */
+- {QMI_GOBI_DEVICE(0x0b05, 0x1776)}, /* Asus Gobi Modem device */
+- {QMI_GOBI_DEVICE(0x19d2, 0xfff3)}, /* ONDA Gobi Modem device */
+- {QMI_GOBI_DEVICE(0x05c6, 0x9001)}, /* Generic Gobi Modem device */
+- {QMI_GOBI_DEVICE(0x05c6, 0x9002)}, /* Generic Gobi Modem device */
+- {QMI_GOBI_DEVICE(0x05c6, 0x9202)}, /* Generic Gobi Modem device */
+- {QMI_GOBI_DEVICE(0x05c6, 0x9203)}, /* Generic Gobi Modem device */
+- {QMI_GOBI_DEVICE(0x05c6, 0x9222)}, /* Generic Gobi Modem device */
+- {QMI_GOBI_DEVICE(0x05c6, 0x9009)}, /* Generic Gobi Modem device */
++
++ /* Gobi 1000 devices */
++ {QMI_GOBI1K_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */
++ {QMI_GOBI1K_DEVICE(0x03f0, 0x1f1d)}, /* HP un2400 Gobi Modem Device */
++ {QMI_GOBI1K_DEVICE(0x03f0, 0x371d)}, /* HP un2430 Mobile Broadband Module */
++ {QMI_GOBI1K_DEVICE(0x04da, 0x250d)}, /* Panasonic Gobi Modem device */
++ {QMI_GOBI1K_DEVICE(0x413c, 0x8172)}, /* Dell Gobi Modem device */
++ {QMI_GOBI1K_DEVICE(0x1410, 0xa001)}, /* Novatel Gobi Modem device */
++ {QMI_GOBI1K_DEVICE(0x0b05, 0x1776)}, /* Asus Gobi Modem device */
++ {QMI_GOBI1K_DEVICE(0x19d2, 0xfff3)}, /* ONDA Gobi Modem device */
++ {QMI_GOBI1K_DEVICE(0x05c6, 0x9001)}, /* Generic Gobi Modem device */
++ {QMI_GOBI1K_DEVICE(0x05c6, 0x9002)}, /* Generic Gobi Modem device */
++ {QMI_GOBI1K_DEVICE(0x05c6, 0x9202)}, /* Generic Gobi Modem device */
++ {QMI_GOBI1K_DEVICE(0x05c6, 0x9203)}, /* Generic Gobi Modem device */
++ {QMI_GOBI1K_DEVICE(0x05c6, 0x9222)}, /* Generic Gobi Modem device */
++ {QMI_GOBI1K_DEVICE(0x05c6, 0x9009)}, /* Generic Gobi Modem device */
++
++ /* Gobi 2000 and 3000 devices */
+ {QMI_GOBI_DEVICE(0x413c, 0x8186)}, /* Dell Gobi 2000 Modem device (N0218, VU936) */
+ {QMI_GOBI_DEVICE(0x05c6, 0x920b)}, /* Generic Gobi 2000 Modem device */
+ {QMI_GOBI_DEVICE(0x05c6, 0x9225)}, /* Sony Gobi 2000 Modem device (N0279, VU730) */
+--
+1.7.10.2
+
diff --git a/freed-ora/current/f16/rt2x00usb-fix-indexes-ordering-on-RX-queue-kick.patch b/freed-ora/current/f16/rt2x00usb-fix-indexes-ordering-on-RX-queue-kick.patch
new file mode 100644
index 000000000..76b83cca4
--- /dev/null
+++ b/freed-ora/current/f16/rt2x00usb-fix-indexes-ordering-on-RX-queue-kick.patch
@@ -0,0 +1,43 @@
+From e899a84a6e9bec0ce653713a48ca121cd754430c Mon Sep 17 00:00:00 2001
+From: Stanislaw Gruszka <sgruszka@redhat.com>
+Date: Mon, 2 Jul 2012 09:42:14 +0200
+Subject: [PATCH] rt2x00usb: fix indexes ordering on RX queue kick
+
+On rt2x00_dmastart() we increase index specified by Q_INDEX and on
+rt2x00_dmadone() we increase index specified by Q_INDEX_DONE. So entries
+between Q_INDEX_DONE and Q_INDEX are those we currently process in the
+hardware. Entries between Q_INDEX and Q_INDEX_DONE are those we can
+submit to the hardware.
+
+According to that fix rt2x00usb_kick_queue(), as we need to submit rx
+entries that are not processed by the hardware. It worked before only
+for empty queue, otherwise was broken.
+
+Note that for TX queues indexes ordering are ok. We need to kick entries
+that have filled skb, but was not submitted to the hardware, i.e.
+strted from Q_INDEX_DONE and have ENTRY_DATA_PENDING bit set.
+
+From practical standpoint this patch fixes AP mode connection hangs.
+
+Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+---
+ drivers/net/wireless/rt2x00/rt2x00usb.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.c b/drivers/net/wireless/rt2x00/rt2x00usb.c
+index d357d1e..74ecc33 100644
+--- a/drivers/net/wireless/rt2x00/rt2x00usb.c
++++ b/drivers/net/wireless/rt2x00/rt2x00usb.c
+@@ -436,8 +436,8 @@ void rt2x00usb_kick_queue(struct data_queue *queue)
+ case QID_RX:
+ if (!rt2x00queue_full(queue))
+ rt2x00queue_for_each_entry(queue,
+- Q_INDEX_DONE,
+ Q_INDEX,
++ Q_INDEX_DONE,
+ NULL,
+ rt2x00usb_kick_rx_entry);
+ break;
+--
+1.7.1
+
diff --git a/freed-ora/current/f16/tg3-Apply-short-DMA-frag-workaround-to-5906.patch b/freed-ora/current/f16/tg3-Apply-short-DMA-frag-workaround-to-5906.patch
new file mode 100644
index 000000000..5cb78c7ca
--- /dev/null
+++ b/freed-ora/current/f16/tg3-Apply-short-DMA-frag-workaround-to-5906.patch
@@ -0,0 +1,32 @@
+From b7abee6ef888117f92db370620ebf116a38e3f4d Mon Sep 17 00:00:00 2001
+From: Matt Carlson <mcarlson@broadcom.com>
+Date: Thu, 7 Jun 2012 12:56:54 +0000
+Subject: [PATCH] tg3: Apply short DMA frag workaround to 5906
+
+5906 devices also need the short DMA fragment workaround. This patch
+makes the necessary change.
+
+Signed-off-by: Matt Carlson <mcarlson@broadcom.com>
+Tested-by: Christian Kujau <lists@nerdbynature.de>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+---
+ drivers/net/ethernet/broadcom/tg3.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
+index edeeb51..e47ff8b 100644
+--- a/drivers/net/ethernet/broadcom/tg3.c
++++ b/drivers/net/ethernet/broadcom/tg3.c
+@@ -14275,7 +14275,8 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
+ }
+ }
+
+- if (tg3_flag(tp, 5755_PLUS))
++ if (tg3_flag(tp, 5755_PLUS) ||
++ GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906)
+ tg3_flag_set(tp, SHORT_DMA_BUG);
+
+ if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719)
+--
+1.7.10.2
+
OpenPOWER on IntegriCloud