本文整理汇总了C++中btusb_stop_traffic函数的典型用法代码示例。如果您正苦于以下问题:C++ btusb_stop_traffic函数的具体用法?C++ btusb_stop_traffic怎么用?C++ btusb_stop_traffic使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了btusb_stop_traffic函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: btusb_close
static int btusb_close(struct hci_dev *hdev)
{
struct btusb_data *data = hdev->driver_data;
int err;
BT_DBG("%s", hdev->name);
if (!test_and_clear_bit(HCI_RUNNING, &hdev->flags))
return 0;
cancel_work_sync(&data->work);
cancel_work_sync(&data->waker);
clear_bit(BTUSB_ISOC_RUNNING, &data->flags);
clear_bit(BTUSB_BULK_RUNNING, &data->flags);
clear_bit(BTUSB_INTR_RUNNING, &data->flags);
btusb_stop_traffic(data);
err = usb_autopm_get_interface(data->intf);
if (err < 0)
goto failed;
data->intf->needs_remote_wakeup = 0;
usb_autopm_put_interface(data->intf);
failed:
usb_scuttle_anchored_urbs(&data->deferred);
return 0;
}
示例2: btusb_suspend
static int btusb_suspend(struct usb_interface *intf, pm_message_t message)
{
struct btusb_data *data = usb_get_intfdata(intf);
BT_DBG("intf %p", intf);
if (data->suspend_count++)
return 0;
spin_lock_irq(&data->txlock);
if (!((message.event & PM_EVENT_AUTO) && data->tx_in_flight)) {
set_bit(BTUSB_SUSPENDING, &data->flags);
spin_unlock_irq(&data->txlock);
} else {
spin_unlock_irq(&data->txlock);
data->suspend_count--;
return -EBUSY;
}
cancel_work_sync(&data->work);
btusb_stop_traffic(data);
usb_kill_anchored_urbs(&data->tx_anchor);
return 0;
}
示例3: btusb_close
static int btusb_close(struct hci_dev *hdev)
{
struct btusb_data *data = GET_DRV_DATA(hdev);
int i,err;
if (!test_and_clear_bit(HCI_RUNNING, &hdev->flags))
return 0;
RTKBT_DBG("btusb_close");
/*******************************/
for (i = 0; i < NUM_REASSEMBLY; i++)
{
if(hdev->reassembly[i])
{
kfree_skb(hdev->reassembly[i]);
hdev->reassembly[i] = NULL;
RTKBT_DBG("%s free ressembly i=%d",__FUNCTION__,i);
}
}
/*******************************/
cancel_work_sync(&data->work);
cancel_work_sync(&data->waker);
clear_bit(BTUSB_ISOC_RUNNING, &data->flags);
clear_bit(BTUSB_BULK_RUNNING, &data->flags);
clear_bit(BTUSB_INTR_RUNNING, &data->flags);
btusb_stop_traffic(data);
err = usb_autopm_get_interface(data->intf);
if (err < 0)
goto failed;
data->intf->needs_remote_wakeup = 0;
usb_autopm_put_interface(data->intf);
failed:
mdelay(URB_CANCELING_DELAY_MS); // Added by Realtek
usb_scuttle_anchored_urbs(&data->deferred);
return 0;
}
示例4: btusb_suspend
static int btusb_suspend(struct usb_interface *intf, pm_message_t message)
{
struct btusb_data *data = usb_get_intfdata(intf);
if (intf->cur_altsetting->desc.bInterfaceNumber != 0)
return 0;
/*******************************/
RTKBT_DBG("btusb_suspend message.event=0x%x,data->suspend_count=%d",message.event,data->suspend_count);
if (!test_bit(HCI_RUNNING, &data->hdev->flags))
{
RTKBT_DBG("btusb_suspend-----bt is off");
set_btoff(data->intf);
}
/*******************************/
if (data->suspend_count++)
return 0;
spin_lock_irq(&data->txlock);
if (!((message.event & PM_EVENT_AUTO) && data->tx_in_flight)) {
set_bit(BTUSB_SUSPENDING, &data->flags);
spin_unlock_irq(&data->txlock);
} else {
spin_unlock_irq(&data->txlock);
data->suspend_count--;
return -EBUSY;
}
cancel_work_sync(&data->work);
btusb_stop_traffic(data);
mdelay(URB_CANCELING_DELAY_MS); // Added by Realtek
usb_kill_anchored_urbs(&data->tx_anchor);
return 0;
}