lkml.org 
[lkml]   [2020]   [May]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] coresight: replicator: Reset replicator if context is lost
    Date
    On some QCOM SoCs, replicators in Always-On domain loses its
    context as soon as the clock is disabled. Currently as a part
    of pm_runtime workqueue, clock is disabled after the replicator
    is initialized by amba_pm_runtime_suspend assuming that context
    is not lost which is not true for replicators with such
    limitations. Hence check the replicator idfilter registers
    in dynamic_replicator_enable() and reset again.

    Signed-off-by: Sai Prakash Ranjan <saiprakash.ranjan@codeaurora.org>
    ---

    More info here - https://lore.kernel.org/patchwork/patch/1231182/

    ---
    drivers/hwtracing/coresight/coresight-replicator.c | 11 +++++++++++
    1 file changed, 11 insertions(+)

    diff --git a/drivers/hwtracing/coresight/coresight-replicator.c b/drivers/hwtracing/coresight/coresight-replicator.c
    index e7dc1c31d20d..11df63f51071 100644
    --- a/drivers/hwtracing/coresight/coresight-replicator.c
    +++ b/drivers/hwtracing/coresight/coresight-replicator.c
    @@ -68,6 +68,17 @@ static int dynamic_replicator_enable(struct replicator_drvdata *drvdata,
    int rc = 0;
    u32 reg;

    + /*
    + * On some QCOM SoCs with replicators in Always-On domain, disabling
    + * clock will result in replicator losing its context. Currently
    + * as a part of pm_runtime workqueue, amba_pm_runtime_suspend disables
    + * clock assuming the context is not lost which is not true for cases
    + * with hardware limitations as the above.
    + */
    + if ((readl_relaxed(drvdata->base + REPLICATOR_IDFILTER0) == 0) &&
    + (readl_relaxed(drvdata->base + REPLICATOR_IDFILTER1) == 0))
    + dynamic_replicator_reset(drvdata);
    +
    switch (outport) {
    case 0:
    reg = REPLICATOR_IDFILTER0;
    --
    QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member
    of Code Aurora Forum, hosted by The Linux Foundation
    \
     
     \ /
      Last update: 2020-05-11 10:35    [W:3.219 / U:0.456 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site