diff options
author | Bjorn Andersson <quic_bjorande@quicinc.com> | 2023-02-13 16:52:13 +0100 |
---|---|---|
committer | Bjorn Andersson <andersson@kernel.org> | 2023-02-14 17:19:38 +0100 |
commit | f424d1cbe8c7ef78a4b639502fa9904c4198387b (patch) | |
tree | 874bfe240d4927f02e629e17b676f302147efa2a /drivers/rpmsg/qcom_glink_native.h | |
parent | rpmsg: glink: rpm: Wrap driver context (diff) | |
download | linux-f424d1cbe8c7ef78a4b639502fa9904c4198387b.tar.xz linux-f424d1cbe8c7ef78a4b639502fa9904c4198387b.zip |
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.h | 3 |
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 |