Message ID | 20240625021212.1443304-1-quic_jiegan@quicinc.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Coresight: Set correct cs_mode for TPDM to fix disable issue | expand |
On 25/06/2024 03:12, Jie Gan wrote: > The coresight_disable_source_sysfs function should verify the > mode of the coresight device before disabling the source. > However, the mode for the TPDM device is always set to > CS_MODE_DISABLED, resulting in the check consistently failing. > As a result, TPDM cannot be properly disabled. > > To fix the issue: > Configure CS_MODE_SYSFS/CS_MODE_PERF during the enablement of TPDM. > Configure CS_MODE_DISABLED during the disablement of TPDM. > > Fixes: 1f5149c7751c("coresight: Move all sysfs code to sysfs file") That looks like the wrong commit. This was a problem since the original TPDM driver. I would say : Fixes: b3c71626a933 ("Coresight: Add coresight TPDM source driver") > Signed-off-by: Jie Gan <quic_jiegan@quicinc.com> Otherwise, the patch looks good to me. Please could you also fixup "dummy" source driver in a separate patch. Suzuki
On Tue, Jun 25, 2024 at 01:24:11PM +0100, Suzuki K Poulose wrote: > On 25/06/2024 03:12, Jie Gan wrote: > > The coresight_disable_source_sysfs function should verify the > > mode of the coresight device before disabling the source. > > However, the mode for the TPDM device is always set to > > CS_MODE_DISABLED, resulting in the check consistently failing. > > As a result, TPDM cannot be properly disabled. > > > > To fix the issue: > > Configure CS_MODE_SYSFS/CS_MODE_PERF during the enablement of TPDM. > > Configure CS_MODE_DISABLED during the disablement of TPDM. > > > > Fixes: 1f5149c7751c("coresight: Move all sysfs code to sysfs file") > > That looks like the wrong commit. This was a problem since the original > TPDM driver. I would say : > > Fixes: b3c71626a933 ("Coresight: Add coresight TPDM source driver") I will correct the Fixes tag and re-send the patch. > > > Signed-off-by: Jie Gan <quic_jiegan@quicinc.com> > > Otherwise, the patch looks good to me. > > Please could you also fixup "dummy" source driver in a separate patch. Sure. > > Suzuki > Thanks, Jie
diff --git a/drivers/hwtracing/coresight/coresight-tpdm.c b/drivers/hwtracing/coresight/coresight-tpdm.c index a9708ab0d488..90a5105f6199 100644 --- a/drivers/hwtracing/coresight/coresight-tpdm.c +++ b/drivers/hwtracing/coresight/coresight-tpdm.c @@ -449,6 +449,11 @@ static int tpdm_enable(struct coresight_device *csdev, struct perf_event *event, return -EBUSY; } + if (!coresight_take_mode(csdev, mode)) { + spin_unlock(&drvdata->spinlock); + return -EBUSY; + } + __tpdm_enable(drvdata); drvdata->enable = true; spin_unlock(&drvdata->spinlock); @@ -506,6 +511,7 @@ static void tpdm_disable(struct coresight_device *csdev, } __tpdm_disable(drvdata); + coresight_set_mode(csdev, CS_MODE_DISABLED); drvdata->enable = false; spin_unlock(&drvdata->spinlock);
The coresight_disable_source_sysfs function should verify the mode of the coresight device before disabling the source. However, the mode for the TPDM device is always set to CS_MODE_DISABLED, resulting in the check consistently failing. As a result, TPDM cannot be properly disabled. To fix the issue: Configure CS_MODE_SYSFS/CS_MODE_PERF during the enablement of TPDM. Configure CS_MODE_DISABLED during the disablement of TPDM. Fixes: 1f5149c7751c("coresight: Move all sysfs code to sysfs file") Signed-off-by: Jie Gan <quic_jiegan@quicinc.com> --- drivers/hwtracing/coresight/coresight-tpdm.c | 6 ++++++ 1 file changed, 6 insertions(+)