[PATCH net-next v3] net: ethernet: mtk_eth_soc: convert cap_bit in mtk_eth_muxc struct to u64
Simon Horman
horms at kernel.org
Thu Apr 24 11:43:11 PDT 2025
On Wed, Apr 23, 2025 at 01:48:02AM +0100, Daniel Golle wrote:
> From: Bo-Cun Chen <bc-bocun.chen at mediatek.com>
>
> With commit 51a4df60db5c2 ("net: ethernet: mtk_eth_soc: convert caps in
> mtk_soc_data struct to u64") the capabilities bitfield was converted to
> a 64-bit value, but a cap_bit in struct mtk_eth_muxc which is used to
> store a full bitfield (rather than the bit number, as the name would
> suggest) still holds only a 32-bit value.
>
> Change the type of cap_bit to u64 in order to avoid truncating the
> bitfield which results in path selection to not work with capabilities
> above the 32-bit limit.
>
> The values currently stored in the cap_bit field are
> MTK_ETH_MUX_GDM1_TO_GMAC1_ESW:
> BIT_ULL(18) | BIT_ULL(5)
>
> MTK_ETH_MUX_GMAC2_GMAC0_TO_GEPHY:
> BIT_ULL(19) | BIT_ULL(5) | BIT_ULL(6)
>
> MTK_ETH_MUX_U3_GMAC2_TO_QPHY:
> BIT_ULL(20) | BIT_ULL(5) | BIT_ULL(6)
>
> MTK_ETH_MUX_GMAC1_GMAC2_TO_SGMII_RGMII:
> BIT_ULL(20) | BIT_ULL(5) | BIT_ULL(7)
>
> MTK_ETH_MUX_GMAC12_TO_GEPHY_SGMII:
> BIT_ULL(21) | BIT_ULL(5)
>
> While all those values are currently still within 32-bit boundaries,
> the addition of new capabilities of MT7988 as well as future SoC's
> like MT7987 will exceed them. Also, the use of a 32-bit 'int' type to
> store the result of a BIT_ULL(...) is misleading.
>
> Signed-off-by: Bo-Cun Chen <bc-bocun.chen at mediatek.com>
> Signed-off-by: Daniel Golle <daniel at makrotopia.org>
> ---
> v3: don't use Fixes: tag
> v2: improve commit message
Thanks for the updates.
Reviewed-by: Simon Horman <horms at kernel.org>
More information about the linux-arm-kernel
mailing list