lkml.org 
[lkml]   [2021]   [Dec]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v8 04/11] firmware: arm_scmi: Make smc support sync_cmds_completed_on_ret
    Date
    Enable sync_cmds_completed_on_ret in the SMC transport descriptor and
    remove SMC specific .poll_done callback support since polling is bypassed
    when sync_cmds_completed_on_ret is set.

    Signed-off-by: Cristian Marussi <cristian.marussi@arm.com>
    ---
    v7 --> v8
    - renaming to sync_cmds_completed_on_ret
    v4 --> v5
    - removed RFC tag
    - added comment on setting flag
    - remove smc_poll_done
    ---
    drivers/firmware/arm_scmi/smc.c | 18 +++++++++---------
    1 file changed, 9 insertions(+), 9 deletions(-)

    diff --git a/drivers/firmware/arm_scmi/smc.c b/drivers/firmware/arm_scmi/smc.c
    index d6c6ad9f6bab..df0defd9f8bb 100644
    --- a/drivers/firmware/arm_scmi/smc.c
    +++ b/drivers/firmware/arm_scmi/smc.c
    @@ -173,14 +173,6 @@ static void smc_mark_txdone(struct scmi_chan_info *cinfo, int ret)
    mutex_unlock(&scmi_info->shmem_lock);
    }

    -static bool
    -smc_poll_done(struct scmi_chan_info *cinfo, struct scmi_xfer *xfer)
    -{
    - struct scmi_smc *scmi_info = cinfo->transport_info;
    -
    - return shmem_poll_done(scmi_info->shmem, xfer);
    -}
    -
    static const struct scmi_transport_ops scmi_smc_ops = {
    .chan_available = smc_chan_available,
    .chan_setup = smc_chan_setup,
    @@ -188,7 +180,6 @@ static const struct scmi_transport_ops scmi_smc_ops = {
    .send_message = smc_send_message,
    .mark_txdone = smc_mark_txdone,
    .fetch_response = smc_fetch_response,
    - .poll_done = smc_poll_done,
    };

    const struct scmi_desc scmi_smc_desc = {
    @@ -196,4 +187,13 @@ const struct scmi_desc scmi_smc_desc = {
    .max_rx_timeout_ms = 30,
    .max_msg = 20,
    .max_msg_size = 128,
    + /*
    + * Setting .sync_cmds_atomic_replies to true for SMC assumes that,
    + * once the SMC instruction has completed successfully, the issued
    + * SCMI command would have been already fully processed by the SCMI
    + * platform firmware and so any possible response value expected
    + * for the issued command will be immmediately ready to be fetched
    + * from the shared memory area.
    + */
    + .sync_cmds_completed_on_ret = true,
    };
    --
    2.17.1
    \
     
     \ /
      Last update: 2021-12-20 20:58    [W:4.096 / U:0.132 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site