Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

coresight: tpda: fix the logic to setup the element size

Some TPDM devices support both CMB and DSB datasets, requiring
the system to enable the port with both corresponding element sizes.

Currently, the logic treats tpdm_read_element_size as successful if
the CMB element size is retrieved correctly, regardless of whether
the DSB element size is obtained. This behavior causes issues
when parsing data from TPDM devices that depend on both element sizes.

To address this, the function should explicitly fail if the DSB
element size cannot be read correctly.

Fixes: e6d7f5252f73 ("coresight-tpda: Add support to configure CMB element")
Reviewed-by: James Clark <james.clark@linaro.org>
Signed-off-by: Jie Gan <jie.gan@oss.qualcomm.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20250906-fix_element_size_issue-v2-1-dbb0ac2541a9@oss.qualcomm.com

authored by

Jie Gan and committed by
Suzuki K Poulose
43e0a92c 8a55c161

+3
+3
drivers/hwtracing/coresight/coresight-tpda.c
··· 71 71 if (tpdm_data->dsb) { 72 72 rc = fwnode_property_read_u32(dev_fwnode(csdev->dev.parent), 73 73 "qcom,dsb-element-bits", &drvdata->dsb_esize); 74 + if (rc) 75 + goto out; 74 76 } 75 77 76 78 if (tpdm_data->cmb) { ··· 80 78 "qcom,cmb-element-bits", &drvdata->cmb_esize); 81 79 } 82 80 81 + out: 83 82 if (rc) 84 83 dev_warn_once(&csdev->dev, 85 84 "Failed to read TPDM Element size: %d\n", rc);