Loading drivers/hwtracing/coresight/coresight-stm.c +1 −0 Original line number Diff line number Diff line Loading @@ -211,6 +211,7 @@ static void stm_disable(struct coresight_device *csdev, if (local_read(&drvdata->mode) == CS_MODE_SYSFS) { spin_lock(&drvdata->spinlock); stm_disable_hw(drvdata); drvdata->enable = false; spin_unlock(&drvdata->spinlock); /* Wait until the engine has completely stopped */ Loading drivers/hwtracing/coresight/coresight-tmc-etf.c +14 −10 Original line number Diff line number Diff line Loading @@ -527,12 +527,14 @@ int tmc_read_prepare_etb(struct tmc_drvdata *drvdata) goto out; } if (drvdata->enable) { /* There is no point in reading a TMC in HW FIFO mode */ mode = readl_relaxed(drvdata->base + TMC_MODE); if (mode != TMC_MODE_CIRCULAR_BUFFER) { ret = -EINVAL; goto out; } } val = local_read(&drvdata->mode); /* Don't interfere if operated from Perf */ Loading Loading @@ -571,12 +573,14 @@ int tmc_read_unprepare_etb(struct tmc_drvdata *drvdata) spin_lock_irqsave(&drvdata->spinlock, flags); if (drvdata->enable) { /* There is no point in reading a TMC in HW FIFO mode */ mode = readl_relaxed(drvdata->base + TMC_MODE); if (mode != TMC_MODE_CIRCULAR_BUFFER) { spin_unlock_irqrestore(&drvdata->spinlock, flags); return -EINVAL; } } /* Re-enable the TMC if need be */ if (local_read(&drvdata->mode) == CS_MODE_SYSFS) { Loading Loading
drivers/hwtracing/coresight/coresight-stm.c +1 −0 Original line number Diff line number Diff line Loading @@ -211,6 +211,7 @@ static void stm_disable(struct coresight_device *csdev, if (local_read(&drvdata->mode) == CS_MODE_SYSFS) { spin_lock(&drvdata->spinlock); stm_disable_hw(drvdata); drvdata->enable = false; spin_unlock(&drvdata->spinlock); /* Wait until the engine has completely stopped */ Loading
drivers/hwtracing/coresight/coresight-tmc-etf.c +14 −10 Original line number Diff line number Diff line Loading @@ -527,12 +527,14 @@ int tmc_read_prepare_etb(struct tmc_drvdata *drvdata) goto out; } if (drvdata->enable) { /* There is no point in reading a TMC in HW FIFO mode */ mode = readl_relaxed(drvdata->base + TMC_MODE); if (mode != TMC_MODE_CIRCULAR_BUFFER) { ret = -EINVAL; goto out; } } val = local_read(&drvdata->mode); /* Don't interfere if operated from Perf */ Loading Loading @@ -571,12 +573,14 @@ int tmc_read_unprepare_etb(struct tmc_drvdata *drvdata) spin_lock_irqsave(&drvdata->spinlock, flags); if (drvdata->enable) { /* There is no point in reading a TMC in HW FIFO mode */ mode = readl_relaxed(drvdata->base + TMC_MODE); if (mode != TMC_MODE_CIRCULAR_BUFFER) { spin_unlock_irqrestore(&drvdata->spinlock, flags); return -EINVAL; } } /* Re-enable the TMC if need be */ if (local_read(&drvdata->mode) == CS_MODE_SYSFS) { Loading