coresight: no-op refactor to make INSTP0 check more idiomatic
authorJames Clark <james.clark@arm.com>
Thu, 3 Feb 2022 11:53:35 +0000 (11:53 +0000)
committerSuzuki K Poulose <suzuki.poulose@arm.com>
Fri, 11 Mar 2022 10:07:37 +0000 (10:07 +0000)
The spec says this:

  P0 tracing support field. The permitted values are:
      0b00  Tracing of load and store instructions as P0 elements is not
            supported.
      0b11  Tracing of load and store instructions as P0 elements is
            supported, so TRCCONFIGR.INSTP0 is supported.

            All other values are reserved.

The value we are looking for is 0b11 so simplify this. The double read
and && was a bit obfuscated.

Suggested-by: Suzuki Poulose <suzuki.poulose@arm.com>
Signed-off-by: James Clark <james.clark@arm.com>
Link: https://lore.kernel.org/r/20220203115336.119735-2-james.clark@arm.com
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
drivers/hwtracing/coresight/coresight-etm4x-core.c

index bf18128..e2eebd8 100644 (file)
@@ -1091,7 +1091,7 @@ static void etm4_init_arch_data(void *info)
        etmidr0 = etm4x_relaxed_read32(csa, TRCIDR0);
 
        /* INSTP0, bits[2:1] P0 tracing support field */
-       if (BMVAL(etmidr0, 1, 1) && BMVAL(etmidr0, 2, 2))
+       if (BMVAL(etmidr0, 1, 2) == 0b11)
                drvdata->instrp0 = true;
        else
                drvdata->instrp0 = false;