btmtk_data
if (!btmtk_data->isopkt_tx_ep &&
btmtk_data->isopkt_tx_ep = ep_desc;
if (!btmtk_data->isopkt_rx_ep &&
btmtk_data->isopkt_rx_ep = ep_desc;
if (!btmtk_data->isopkt_tx_ep ||
!btmtk_data->isopkt_rx_ep) {
struct btmtk_data *btmtk_data = hci_get_priv(hdev);
if (!btmtk_data->isopkt_tx_ep)
pipe = usb_sndintpipe(btmtk_data->udev,
btmtk_data->isopkt_tx_ep->bEndpointAddress);
usb_fill_int_urb(urb, btmtk_data->udev, pipe,
skb, btmtk_data->isopkt_tx_ep->bInterval);
struct btmtk_data *btmtk_data = hci_get_priv(hdev);
spin_lock_irqsave(&btmtk_data->isorxlock, flags);
skb = btmtk_data->isopkt_skb;
btmtk_data->isopkt_skb = skb;
spin_unlock_irqrestore(&btmtk_data->isorxlock, flags);
struct btmtk_data *btmtk_data = hci_get_priv(hdev);
usb_mark_last_busy(btmtk_data->udev);
usb_anchor_urb(urb, &btmtk_data->isopkt_anchor);
struct btmtk_data *btmtk_data = hci_get_priv(hdev);
if (!btmtk_data->isopkt_rx_ep)
size = le16_to_cpu(btmtk_data->isopkt_rx_ep->wMaxPacketSize);
pipe = usb_rcvintpipe(btmtk_data->udev,
btmtk_data->isopkt_rx_ep->bEndpointAddress);
usb_fill_int_urb(urb, btmtk_data->udev, pipe, buf, size,
btmtk_data->isopkt_rx_ep->bInterval);
usb_mark_last_busy(btmtk_data->udev);
usb_anchor_urb(urb, &btmtk_data->isopkt_anchor);
struct btmtk_data *btmtk_data = hci_get_priv(hdev);
spin_lock_init(&btmtk_data->isorxlock);
usb_kill_anchored_urbs(&btmtk_data->isopkt_anchor);
struct btmtk_data *btmtk_data = hci_get_priv(hdev);
if (test_bit(BTMTK_ISOPKT_RUNNING, &btmtk_data->flags)) {
clear_bit(BTMTK_ISOPKT_RUNNING, &btmtk_data->flags);
struct btmtk_data *btmtk_data = hci_get_priv(hdev);
if (test_bit(BTMTK_ISOPKT_RUNNING, &btmtk_data->flags))
usb_kill_anchored_urbs(&btmtk_data->isopkt_anchor);
struct btmtk_data *btmtk_data = hci_get_priv(hdev);
btmtk_data->dev_id = dev_id;
err = btmtk_register_coredump(hdev, btmtk_data->drv_name, fw_version);
if (test_bit(BTMTK_ISOPKT_OVER_INTR, &btmtk_data->flags)) {
set_bit(BTMTK_ISOPKT_RUNNING, &btmtk_data->flags);
struct btmtk_data *data = hci_get_priv(hdev);
struct btmtk_data *reset_work = hci_get_priv(hdev);
struct btmtk_data *data = hci_get_priv(hdev);
struct btmtk_data *data = hci_get_priv(hdev);
struct btmtk_data *data = hci_get_priv(hdev);
struct btmtk_data *data = hci_get_priv(hdev);
struct btmtk_data *data = hci_get_priv(hdev);
struct btmtk_data *data = hci_get_priv(hdev);
struct btmtk_data *data = hci_get_priv(hdev);
struct btmtk_data *data = hci_get_priv(hdev);
struct btmtk_data *data = hci_get_priv(hdev);
struct btmtk_data *data = hci_get_priv(hdev);
struct btmtk_data *data = hci_get_priv(hdev);
struct btmtk_data *btmtk_data = hci_get_priv(hdev);
struct usb_interface *intf = btmtk_data->isopkt_intf;
if (!btmtk_data->isopkt_intf)
err = usb_set_interface(btmtk_data->udev, MTK_ISO_IFNUM, 1);
btmtk_data->isopkt_tx_ep = NULL;
btmtk_data->isopkt_rx_ep = NULL;
struct btmtk_data *btmtk_data;
btmtk_data = hci_get_priv(data->hdev);
if (!btmtk_data)
if (!btmtk_data->isopkt_intf) {
device_lock(&btmtk_data->isopkt_intf->dev);
btmtk_data->isopkt_intf, data);
device_unlock(&btmtk_data->isopkt_intf->dev);
btmtk_data->isopkt_intf = NULL;
set_bit(BTMTK_ISOPKT_OVER_INTR, &btmtk_data->flags);
init_usb_anchor(&btmtk_data->isopkt_anchor);
struct btmtk_data *btmtk_data;
btmtk_data = hci_get_priv(hdev);
if (!btmtk_data)
if (test_bit(BTMTK_ISOPKT_OVER_INTR, &btmtk_data->flags)) {
usb_kill_anchored_urbs(&btmtk_data->isopkt_anchor);
clear_bit(BTMTK_ISOPKT_RUNNING, &btmtk_data->flags);
if (btmtk_data->isopkt_skb) {
dev_kfree_skb_irq(btmtk_data->isopkt_skb);
btmtk_data->isopkt_skb = NULL;
if (btmtk_data->isopkt_intf) {
usb_set_intfdata(btmtk_data->isopkt_intf, NULL);
btmtk_data->isopkt_intf);
btmtk_data->isopkt_intf = NULL;
clear_bit(BTMTK_ISOPKT_OVER_INTR, &btmtk_data->flags);
struct btmtk_data *btmtk_data = hci_get_priv(hdev);
if (test_and_set_bit(BTMTK_HW_RESET_ACTIVE, &btmtk_data->flags)) {
err = btmtk_usb_subsys_reset(hdev, btmtk_data->dev_id);
clear_bit(BTMTK_HW_RESET_ACTIVE, &btmtk_data->flags);
struct btmtk_data *btmtk_data = hci_get_priv(hdev);
btmtk_data->drv_name = btusb_driver.name;
btmtk_data->intf = data->intf;
btmtk_data->udev = data->udev;
btmtk_data->ctrl_anchor = &data->ctrl_anchor;
btmtk_data->reset_sync = btusb_mtk_reset;
if (!test_bit(BTMTK_ISOPKT_OVER_INTR, &btmtk_data->flags)) {
btmtk_data->isopkt_intf = usb_ifnum_to_if(data->udev, MTK_ISO_IFNUM);
priv_size += sizeof(struct btmtk_data);