From e47ac1fd634a3934d7d3ac446190b2f4bd8a640f Mon Sep 17 00:00:00 2001 From: Antonio Nino Diaz Date: Thu, 14 Sep 2017 15:57:44 +0100 Subject: Fix type of `unsigned long` constants The type `unsigned long` is 32 bit wide in AArch32, but 64 bit wide in AArch64. This is inconsistent and that's why we avoid using it as per the Coding Guidelines. This patch changes all `UL` occurrences to `U` or `ULL` depending on the context so that the size of the constant is clear. This problem affected the macro `BIT(nr)`. As long as this macro is used to fill fields of registers, that's not a problem, since all registers are 32 bit wide in AArch32 and 64 bit wide in AArch64. However, if the macro is used to fill the fields of a 64-bit integer, it won't be able to set the upper 32 bits in AArch32. By changing the type of this macro to `unsigned long long` the behaviour is always the same regardless of the architecture, as this type is 64-bit wide in both cases. Some Tegra platform files have been modified by this patch. Change-Id: I918264c03e7d691a931f0d1018df25a2796cc221 Signed-off-by: Antonio Nino Diaz --- drivers/arm/ccn/ccn.c | 2 +- drivers/arm/ccn/ccn_private.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'drivers/arm/ccn') diff --git a/drivers/arm/ccn/ccn.c b/drivers/arm/ccn/ccn.c index ec264d21..afb7d9d3 100644 --- a/drivers/arm/ccn/ccn.c +++ b/drivers/arm/ccn/ccn.c @@ -236,7 +236,7 @@ static unsigned long long ccn_master_to_rn_id_map(unsigned long long master_map) node_id = ccn_plat_desc->master_to_rn_id_map[iface_id]; /* Set the bit corresponding to this node ID */ - rn_id_map |= (1UL << node_id); + rn_id_map |= (1ULL << node_id); } return rn_id_map; diff --git a/drivers/arm/ccn/ccn_private.h b/drivers/arm/ccn/ccn_private.h index f71597c1..c17c2742 100644 --- a/drivers/arm/ccn/ccn_private.h +++ b/drivers/arm/ccn/ccn_private.h @@ -134,13 +134,13 @@ typedef enum rn_types { #define HNF_SAM_CTRL_SN1_ID_SHIFT 8 #define HNF_SAM_CTRL_SN2_ID_SHIFT 16 -#define HNF_SAM_CTRL_TAB0_MASK 0x3fUL +#define HNF_SAM_CTRL_TAB0_MASK ULL(0x3f) #define HNF_SAM_CTRL_TAB0_SHIFT 48 -#define HNF_SAM_CTRL_TAB1_MASK 0x3fUL +#define HNF_SAM_CTRL_TAB1_MASK ULL(0x3f) #define HNF_SAM_CTRL_TAB1_SHIFT 56 #define HNF_SAM_CTRL_3SN_ENB_SHIFT 32 -#define HNF_SAM_CTRL_3SN_ENB_MASK 0x01UL +#define HNF_SAM_CTRL_3SN_ENB_MASK ULL(0x01) /* * Macro to create a value suitable for programming into a HNF SAM Control @@ -169,7 +169,7 @@ typedef enum rn_types { #define FOR_EACH_BIT(bit_pos, bit_map) \ for (bit_pos = __builtin_ctzll(bit_map); \ bit_map; \ - bit_map &= ~(1UL << bit_pos), \ + bit_map &= ~(1ULL << (bit_pos)), \ bit_pos = __builtin_ctzll(bit_map)) /* -- cgit v1.2.3