rpmsg: glink: Extract tx kick operation
authorBjorn Andersson <quic_bjorande@quicinc.com>
Mon, 13 Feb 2023 15:52:10 +0000 (07:52 -0800)
committerBjorn Andersson <andersson@kernel.org>
Tue, 14 Feb 2023 16:19:38 +0000 (08:19 -0800)
Refactor out the tx kick operations to its own function, in preparation
for pushing the details to the individual transports.

Reviewed-by: Chris Lew <quic_clew@quicinc.com>
Signed-off-by: Bjorn Andersson <quic_bjorande@quicinc.com>
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Link: https://lore.kernel.org/r/20230213155215.1237059-2-quic_bjorande@quicinc.com
drivers/rpmsg/qcom_glink_native.c

index 115c0a1eddb10a3ea29574a1104b0eb5a745e543..5fd8b70271b7c82227a5de4b84b8168554027e7b 100644 (file)
@@ -303,6 +303,12 @@ static void qcom_glink_tx_write(struct qcom_glink *glink,
        glink->tx_pipe->write(glink->tx_pipe, hdr, hlen, data, dlen);
 }
 
+static void qcom_glink_tx_kick(struct qcom_glink *glink)
+{
+       mbox_send_message(glink->mbox_chan, NULL);
+       mbox_client_txdone(glink->mbox_chan, 0);
+}
+
 static void qcom_glink_send_read_notify(struct qcom_glink *glink)
 {
        struct glink_msg msg;
@@ -313,8 +319,7 @@ static void qcom_glink_send_read_notify(struct qcom_glink *glink)
 
        qcom_glink_tx_write(glink, &msg, sizeof(msg), NULL, 0);
 
-       mbox_send_message(glink->mbox_chan, NULL);
-       mbox_client_txdone(glink->mbox_chan, 0);
+       qcom_glink_tx_kick(glink);
 }
 
 static int qcom_glink_tx(struct qcom_glink *glink,
@@ -355,9 +360,7 @@ static int qcom_glink_tx(struct qcom_glink *glink,
        }
 
        qcom_glink_tx_write(glink, hdr, hlen, data, dlen);
-
-       mbox_send_message(glink->mbox_chan, NULL);
-       mbox_client_txdone(glink->mbox_chan, 0);
+       qcom_glink_tx_kick(glink);
 
 out:
        spin_unlock_irqrestore(&glink->tx_lock, flags);
@@ -1046,9 +1049,7 @@ static irqreturn_t qcom_glink_native_intr(int irq, void *data)
                        break;
                case RPM_CMD_READ_NOTIF:
                        qcom_glink_rx_advance(glink, ALIGN(sizeof(msg), 8));
-
-                       mbox_send_message(glink->mbox_chan, NULL);
-                       mbox_client_txdone(glink->mbox_chan, 0);
+                       qcom_glink_tx_kick(glink);
                        break;
                case RPM_CMD_INTENT:
                        qcom_glink_handle_intent(glink, param1, param2, avail);