Merge "coresight: tmc: Configure cti trigger number in device tree"
This commit is contained in:
commit
4059648ed9
@ -218,8 +218,10 @@ static int tmc_enable_etf_sink_sysfs(struct coresight_device *csdev)
|
|||||||
kfree(buf);
|
kfree(buf);
|
||||||
|
|
||||||
if (!ret) {
|
if (!ret) {
|
||||||
coresight_cti_map_trigin(drvdata->cti_reset, 5, 0);
|
coresight_cti_map_trigin(drvdata->cti_reset,
|
||||||
coresight_cti_map_trigout(drvdata->cti_flush, 1, 0);
|
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");
|
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);
|
spin_unlock_irqrestore(&drvdata->spinlock, flags);
|
||||||
|
|
||||||
coresight_cti_unmap_trigin(drvdata->cti_reset, 0, 0);
|
coresight_cti_unmap_trigin(drvdata->cti_reset,
|
||||||
coresight_cti_unmap_trigout(drvdata->cti_flush, 1, 0);
|
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");
|
dev_dbg(&csdev->dev, "TMC-ETB/ETF disabled\n");
|
||||||
return 0;
|
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);
|
free_buf = new_buf = tmc_etr_setup_sysfs_buf(drvdata);
|
||||||
if (IS_ERR(new_buf))
|
if (IS_ERR(new_buf))
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
coresight_cti_map_trigout(drvdata->cti_flush, 3, 0);
|
coresight_cti_map_trigout(drvdata->cti_flush,
|
||||||
coresight_cti_map_trigin(drvdata->cti_reset, 5, 0);
|
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);
|
spin_lock_irqsave(&drvdata->spinlock, flags);
|
||||||
}
|
}
|
||||||
@ -2051,8 +2053,10 @@ static int _tmc_disable_etr_sink(struct coresight_device *csdev,
|
|||||||
flush_workqueue(drvdata->byte_cntr->usb_wq);
|
flush_workqueue(drvdata->byte_cntr->usb_wq);
|
||||||
drvdata->usbch = NULL;
|
drvdata->usbch = NULL;
|
||||||
}
|
}
|
||||||
coresight_cti_unmap_trigin(drvdata->cti_reset, 0, 0);
|
coresight_cti_unmap_trigin(drvdata->cti_reset,
|
||||||
coresight_cti_unmap_trigout(drvdata->cti_flush, 3, 0);
|
drvdata->cti_reset_trig_num, 0);
|
||||||
|
coresight_cti_unmap_trigout(drvdata->cti_flush,
|
||||||
|
drvdata->cti_flush_trig_num, 0);
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
dev_info(&csdev->dev, "TMC-ETR disabled\n");
|
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");
|
dev_err(dev, "failed to get flush cti, defer probe\n");
|
||||||
return -EPROBE_DEFER;
|
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]);
|
drvdata->cti_reset = coresight_cti_get(ctidata->names[1]);
|
||||||
if (IS_ERR(drvdata->cti_reset)) {
|
if (IS_ERR(drvdata->cti_reset)) {
|
||||||
dev_err(dev, "failed to get reset cti, defer probe\n");
|
dev_err(dev, "failed to get reset cti, defer probe\n");
|
||||||
return -EPROBE_DEFER;
|
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;
|
desc.dev = dev;
|
||||||
|
@ -260,6 +260,8 @@ struct tmc_drvdata {
|
|||||||
bool enable_to_bam;
|
bool enable_to_bam;
|
||||||
struct coresight_cti *cti_flush;
|
struct coresight_cti *cti_flush;
|
||||||
struct coresight_cti *cti_reset;
|
struct coresight_cti *cti_reset;
|
||||||
|
u32 cti_flush_trig_num;
|
||||||
|
u32 cti_reset_trig_num;
|
||||||
enum tmc_etr_out_mode out_mode;
|
enum tmc_etr_out_mode out_mode;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user