On 08.02.2019 19:27, Andrew Lunn wrote: >>>> - *devices_in_package |= (phy_reg & 0xffff); >>>> + /* Bit 0 doesn't represent a device, it indicates c22 regs presence */ >>>> + *devices_in_package |= (phy_reg & 0xfffe); >>> >>> Hi Heiner >>> >>> Just for readability, can we use BIT(0) in there somehow? >>> >> You think 0xfffe together with the comment is still not clear enough? > > Hi Heiner > > It is more i was wondering why the 0xffff was there in the first > place. PHY registers are 16 bits. Is this because of a compiler > warning? If the use of 0xffff is not obvious, why would 0xfffe be any > better. > I think there are more places where this masking is used, most likely to make clearer that we care about the lower 16 bits of the int only. And I also wondered when seeing such code whether it's technically needed.
>>>> /* Device present registers. */ >>>> #define MDIO_DEVS_PRESENT(devad) (1 << (devad)) >>>> +#define MDIO_DEVS_C22PRESENT MDIO_DEVS_PRESENT(0) >>> >>> Err. The commit message says you did not add this... >>> >> Maybe I'm not clear enough in the commit message. Typically we have two >> constants for a device: >> >> MDIO_MMD_XXX (for the device) >> MDIO_DEVS_XXX (for the bit of the device in the device list bitmap) >> >> For the C22PRESENT flag I don't define the first one (because it's >> not a device) but the second one (because it uses a bit in the device >> list bitmap). > > This would be better as a separate patch. It is not used here, and the > explanation can then be made clearer. > OK. Definition of this constant is more meant as a favor to developers who may want to check this flag in the future. > Andrew > Heiner
