Skip to contentSkip to conversation

ath9k_htc fixes, resend

PATCH New Oleksij Rempel 2 participants 5 messages Jul 19, 2013 – Jul 20, 2013 Qualcomm Atheros ATH9K wireless driver

lore
Share & tools
lore
#0 lore raw

cover ath9k_htc fixes, resend

Hi John,
this patches needed to fix firmare/adapter hang issue on reboot or module reload.

Oleksij Rempel (2):
ath9k_htc: do some initial hardware configuration
ath9k_htc: reboot firmware if it was loaded

 drivers/net/wireless/ath/ath9k/hif_usb.c      | 4 +++-
 drivers/net/wireless/ath/ath9k/htc_drv_init.c | 1 +
 2 files changed, 4 insertions(+), 1 deletion(-)
Signature · 1 line
1.8.1.2
#1 lore raw

PATCH 1/2 ath9k_htc: do some initial hardware configuration

Currently we configure harwdare and clock, only after interface start. In this case, if we reload module or reboot PC without configuring adapter, firmware will freeze. There is no software way to reset adpter.

This patch add initial configuration and set it in disabled state, to avoid this freeze. Behaviour of this patch should be similar to: ifconfig wlan0 up; ifconfig wlan0 down.

---
 drivers/net/wireless/ath/ath9k/htc_drv_init.c | 1 +
 1 file changed, 1 insertion(+)
drivers/net/wireless/ath/ath9k/htc_drv_init.c +1 -0
index 71a183f..c3676bf 100644
@@ -861,6 +861,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,
Signature · 1 line
1.8.1.2
#2 lore raw

PATCH 2/2 ath9k_htc: reboot firmware if it was loaded

In reply to Oleksij Rempel

Currently ath9k_htc will reboot firmware only if interface was ever started. Which lead to the problem in case where interface was never started but module need to be reloaded.

This patch will partially fix bug "ath9k_htc: Target is unresponsive"
https://github.com/qca/open-ath9k-htc-firmware/issues/1

Reproduction case:
- plug adapter
- make sure nothing will touch it. Stop Networkmanager or blacklist mac address of this adapter.
- rmmod ath9k_htc; sleep 1; modprobe ath9k_htc

---
 drivers/net/wireless/ath/ath9k/hif_usb.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/net/wireless/ath/ath9k/hif_usb.c +3 -1
index 2469db5..5205a36 100644
@@ -1295,7 +1295,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_READY))
 		ath9k_hif_usb_reboot(udev);
 
 	kfree(hif_dev);
Signature · 1 line
1.8.1.2
#3 lore raw

cover ath9k_htc fixes, resend

In reply to Oleksij Rempel

Hi

Quoted 7 lines · Oleksij Rempel

Hi John,
this patches needed to fix firmare/adapter hang issue on reboot or module reload.

Oleksij Rempel (2):
ath9k_htc: do some initial hardware configuration
ath9k_htc: reboot firmware if it was loaded

Given that this is a longstanding issue, affecting actual users, I'd suggest to "Cc: <[email protected]>" for these patches. They should meet the bar even under the new, stricter, interpretation of the -stable rules and are small and self contained.

Regards
Stefan Lippers-Hollmann

#4 lore raw

cover ath9k_htc fixes, resend

From: Oleksij Rempel <[email protected]>

Am 20.07.2013 01:43, schrieb Stefan Lippers-Hollmann:

Quoted 7 lines

Hi

Quoted 4 lines · Oleksij Rempel

Hi John,
this patches needed to fix firmare/adapter hang issue on reboot or module reload.

Quoted 8 lines
Quoted 3 lines

Oleksij Rempel (2):
ath9k_htc: do some initial hardware configuration
ath9k_htc: reboot firmware if it was loaded

Given that this is a longstanding issue, affecting actual users, I'd suggest to "Cc: <[email protected]>" for these patches. They should meet the bar even under the new, stricter, interpretation of the -stable rules and are small and self contained.

ok, thank you for the tip.

Signature · 2 lines
Regards,
Oleksij