Lines Matching +full:rpmsg +full:- +full:out
1 // SPDX-License-Identifier: GPL-2.0-only
9 #include <linux/rpmsg.h>
23 struct qrtr_smd_dev *qdev = dev_get_drvdata(&rpdev->dev); in qcom_smd_qrtr_callback()
27 return -EAGAIN; in qcom_smd_qrtr_callback()
29 rc = qrtr_endpoint_post(&qdev->ep, data, len); in qcom_smd_qrtr_callback()
30 if (rc == -EINVAL) { in qcom_smd_qrtr_callback()
31 dev_err(qdev->dev, "invalid ipcrouter packet\n"); in qcom_smd_qrtr_callback()
47 goto out; in qcom_smd_qrtr_send()
49 rc = rpmsg_send(qdev->channel, skb->data, skb->len); in qcom_smd_qrtr_send()
51 out: in qcom_smd_qrtr_send()
64 qdev = devm_kzalloc(&rpdev->dev, sizeof(*qdev), GFP_KERNEL); in qcom_smd_qrtr_probe()
66 return -ENOMEM; in qcom_smd_qrtr_probe()
68 qdev->channel = rpdev->ept; in qcom_smd_qrtr_probe()
69 qdev->dev = &rpdev->dev; in qcom_smd_qrtr_probe()
70 qdev->ep.xmit = qcom_smd_qrtr_send; in qcom_smd_qrtr_probe()
72 rc = qrtr_endpoint_register(&qdev->ep, QRTR_EP_NID_AUTO); in qcom_smd_qrtr_probe()
76 dev_set_drvdata(&rpdev->dev, qdev); in qcom_smd_qrtr_probe()
78 dev_dbg(&rpdev->dev, "Qualcomm SMD QRTR driver probed\n"); in qcom_smd_qrtr_probe()
85 struct qrtr_smd_dev *qdev = dev_get_drvdata(&rpdev->dev); in qcom_smd_qrtr_remove()
87 qrtr_endpoint_unregister(&qdev->ep); in qcom_smd_qrtr_remove()
89 dev_set_drvdata(&rpdev->dev, NULL); in qcom_smd_qrtr_remove()
109 MODULE_ALIAS("rpmsg:IPCRTR");
110 MODULE_DESCRIPTION("Qualcomm IPC-Router SMD interface driver");