Lines Matching refs:ar
131 static void carl9170_usb_submit_data_urb(struct ar9170 *ar) in carl9170_usb_submit_data_urb() argument
136 if (atomic_inc_return(&ar->tx_anch_urbs) > AR9170_NUM_TX_URBS) in carl9170_usb_submit_data_urb()
139 urb = usb_get_from_anchor(&ar->tx_wait); in carl9170_usb_submit_data_urb()
143 usb_anchor_urb(urb, &ar->tx_anch); in carl9170_usb_submit_data_urb()
148 dev_err(&ar->udev->dev, "tx submit failed (%d)\n", in carl9170_usb_submit_data_urb()
153 usb_anchor_urb(urb, &ar->tx_err); in carl9170_usb_submit_data_urb()
162 atomic_dec(&ar->tx_anch_urbs); in carl9170_usb_submit_data_urb()
167 struct ar9170 *ar = usb_get_intfdata(usb_ifnum_to_if(urb->dev, 0)); in carl9170_usb_tx_data_complete() local
169 if (WARN_ON_ONCE(!ar)) { in carl9170_usb_tx_data_complete()
174 atomic_dec(&ar->tx_anch_urbs); in carl9170_usb_tx_data_complete()
179 carl9170_tx_callback(ar, (void *)urb->context); in carl9170_usb_tx_data_complete()
192 usb_anchor_urb(urb, &ar->tx_err); in carl9170_usb_tx_data_complete()
198 dev_err(&ar->udev->dev, "tx failed (%d)\n", in carl9170_usb_tx_data_complete()
202 usb_anchor_urb(urb, &ar->tx_err); in carl9170_usb_tx_data_complete()
206 if (likely(IS_STARTED(ar))) in carl9170_usb_tx_data_complete()
207 carl9170_usb_submit_data_urb(ar); in carl9170_usb_tx_data_complete()
210 static int carl9170_usb_submit_cmd_urb(struct ar9170 *ar) in carl9170_usb_submit_cmd_urb() argument
215 if (atomic_inc_return(&ar->tx_cmd_urbs) != 1) { in carl9170_usb_submit_cmd_urb()
216 atomic_dec(&ar->tx_cmd_urbs); in carl9170_usb_submit_cmd_urb()
220 urb = usb_get_from_anchor(&ar->tx_cmd); in carl9170_usb_submit_cmd_urb()
222 atomic_dec(&ar->tx_cmd_urbs); in carl9170_usb_submit_cmd_urb()
226 usb_anchor_urb(urb, &ar->tx_anch); in carl9170_usb_submit_cmd_urb()
230 atomic_dec(&ar->tx_cmd_urbs); in carl9170_usb_submit_cmd_urb()
239 struct ar9170 *ar = urb->context; in carl9170_usb_cmd_complete() local
242 if (WARN_ON_ONCE(!ar)) in carl9170_usb_cmd_complete()
245 atomic_dec(&ar->tx_cmd_urbs); in carl9170_usb_cmd_complete()
264 if (!IS_INITIALIZED(ar)) in carl9170_usb_cmd_complete()
268 dev_err(&ar->udev->dev, "submit cmd cb failed (%d).\n", err); in carl9170_usb_cmd_complete()
270 err = carl9170_usb_submit_cmd_urb(ar); in carl9170_usb_cmd_complete()
272 dev_err(&ar->udev->dev, "submit cmd failed (%d).\n", err); in carl9170_usb_cmd_complete()
277 struct ar9170 *ar = urb->context; in carl9170_usb_rx_irq_complete() local
279 if (WARN_ON_ONCE(!ar)) in carl9170_usb_rx_irq_complete()
305 carl9170_handle_command_response(ar, urb->transfer_buffer, in carl9170_usb_rx_irq_complete()
309 usb_anchor_urb(urb, &ar->rx_anch); in carl9170_usb_rx_irq_complete()
314 static int carl9170_usb_submit_rx_urb(struct ar9170 *ar, gfp_t gfp) in carl9170_usb_submit_rx_urb() argument
319 while ((atomic_read(&ar->rx_anch_urbs) < AR9170_NUM_RX_URBS) && in carl9170_usb_submit_rx_urb()
322 urb = usb_get_from_anchor(&ar->rx_pool); in carl9170_usb_submit_rx_urb()
324 usb_anchor_urb(urb, &ar->rx_anch); in carl9170_usb_submit_rx_urb()
328 usb_anchor_urb(urb, &ar->rx_pool); in carl9170_usb_submit_rx_urb()
330 atomic_dec(&ar->rx_pool_urbs); in carl9170_usb_submit_rx_urb()
331 atomic_inc(&ar->rx_anch_urbs); in carl9170_usb_submit_rx_urb()
340 static void carl9170_usb_rx_work(struct ar9170 *ar) in carl9170_usb_rx_work() argument
346 urb = usb_get_from_anchor(&ar->rx_work); in carl9170_usb_rx_work()
350 atomic_dec(&ar->rx_work_urbs); in carl9170_usb_rx_work()
351 if (IS_INITIALIZED(ar)) { in carl9170_usb_rx_work()
352 carl9170_rx(ar, urb->transfer_buffer, in carl9170_usb_rx_work()
356 usb_anchor_urb(urb, &ar->rx_pool); in carl9170_usb_rx_work()
357 atomic_inc(&ar->rx_pool_urbs); in carl9170_usb_rx_work()
361 carl9170_usb_submit_rx_urb(ar, GFP_ATOMIC); in carl9170_usb_rx_work()
365 void carl9170_usb_handle_tx_err(struct ar9170 *ar) in carl9170_usb_handle_tx_err() argument
369 while ((urb = usb_get_from_anchor(&ar->tx_err))) { in carl9170_usb_handle_tx_err()
372 carl9170_tx_drop(ar, skb); in carl9170_usb_handle_tx_err()
373 carl9170_tx_callback(ar, skb); in carl9170_usb_handle_tx_err()
380 struct ar9170 *ar = (struct ar9170 *) data; in carl9170_usb_tasklet() local
382 if (!IS_INITIALIZED(ar)) in carl9170_usb_tasklet()
385 carl9170_usb_rx_work(ar); in carl9170_usb_tasklet()
392 if (IS_STARTED(ar)) in carl9170_usb_tasklet()
393 carl9170_tx_scheduler(ar); in carl9170_usb_tasklet()
398 struct ar9170 *ar = (struct ar9170 *)urb->context; in carl9170_usb_rx_complete() local
401 if (WARN_ON_ONCE(!ar)) in carl9170_usb_rx_complete()
404 atomic_dec(&ar->rx_anch_urbs); in carl9170_usb_rx_complete()
409 usb_anchor_urb(urb, &ar->rx_work); in carl9170_usb_rx_complete()
410 atomic_inc(&ar->rx_work_urbs); in carl9170_usb_rx_complete()
422 usb_anchor_urb(urb, &ar->rx_pool); in carl9170_usb_rx_complete()
423 atomic_inc(&ar->rx_pool_urbs); in carl9170_usb_rx_complete()
427 err = carl9170_usb_submit_rx_urb(ar, GFP_ATOMIC); in carl9170_usb_rx_complete()
435 tasklet_hi_schedule(&ar->usb_tasklet); in carl9170_usb_rx_complete()
437 if (atomic_read(&ar->rx_anch_urbs) == 0) { in carl9170_usb_rx_complete()
446 ieee80211_queue_work(ar->hw, &ar->ping_work); in carl9170_usb_rx_complete()
453 tasklet_hi_schedule(&ar->usb_tasklet); in carl9170_usb_rx_complete()
457 static struct urb *carl9170_usb_alloc_rx_urb(struct ar9170 *ar, gfp_t gfp) in carl9170_usb_alloc_rx_urb() argument
462 buf = kmalloc(ar->fw.rx_size, gfp); in carl9170_usb_alloc_rx_urb()
472 usb_fill_bulk_urb(urb, ar->udev, usb_rcvbulkpipe(ar->udev, in carl9170_usb_alloc_rx_urb()
473 AR9170_USB_EP_RX), buf, ar->fw.rx_size, in carl9170_usb_alloc_rx_urb()
474 carl9170_usb_rx_complete, ar); in carl9170_usb_alloc_rx_urb()
481 static int carl9170_usb_send_rx_irq_urb(struct ar9170 *ar) in carl9170_usb_send_rx_irq_urb() argument
495 usb_fill_int_urb(urb, ar->udev, usb_rcvintpipe(ar->udev, in carl9170_usb_send_rx_irq_urb()
497 carl9170_usb_rx_irq_complete, ar, 1); in carl9170_usb_send_rx_irq_urb()
501 usb_anchor_urb(urb, &ar->rx_anch); in carl9170_usb_send_rx_irq_urb()
511 static int carl9170_usb_init_rx_bulk_urbs(struct ar9170 *ar) in carl9170_usb_init_rx_bulk_urbs() argument
527 urb = carl9170_usb_alloc_rx_urb(ar, GFP_KERNEL); in carl9170_usb_init_rx_bulk_urbs()
533 usb_anchor_urb(urb, &ar->rx_pool); in carl9170_usb_init_rx_bulk_urbs()
534 atomic_inc(&ar->rx_pool_urbs); in carl9170_usb_init_rx_bulk_urbs()
538 err = carl9170_usb_submit_rx_urb(ar, GFP_KERNEL); in carl9170_usb_init_rx_bulk_urbs()
543 carl9170_set_state_when(ar, CARL9170_STOPPED, CARL9170_IDLE); in carl9170_usb_init_rx_bulk_urbs()
548 usb_scuttle_anchored_urbs(&ar->rx_pool); in carl9170_usb_init_rx_bulk_urbs()
549 usb_scuttle_anchored_urbs(&ar->rx_work); in carl9170_usb_init_rx_bulk_urbs()
550 usb_kill_anchored_urbs(&ar->rx_anch); in carl9170_usb_init_rx_bulk_urbs()
554 static int carl9170_usb_flush(struct ar9170 *ar) in carl9170_usb_flush() argument
559 while ((urb = usb_get_from_anchor(&ar->tx_wait))) { in carl9170_usb_flush()
561 carl9170_tx_drop(ar, skb); in carl9170_usb_flush()
562 carl9170_tx_callback(ar, skb); in carl9170_usb_flush()
566 ret = usb_wait_anchor_empty_timeout(&ar->tx_cmd, 1000); in carl9170_usb_flush()
571 ret = usb_wait_anchor_empty_timeout(&ar->tx_anch, 1000); in carl9170_usb_flush()
575 usb_kill_anchored_urbs(&ar->tx_anch); in carl9170_usb_flush()
576 carl9170_usb_handle_tx_err(ar); in carl9170_usb_flush()
581 static void carl9170_usb_cancel_urbs(struct ar9170 *ar) in carl9170_usb_cancel_urbs() argument
585 carl9170_set_state(ar, CARL9170_UNKNOWN_STATE); in carl9170_usb_cancel_urbs()
587 err = carl9170_usb_flush(ar); in carl9170_usb_cancel_urbs()
589 dev_err(&ar->udev->dev, "stuck tx urbs!\n"); in carl9170_usb_cancel_urbs()
591 usb_poison_anchored_urbs(&ar->tx_anch); in carl9170_usb_cancel_urbs()
592 carl9170_usb_handle_tx_err(ar); in carl9170_usb_cancel_urbs()
593 usb_poison_anchored_urbs(&ar->rx_anch); in carl9170_usb_cancel_urbs()
595 tasklet_kill(&ar->usb_tasklet); in carl9170_usb_cancel_urbs()
597 usb_scuttle_anchored_urbs(&ar->rx_work); in carl9170_usb_cancel_urbs()
598 usb_scuttle_anchored_urbs(&ar->rx_pool); in carl9170_usb_cancel_urbs()
599 usb_scuttle_anchored_urbs(&ar->tx_cmd); in carl9170_usb_cancel_urbs()
602 int __carl9170_exec_cmd(struct ar9170 *ar, struct carl9170_cmd *cmd, in __carl9170_exec_cmd() argument
608 if (!IS_INITIALIZED(ar)) { in __carl9170_exec_cmd()
624 if (ar->usb_ep_cmd_is_bulk) in __carl9170_exec_cmd()
625 usb_fill_bulk_urb(urb, ar->udev, in __carl9170_exec_cmd()
626 usb_sndbulkpipe(ar->udev, AR9170_USB_EP_CMD), in __carl9170_exec_cmd()
628 carl9170_usb_cmd_complete, ar); in __carl9170_exec_cmd()
630 usb_fill_int_urb(urb, ar->udev, in __carl9170_exec_cmd()
631 usb_sndintpipe(ar->udev, AR9170_USB_EP_CMD), in __carl9170_exec_cmd()
633 carl9170_usb_cmd_complete, ar, 1); in __carl9170_exec_cmd()
638 usb_anchor_urb(urb, &ar->tx_cmd); in __carl9170_exec_cmd()
641 return carl9170_usb_submit_cmd_urb(ar); in __carl9170_exec_cmd()
650 int carl9170_exec_cmd(struct ar9170 *ar, const enum carl9170_cmd_oids cmd, in carl9170_exec_cmd() argument
655 if (!IS_ACCEPTING_CMD(ar)) in carl9170_exec_cmd()
661 ar->cmd.hdr.len = plen; in carl9170_exec_cmd()
662 ar->cmd.hdr.cmd = cmd; in carl9170_exec_cmd()
664 if (plen && payload != (u8 *)(ar->cmd.data)) in carl9170_exec_cmd()
665 memcpy(ar->cmd.data, payload, plen); in carl9170_exec_cmd()
667 spin_lock_bh(&ar->cmd_lock); in carl9170_exec_cmd()
668 ar->readbuf = (u8 *)out; in carl9170_exec_cmd()
669 ar->readlen = outlen; in carl9170_exec_cmd()
670 spin_unlock_bh(&ar->cmd_lock); in carl9170_exec_cmd()
672 err = __carl9170_exec_cmd(ar, &ar->cmd, false); in carl9170_exec_cmd()
675 err = wait_for_completion_timeout(&ar->cmd_wait, HZ); in carl9170_exec_cmd()
681 if (ar->readlen != outlen) { in carl9170_exec_cmd()
691 if (IS_STARTED(ar)) { in carl9170_exec_cmd()
692 dev_err(&ar->udev->dev, "no command feedback " in carl9170_exec_cmd()
697 &ar->cmd, plen + 4); in carl9170_exec_cmd()
699 carl9170_restart(ar, CARL9170_RR_COMMAND_TIMEOUT); in carl9170_exec_cmd()
703 spin_lock_bh(&ar->cmd_lock); in carl9170_exec_cmd()
704 ar->readbuf = NULL; in carl9170_exec_cmd()
705 ar->readlen = 0; in carl9170_exec_cmd()
706 spin_unlock_bh(&ar->cmd_lock); in carl9170_exec_cmd()
711 void carl9170_usb_tx(struct ar9170 *ar, struct sk_buff *skb) in carl9170_usb_tx() argument
718 if (!IS_STARTED(ar)) in carl9170_usb_tx()
725 if (ar->fw.tx_stream) { in carl9170_usb_tx()
737 usb_fill_bulk_urb(urb, ar->udev, usb_sndbulkpipe(ar->udev, in carl9170_usb_tx()
743 usb_anchor_urb(urb, &ar->tx_wait); in carl9170_usb_tx()
747 carl9170_usb_submit_data_urb(ar); in carl9170_usb_tx()
751 carl9170_tx_drop(ar, skb); in carl9170_usb_tx()
752 carl9170_tx_callback(ar, skb); in carl9170_usb_tx()
755 static void carl9170_release_firmware(struct ar9170 *ar) in carl9170_release_firmware() argument
757 if (ar->fw.fw) { in carl9170_release_firmware()
758 release_firmware(ar->fw.fw); in carl9170_release_firmware()
759 memset(&ar->fw, 0, sizeof(ar->fw)); in carl9170_release_firmware()
763 void carl9170_usb_stop(struct ar9170 *ar) in carl9170_usb_stop() argument
767 carl9170_set_state_when(ar, CARL9170_IDLE, CARL9170_STOPPED); in carl9170_usb_stop()
769 ret = carl9170_usb_flush(ar); in carl9170_usb_stop()
771 dev_err(&ar->udev->dev, "kill pending tx urbs.\n"); in carl9170_usb_stop()
773 usb_poison_anchored_urbs(&ar->tx_anch); in carl9170_usb_stop()
774 carl9170_usb_handle_tx_err(ar); in carl9170_usb_stop()
777 spin_lock_bh(&ar->cmd_lock); in carl9170_usb_stop()
778 ar->readlen = 0; in carl9170_usb_stop()
779 spin_unlock_bh(&ar->cmd_lock); in carl9170_usb_stop()
780 complete_all(&ar->cmd_wait); in carl9170_usb_stop()
783 reinit_completion(&ar->cmd_wait); in carl9170_usb_stop()
792 int carl9170_usb_open(struct ar9170 *ar) in carl9170_usb_open() argument
794 usb_unpoison_anchored_urbs(&ar->tx_anch); in carl9170_usb_open()
796 carl9170_set_state_when(ar, CARL9170_STOPPED, CARL9170_IDLE); in carl9170_usb_open()
800 static int carl9170_usb_load_firmware(struct ar9170 *ar) in carl9170_usb_load_firmware() argument
815 data = ar->fw.fw->data; in carl9170_usb_load_firmware()
816 len = ar->fw.fw->size; in carl9170_usb_load_firmware()
817 addr = ar->fw.address; in carl9170_usb_load_firmware()
820 data += ar->fw.offset; in carl9170_usb_load_firmware()
821 len -= ar->fw.offset; in carl9170_usb_load_firmware()
827 err = usb_control_msg(ar->udev, usb_sndctrlpipe(ar->udev, 0), in carl9170_usb_load_firmware()
842 err = usb_control_msg(ar->udev, usb_sndctrlpipe(ar->udev, 0), in carl9170_usb_load_firmware()
846 if (wait_for_completion_timeout(&ar->fw_boot_wait, HZ) == 0) { in carl9170_usb_load_firmware()
851 err = carl9170_echo_test(ar, 0x4a110123); in carl9170_usb_load_firmware()
856 ar->cmd_seq = -1; in carl9170_usb_load_firmware()
861 dev_err(&ar->udev->dev, "firmware upload failed (%d).\n", err); in carl9170_usb_load_firmware()
865 int carl9170_usb_restart(struct ar9170 *ar) in carl9170_usb_restart() argument
869 if (ar->intf->condition != USB_INTERFACE_BOUND) in carl9170_usb_restart()
878 ar->cmd_seq = -2; in carl9170_usb_restart()
880 err = carl9170_reboot(ar); in carl9170_usb_restart()
882 carl9170_usb_stop(ar); in carl9170_usb_restart()
887 tasklet_schedule(&ar->usb_tasklet); in carl9170_usb_restart()
892 err = carl9170_usb_open(ar); in carl9170_usb_restart()
896 err = carl9170_usb_load_firmware(ar); in carl9170_usb_restart()
903 carl9170_usb_cancel_urbs(ar); in carl9170_usb_restart()
907 void carl9170_usb_reset(struct ar9170 *ar) in carl9170_usb_reset() argument
918 carl9170_usb_cancel_urbs(ar); in carl9170_usb_reset()
920 carl9170_usb_stop(ar); in carl9170_usb_reset()
922 usb_queue_reset_device(ar->intf); in carl9170_usb_reset()
925 static int carl9170_usb_init_device(struct ar9170 *ar) in carl9170_usb_init_device() argument
936 ar->cmd_seq = -2; in carl9170_usb_init_device()
938 err = carl9170_usb_send_rx_irq_urb(ar); in carl9170_usb_init_device()
942 err = carl9170_usb_init_rx_bulk_urbs(ar); in carl9170_usb_init_device()
946 err = carl9170_usb_open(ar); in carl9170_usb_init_device()
950 mutex_lock(&ar->mutex); in carl9170_usb_init_device()
951 err = carl9170_usb_load_firmware(ar); in carl9170_usb_init_device()
952 mutex_unlock(&ar->mutex); in carl9170_usb_init_device()
959 carl9170_usb_stop(ar); in carl9170_usb_init_device()
962 carl9170_usb_cancel_urbs(ar); in carl9170_usb_init_device()
968 static void carl9170_usb_firmware_failed(struct ar9170 *ar) in carl9170_usb_firmware_failed() argument
970 struct device *parent = ar->udev->dev.parent; in carl9170_usb_firmware_failed()
979 udev = ar->udev; in carl9170_usb_firmware_failed()
981 complete(&ar->fw_load_wait); in carl9170_usb_firmware_failed()
994 static void carl9170_usb_firmware_finish(struct ar9170 *ar) in carl9170_usb_firmware_finish() argument
998 err = carl9170_parse_firmware(ar); in carl9170_usb_firmware_finish()
1002 err = carl9170_usb_init_device(ar); in carl9170_usb_firmware_finish()
1006 err = carl9170_register(ar); in carl9170_usb_firmware_finish()
1008 carl9170_usb_stop(ar); in carl9170_usb_firmware_finish()
1012 complete(&ar->fw_load_wait); in carl9170_usb_firmware_finish()
1013 usb_put_dev(ar->udev); in carl9170_usb_firmware_finish()
1017 carl9170_usb_cancel_urbs(ar); in carl9170_usb_firmware_finish()
1020 carl9170_release_firmware(ar); in carl9170_usb_firmware_finish()
1021 carl9170_usb_firmware_failed(ar); in carl9170_usb_firmware_finish()
1027 struct ar9170 *ar = context; in carl9170_usb_firmware_step2() local
1030 ar->fw.fw = fw; in carl9170_usb_firmware_step2()
1031 carl9170_usb_firmware_finish(ar); in carl9170_usb_firmware_step2()
1035 dev_err(&ar->udev->dev, "firmware not found.\n"); in carl9170_usb_firmware_step2()
1036 carl9170_usb_firmware_failed(ar); in carl9170_usb_firmware_step2()
1043 struct ar9170 *ar; in carl9170_usb_probe() local
1051 ar = carl9170_alloc(sizeof(*ar)); in carl9170_usb_probe()
1052 if (IS_ERR(ar)) in carl9170_usb_probe()
1053 return PTR_ERR(ar); in carl9170_usb_probe()
1057 ar->udev = udev; in carl9170_usb_probe()
1058 ar->intf = intf; in carl9170_usb_probe()
1059 ar->features = id->driver_info; in carl9170_usb_probe()
1073 ar->usb_ep_cmd_is_bulk = true; in carl9170_usb_probe()
1076 usb_set_intfdata(intf, ar); in carl9170_usb_probe()
1077 SET_IEEE80211_DEV(ar->hw, &intf->dev); in carl9170_usb_probe()
1079 init_usb_anchor(&ar->rx_anch); in carl9170_usb_probe()
1080 init_usb_anchor(&ar->rx_pool); in carl9170_usb_probe()
1081 init_usb_anchor(&ar->rx_work); in carl9170_usb_probe()
1082 init_usb_anchor(&ar->tx_wait); in carl9170_usb_probe()
1083 init_usb_anchor(&ar->tx_anch); in carl9170_usb_probe()
1084 init_usb_anchor(&ar->tx_cmd); in carl9170_usb_probe()
1085 init_usb_anchor(&ar->tx_err); in carl9170_usb_probe()
1086 init_completion(&ar->cmd_wait); in carl9170_usb_probe()
1087 init_completion(&ar->fw_boot_wait); in carl9170_usb_probe()
1088 init_completion(&ar->fw_load_wait); in carl9170_usb_probe()
1089 tasklet_init(&ar->usb_tasklet, carl9170_usb_tasklet, in carl9170_usb_probe()
1090 (unsigned long)ar); in carl9170_usb_probe()
1092 atomic_set(&ar->tx_cmd_urbs, 0); in carl9170_usb_probe()
1093 atomic_set(&ar->tx_anch_urbs, 0); in carl9170_usb_probe()
1094 atomic_set(&ar->rx_work_urbs, 0); in carl9170_usb_probe()
1095 atomic_set(&ar->rx_anch_urbs, 0); in carl9170_usb_probe()
1096 atomic_set(&ar->rx_pool_urbs, 0); in carl9170_usb_probe()
1098 usb_get_dev(ar->udev); in carl9170_usb_probe()
1100 carl9170_set_state(ar, CARL9170_STOPPED); in carl9170_usb_probe()
1103 &ar->udev->dev, GFP_KERNEL, ar, carl9170_usb_firmware_step2); in carl9170_usb_probe()
1107 carl9170_free(ar); in carl9170_usb_probe()
1114 struct ar9170 *ar = usb_get_intfdata(intf); in carl9170_usb_disconnect() local
1117 if (WARN_ON(!ar)) in carl9170_usb_disconnect()
1120 udev = ar->udev; in carl9170_usb_disconnect()
1121 wait_for_completion(&ar->fw_load_wait); in carl9170_usb_disconnect()
1123 if (IS_INITIALIZED(ar)) { in carl9170_usb_disconnect()
1124 carl9170_reboot(ar); in carl9170_usb_disconnect()
1125 carl9170_usb_stop(ar); in carl9170_usb_disconnect()
1128 carl9170_usb_cancel_urbs(ar); in carl9170_usb_disconnect()
1129 carl9170_unregister(ar); in carl9170_usb_disconnect()
1133 carl9170_release_firmware(ar); in carl9170_usb_disconnect()
1134 carl9170_free(ar); in carl9170_usb_disconnect()
1142 struct ar9170 *ar = usb_get_intfdata(intf); in carl9170_usb_suspend() local
1144 if (!ar) in carl9170_usb_suspend()
1147 carl9170_usb_cancel_urbs(ar); in carl9170_usb_suspend()
1154 struct ar9170 *ar = usb_get_intfdata(intf); in carl9170_usb_resume() local
1157 if (!ar) in carl9170_usb_resume()
1160 usb_unpoison_anchored_urbs(&ar->rx_anch); in carl9170_usb_resume()
1161 carl9170_set_state(ar, CARL9170_STOPPED); in carl9170_usb_resume()
1174 err = carl9170_usb_init_device(ar); in carl9170_usb_resume()
1181 carl9170_usb_cancel_urbs(ar); in carl9170_usb_resume()