diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c index 275607a74841..db02eaf420b5 100644 --- a/drivers/net/wireless/ath/ath9k/hif_usb.c +++ b/drivers/net/wireless/ath/ath9k/hif_usb.c @@ -74,6 +74,8 @@ static void hif_usb_regout_cb(struct urb *urb) { struct cmd_buf *cmd = (struct cmd_buf *)urb->context; + printk("haley: dev %#llx, urb %#llx. %s, %d\n", cmd->hif_dev, urb, __func__, __LINE__); + switch (urb->status) { case 0: break; @@ -146,6 +148,8 @@ static void hif_usb_mgmt_cb(struct urb *urb) hif_dev = cmd->hif_dev; + printk("haley: dev %#llx, urb %#llx. %s, %d\n", hif_dev, urb, __func__, __LINE__); + switch (urb->status) { case 0: break; @@ -263,6 +267,8 @@ static void hif_usb_tx_cb(struct urb *urb) hif_dev = tx_buf->hif_dev; + printk("haley: dev %#llx, urb %#llx. %s, %d\n", hif_dev, urb, __func__, __LINE__); + switch (urb->status) { case 0: break; @@ -643,6 +649,8 @@ static void ath9k_hif_usb_rx_cb(struct urb *urb) usb_get_intfdata(usb_ifnum_to_if(urb->dev, 0)); int ret; + printk("haley: dev %#llx, urb %#llx. %s, %d\n", hif_dev, urb, __func__, __LINE__); + if (!skb) return; @@ -690,6 +698,8 @@ static void ath9k_hif_usb_reg_in_cb(struct urb *urb) usb_get_intfdata(usb_ifnum_to_if(urb->dev, 0)); int ret; + printk("haley: dev %#llx, urb %#llx. %s, %d\n", hif_dev, urb, __func__, __LINE__); + if (!skb) return; @@ -806,6 +816,7 @@ static int ath9k_hif_usb_alloc_tx_urbs(struct hif_device_usb *hif_dev) __skb_queue_head_init(&tx_buf->skb_queue); list_add_tail(&tx_buf->list, &hif_dev->tx.tx_buf); + printk("haley: dev %#llx, urb %#llx. %s, %d\n", hif_dev, tx_buf->urb, __func__, __LINE__); } hif_dev->tx.tx_buf_cnt = MAX_TX_URB_NUM; @@ -865,6 +876,7 @@ static int ath9k_hif_usb_alloc_rx_urbs(struct hif_device_usb *hif_dev) usb_unanchor_urb(urb); goto err_submit; } + printk("haley: dev %#llx, urb %#llx. %s, %d\n", hif_dev, urb, __func__, __LINE__); /* * Drop reference count. @@ -886,6 +898,7 @@ static int ath9k_hif_usb_alloc_rx_urbs(struct hif_device_usb *hif_dev) static void ath9k_hif_usb_dealloc_reg_in_urbs(struct hif_device_usb *hif_dev) { + printk("ath9k_debug %s, %d\n", __func__, __LINE__); usb_kill_anchored_urbs(&hif_dev->reg_in_submitted); } @@ -895,6 +908,8 @@ static int ath9k_hif_usb_alloc_reg_in_urbs(struct hif_device_usb *hif_dev) struct sk_buff *skb = NULL; int i, ret; + printk("ath9k_debug %s, %d\n", __func__, __LINE__); + init_usb_anchor(&hif_dev->reg_in_submitted); for (i = 0; i < MAX_REG_IN_URB_NUM; i++) { @@ -929,6 +944,8 @@ static int ath9k_hif_usb_alloc_reg_in_urbs(struct hif_device_usb *hif_dev) goto err_submit; } + printk("haley: dev %#llx, urb %#llx. %s, %d\n", hif_dev, urb, __func__, __LINE__); + /* * Drop reference count. * This ensures that the URB is freed when killing them. @@ -949,6 +966,7 @@ static int ath9k_hif_usb_alloc_reg_in_urbs(struct hif_device_usb *hif_dev) static int ath9k_hif_usb_alloc_urbs(struct hif_device_usb *hif_dev) { + printk("ath9k_debug %s, %d\n", __func__, __LINE__); /* Register Write */ init_usb_anchor(&hif_dev->regout_submitted); @@ -975,6 +993,7 @@ static int ath9k_hif_usb_alloc_urbs(struct hif_device_usb *hif_dev) static void ath9k_hif_usb_dealloc_urbs(struct hif_device_usb *hif_dev) { + printk("ath9k_debug %s, %d\n", __func__, __LINE__); usb_kill_anchored_urbs(&hif_dev->regout_submitted); ath9k_hif_usb_dealloc_reg_in_urbs(hif_dev); ath9k_hif_usb_dealloc_tx_urbs(hif_dev); @@ -1141,6 +1160,9 @@ static int ath9k_hif_request_firmware(struct hif_device_usb *hif_dev, ret = request_firmware_nowait(THIS_MODULE, true, hif_dev->fw_name, &hif_dev->udev->dev, GFP_KERNEL, hif_dev, ath9k_hif_usb_firmware_cb); + + printk("haley: dev %#llx. %s, %d\n", hif_dev, __func__, __LINE__); + if (ret) { dev_err(&hif_dev->udev->dev, "ath9k_htc: Async request for firmware %s failed\n", @@ -1159,6 +1181,7 @@ static void ath9k_hif_usb_firmware_cb(const struct firmware *fw, void *context) struct hif_device_usb *hif_dev = context; int ret; + printk("haley: dev %#llx. %s, %d\n", hif_dev, __func__, __LINE__); if (!fw) { ret = ath9k_hif_request_firmware(hif_dev, false); if (!ret) @@ -1170,11 +1193,15 @@ static void ath9k_hif_usb_firmware_cb(const struct firmware *fw, void *context) goto err_fw; } + printk("ath9k_debug %s, %d\n", __func__, __LINE__); hif_dev->htc_handle = ath9k_htc_hw_alloc(hif_dev, &hif_usb, &hif_dev->udev->dev); if (hif_dev->htc_handle == NULL) goto err_dev_alloc; + printk("haley: dev %#llx. htc %#llx, base %#llx, %s, %d\n", hif_dev, + hif_dev->htc_handle, hif_dev->htc_handle->endpoint, __func__, __LINE__); + hif_dev->fw_data = fw->data; hif_dev->fw_size = fw->size; @@ -1195,7 +1222,9 @@ static void ath9k_hif_usb_firmware_cb(const struct firmware *fw, void *context) } release_firmware(fw); + printk("ath9k_debug %s, %d\n", __func__, __LINE__); hif_dev->flags |= HIF_USB_READY; + smp_mb(); complete_all(&hif_dev->fw_done); return; @@ -1203,6 +1232,7 @@ static void ath9k_hif_usb_firmware_cb(const struct firmware *fw, void *context) err_htc_hw_init: ath9k_hif_usb_dev_deinit(hif_dev); err_dev_init: + printk("ath9k_debug %s, %d\n", __func__, __LINE__); ath9k_htc_hw_free(hif_dev->htc_handle); err_dev_alloc: release_firmware(fw); @@ -1300,6 +1330,8 @@ static int ath9k_hif_usb_probe(struct usb_interface *interface, if (ret) goto err_fw_req; + printk("ath9k_debug %s, %d\n", __func__, __LINE__); + return ret; err_fw_req: @@ -1339,7 +1371,10 @@ static void ath9k_hif_usb_disconnect(struct usb_interface *interface) wait_for_completion(&hif_dev->fw_done); + printk("ath9k_debug %s, %d\n", __func__, __LINE__); + smp_mb(); if (hif_dev->flags & HIF_USB_READY) { + printk("ath9k_debug %s, %d\n", __func__, __LINE__); ath9k_htc_hw_deinit(hif_dev->htc_handle, unplugged); ath9k_hif_usb_dev_deinit(hif_dev); smp_mb(); diff --git a/drivers/net/wireless/ath/ath9k/htc_hst.c b/drivers/net/wireless/ath/ath9k/htc_hst.c index 018898070669..a0a1ec68d4b1 100644 --- a/drivers/net/wireless/ath/ath9k/htc_hst.c +++ b/drivers/net/wireless/ath/ath9k/htc_hst.c @@ -115,7 +115,10 @@ static void htc_process_conn_rsp(struct htc_target *target, epid = svc_rspmsg->endpoint_id; service_id = be16_to_cpu(svc_rspmsg->service_id); max_msglen = be16_to_cpu(svc_rspmsg->max_msg_len); + if (epid >= ENDPOINT_MAX) + printk("haley: catch %d. %s, %d\n", epid, __func__, __LINE__); endpoint = &target->endpoint[epid]; + printk("haley: endpoint base %#llx, endpoint %#llx.\n", target->endpoint, endpoint); for (tepid = (ENDPOINT_MAX - 1); tepid > ENDPOINT0; tepid--) { tmp_endpoint = &target->endpoint[tepid]; @@ -490,6 +493,7 @@ struct htc_target *ath9k_htc_hw_alloc(void *hif_handle, void ath9k_htc_hw_free(struct htc_target *htc) { + printk("ath9k_debug %s, %d\n", __func__, __LINE__); kfree(htc); }