Lines Matching +full:wcnss +full:- +full:bt
1 // SPDX-License-Identifier: GPL-2.0-only
35 hdev->stat.err_rx++; in btqcomsmd_recv()
36 return -ENOMEM; in btqcomsmd_recv()
50 btq->hdev->stat.byte_rx += count; in btqcomsmd_acl_callback()
51 return btqcomsmd_recv(btq->hdev, HCI_ACLDATA_PKT, data, count); in btqcomsmd_acl_callback()
59 btq->hdev->stat.byte_rx += count; in btqcomsmd_cmd_callback()
60 return btqcomsmd_recv(btq->hdev, HCI_EVENT_PKT, data, count); in btqcomsmd_cmd_callback()
70 ret = rpmsg_send(btq->acl_channel, skb->data, skb->len); in btqcomsmd_send()
72 hdev->stat.err_tx++; in btqcomsmd_send()
75 hdev->stat.acl_tx++; in btqcomsmd_send()
76 hdev->stat.byte_tx += skb->len; in btqcomsmd_send()
79 ret = rpmsg_send(btq->cmd_channel, skb->data, skb->len); in btqcomsmd_send()
81 hdev->stat.err_tx++; in btqcomsmd_send()
84 hdev->stat.cmd_tx++; in btqcomsmd_send()
85 hdev->stat.byte_tx += skb->len; in btqcomsmd_send()
88 ret = -EILSEQ; in btqcomsmd_send()
120 set_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks); in btqcomsmd_setup()
144 void *wcnss; in btqcomsmd_probe() local
147 btq = devm_kzalloc(&pdev->dev, sizeof(*btq), GFP_KERNEL); in btqcomsmd_probe()
149 return -ENOMEM; in btqcomsmd_probe()
151 wcnss = dev_get_drvdata(pdev->dev.parent); in btqcomsmd_probe()
153 btq->acl_channel = qcom_wcnss_open_channel(wcnss, "APPS_RIVA_BT_ACL", in btqcomsmd_probe()
155 if (IS_ERR(btq->acl_channel)) in btqcomsmd_probe()
156 return PTR_ERR(btq->acl_channel); in btqcomsmd_probe()
158 btq->cmd_channel = qcom_wcnss_open_channel(wcnss, "APPS_RIVA_BT_CMD", in btqcomsmd_probe()
160 if (IS_ERR(btq->cmd_channel)) { in btqcomsmd_probe()
161 ret = PTR_ERR(btq->cmd_channel); in btqcomsmd_probe()
167 ret = -ENOMEM; in btqcomsmd_probe()
172 btq->hdev = hdev; in btqcomsmd_probe()
173 SET_HCIDEV_DEV(hdev, &pdev->dev); in btqcomsmd_probe()
175 hdev->bus = HCI_SMD; in btqcomsmd_probe()
176 hdev->open = btqcomsmd_open; in btqcomsmd_probe()
177 hdev->close = btqcomsmd_close; in btqcomsmd_probe()
178 hdev->send = btqcomsmd_send; in btqcomsmd_probe()
179 hdev->setup = btqcomsmd_setup; in btqcomsmd_probe()
180 hdev->set_bdaddr = btqcomsmd_set_bdaddr; in btqcomsmd_probe()
193 rpmsg_destroy_ept(btq->cmd_channel); in btqcomsmd_probe()
195 rpmsg_destroy_ept(btq->acl_channel); in btqcomsmd_probe()
204 hci_unregister_dev(btq->hdev); in btqcomsmd_remove()
205 hci_free_dev(btq->hdev); in btqcomsmd_remove()
207 rpmsg_destroy_ept(btq->cmd_channel); in btqcomsmd_remove()
208 rpmsg_destroy_ept(btq->acl_channel); in btqcomsmd_remove()
214 { .compatible = "qcom,wcnss-bt", },