Loading drivers/hwtracing/coresight/coresight-tmc-etf.c +8 −4 Original line number Diff line number Diff line Loading @@ -218,8 +218,10 @@ static int tmc_enable_etf_sink_sysfs(struct coresight_device *csdev) kfree(buf); if (!ret) { coresight_cti_map_trigin(drvdata->cti_reset, 5, 0); coresight_cti_map_trigout(drvdata->cti_flush, 1, 0); coresight_cti_map_trigin(drvdata->cti_reset, drvdata->cti_reset_trig_num, 0); coresight_cti_map_trigout(drvdata->cti_flush, drvdata->cti_flush_trig_num, 0); dev_info(&csdev->dev, "TMC-ETB/ETF enabled\n"); } Loading Loading @@ -333,8 +335,10 @@ static int tmc_disable_etf_sink(struct coresight_device *csdev) spin_unlock_irqrestore(&drvdata->spinlock, flags); coresight_cti_unmap_trigin(drvdata->cti_reset, 0, 0); coresight_cti_unmap_trigout(drvdata->cti_flush, 1, 0); coresight_cti_unmap_trigin(drvdata->cti_reset, drvdata->cti_reset_trig_num, 0); coresight_cti_unmap_trigout(drvdata->cti_flush, drvdata->cti_flush_trig_num, 0); dev_dbg(&csdev->dev, "TMC-ETB/ETF disabled\n"); return 0; } Loading drivers/hwtracing/coresight/coresight-tmc-etr.c +8 −4 Original line number Diff line number Diff line Loading @@ -1470,8 +1470,10 @@ static int tmc_enable_etr_sink_sysfs(struct coresight_device *csdev) free_buf = new_buf = tmc_etr_setup_sysfs_buf(drvdata); if (IS_ERR(new_buf)) return -ENOMEM; coresight_cti_map_trigout(drvdata->cti_flush, 3, 0); coresight_cti_map_trigin(drvdata->cti_reset, 5, 0); coresight_cti_map_trigout(drvdata->cti_flush, drvdata->cti_flush_trig_num, 0); coresight_cti_map_trigin(drvdata->cti_reset, drvdata->cti_reset_trig_num, 0); } spin_lock_irqsave(&drvdata->spinlock, flags); } Loading Loading @@ -2051,8 +2053,10 @@ static int _tmc_disable_etr_sink(struct coresight_device *csdev, flush_workqueue(drvdata->byte_cntr->usb_wq); drvdata->usbch = NULL; } coresight_cti_unmap_trigin(drvdata->cti_reset, 0, 0); coresight_cti_unmap_trigout(drvdata->cti_flush, 3, 0); coresight_cti_unmap_trigin(drvdata->cti_reset, drvdata->cti_reset_trig_num, 0); coresight_cti_unmap_trigout(drvdata->cti_flush, drvdata->cti_flush_trig_num, 0); } out: dev_info(&csdev->dev, "TMC-ETR disabled\n"); Loading drivers/hwtracing/coresight/coresight-tmc.c +12 −0 Original line number Diff line number Diff line Loading @@ -611,12 +611,24 @@ static int tmc_probe(struct amba_device *adev, const struct amba_id *id) dev_err(dev, "failed to get flush cti, defer probe\n"); return -EPROBE_DEFER; } ret = of_property_read_u32(adev->dev.of_node, "cti-flush-trig-num", &drvdata->cti_flush_trig_num); if (ret) { dev_err(dev, "failed to get flush cti trigger number, defer probe\n"); return ret; } drvdata->cti_reset = coresight_cti_get(ctidata->names[1]); if (IS_ERR(drvdata->cti_reset)) { dev_err(dev, "failed to get reset cti, defer probe\n"); return -EPROBE_DEFER; } ret = of_property_read_u32(adev->dev.of_node, "cti-reset-trig-num", &drvdata->cti_reset_trig_num); if (ret) { dev_err(dev, "failed to get reset cti trigger number, defer probe\n"); return ret; } } desc.dev = dev; Loading drivers/hwtracing/coresight/coresight-tmc.h +2 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,8 @@ struct tmc_drvdata { bool enable_to_bam; struct coresight_cti *cti_flush; struct coresight_cti *cti_reset; u32 cti_flush_trig_num; u32 cti_reset_trig_num; enum tmc_etr_out_mode out_mode; }; Loading Loading
drivers/hwtracing/coresight/coresight-tmc-etf.c +8 −4 Original line number Diff line number Diff line Loading @@ -218,8 +218,10 @@ static int tmc_enable_etf_sink_sysfs(struct coresight_device *csdev) kfree(buf); if (!ret) { coresight_cti_map_trigin(drvdata->cti_reset, 5, 0); coresight_cti_map_trigout(drvdata->cti_flush, 1, 0); coresight_cti_map_trigin(drvdata->cti_reset, drvdata->cti_reset_trig_num, 0); coresight_cti_map_trigout(drvdata->cti_flush, drvdata->cti_flush_trig_num, 0); dev_info(&csdev->dev, "TMC-ETB/ETF enabled\n"); } Loading Loading @@ -333,8 +335,10 @@ static int tmc_disable_etf_sink(struct coresight_device *csdev) spin_unlock_irqrestore(&drvdata->spinlock, flags); coresight_cti_unmap_trigin(drvdata->cti_reset, 0, 0); coresight_cti_unmap_trigout(drvdata->cti_flush, 1, 0); coresight_cti_unmap_trigin(drvdata->cti_reset, drvdata->cti_reset_trig_num, 0); coresight_cti_unmap_trigout(drvdata->cti_flush, drvdata->cti_flush_trig_num, 0); dev_dbg(&csdev->dev, "TMC-ETB/ETF disabled\n"); return 0; } Loading
drivers/hwtracing/coresight/coresight-tmc-etr.c +8 −4 Original line number Diff line number Diff line Loading @@ -1470,8 +1470,10 @@ static int tmc_enable_etr_sink_sysfs(struct coresight_device *csdev) free_buf = new_buf = tmc_etr_setup_sysfs_buf(drvdata); if (IS_ERR(new_buf)) return -ENOMEM; coresight_cti_map_trigout(drvdata->cti_flush, 3, 0); coresight_cti_map_trigin(drvdata->cti_reset, 5, 0); coresight_cti_map_trigout(drvdata->cti_flush, drvdata->cti_flush_trig_num, 0); coresight_cti_map_trigin(drvdata->cti_reset, drvdata->cti_reset_trig_num, 0); } spin_lock_irqsave(&drvdata->spinlock, flags); } Loading Loading @@ -2051,8 +2053,10 @@ static int _tmc_disable_etr_sink(struct coresight_device *csdev, flush_workqueue(drvdata->byte_cntr->usb_wq); drvdata->usbch = NULL; } coresight_cti_unmap_trigin(drvdata->cti_reset, 0, 0); coresight_cti_unmap_trigout(drvdata->cti_flush, 3, 0); coresight_cti_unmap_trigin(drvdata->cti_reset, drvdata->cti_reset_trig_num, 0); coresight_cti_unmap_trigout(drvdata->cti_flush, drvdata->cti_flush_trig_num, 0); } out: dev_info(&csdev->dev, "TMC-ETR disabled\n"); Loading
drivers/hwtracing/coresight/coresight-tmc.c +12 −0 Original line number Diff line number Diff line Loading @@ -611,12 +611,24 @@ static int tmc_probe(struct amba_device *adev, const struct amba_id *id) dev_err(dev, "failed to get flush cti, defer probe\n"); return -EPROBE_DEFER; } ret = of_property_read_u32(adev->dev.of_node, "cti-flush-trig-num", &drvdata->cti_flush_trig_num); if (ret) { dev_err(dev, "failed to get flush cti trigger number, defer probe\n"); return ret; } drvdata->cti_reset = coresight_cti_get(ctidata->names[1]); if (IS_ERR(drvdata->cti_reset)) { dev_err(dev, "failed to get reset cti, defer probe\n"); return -EPROBE_DEFER; } ret = of_property_read_u32(adev->dev.of_node, "cti-reset-trig-num", &drvdata->cti_reset_trig_num); if (ret) { dev_err(dev, "failed to get reset cti trigger number, defer probe\n"); return ret; } } desc.dev = dev; Loading
drivers/hwtracing/coresight/coresight-tmc.h +2 −0 Original line number Diff line number Diff line Loading @@ -260,6 +260,8 @@ struct tmc_drvdata { bool enable_to_bam; struct coresight_cti *cti_flush; struct coresight_cti *cti_reset; u32 cti_flush_trig_num; u32 cti_reset_trig_num; enum tmc_etr_out_mode out_mode; }; Loading