Lines Matching refs:hdev

93 	struct hci_dev *hdev = hu->hdev;  in hci_uart_tx_complete()  local
98 hdev->stat.cmd_tx++; in hci_uart_tx_complete()
102 hdev->stat.acl_tx++; in hci_uart_tx_complete()
106 hdev->stat.sco_tx++; in hci_uart_tx_complete()
141 struct hci_dev *hdev = hu->hdev; in hci_uart_write_work() local
156 hdev->stat.byte_tx += len; in hci_uart_write_work()
182 err = hci_register_dev(hu->hdev); in hci_uart_init_work()
185 hci_free_dev(hu->hdev); in hci_uart_init_work()
186 hu->hdev = NULL; in hci_uart_init_work()
205 static int hci_uart_open(struct hci_dev *hdev) in hci_uart_open() argument
207 BT_DBG("%s %p", hdev->name, hdev); in hci_uart_open()
211 set_bit(HCI_RUNNING, &hdev->flags); in hci_uart_open()
217 static int hci_uart_flush(struct hci_dev *hdev) in hci_uart_flush() argument
219 struct hci_uart *hu = hci_get_drvdata(hdev); in hci_uart_flush()
222 BT_DBG("hdev %p tty %p", hdev, tty); in hci_uart_flush()
239 static int hci_uart_close(struct hci_dev *hdev) in hci_uart_close() argument
241 BT_DBG("hdev %p", hdev); in hci_uart_close()
243 if (!test_and_clear_bit(HCI_RUNNING, &hdev->flags)) in hci_uart_close()
246 hci_uart_flush(hdev); in hci_uart_close()
247 hdev->flush = NULL; in hci_uart_close()
252 static int hci_uart_send_frame(struct hci_dev *hdev, struct sk_buff *skb) in hci_uart_send_frame() argument
254 struct hci_uart *hu = hci_get_drvdata(hdev); in hci_uart_send_frame()
256 if (!test_bit(HCI_RUNNING, &hdev->flags)) in hci_uart_send_frame()
259 BT_DBG("%s: type %d len %d", hdev->name, bt_cb(skb)->pkt_type, skb->len); in hci_uart_send_frame()
268 static int hci_uart_setup(struct hci_dev *hdev) in hci_uart_setup() argument
270 struct hci_uart *hu = hci_get_drvdata(hdev); in hci_uart_setup()
280 skb = __hci_cmd_sync(hdev, HCI_OP_READ_LOCAL_VERSION, 0, NULL, in hci_uart_setup()
284 hdev->name, PTR_ERR(skb)); in hci_uart_setup()
290 hdev->name); in hci_uart_setup()
299 hdev->set_bdaddr = btintel_set_bdaddr; in hci_uart_setup()
300 btintel_check_bdaddr(hdev); in hci_uart_setup()
305 hdev->set_bdaddr = btbcm_set_bdaddr; in hci_uart_setup()
306 btbcm_check_bdaddr(hdev); in hci_uart_setup()
372 struct hci_dev *hdev; in hci_uart_tty_close() local
382 hdev = hu->hdev; in hci_uart_tty_close()
383 if (hdev) in hci_uart_tty_close()
384 hci_uart_close(hdev); in hci_uart_tty_close()
389 if (hdev) { in hci_uart_tty_close()
391 hci_unregister_dev(hdev); in hci_uart_tty_close()
392 hci_free_dev(hdev); in hci_uart_tty_close()
452 if (hu->hdev) in hci_uart_tty_receive()
453 hu->hdev->stat.byte_rx += count; in hci_uart_tty_receive()
462 struct hci_dev *hdev; in hci_uart_register_dev() local
467 hdev = hci_alloc_dev(); in hci_uart_register_dev()
468 if (!hdev) { in hci_uart_register_dev()
473 hu->hdev = hdev; in hci_uart_register_dev()
475 hdev->bus = HCI_UART; in hci_uart_register_dev()
476 hci_set_drvdata(hdev, hu); in hci_uart_register_dev()
478 hdev->open = hci_uart_open; in hci_uart_register_dev()
479 hdev->close = hci_uart_close; in hci_uart_register_dev()
480 hdev->flush = hci_uart_flush; in hci_uart_register_dev()
481 hdev->send = hci_uart_send_frame; in hci_uart_register_dev()
482 hdev->setup = hci_uart_setup; in hci_uart_register_dev()
483 SET_HCIDEV_DEV(hdev, hu->tty->dev); in hci_uart_register_dev()
486 set_bit(HCI_QUIRK_RAW_DEVICE, &hdev->quirks); in hci_uart_register_dev()
489 set_bit(HCI_QUIRK_EXTERNAL_CONFIG, &hdev->quirks); in hci_uart_register_dev()
492 set_bit(HCI_QUIRK_RESET_ON_CLOSE, &hdev->quirks); in hci_uart_register_dev()
495 hdev->dev_type = HCI_AMP; in hci_uart_register_dev()
497 hdev->dev_type = HCI_BREDR; in hci_uart_register_dev()
502 if (hci_register_dev(hdev) < 0) { in hci_uart_register_dev()
504 hci_free_dev(hdev); in hci_uart_register_dev()
598 return hu->hdev->id; in hci_uart_tty_ioctl()