Lines Matching defs:hdev
157 struct hci_dev *hdev;
170 static int mtk_hci_wmt_sync(struct hci_dev *hdev,
173 struct btmtksdio_dev *bdev = hci_get_drvdata(hdev);
194 err = __hci_cmd_send(hdev, 0xfc6f, hlen, &wc);
212 bt_dev_err(hdev, "Execution of wmt command interrupted");
218 bt_dev_err(hdev, "Execution of wmt command timed out");
226 bt_dev_err(hdev, "Wrong op received %d expected %d",
287 bdev->hdev->stat.byte_tx += skb->len;
318 bdev->hdev->stat.err_tx++;
330 static int btmtksdio_recv_event(struct hci_dev *hdev, struct sk_buff *skb)
332 struct btmtksdio_dev *bdev = hci_get_drvdata(hdev);
354 err = hci_recv_frame(hdev, skb);
414 bt_dev_err(bdev->hdev, "Rx size in sdio header is mismatched ");
433 bt_dev_err(bdev->hdev, "Invalid bt type 0x%02x",
440 bt_dev_err(bdev->hdev, "The size of bt header is mismatched");
460 bt_dev_err(bdev->hdev, "The size of bt payload is mismatched");
468 (&pkts[i])->recv(bdev->hdev, skb);
470 bdev->hdev->stat.byte_rx += rx_size;
515 bt_dev_err(bdev->hdev, "CHISR is 0");
518 bt_dev_dbg(bdev->hdev, "Get fw own back");
523 bt_dev_warn(bdev->hdev, "Tx fifo overflow");
529 bdev->hdev->stat.err_rx++;
539 static int btmtksdio_open(struct hci_dev *hdev)
541 struct btmtksdio_dev *bdev = hci_get_drvdata(hdev);
559 bt_dev_err(bdev->hdev, "Cannot get ownership from device");
620 static int btmtksdio_close(struct hci_dev *hdev)
622 struct btmtksdio_dev *bdev = hci_get_drvdata(hdev);
639 bt_dev_err(bdev->hdev, "Cannot return ownership to device");
648 static int btmtksdio_flush(struct hci_dev *hdev)
650 struct btmtksdio_dev *bdev = hci_get_drvdata(hdev);
659 static int btmtksdio_func_query(struct hci_dev *hdev)
672 err = mtk_hci_wmt_sync(hdev, &wmt_params);
674 bt_dev_err(hdev, "Failed to query function status (%d)", err);
681 static int mtk_setup_firmware(struct hci_dev *hdev, const char *fwname)
690 err = request_firmware(&fw, fwname, &hdev->dev);
692 bt_dev_err(hdev, "Failed to load firmware file (%d)", err);
704 err = mtk_hci_wmt_sync(hdev, &wmt_params);
706 bt_dev_err(hdev, "Failed to power on data RAM (%d)", err);
739 err = mtk_hci_wmt_sync(hdev, &wmt_params);
741 bt_dev_err(hdev, "Failed to send wmt patch dwnld (%d)",
757 err = mtk_hci_wmt_sync(hdev, &wmt_params);
759 bt_dev_err(hdev, "Failed to send wmt rst (%d)", err);
771 static int btmtksdio_setup(struct hci_dev *hdev)
773 struct btmtksdio_dev *bdev = hci_get_drvdata(hdev);
791 err = mtk_hci_wmt_sync(hdev, &wmt_params);
793 bt_dev_err(hdev, "Failed to query firmware status (%d)", err);
798 bt_dev_info(hdev, "Firmware already downloaded");
803 err = mtk_setup_firmware(hdev, bdev->data->fwname);
809 err = readx_poll_timeout(btmtksdio_func_query, hdev, status,
821 bt_dev_info(hdev, "function already on");
832 err = mtk_hci_wmt_sync(hdev, &wmt_params);
834 bt_dev_err(hdev, "Failed to send wmt func ctrl (%d)", err);
846 skb = __hci_cmd_sync(hdev, 0xfc7a, sizeof(tci_sleep), &tci_sleep,
850 bt_dev_err(hdev, "Failed to apply low power setting (%d)", err);
876 bt_dev_info(hdev, "Device setup in %llu usecs", duration);
881 static int btmtksdio_shutdown(struct hci_dev *hdev)
883 struct btmtksdio_dev *bdev = hci_get_drvdata(hdev);
900 err = mtk_hci_wmt_sync(hdev, &wmt_params);
902 bt_dev_err(hdev, "Failed to send wmt func ctrl (%d)", err);
912 static int btmtksdio_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
914 struct btmtksdio_dev *bdev = hci_get_drvdata(hdev);
918 hdev->stat.cmd_tx++;
922 hdev->stat.acl_tx++;
926 hdev->stat.sco_tx++;
944 struct hci_dev *hdev;
962 hdev = hci_alloc_dev();
963 if (!hdev) {
968 bdev->hdev = hdev;
970 hdev->bus = HCI_SDIO;
971 hci_set_drvdata(hdev, bdev);
973 hdev->open = btmtksdio_open;
974 hdev->close = btmtksdio_close;
975 hdev->flush = btmtksdio_flush;
976 hdev->setup = btmtksdio_setup;
977 hdev->shutdown = btmtksdio_shutdown;
978 hdev->send = btmtksdio_send_frame;
979 SET_HCIDEV_DEV(hdev, &func->dev);
981 hdev->manufacturer = 70;
982 set_bit(HCI_QUIRK_NON_PERSISTENT_SETUP, &hdev->quirks);
986 err = hci_register_dev(hdev);
989 hci_free_dev(hdev);
1018 struct hci_dev *hdev;
1026 hdev = bdev->hdev;
1029 hci_unregister_dev(hdev);
1030 hci_free_dev(hdev);
1056 bt_dev_info(bdev->hdev, "status (%d) return ownership to device", err);
1083 bt_dev_info(bdev->hdev, "status (%d) get ownership from device", err);