Loading drivers/hwtracing/coresight/coresight-cti.c +21 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ do { \ #define ITTRIGOUTACK (0xEF0) #define ITCHIN (0xEF4) #define ITTRIGIN (0xEF8) #define DEVID (0xFC8) #define CTI_MAX_TRIGGERS (32) #define CTI_MAX_CHANNELS (4) Loading Loading @@ -86,6 +87,8 @@ struct cti_drvdata { struct coresight_cti cti; int refcnt; int cpu; unsigned int trig_num_max; unsigned int ch_num_max; bool cti_save; bool cti_hwclk; bool l2_off; Loading Loading @@ -1353,6 +1356,19 @@ static ssize_t disable_gate_store(struct device *dev, } static DEVICE_ATTR_WO(disable_gate); static ssize_t show_info_show(struct device *dev, struct device_attribute *attr, char *buf) { struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent); ssize_t size = 0; size = scnprintf(&buf[size], PAGE_SIZE, "%d %d\n", drvdata->trig_num_max, drvdata->ch_num_max); return size; } static DEVICE_ATTR_RO(show_info); static struct attribute *cti_attrs[] = { &dev_attr_show_trigin.attr, &dev_attr_show_trigout.attr, Loading @@ -1369,6 +1385,7 @@ static struct attribute *cti_attrs[] = { &dev_attr_show_gate.attr, &dev_attr_enable_gate.attr, &dev_attr_disable_gate.attr, &dev_attr_show_info.attr, NULL, }; Loading Loading @@ -1468,6 +1485,7 @@ static int cti_init_save(struct cti_drvdata *drvdata, static int cti_probe(struct amba_device *adev, const struct amba_id *id) { int ret; unsigned int ctidevid; struct device *dev = &adev->dev; struct coresight_platform_data *pdata; struct cti_drvdata *drvdata; Loading Loading @@ -1539,6 +1557,9 @@ static int cti_probe(struct amba_device *adev, const struct amba_id *id) registered++; } pm_runtime_put(&adev->dev); ctidevid = cti_readl(drvdata, DEVID); drvdata->trig_num_max = (ctidevid & GENMASK(15, 8)) >> 8; drvdata->ch_num_max = (ctidevid & GENMASK(21, 16)) >> 16; dev_dbg(dev, "CTI initialized\n"); return 0; err: Loading Loading
drivers/hwtracing/coresight/coresight-cti.c +21 −0 Original line number Diff line number Diff line Loading @@ -56,6 +56,7 @@ do { \ #define ITTRIGOUTACK (0xEF0) #define ITCHIN (0xEF4) #define ITTRIGIN (0xEF8) #define DEVID (0xFC8) #define CTI_MAX_TRIGGERS (32) #define CTI_MAX_CHANNELS (4) Loading Loading @@ -86,6 +87,8 @@ struct cti_drvdata { struct coresight_cti cti; int refcnt; int cpu; unsigned int trig_num_max; unsigned int ch_num_max; bool cti_save; bool cti_hwclk; bool l2_off; Loading Loading @@ -1353,6 +1356,19 @@ static ssize_t disable_gate_store(struct device *dev, } static DEVICE_ATTR_WO(disable_gate); static ssize_t show_info_show(struct device *dev, struct device_attribute *attr, char *buf) { struct cti_drvdata *drvdata = dev_get_drvdata(dev->parent); ssize_t size = 0; size = scnprintf(&buf[size], PAGE_SIZE, "%d %d\n", drvdata->trig_num_max, drvdata->ch_num_max); return size; } static DEVICE_ATTR_RO(show_info); static struct attribute *cti_attrs[] = { &dev_attr_show_trigin.attr, &dev_attr_show_trigout.attr, Loading @@ -1369,6 +1385,7 @@ static struct attribute *cti_attrs[] = { &dev_attr_show_gate.attr, &dev_attr_enable_gate.attr, &dev_attr_disable_gate.attr, &dev_attr_show_info.attr, NULL, }; Loading Loading @@ -1468,6 +1485,7 @@ static int cti_init_save(struct cti_drvdata *drvdata, static int cti_probe(struct amba_device *adev, const struct amba_id *id) { int ret; unsigned int ctidevid; struct device *dev = &adev->dev; struct coresight_platform_data *pdata; struct cti_drvdata *drvdata; Loading Loading @@ -1539,6 +1557,9 @@ static int cti_probe(struct amba_device *adev, const struct amba_id *id) registered++; } pm_runtime_put(&adev->dev); ctidevid = cti_readl(drvdata, DEVID); drvdata->trig_num_max = (ctidevid & GENMASK(15, 8)) >> 8; drvdata->ch_num_max = (ctidevid & GENMASK(21, 16)) >> 16; dev_dbg(dev, "CTI initialized\n"); return 0; err: Loading