Loading drivers/hwtracing/coresight/coresight-tmc-etr.c +1 −1 Original line number Diff line number Diff line Loading @@ -542,7 +542,7 @@ void tmc_etr_disable_hw(struct tmc_drvdata *drvdata) CS_LOCK(drvdata->base); } static int tmc_etr_alloc_mem(struct tmc_drvdata *drvdata) int tmc_etr_alloc_mem(struct tmc_drvdata *drvdata) { int ret; Loading drivers/hwtracing/coresight/coresight-tmc.c +14 −3 Original line number Diff line number Diff line Loading @@ -446,6 +446,16 @@ static ssize_t out_mode_store(struct device *dev, spin_unlock_irqrestore(&drvdata->spinlock, flags); goto out; } if (!drvdata->vaddr) { spin_unlock_irqrestore(&drvdata->spinlock, flags); ret = tmc_etr_alloc_mem(drvdata); if (ret) { mutex_unlock(&drvdata->mem_lock); return ret; } spin_lock_irqsave(&drvdata->spinlock, flags); } __tmc_etr_disable_to_bam(drvdata); tmc_etr_enable_hw(drvdata); drvdata->out_mode = TMC_ETR_OUT_MODE_MEM; Loading Loading @@ -474,9 +484,10 @@ static ssize_t out_mode_store(struct device *dev, drvdata->out_mode = TMC_ETR_OUT_MODE_USB; spin_unlock_irqrestore(&drvdata->spinlock, flags); if (drvdata->mode != CS_MODE_DISABLED) { coresight_cti_unmap_trigin(drvdata->cti_reset, 2, 0); coresight_cti_unmap_trigout(drvdata->cti_flush, 3, 0); coresight_cti_unmap_trigin(drvdata->cti_reset, 2, 0); if (drvdata->vaddr) { tmc_etr_byte_cntr_stop(drvdata->byte_cntr); tmc_etr_free_mem(drvdata); } Loading drivers/hwtracing/coresight/coresight-tmc.h +1 −0 Original line number Diff line number Diff line Loading @@ -275,6 +275,7 @@ extern struct byte_cntr *byte_cntr_init(struct amba_device *adev, extern const struct coresight_ops tmc_etr_cs_ops; extern void tmc_etr_sg_rwp_pos(struct tmc_drvdata *drvdata, phys_addr_t rwp); extern void tmc_etr_free_mem(struct tmc_drvdata *drvdata); extern int tmc_etr_alloc_mem(struct tmc_drvdata *drvdata); extern const struct coresight_ops tmc_etr_cs_ops; Loading Loading
drivers/hwtracing/coresight/coresight-tmc-etr.c +1 −1 Original line number Diff line number Diff line Loading @@ -542,7 +542,7 @@ void tmc_etr_disable_hw(struct tmc_drvdata *drvdata) CS_LOCK(drvdata->base); } static int tmc_etr_alloc_mem(struct tmc_drvdata *drvdata) int tmc_etr_alloc_mem(struct tmc_drvdata *drvdata) { int ret; Loading
drivers/hwtracing/coresight/coresight-tmc.c +14 −3 Original line number Diff line number Diff line Loading @@ -446,6 +446,16 @@ static ssize_t out_mode_store(struct device *dev, spin_unlock_irqrestore(&drvdata->spinlock, flags); goto out; } if (!drvdata->vaddr) { spin_unlock_irqrestore(&drvdata->spinlock, flags); ret = tmc_etr_alloc_mem(drvdata); if (ret) { mutex_unlock(&drvdata->mem_lock); return ret; } spin_lock_irqsave(&drvdata->spinlock, flags); } __tmc_etr_disable_to_bam(drvdata); tmc_etr_enable_hw(drvdata); drvdata->out_mode = TMC_ETR_OUT_MODE_MEM; Loading Loading @@ -474,9 +484,10 @@ static ssize_t out_mode_store(struct device *dev, drvdata->out_mode = TMC_ETR_OUT_MODE_USB; spin_unlock_irqrestore(&drvdata->spinlock, flags); if (drvdata->mode != CS_MODE_DISABLED) { coresight_cti_unmap_trigin(drvdata->cti_reset, 2, 0); coresight_cti_unmap_trigout(drvdata->cti_flush, 3, 0); coresight_cti_unmap_trigin(drvdata->cti_reset, 2, 0); if (drvdata->vaddr) { tmc_etr_byte_cntr_stop(drvdata->byte_cntr); tmc_etr_free_mem(drvdata); } Loading
drivers/hwtracing/coresight/coresight-tmc.h +1 −0 Original line number Diff line number Diff line Loading @@ -275,6 +275,7 @@ extern struct byte_cntr *byte_cntr_init(struct amba_device *adev, extern const struct coresight_ops tmc_etr_cs_ops; extern void tmc_etr_sg_rwp_pos(struct tmc_drvdata *drvdata, phys_addr_t rwp); extern void tmc_etr_free_mem(struct tmc_drvdata *drvdata); extern int tmc_etr_alloc_mem(struct tmc_drvdata *drvdata); extern const struct coresight_ops tmc_etr_cs_ops; Loading