OSDN Git Service

firmware: arm_scmi: Clear channel for delayed responses
authorCristian Marussi <cristian.marussi@arm.com>
Mon, 20 Apr 2020 15:23:14 +0000 (16:23 +0100)
committerSudeep Holla <sudeep.holla@arm.com>
Mon, 20 Apr 2020 16:25:26 +0000 (17:25 +0100)
Clear channel properly when done processing a delayed response.
This will let the platform firmware know that the channel is now free to
use it for any new delayed response or notification.

Link: https://lore.kernel.org/r/20200420152315.21008-4-cristian.marussi@arm.com
Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
(sudeep.holla: Updated commit log to reflect that channel is now free for
 platform to use)
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
drivers/firmware/arm_scmi/driver.c

index 31c6a89..07de196 100644 (file)
@@ -256,10 +256,12 @@ static void scmi_handle_response(struct scmi_chan_info *cinfo,
                           xfer->hdr.protocol_id, xfer->hdr.seq,
                           msg_type);
 
-       if (msg_type == MSG_TYPE_DELAYED_RESP)
+       if (msg_type == MSG_TYPE_DELAYED_RESP) {
+               info->desc->ops->clear_channel(cinfo);
                complete(xfer->async_done);
-       else
+       } else {
                complete(&xfer->done);
+       }
 }
 
 /**