Hi, On Thu, Jan 7, 2021 at 12:39 AM Maulik Shah <mkshah@xxxxxxxxxxxxxx> wrote: > > From: Lina Iyer <ilina@xxxxxxxxxxxxxx> > > 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. > > Signed-off-by: Lina Iyer <ilina@xxxxxxxxxxxxxx> > Signed-off-by: Maulik Shah <mkshah@xxxxxxxxxxxxxx> > --- > Changes in v3: > - Update the comment in include/soc/qcom/tcs.h > - Update to keep req->wait_for_compl as is irq handler > > Changes in v2: > - Add SoB of self > - Fix typo in comment > - Update comment as Doug suggested > - Remove write to RSC_DRV_CMD_WAIT_FOR_CMPL in tcs_write() and > tcs_invalidate() > --- > drivers/soc/qcom/rpmh-rsc.c | 22 +++++++++------------- > include/soc/qcom/tcs.h | 9 ++++++++- > 2 files changed, 17 insertions(+), 14 deletions(-) Reviewed-by: Douglas Anderson <dianders@xxxxxxxxxxxx>