[PATCH v2 2/2] firmware: arm_scmi: mailbox: support P2A channel completion

Sudeep Holla sudeep.holla at arm.com
Fri Jun 14 02:19:42 PDT 2024


On Fri, May 10, 2024 at 11:19:48AM +0800, Peng Fan (OSS) wrote:

There was some coding style error reported(unbalanced {}) which made me
look at the code again. I don't think we need to splat out error.

> @@ -300,8 +326,30 @@ static void mailbox_fetch_notification(struct scmi_chan_info *cinfo,
>  static void mailbox_clear_channel(struct scmi_chan_info *cinfo)
>  {
>  	struct scmi_mailbox *smbox = cinfo->transport_info;
> +	struct device *cdev = cinfo->dev;
> +	struct mbox_chan *intr;
> +	int ret;
>  
>  	shmem_clear_channel(smbox->shmem);
> +
> +	if (!shmem_channel_intr_enabled(smbox->shmem))
> +		return;
> +
> +	if (smbox->chan_platform_receiver)
> +		intr = smbox->chan_platform_receiver;
> +	else if (smbox->chan)
> +		intr = smbox->chan;
> +	else {
> +		dev_err(cdev, "Channel INTR wrongly set?\n");
> +		return;
> +	}
> 

If it is OK I would like to fix it up with below change.

Regards,
Sudeep

-->8

diff --git i/drivers/firmware/arm_scmi/mailbox.c w/drivers/firmware/arm_scmi/mailbox.c
index adb69a6a0223..3bb3fba8f478 100644
--- i/drivers/firmware/arm_scmi/mailbox.c
+++ w/drivers/firmware/arm_scmi/mailbox.c
@@ -326,30 +326,25 @@ static void mailbox_fetch_notification(struct scmi_chan_info *cinfo,
 static void mailbox_clear_channel(struct scmi_chan_info *cinfo)
 {
        struct scmi_mailbox *smbox = cinfo->transport_info;
-       struct device *cdev = cinfo->dev;
-       struct mbox_chan *intr;
+       struct mbox_chan *intr_chan = NULL;
        int ret;

        shmem_clear_channel(smbox->shmem);

-       if (!shmem_channel_intr_enabled(smbox->shmem))
-               return;
-
        if (smbox->chan_platform_receiver)
-               intr = smbox->chan_platform_receiver;
+               intr_chan = smbox->chan_platform_receiver;
        else if (smbox->chan)
-               intr = smbox->chan;
-       else {
-               dev_err(cdev, "Channel INTR wrongly set?\n");
+               intr_chan = smbox->chan;
+
+       if (!(intr_chan && shmem_channel_intr_enabled(smbox->shmem)))
                return;
-       }

-       ret = mbox_send_message(intr, NULL);
+       ret = mbox_send_message(intr_chan, NULL);
        /* mbox_send_message returns non-negative value on success, so reset */
        if (ret > 0)
                ret = 0;

-       mbox_client_txdone(intr, ret);
+       mbox_client_txdone(intr_chan, ret);
 }

 static bool




More information about the linux-arm-kernel mailing list