perf/arm-cmn: Add more bits to child node address offset field
authorIlkka Koskinen <ilkka@os.amperecomputing.com>
Mon, 8 Aug 2022 19:54:55 +0000 (12:54 -0700)
committerWill Deacon <will@kernel.org>
Thu, 22 Sep 2022 13:30:00 +0000 (14:30 +0100)
CMN-600 uses bits [27:0] for child node address offset while bits [30:28]
are required to be zero.

For CMN-650, the child node address offset field has been increased
to include bits [29:0] while leaving only bit 30 set to zero.

Let's include the missing two bits and assume older implementations
comply with the spec and set bits [29:28] to 0.

Signed-off-by: Ilkka Koskinen <ilkka@os.amperecomputing.com>
Fixes: 60d1504070c2 ("perf/arm-cmn: Support new IP features")
Reviewed-by: Robin Murphy <robin.murphy@arm.com>
Link: https://lore.kernel.org/r/20220808195455.79277-1-ilkka@os.amperecomputing.com
Signed-off-by: Will Deacon <will@kernel.org>
drivers/perf/arm-cmn.c

index 80d8309652a4dafcc8dac6c8bf3eff592b2d5254..b80a9b74662b1d86fa931d2f5e49dc32da580cc2 100644 (file)
@@ -36,7 +36,7 @@
 #define CMN_CI_CHILD_COUNT             GENMASK_ULL(15, 0)
 #define CMN_CI_CHILD_PTR_OFFSET                GENMASK_ULL(31, 16)
 
-#define CMN_CHILD_NODE_ADDR            GENMASK(27, 0)
+#define CMN_CHILD_NODE_ADDR            GENMASK(29, 0)
 #define CMN_CHILD_NODE_EXTERNAL                BIT(31)
 
 #define CMN_MAX_DIMENSION              12