Lines Matching refs:hdev
26 struct hci_dev *hdev = hu->hdev; in hci_uart_tx_complete() local
31 hdev->stat.cmd_tx++; in hci_uart_tx_complete()
35 hdev->stat.acl_tx++; in hci_uart_tx_complete()
39 hdev->stat.sco_tx++; in hci_uart_tx_complete()
61 struct hci_dev *hdev = hu->hdev; in hci_uart_write_work() local
75 hdev->stat.byte_tx += len; in hci_uart_write_work()
94 static int hci_uart_flush(struct hci_dev *hdev) in hci_uart_flush() argument
96 struct hci_uart *hu = hci_get_drvdata(hdev); in hci_uart_flush()
98 BT_DBG("hdev %p serdev %p", hdev, hu->serdev); in hci_uart_flush()
114 static int hci_uart_open(struct hci_dev *hdev) in hci_uart_open() argument
116 struct hci_uart *hu = hci_get_drvdata(hdev); in hci_uart_open()
119 BT_DBG("%s %p", hdev->name, hdev); in hci_uart_open()
133 hdev->flush = hci_uart_flush; in hci_uart_open()
139 static int hci_uart_close(struct hci_dev *hdev) in hci_uart_close() argument
141 struct hci_uart *hu = hci_get_drvdata(hdev); in hci_uart_close()
143 BT_DBG("hdev %p", hdev); in hci_uart_close()
148 hci_uart_flush(hdev); in hci_uart_close()
149 hdev->flush = NULL; in hci_uart_close()
155 if (hci_test_quirk(hdev, HCI_QUIRK_NON_PERSISTENT_SETUP)) { in hci_uart_close()
164 static int hci_uart_send_frame(struct hci_dev *hdev, struct sk_buff *skb) in hci_uart_send_frame() argument
166 struct hci_uart *hu = hci_get_drvdata(hdev); in hci_uart_send_frame()
168 BT_DBG("%s: type %d len %d", hdev->name, hci_skb_pkt_type(skb), in hci_uart_send_frame()
178 static int hci_uart_setup(struct hci_dev *hdev) in hci_uart_setup() argument
180 struct hci_uart *hu = hci_get_drvdata(hdev); in hci_uart_setup()
208 bt_dev_err(hdev, "Failed to set baudrate"); in hci_uart_setup()
219 skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_VERSION, 0, NULL, in hci_uart_setup()
222 bt_dev_err(hdev, "Reading local version info failed (%ld)", in hci_uart_setup()
228 bt_dev_err(hdev, "Event length mismatch for version info"); in hci_uart_setup()
235 static bool hci_uart_wakeup(struct hci_dev *hdev) in hci_uart_wakeup() argument
292 if (hu->hdev) in hci_uart_receive_buf()
293 hu->hdev->stat.byte_rx += count; in hci_uart_receive_buf()
308 struct hci_dev *hdev; in hci_uart_register_device_priv() local
329 hdev = hci_alloc_dev_priv(sizeof_priv); in hci_uart_register_device_priv()
330 if (!hdev) { in hci_uart_register_device_priv()
336 hu->hdev = hdev; in hci_uart_register_device_priv()
338 hdev->bus = HCI_UART; in hci_uart_register_device_priv()
339 hci_set_drvdata(hdev, hu); in hci_uart_register_device_priv()
349 hdev->manufacturer = hu->proto->manufacturer; in hci_uart_register_device_priv()
351 hdev->open = hci_uart_open; in hci_uart_register_device_priv()
352 hdev->close = hci_uart_close; in hci_uart_register_device_priv()
353 hdev->flush = hci_uart_flush; in hci_uart_register_device_priv()
354 hdev->send = hci_uart_send_frame; in hci_uart_register_device_priv()
355 hdev->setup = hci_uart_setup; in hci_uart_register_device_priv()
356 if (!hdev->wakeup) in hci_uart_register_device_priv()
357 hdev->wakeup = hci_uart_wakeup; in hci_uart_register_device_priv()
358 SET_HCIDEV_DEV(hdev, &hu->serdev->dev); in hci_uart_register_device_priv()
361 hci_set_quirk(hdev, HCI_QUIRK_NO_SUSPEND_NOTIFIER); in hci_uart_register_device_priv()
364 hci_set_quirk(hdev, HCI_QUIRK_RAW_DEVICE); in hci_uart_register_device_priv()
367 hci_set_quirk(hdev, HCI_QUIRK_EXTERNAL_CONFIG); in hci_uart_register_device_priv()
372 if (hci_register_dev(hdev) < 0) { in hci_uart_register_device_priv()
383 hci_free_dev(hdev); in hci_uart_register_device_priv()
397 struct hci_dev *hdev = hu->hdev; in hci_uart_unregister_device() local
401 hci_unregister_dev(hdev); in hci_uart_unregister_device()
402 hci_free_dev(hdev); in hci_uart_unregister_device()