coresight-tpdm: Introduce TPDM subtype to TPDM driver
authorTao Zhang <quic_taozha@quicinc.com>
Thu, 28 Sep 2023 06:29:36 +0000 (14:29 +0800)
committerSuzuki K Poulose <suzuki.poulose@arm.com>
Thu, 16 Nov 2023 11:35:20 +0000 (11:35 +0000)
Introduce the new subtype of "CORESIGHT_DEV_SUBTYPE_SOURCE_TPDM"
for TPDM components in driver.

Signed-off-by: Tao Zhang <quic_taozha@quicinc.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/1695882586-10306-4-git-send-email-quic_taozha@quicinc.com
drivers/hwtracing/coresight/coresight-core.c
drivers/hwtracing/coresight/coresight-tpdm.c
include/linux/coresight.h

index 9fabe00a40d6a0b4ec031b4037289808061cd306..d7f0e231feb993458c375caae733279451432ca4 100644 (file)
@@ -1093,6 +1093,7 @@ static int coresight_validate_source(struct coresight_device *csdev,
 
        if (subtype != CORESIGHT_DEV_SUBTYPE_SOURCE_PROC &&
            subtype != CORESIGHT_DEV_SUBTYPE_SOURCE_SOFTWARE &&
+           subtype != CORESIGHT_DEV_SUBTYPE_SOURCE_TPDM &&
            subtype != CORESIGHT_DEV_SUBTYPE_SOURCE_OTHERS) {
                dev_err(&csdev->dev, "wrong device subtype in %s\n", function);
                return -EINVAL;
@@ -1162,6 +1163,7 @@ int coresight_enable(struct coresight_device *csdev)
                per_cpu(tracer_path, cpu) = path;
                break;
        case CORESIGHT_DEV_SUBTYPE_SOURCE_SOFTWARE:
+       case CORESIGHT_DEV_SUBTYPE_SOURCE_TPDM:
        case CORESIGHT_DEV_SUBTYPE_SOURCE_OTHERS:
                /*
                 * Use the hash of source's device name as ID
@@ -1212,6 +1214,7 @@ void coresight_disable(struct coresight_device *csdev)
                per_cpu(tracer_path, cpu) = NULL;
                break;
        case CORESIGHT_DEV_SUBTYPE_SOURCE_SOFTWARE:
+       case CORESIGHT_DEV_SUBTYPE_SOURCE_TPDM:
        case CORESIGHT_DEV_SUBTYPE_SOURCE_OTHERS:
                hash = hashlen_hash(hashlen_string(NULL, dev_name(&csdev->dev)));
                /* Find the path by the hash. */
index b6456120b76a1a4f90a8d9a4a25a63d15c768102..abaff0b934dbdfbeff59ffc31631411e70b6a5f3 100644 (file)
@@ -203,7 +203,7 @@ static int tpdm_probe(struct amba_device *adev, const struct amba_id *id)
        if (!desc.name)
                return -ENOMEM;
        desc.type = CORESIGHT_DEV_TYPE_SOURCE;
-       desc.subtype.source_subtype = CORESIGHT_DEV_SUBTYPE_SOURCE_OTHERS;
+       desc.subtype.source_subtype = CORESIGHT_DEV_SUBTYPE_SOURCE_TPDM;
        desc.ops = &tpdm_cs_ops;
        desc.pdata = adev->dev.platform_data;
        desc.dev = &adev->dev;
index a269fffaf991ceee721f00b19c2ab838615f23e7..a4cb7dd6ca2374c91d9cee002b04024bba0ada7a 100644 (file)
@@ -64,6 +64,7 @@ enum coresight_dev_subtype_source {
        CORESIGHT_DEV_SUBTYPE_SOURCE_PROC,
        CORESIGHT_DEV_SUBTYPE_SOURCE_BUS,
        CORESIGHT_DEV_SUBTYPE_SOURCE_SOFTWARE,
+       CORESIGHT_DEV_SUBTYPE_SOURCE_TPDM,
        CORESIGHT_DEV_SUBTYPE_SOURCE_OTHERS,
 };