diff options
author | Nicolás Reynolds <fauno@endefensadelsl.org> | 2013-07-09 21:04:53 -0300 |
---|---|---|
committer | Nicolás Reynolds <fauno@endefensadelsl.org> | 2013-07-09 21:04:53 -0300 |
commit | fd5ff7e53a5b8dbabc85ab6e2ff1342b85e155b1 (patch) | |
tree | d2b16d75c64d947545149f37bda7cdb8873a4770 /libre-testing/linux-libre/ath9k_htc-fix-target-is-unresponsive.patch | |
parent | 7823c9009a845174746fd0da09af46a138481851 (diff) | |
parent | 10aa61ef39e662453e1d817046e359372fe3b326 (diff) |
Merge branch 'master' of ssh://vparabola/home/parabola/abslibre-pre-mips64el
Conflicts:
community/aspell-pl/PKGBUILD
community/gloox/PKGBUILD
community/libircclient/PKGBUILD
community/mashup/PKGBUILD
community/omniorb/PKGBUILD
community/openbox/PKGBUILD
community/patchutils/PKGBUILD
community/rxvt-unicode/PKGBUILD
extra/mesa/PKGBUILD
extra/pygobject2/PKGBUILD
extra/qt5/PKGBUILD
extra/samba/PKGBUILD
extra/tdb/PKGBUILD
extra/transmission/PKGBUILD
extra/vim/PKGBUILD
pcr/python-sfml2/PKGBUILD
pcr/python2-sfml2/PKGBUILD
Diffstat (limited to 'libre-testing/linux-libre/ath9k_htc-fix-target-is-unresponsive.patch')
-rw-r--r-- | libre-testing/linux-libre/ath9k_htc-fix-target-is-unresponsive.patch | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/libre-testing/linux-libre/ath9k_htc-fix-target-is-unresponsive.patch b/libre-testing/linux-libre/ath9k_htc-fix-target-is-unresponsive.patch new file mode 100644 index 000000000..3ba839940 --- /dev/null +++ b/libre-testing/linux-libre/ath9k_htc-fix-target-is-unresponsive.patch @@ -0,0 +1,67 @@ +diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c +index f5dda84..7730a5c 100644 +--- a/drivers/net/wireless/ath/ath9k/hif_usb.c ++++ b/drivers/net/wireless/ath/ath9k/hif_usb.c +@@ -1124,7 +1124,7 @@ static void ath9k_hif_usb_firmware_cb(const struct firmware *fw, void *context) + } + + release_firmware(fw); +- hif_dev->flags |= HIF_USB_READY; ++ hif_dev->flags |= HIF_USB_FW_LOADED; + complete(&hif_dev->fw_done); + + return; +@@ -1281,7 +1281,7 @@ static void ath9k_hif_usb_disconnect(struct usb_interface *interface) + + wait_for_completion(&hif_dev->fw_done); + +- if (hif_dev->flags & HIF_USB_READY) { ++ if (hif_dev->flags & HIF_USB_FW_LOADED) { + ath9k_htc_hw_deinit(hif_dev->htc_handle, unplugged); + ath9k_htc_hw_free(hif_dev->htc_handle); + ath9k_hif_usb_dev_deinit(hif_dev); +@@ -1289,7 +1289,9 @@ static void ath9k_hif_usb_disconnect(struct usb_interface *interface) + + usb_set_intfdata(interface, NULL); + +- if (!unplugged && (hif_dev->flags & HIF_USB_START)) ++ /* If firmware was loaded we should drop it ++ * go back to first stage bootloader. */ ++ if (!unplugged && (hif_dev->flags & HIF_USB_FW_LOADED)) + ath9k_hif_usb_reboot(udev); + + kfree(hif_dev); +@@ -1326,7 +1328,7 @@ static int ath9k_hif_usb_resume(struct usb_interface *interface) + if (ret) + return ret; + +- if (hif_dev->flags & HIF_USB_READY) { ++ if (hif_dev->flags & HIF_USB_FW_LOADED) { + /* request cached firmware during suspend/resume cycle */ + ret = request_firmware(&fw, hif_dev->fw_name, + &hif_dev->udev->dev); +diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.h b/drivers/net/wireless/ath/ath9k/hif_usb.h +index 51496e7..d74697d 100644 +--- a/drivers/net/wireless/ath/ath9k/hif_usb.h ++++ b/drivers/net/wireless/ath/ath9k/hif_usb.h +@@ -85,7 +85,7 @@ struct cmd_buf { + }; + + #define HIF_USB_START BIT(0) +-#define HIF_USB_READY BIT(1) ++#define HIF_USB_FW_LOADED BIT(1) + + struct hif_device_usb { + struct usb_device *udev; +diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_init.c b/drivers/net/wireless/ath/ath9k/htc_drv_init.c +index a47f5e0..3b202ff 100644 +--- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c ++++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c +@@ -846,6 +846,7 @@ static int ath9k_init_device(struct ath9k_htc_priv *priv, + if (error != 0) + goto err_rx; + ++ ath9k_hw_disable(priv->ah); + #ifdef CONFIG_MAC80211_LEDS + /* must be initialized before ieee80211_register_hw */ + priv->led_cdev.default_trigger = ieee80211_create_tpt_led_trigger(priv->hw, |