Search Linux Wireless

Re: ath6kl: AR6004 failed to start on computer boot

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,
I just find a quick and dirty patch to workaround this issue.
I just reset the device on initialization failure.

I hope this helps to understand the real issue.

[    7.012514] usb 1-7: firmware: requesting ath6k/AR6004/hw1.3/bdata.bin
[    7.035276] cfg80211: World regulatory domain updated:
[    7.035287] cfg80211:   (start_freq - end_freq @ bandwidth),
(max_antenna_gain, max_eirp)
[    7.035299] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz),
(300 mBi, 2000 mBm)
[    7.037916] usb 1-7: firmware: requesting ath6k/AR6004/hw1.3/fw-3.bin
[    9.378940] ath6kl: f59afe4c
[    9.379054] ath6kl: f59afe6c
[    9.379391] ath6kl_usb: probe of 1-7:1.0 failed with error -5
Here I reset the device.

[    9.380081] usbcore: registered new interface driver ath6kl_usb
[   10.396824] usb 1-7: USB disconnect, address 7
[   10.712160] usb 1-7: new high speed USB device using ehci_hcd and address 8
[   10.832491] usb 1-7: firmware: requesting ath6k/AR6004/hw1.3/bdata.bin
[   10.838218] usb 1-7: firmware: requesting ath6k/AR6004/hw1.3/fw-3.bin
[   11.026652] ath6kl: f5287c50

and it works..

---
drivers/net/wireless/ath/ath6kl/main.c | 1 +
drivers/net/wireless/ath/ath6kl/usb.c  | 1 +
 2 files changed, 2 insertions(+)

diff --git a/drivers/net/wireless/ath/ath6kl/main.c
b/drivers/net/wireless/ath/ath6kl/main.c
index d0080b3..9060380 100644
--- a/drivers/net/wireless/ath/ath6kl/main.c
+++ b/drivers/net/wireless/ath/ath6kl/main.c
@@ -375,6 +375,7 @@ void ath6kl_reset_device(struct ath6kl *ar, u32 target_type,
 	if (status)
 		ath6kl_err("failed to reset target\n");
 }
+EXPORT_SYMBOL(ath6kl_reset_device);

 static void ath6kl_install_static_wep_keys(struct ath6kl_vif *vif)
 {
diff --git a/drivers/net/wireless/ath/ath6kl/usb.c
b/drivers/net/wireless/ath/ath6kl/usb.c
index c7b87be..910bef9 100644
--- a/drivers/net/wireless/ath/ath6kl/usb.c
+++ b/drivers/net/wireless/ath/ath6kl/usb.c
@@ -1121,6 +1121,7 @@ static int ath6kl_usb_probe(struct usb_interface
*interface,
 	ret = ath6kl_core_init(ar, ATH6KL_HTC_TYPE_PIPE);
 	if (ret) {
 		ath6kl_err("Failed to init ath6kl core: %d\n", ret);
+                ath6kl_reset_device(ar, ar->target_type, true, true);
 		goto err_core_free;
 	}

--
Regards,
Julien
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux