aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/hif_usb.c
diff options
context:
space:
mode:
authorSujith.Manoharan@atheros.com <Sujith.Manoharan@atheros.com>2010-05-11 16:24:41 +0530
committerJohn W. Linville <linville@tuxdriver.com>2010-05-12 16:39:06 -0400
commit47fce026d5de5d11e161da73208171e9c91b659a (patch)
treeb63ac53195fd7d069a4bc79c5ec49d32a2c57e5d /drivers/net/wireless/ath/ath9k/hif_usb.c
parent1d8af8caccceab91ba65b7f659678b92093f9203 (diff)
downloadkernel_samsung_smdk4412-47fce026d5de5d11e161da73208171e9c91b659a.zip
kernel_samsung_smdk4412-47fce026d5de5d11e161da73208171e9c91b659a.tar.gz
kernel_samsung_smdk4412-47fce026d5de5d11e161da73208171e9c91b659a.tar.bz2
ath9k_htc: Reorder HTC initialization
The HTC state has to be setup before initializing the target because the ready message could possibly come before the control endpoints in HTC have been identified. Signed-off-by: Sujith <Sujith.Manoharan@atheros.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/hif_usb.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/hif_usb.c22
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c
index 453cf56..46dc41a 100644
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
@@ -859,21 +859,21 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface,
#endif
usb_set_intfdata(interface, hif_dev);
+ hif_dev->htc_handle = ath9k_htc_hw_alloc(hif_dev, &hif_usb,
+ &hif_dev->udev->dev);
+ if (hif_dev->htc_handle == NULL) {
+ ret = -ENOMEM;
+ goto err_htc_hw_alloc;
+ }
+
ret = ath9k_hif_usb_dev_init(hif_dev, fw_name);
if (ret) {
ret = -EINVAL;
goto err_hif_init_usb;
}
- hif_dev->htc_handle = ath9k_htc_hw_alloc(hif_dev);
- if (hif_dev->htc_handle == NULL) {
- ret = -ENOMEM;
- goto err_htc_hw_alloc;
- }
-
- ret = ath9k_htc_hw_init(&hif_usb, hif_dev->htc_handle, hif_dev,
- &hif_dev->udev->dev, hif_dev->device_id,
- ATH9K_HIF_USB);
+ ret = ath9k_htc_hw_init(hif_dev->htc_handle,
+ &hif_dev->udev->dev, hif_dev->device_id);
if (ret) {
ret = -EINVAL;
goto err_htc_hw_init;
@@ -884,10 +884,10 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface,
return 0;
err_htc_hw_init:
- ath9k_htc_hw_free(hif_dev->htc_handle);
-err_htc_hw_alloc:
ath9k_hif_usb_dev_deinit(hif_dev);
err_hif_init_usb:
+ ath9k_htc_hw_free(hif_dev->htc_handle);
+err_htc_hw_alloc:
usb_set_intfdata(interface, NULL);
kfree(hif_dev);
usb_put_dev(udev);