summaryrefslogtreecommitdiff
path: root/drivers/rpmsg/qcom_glink_native.h
diff options
context:
space:
mode:
authorBjorn Andersson <quic_bjorande@quicinc.com>2023-02-13 18:52:13 +0300
committerBjorn Andersson <andersson@kernel.org>2023-02-14 19:19:38 +0300
commitf424d1cbe8c7ef78a4b639502fa9904c4198387b (patch)
tree874bfe240d4927f02e629e17b676f302147efa2a /drivers/rpmsg/qcom_glink_native.h
parent178c3af447f92c58d5b1153df2cd02b755c083c8 (diff)
downloadlinux-f424d1cbe8c7ef78a4b639502fa9904c4198387b.tar.xz
rpmsg: glink: Move irq and mbox handling to transports
Not all GLINK transports uses an interrupt and a mailbox instance. The interrupt for RPM needs to be IRQF_NOSUSPEND, while it seems reasonable for the SMEM interrupt to use irq_set_wake. The glink struct device is constructed in the SMEM and RPM drivers but torn down in the core driver. Move the interrupt and kick handling into the SMEM and RPM driver, to improve this and facilitate further improvements. Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com> Reviewed-by: Chris Lew <quic_clew@quicinc.com> Signed-off-by: Bjorn Andersson <andersson@kernel.org> Link: https://lore.kernel.org/r/20230213155215.1237059-5-quic_bjorande@quicinc.com
Diffstat (limited to 'drivers/rpmsg/qcom_glink_native.h')
-rw-r--r--drivers/rpmsg/qcom_glink_native.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/rpmsg/qcom_glink_native.h b/drivers/rpmsg/qcom_glink_native.h
index e9a8671616c7..9462b37eccee 100644
--- a/drivers/rpmsg/qcom_glink_native.h
+++ b/drivers/rpmsg/qcom_glink_native.h
@@ -24,6 +24,7 @@ struct qcom_glink_pipe {
void (*write)(struct qcom_glink_pipe *glink_pipe,
const void *hdr, size_t hlen,
const void *data, size_t dlen);
+ void (*kick)(struct qcom_glink_pipe *glink_pipe);
};
struct device;
@@ -35,6 +36,6 @@ struct qcom_glink *qcom_glink_native_probe(struct device *dev,
struct qcom_glink_pipe *tx,
bool intentless);
void qcom_glink_native_remove(struct qcom_glink *glink);
+void qcom_glink_native_rx(struct qcom_glink *glink);
-void qcom_glink_native_unregister(struct qcom_glink *glink);
#endif