diff options
author | Alexandre Oliva <lxoliva@fsfla.org> | 2012-07-07 01:19:52 +0000 |
---|---|---|
committer | Alexandre Oliva <lxoliva@fsfla.org> | 2012-07-07 01:19:52 +0000 |
commit | 094f7d47a77950286eee77e3a89acc5677435a90 (patch) | |
tree | 2fac0dd655e128c97a8d9445c97ff957ec1ac19e /freed-ora/current/f16 | |
parent | b644c5fbf91ff858dcf756debb3b975b298b1930 (diff) | |
download | linux-libre-raptor-094f7d47a77950286eee77e3a89acc5677435a90.tar.gz linux-libre-raptor-094f7d47a77950286eee77e3a89acc5677435a90.zip |
3.4.4-4.fc16.gnu
Diffstat (limited to 'freed-ora/current/f16')
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 + |