Lines Matching defs:hdev
116 struct hci_dev *hdev;
149 static int mtk_hci_wmt_sync(struct hci_dev *hdev,
152 struct btmtkuart_dev *bdev = hci_get_drvdata(hdev);
175 err = __hci_cmd_send(hdev, 0xfc6f, hlen, &wc);
193 bt_dev_err(hdev, "Execution of wmt command interrupted");
199 bt_dev_err(hdev, "Execution of wmt command timed out");
208 bt_dev_err(hdev, "Wrong op received %d expected %d",
242 static int mtk_setup_firmware(struct hci_dev *hdev, const char *fwname)
251 err = request_firmware(&fw, fwname, &hdev->dev);
253 bt_dev_err(hdev, "Failed to load firmware file (%d)", err);
286 err = mtk_hci_wmt_sync(hdev, &wmt_params);
288 bt_dev_err(hdev, "Failed to send wmt patch dwnld (%d)",
304 err = mtk_hci_wmt_sync(hdev, &wmt_params);
306 bt_dev_err(hdev, "Failed to send wmt rst (%d)", err);
318 static int btmtkuart_recv_event(struct hci_dev *hdev, struct sk_buff *skb)
320 struct btmtkuart_dev *bdev = hci_get_drvdata(hdev);
342 err = hci_recv_frame(hdev, skb);
376 struct hci_dev *hdev = bdev->hdev;
390 hdev->stat.byte_tx += len;
400 hdev->stat.cmd_tx++;
403 hdev->stat.acl_tx++;
406 hdev->stat.sco_tx++;
453 bt_dev_err(bdev->hdev, "stp format unexpect (%d, %d)",
474 static void btmtkuart_recv(struct hci_dev *hdev, const u8 *data, size_t count)
476 struct btmtkuart_dev *bdev = hci_get_drvdata(hdev);
505 bdev->rx_skb = h4_recv_buf(bdev->hdev, bdev->rx_skb, p_h4,
510 bt_dev_err(bdev->hdev,
526 btmtkuart_recv(bdev->hdev, data, count);
528 bdev->hdev->stat.byte_rx += count;
545 static int btmtkuart_open(struct hci_dev *hdev)
547 struct btmtkuart_dev *bdev = hci_get_drvdata(hdev);
553 bt_dev_err(hdev, "Unable to open UART device %s",
567 bt_dev_err(hdev, "Unable to set baudrate UART device %s",
604 static int btmtkuart_close(struct hci_dev *hdev)
606 struct btmtkuart_dev *bdev = hci_get_drvdata(hdev);
619 static int btmtkuart_flush(struct hci_dev *hdev)
621 struct btmtkuart_dev *bdev = hci_get_drvdata(hdev);
638 static int btmtkuart_func_query(struct hci_dev *hdev)
651 err = mtk_hci_wmt_sync(hdev, &wmt_params);
653 bt_dev_err(hdev, "Failed to query function status (%d)", err);
660 static int btmtkuart_change_baudrate(struct hci_dev *hdev)
662 struct btmtkuart_dev *bdev = hci_get_drvdata(hdev);
678 err = mtk_hci_wmt_sync(hdev, &wmt_params);
680 bt_dev_err(hdev, "Failed to device baudrate (%d)", err);
687 bt_dev_err(hdev, "Failed to set up host baudrate (%d)",
712 err = mtk_hci_wmt_sync(hdev, &wmt_params);
714 bt_dev_err(hdev, "Failed to test new baudrate (%d)",
724 static int btmtkuart_setup(struct hci_dev *hdev)
726 struct btmtkuart_dev *bdev = hci_get_drvdata(hdev);
747 err = mtk_hci_wmt_sync(hdev, &wmt_params);
749 bt_dev_err(hdev, "Failed to wakeup the chip (%d)", err);
757 btmtkuart_change_baudrate(hdev);
766 err = mtk_hci_wmt_sync(hdev, &wmt_params);
768 bt_dev_err(hdev, "Failed to query firmware status (%d)", err);
773 bt_dev_info(hdev, "Firmware already downloaded");
778 err = mtk_setup_firmware(hdev, bdev->data->fwname);
784 err = readx_poll_timeout(btmtkuart_func_query, hdev, status,
796 bt_dev_info(hdev, "function already on");
807 err = mtk_hci_wmt_sync(hdev, &wmt_params);
809 bt_dev_err(hdev, "Failed to send wmt func ctrl (%d)", err);
821 skb = __hci_cmd_sync(hdev, 0xfc7a, sizeof(tci_sleep), &tci_sleep,
825 bt_dev_err(hdev, "Failed to apply low power setting (%d)", err);
834 bt_dev_info(hdev, "Device setup in %llu usecs", duration);
839 static int btmtkuart_shutdown(struct hci_dev *hdev)
852 err = mtk_hci_wmt_sync(hdev, &wmt_params);
854 bt_dev_err(hdev, "Failed to send wmt func ctrl (%d)", err);
861 static int btmtkuart_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
863 struct btmtkuart_dev *bdev = hci_get_drvdata(hdev);
966 struct hci_dev *hdev;
990 hdev = hci_alloc_dev();
991 if (!hdev) {
996 bdev->hdev = hdev;
998 hdev->bus = HCI_UART;
999 hci_set_drvdata(hdev, bdev);
1001 hdev->open = btmtkuart_open;
1002 hdev->close = btmtkuart_close;
1003 hdev->flush = btmtkuart_flush;
1004 hdev->setup = btmtkuart_setup;
1005 hdev->shutdown = btmtkuart_shutdown;
1006 hdev->send = btmtkuart_send_frame;
1007 SET_HCIDEV_DEV(hdev, &serdev->dev);
1009 hdev->manufacturer = 70;
1010 set_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks);
1058 err = hci_register_dev(hdev);
1073 hci_free_dev(hdev);
1081 struct hci_dev *hdev = bdev->hdev;
1088 hci_unregister_dev(hdev);
1089 hci_free_dev(hdev);