• Lina Iyer's avatar
    soc: qcom: rpmh: Remove serialization of TCS commands · fef419c4
    Lina Iyer authored
    Requests sent to RPMH can be sent as fire-n-forget or response required,
    with the latter ensuring the command has been completed by the hardware
    accelerator. Commands in a request with tcs_cmd::wait set, would ensure
    that those select commands are sent as response required, even though
    the actual TCS request may be fire-n-forget.
    
    Also, commands with .wait flag were also guaranteed to be complete
    before the following command in the TCS is sent. This means that the
    next command of the same request blocked until the current request is
    completed. This could mean waiting for a voltage to settle or series of
    NOCs be configured before the next command is sent. But drivers using
    this feature have never cared about the serialization aspect. By not
    enforcing the serialization we can allow the hardware to run in parallel
    improving the performance.
    
    Let's clarify the usage of this member in the tcs_cmd structure to mean
    only completion and not serialization. This should also improve the
    performance of bus requests where changes could happen in parallel.
    Also, CPU resume from deep idle may see benefits from certain wake
    requests.
    Reviewed-by: default avatarDouglas Anderson <dianders@chromium.org>
    Signed-off-by: default avatarLina Iyer <ilina@codeaurora.org>
    Signed-off-by: default avatarMaulik Shah <mkshah@codeaurora.org>
    Link: https://lore.kernel.org/r/1610008770-13891-1-git-send-email-mkshah@codeaurora.orgSigned-off-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
    fef419c4
rpmh-rsc.c 30.9 KB