From: Ilkka Koskinen ilkka@os.amperecomputing.com
commit 05d6f6d346fea2fa4580a0c2b6be207456bebb08 upstream.
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.co... Signed-off-by: Will Deacon will@kernel.org Signed-off-by: Greg Kroah-Hartman gregkh@linuxfoundation.org --- drivers/perf/arm-cmn.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/perf/arm-cmn.c b/drivers/perf/arm-cmn.c index 80d8309652a4..b80a9b74662b 100644 --- a/drivers/perf/arm-cmn.c +++ b/drivers/perf/arm-cmn.c @@ -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