mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 22:40:54 -04:00
coresight: tmc: Configure cti trigger number in device tree
Configure flush and reset cti trigger number in device tree. Replace configuring cti trigger number by hard code since some platforms don't have same cti trigger number. Change-Id: Ib26802b3bd3449566954752b100d6ea188e98e13 Signed-off-by: Tao,Zhang <taozha@codeaurora.org>
This commit is contained in:
parent
7bac0bc013
commit
4700692ee8
4 changed files with 30 additions and 8 deletions
|
|
@ -218,8 +218,10 @@ out:
|
|||
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");
|
||||
}
|
||||
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
|
@ -2053,8 +2055,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");
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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…
Reference in a new issue