As we are about to refactor the platform specific handling,
make the default buffer size probing generic.

Cc: Mathieu Poirier <[email protected]>
Signed-off-by: Suzuki K Poulose <[email protected]>
---
 drivers/hwtracing/coresight/coresight-tmc.c | 21 ++++++++++++---------
 1 file changed, 12 insertions(+), 9 deletions(-)

diff --git a/drivers/hwtracing/coresight/coresight-tmc.c 
b/drivers/hwtracing/coresight/coresight-tmc.c
index 9e7ff83..7ce3427 100644
--- a/drivers/hwtracing/coresight/coresight-tmc.c
+++ b/drivers/hwtracing/coresight/coresight-tmc.c
@@ -375,6 +375,15 @@ static int tmc_etr_setup_caps(struct device *parent, u32 
devid, void *dev_caps)
        return rc;
 }
 
+static u32 tmc_etr_get_default_buffer_size(struct device *dev)
+{
+       u32 size;
+
+       if (fwnode_property_read_u32(dev->fwnode, "arm,buffer-size", &size))
+               size = SZ_1M;
+       return size;
+}
+
 static int tmc_probe(struct amba_device *adev, const struct amba_id *id)
 {
        int ret = 0;
@@ -418,16 +427,10 @@ static int tmc_probe(struct amba_device *adev, const 
struct amba_id *id)
        drvdata->config_type = BMVAL(devid, 6, 7);
        drvdata->memwidth = tmc_get_memwidth(devid);
 
-       if (drvdata->config_type == TMC_CONFIG_TYPE_ETR) {
-               if (np)
-                       ret = of_property_read_u32(np,
-                                                  "arm,buffer-size",
-                                                  &drvdata->size);
-               if (ret)
-                       drvdata->size = SZ_1M;
-       } else {
+       if (drvdata->config_type == TMC_CONFIG_TYPE_ETR)
+               drvdata->size = tmc_etr_get_default_buffer_size(dev);
+       else
                drvdata->size = readl_relaxed(drvdata->base + TMC_RSZ) * 4;
-       }
 
        pm_runtime_put(&adev->dev);
 
-- 
2.7.4

Reply via email to