Hi
This serie bring a few fixes related to handling of responses in some
corner cases; renaming also .clear_notification() into clear_channel(),
being indeed a method of general utility not strictly related to
notifications. (and needed by these same fixes)
Based on scmi-next 5.7 [1], on top of:
commit a2fe63248225 ("firmware: arm_scmi: Fix return error code in
smc_send_message")
[1] git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux.git
Cristian Marussi (4):
firmware: arm_scmi: Rename .clear_notification() transport_ops
firmware: arm_scmi: Clear channel on reception of unexpected responses
firmware: arm_scmi: Clear channel for delayed responses
firmware: arm_scmi: Fix handling of unexpected delayed responses
drivers/firmware/arm_scmi/common.h | 6 +++---
drivers/firmware/arm_scmi/driver.c | 26 ++++++++++++++++++++++----
drivers/firmware/arm_scmi/mailbox.c | 6 +++---
drivers/firmware/arm_scmi/shmem.c | 2 +-
4 files changed, 29 insertions(+), 11 deletions(-)
--
2.17.1
Clear channel properly when done processing a delayed response.
Signed-off-by: Cristian Marussi <[email protected]>
---
drivers/firmware/arm_scmi/driver.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/firmware/arm_scmi/driver.c b/drivers/firmware/arm_scmi/driver.c
index 31c6a89a6edd..07de196f15aa 100644
--- a/drivers/firmware/arm_scmi/driver.c
+++ b/drivers/firmware/arm_scmi/driver.c
@@ -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);
+ }
}
/**
--
2.17.1
On Mon, 20 Apr 2020 16:23:11 +0100, Cristian Marussi wrote:
> Hi
>
> This serie bring a few fixes related to handling of responses in some
> corner cases; renaming also .clear_notification() into clear_channel(),
> being indeed a method of general utility not strictly related to
> notifications. (and needed by these same fixes)
>
> [...]
Applied, thanks!
[1/4] firmware: arm_scmi: Rename .clear_notification() transport_ops
commit: 87dff4e63cf2910f2e4a32d1cb3e4a1a25406eb7
[2/4] firmware: arm_scmi: Clear channel on reception of unexpected responses
commit: b37f5cc8d243479d7572445010fb6c9a4dff6dc4
[3/4] firmware: arm_scmi: Clear channel for delayed responses
commit: d04fb2b2ddefad7c00edd29c1ed40188ce8f12a2
[4/4] firmware: arm_scmi: Fix handling of unexpected delayed responses
commit: c5bceb98ce0e4ae8057a386c5171a868213fe226
--
Regards,
Sudeep