Lines Matching refs:hu

66 	struct hci_uart		*hu;  member
82 static int bcm_set_baudrate(struct hci_uart *hu, unsigned int speed) in bcm_set_baudrate() argument
84 struct hci_dev *hdev = hu->hdev; in bcm_set_baudrate()
226 static int bcm_setup_sleep(struct hci_uart *hu) in bcm_setup_sleep() argument
228 struct bcm_data *bcm = hu->priv; in bcm_setup_sleep()
234 skb = __hci_cmd_sync(hu->hdev, 0xfc27, sizeof(sleep_params), in bcm_setup_sleep()
238 bt_dev_err(hu->hdev, "Sleep VSC failed (%d)", err); in bcm_setup_sleep()
243 bt_dev_dbg(hu->hdev, "Set Sleep Parameters VSC succeeded"); in bcm_setup_sleep()
249 static inline int bcm_setup_sleep(struct hci_uart *hu) { return 0; } in bcm_setup_sleep() argument
254 struct hci_uart *hu = hci_get_drvdata(hdev); in bcm_set_diag() local
255 struct bcm_data *bcm = hu->priv; in bcm_set_diag()
270 hci_uart_tx_wakeup(hu); in bcm_set_diag()
275 static int bcm_open(struct hci_uart *hu) in bcm_open() argument
280 bt_dev_dbg(hu->hdev, "hu %p", hu); in bcm_open()
288 hu->priv = bcm; in bcm_open()
298 if (hu->tty->dev->parent == dev->pdev->dev.parent) { in bcm_open()
300 hu->init_speed = dev->init_speed; in bcm_open()
302 dev->hu = hu; in bcm_open()
314 static int bcm_close(struct hci_uart *hu) in bcm_close() argument
316 struct bcm_data *bcm = hu->priv; in bcm_close()
319 bt_dev_dbg(hu->hdev, "hu %p", hu); in bcm_close()
334 bdev->hu = NULL; in bcm_close()
343 hu->priv = NULL; in bcm_close()
347 static int bcm_flush(struct hci_uart *hu) in bcm_flush() argument
349 struct bcm_data *bcm = hu->priv; in bcm_flush()
351 bt_dev_dbg(hu->hdev, "hu %p", hu); in bcm_flush()
358 static int bcm_setup(struct hci_uart *hu) in bcm_setup() argument
360 struct bcm_data *bcm = hu->priv; in bcm_setup()
366 bt_dev_dbg(hu->hdev, "hu %p", hu); in bcm_setup()
368 hu->hdev->set_diag = bcm_set_diag; in bcm_setup()
369 hu->hdev->set_bdaddr = btbcm_set_bdaddr; in bcm_setup()
371 err = btbcm_initialize(hu->hdev, fw_name, sizeof(fw_name)); in bcm_setup()
375 err = request_firmware(&fw, fw_name, &hu->hdev->dev); in bcm_setup()
377 bt_dev_info(hu->hdev, "BCM: Patch %s not found", fw_name); in bcm_setup()
381 err = btbcm_patchram(hu->hdev, fw); in bcm_setup()
383 bt_dev_info(hu->hdev, "BCM: Patch failed (%d)", err); in bcm_setup()
388 if (hu->init_speed) in bcm_setup()
389 speed = hu->init_speed; in bcm_setup()
390 else if (hu->proto->init_speed) in bcm_setup()
391 speed = hu->proto->init_speed; in bcm_setup()
396 hci_uart_set_baudrate(hu, speed); in bcm_setup()
399 if (hu->oper_speed) in bcm_setup()
400 speed = hu->oper_speed; in bcm_setup()
401 else if (hu->proto->oper_speed) in bcm_setup()
402 speed = hu->proto->oper_speed; in bcm_setup()
407 err = bcm_set_baudrate(hu, speed); in bcm_setup()
409 hci_uart_set_baudrate(hu, speed); in bcm_setup()
415 err = btbcm_finalize(hu->hdev); in bcm_setup()
421 err = bcm_setup_sleep(hu); in bcm_setup()
440 static int bcm_recv(struct hci_uart *hu, const void *data, int count) in bcm_recv() argument
442 struct bcm_data *bcm = hu->priv; in bcm_recv()
444 if (!test_bit(HCI_UART_REGISTERED, &hu->flags)) in bcm_recv()
447 bcm->rx_skb = h4_recv_buf(hu->hdev, bcm->rx_skb, data, count, in bcm_recv()
451 bt_dev_err(hu->hdev, "Frame reassembly failed (%d)", err); in bcm_recv()
468 static int bcm_enqueue(struct hci_uart *hu, struct sk_buff *skb) in bcm_enqueue() argument
470 struct bcm_data *bcm = hu->priv; in bcm_enqueue()
472 bt_dev_dbg(hu->hdev, "hu %p skb %p", hu, skb); in bcm_enqueue()
481 static struct sk_buff *bcm_dequeue(struct hci_uart *hu) in bcm_dequeue() argument
483 struct bcm_data *bcm = hu->priv; in bcm_dequeue()
514 if (!bdev->is_suspended && bdev->hu) { in bcm_suspend_device()
515 hci_uart_set_flow_control(bdev->hu, true); in bcm_suspend_device()
544 if (bdev->is_suspended && bdev->hu) { in bcm_resume_device()
547 hci_uart_set_flow_control(bdev->hu, false); in bcm_resume_device()
569 if (!bdev->hu) in bcm_suspend()
600 if (!bdev->hu) in bcm_resume()