Lines Matching refs:hu

66 	struct hci_uart hu;  member
85 static int send_hcill_cmd(u8 cmd, struct hci_uart *hu) in send_hcill_cmd() argument
89 struct ll_struct *ll = hu->priv; in send_hcill_cmd()
91 BT_DBG("hu %p cmd 0x%x", hu, cmd); in send_hcill_cmd()
111 static int ll_open(struct hci_uart *hu) in ll_open() argument
115 BT_DBG("hu %p", hu); in ll_open()
127 hu->priv = ll; in ll_open()
129 if (hu->serdev) { in ll_open()
130 struct ll_device *lldev = serdev_device_get_drvdata(hu->serdev); in ll_open()
140 static int ll_flush(struct hci_uart *hu) in ll_flush() argument
142 struct ll_struct *ll = hu->priv; in ll_flush()
144 BT_DBG("hu %p", hu); in ll_flush()
153 static int ll_close(struct hci_uart *hu) in ll_close() argument
155 struct ll_struct *ll = hu->priv; in ll_close()
157 BT_DBG("hu %p", hu); in ll_close()
164 if (hu->serdev) { in ll_close()
165 struct ll_device *lldev = serdev_device_get_drvdata(hu->serdev); in ll_close()
172 hu->priv = NULL; in ll_close()
199 static void ll_device_want_to_wakeup(struct hci_uart *hu) in ll_device_want_to_wakeup() argument
202 struct ll_struct *ll = hu->priv; in ll_device_want_to_wakeup()
204 BT_DBG("hu %p", hu); in ll_device_want_to_wakeup()
225 if (send_hcill_cmd(HCILL_WAKE_UP_ACK, hu) < 0) { in ll_device_want_to_wakeup()
244 hci_uart_tx_wakeup(hu); in ll_device_want_to_wakeup()
250 static void ll_device_want_to_sleep(struct hci_uart *hu) in ll_device_want_to_sleep() argument
253 struct ll_struct *ll = hu->priv; in ll_device_want_to_sleep()
255 BT_DBG("hu %p", hu); in ll_device_want_to_sleep()
266 if (send_hcill_cmd(HCILL_GO_TO_SLEEP_ACK, hu) < 0) { in ll_device_want_to_sleep()
278 hci_uart_tx_wakeup(hu); in ll_device_want_to_sleep()
284 static void ll_device_woke_up(struct hci_uart *hu) in ll_device_woke_up() argument
287 struct ll_struct *ll = hu->priv; in ll_device_woke_up()
289 BT_DBG("hu %p", hu); in ll_device_woke_up()
305 hci_uart_tx_wakeup(hu); in ll_device_woke_up()
310 static int ll_enqueue(struct hci_uart *hu, struct sk_buff *skb) in ll_enqueue() argument
313 struct ll_struct *ll = hu->priv; in ll_enqueue()
315 BT_DBG("hu %p skb %p", hu, skb); in ll_enqueue()
334 if (send_hcill_cmd(HCILL_WAKE_UP_IND, hu) < 0) { in ll_enqueue()
359 struct hci_uart *hu = hci_get_drvdata(hdev); in ll_recv_frame() local
360 struct ll_struct *ll = hu->priv; in ll_recv_frame()
365 ll_device_want_to_sleep(hu); in ll_recv_frame()
374 ll_device_want_to_wakeup(hu); in ll_recv_frame()
378 ll_device_woke_up(hu); in ll_recv_frame()
425 static int ll_recv(struct hci_uart *hu, const void *data, int count) in ll_recv() argument
427 struct ll_struct *ll = hu->priv; in ll_recv()
429 if (!test_bit(HCI_UART_REGISTERED, &hu->flags)) in ll_recv()
432 ll->rx_skb = h4_recv_buf(hu->hdev, ll->rx_skb, data, count, in ll_recv()
436 bt_dev_err(hu->hdev, "Frame reassembly failed (%d)", err); in ll_recv()
444 static struct sk_buff *ll_dequeue(struct hci_uart *hu) in ll_dequeue() argument
446 struct ll_struct *ll = hu->priv; in ll_dequeue()
495 bt_dev_warn(lldev->hu.hdev, in send_command_from_firmware()
500 bt_dev_dbg(lldev->hu.hdev, "command type %d", cmd->prefix); in send_command_from_firmware()
502 skb = __hci_cmd_sync(lldev->hu.hdev, cmd->opcode, cmd->plen, in send_command_from_firmware()
505 bt_dev_err(lldev->hu.hdev, "send command failed"); in send_command_from_firmware()
526 version = read_local_version(lldev->hu.hdev); in download_firmware()
542 bt_dev_err(lldev->hu.hdev, "request_firmware failed(errno %d) for %s", in download_firmware()
555 bt_dev_dbg(lldev->hu.hdev, " action size %d, type %d ", in download_firmware()
563 bt_dev_dbg(lldev->hu.hdev, "S"); in download_firmware()
571 bt_dev_dbg(lldev->hu.hdev, "W"); in download_firmware()
574 bt_dev_info(lldev->hu.hdev, "sleep command in scr"); in download_firmware()
608 static int ll_setup(struct hci_uart *hu) in ll_setup() argument
612 struct serdev_device *serdev = hu->serdev; in ll_setup()
620 hu->hdev->set_bdaddr = ll_set_bdaddr; in ll_setup()
632 bt_dev_err(hu->hdev, "Failed to get CTS"); in ll_setup()
641 bt_dev_err(hu->hdev, "download firmware failed, retrying..."); in ll_setup()
652 set_bit(HCI_QUIRK_INVALID_BDADDR, &hu->hdev->quirks); in ll_setup()
654 err = ll_set_bdaddr(hu->hdev, &lldev->bdaddr); in ll_setup()
656 set_bit(HCI_QUIRK_INVALID_BDADDR, &hu->hdev->quirks); in ll_setup()
660 if (hu->oper_speed) in ll_setup()
661 speed = hu->oper_speed; in ll_setup()
662 else if (hu->proto->oper_speed) in ll_setup()
663 speed = hu->proto->oper_speed; in ll_setup()
671 skb = __hci_cmd_sync(hu->hdev, HCI_VS_UPDATE_UART_HCI_BAUDRATE, in ll_setup()
687 struct hci_uart *hu; in hci_ti_probe() local
695 hu = &lldev->hu; in hci_ti_probe()
698 lldev->serdev = hu->serdev = serdev; in hci_ti_probe()
711 hci_uart_set_speeds(hu, 115200, max_speed); in hci_ti_probe()
759 return hci_uart_register_device(hu, &llp); in hci_ti_probe()
766 hci_uart_unregister_device(&lldev->hu); in hci_ti_remove()