Re: [PATCH V5 03/11] coresight: tmc: Extract device properties from AMBA pid based table lookup

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 22/02/2024 08:21, Anshuman Khandual wrote:
This extracts device properties from AMBA pid based table lookup. But first
this modifies tmc_etr_setup_caps() to accept csdev access.

Cc: Suzuki K Poulose <suzuki.poulose@xxxxxxx>
Cc: Mike Leach <mike.leach@xxxxxxxxxx>
Cc: James Clark <james.clark@xxxxxxx>
Cc: coresight@xxxxxxxxxxxxxxxx
Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
Cc: linux-kernel@xxxxxxxxxxxxxxx
Reviewed-by: James Clark <james.clark@xxxxxxx>

minor nit: Since there were significant changes from what James previously reviewed, it is a good idea to drop his Reviewed-by:

Otherwise, the changes look good to me.

Suzuki

Signed-off-by: Anshuman Khandual <anshuman.khandual@xxxxxxx>
---
Changes in V5:

- Modified tmc_etr_setup_caps() to accept struct csdev_access argument
- Reverted back tmc_etr_setup_caps() call site position in tmc_probe()
- Dropped custom mask TMC_AMBA_MASK

  drivers/hwtracing/coresight/coresight-tmc-core.c | 14 ++++++++++----
  1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/drivers/hwtracing/coresight/coresight-tmc-core.c b/drivers/hwtracing/coresight/coresight-tmc-core.c
index 7ec5365e2b64..43874fa4def0 100644
--- a/drivers/hwtracing/coresight/coresight-tmc-core.c
+++ b/drivers/hwtracing/coresight/coresight-tmc-core.c
@@ -370,16 +370,23 @@ static inline bool tmc_etr_has_non_secure_access(struct tmc_drvdata *drvdata)
  	return (auth & TMC_AUTH_NSID_MASK) == 0x3;
  }
+static const struct amba_id tmc_ids[];
+
  /* Detect and initialise the capabilities of a TMC ETR */
-static int tmc_etr_setup_caps(struct device *parent, u32 devid, void *dev_caps)
+static int tmc_etr_setup_caps(struct device *parent, u32 devid,
+			      struct csdev_access *access)
  {
  	int rc;
-	u32 dma_mask = 0;
+	u32 tmc_pid, dma_mask = 0;
  	struct tmc_drvdata *drvdata = dev_get_drvdata(parent);
+	void *dev_caps;
if (!tmc_etr_has_non_secure_access(drvdata))
  		return -EACCES;
+ tmc_pid = coresight_get_pid(access);
+	dev_caps = coresight_get_uci_data_from_amba(tmc_ids, tmc_pid);
+
  	/* Set the unadvertised capabilities */
  	tmc_etr_init_caps(drvdata, (u32)(unsigned long)dev_caps);
@@ -497,8 +504,7 @@ static int tmc_probe(struct amba_device *adev, const struct amba_id *id)
  		desc.type = CORESIGHT_DEV_TYPE_SINK;
  		desc.subtype.sink_subtype = CORESIGHT_DEV_SUBTYPE_SINK_SYSMEM;
  		desc.ops = &tmc_etr_cs_ops;
-		ret = tmc_etr_setup_caps(dev, devid,
-					 coresight_get_uci_data(id));
+		ret = tmc_etr_setup_caps(dev, devid, &desc.access);
  		if (ret)
  			goto out;
  		idr_init(&drvdata->idr);





[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]
  Powered by Linux