Messages in this thread | | | Date | Thu, 9 Feb 2023 10:16:57 +0800 | Subject | Re: [PATCH] coresight: core: Add coresight name support | From | Jinlong Mao <> |
| |
On 2/8/2023 10:26 PM, Suzuki K Poulose wrote: > On 08/02/2023 11:07, Mao Jinlong wrote: >> Apart from STM and ETM sources, there will be more sources added to >> coresight components. For example, there are over 10 TPDM sources. >> Add coresight name support for custom names which will be >> easy to identify the source. >> > > As we have previously discussed, please don't make this a generic > code change. If your device has a "specifici" name, use that for > allocating in the driver and leave the core code alone. > > Suzuki > Hi Suzuki,
Not only for TPDMs. There could be dozens of CTI devices. It is hard for user to know which CTI device it is with current names.
Thanks Jinlong Mao > >> Signed-off-by: Mao Jinlong <quic_jinlmao@quicinc.com> >> --- >> drivers/hwtracing/coresight/coresight-core.c | 34 +++++++++++--------- >> 1 file changed, 19 insertions(+), 15 deletions(-) >> >> diff --git a/drivers/hwtracing/coresight/coresight-core.c >> b/drivers/hwtracing/coresight/coresight-core.c >> index d3bf82c0de1d..5e95d9c7f256 100644 >> --- a/drivers/hwtracing/coresight/coresight-core.c >> +++ b/drivers/hwtracing/coresight/coresight-core.c >> @@ -1733,28 +1733,32 @@ char *coresight_alloc_device_name(struct >> coresight_dev_list *dict, >> { >> int idx; >> char *name = NULL; >> + const char *coresight_name = NULL; >> struct fwnode_handle **list; >> + struct device_node *node = dev->of_node; >> mutex_lock(&coresight_mutex); >> - idx = coresight_search_device_idx(dict, dev_fwnode(dev)); >> - if (idx < 0) { >> - /* Make space for the new entry */ >> - idx = dict->nr_idx; >> - list = krealloc_array(dict->fwnode_list, >> - idx + 1, sizeof(*dict->fwnode_list), >> - GFP_KERNEL); >> - if (ZERO_OR_NULL_PTR(list)) { >> - idx = -ENOMEM; >> - goto done; >> + if (!of_property_read_string(node, "coresight-name", >> &coresight_name)) >> + name = devm_kasprintf(dev, GFP_KERNEL, "%s", coresight_name); >> + else { >> + idx = coresight_search_device_idx(dict, dev_fwnode(dev)); >> + if (idx < 0) { >> + /* Make space for the new entry */ >> + idx = dict->nr_idx; >> + list = krealloc_array(dict->fwnode_list, >> + idx + 1, sizeof(*dict->fwnode_list), >> + GFP_KERNEL); >> + if (ZERO_OR_NULL_PTR(list)) >> + goto done; >> + >> + list[idx] = dev_fwnode(dev); >> + dict->fwnode_list = list; >> + dict->nr_idx = idx + 1; >> } >> - list[idx] = dev_fwnode(dev); >> - dict->fwnode_list = list; >> - dict->nr_idx = idx + 1; >> + name = devm_kasprintf(dev, GFP_KERNEL, "%s%d", dict->pfx, idx); >> } >> - >> - name = devm_kasprintf(dev, GFP_KERNEL, "%s%d", dict->pfx, idx); >> done: >> mutex_unlock(&coresight_mutex); >> return name; >
| |