On 12/23/18 10:16 AM, Marek Vasut wrote: > On 12/22/18 6:39 PM, Heiner Kallweit wrote: >> On 22.12.2018 00:35, Marek Vasut wrote: >>> Add driver for the NXP TJA1100 and TJA1101 PHYs. These PHYs are special >>> BroadRReach 100BaseT1 PHYs used in automotive. >>> >>> Signed-off-by: Marek Vasut <ma...@denx.de> >>> Cc: Andrew Lunn <and...@lunn.ch> >>> Cc: Florian Fainelli <f.faine...@gmail.com> >>> Cc: Heiner Kallweit <hkallwe...@gmail.com> >>> --- >>> V2: - Use phy_modify(), phy_{set,clear}_bits() >>> - Drop enable argument of tja11xx_enable_link_control() >>> - Use PHY_BASIC_T1_FEATURES and dont modify supported/advertised >>> features in config_init callback >>> - Use genphy_soft_reset() instead of opencoding the reset sequence. >>> - Drop the aneg parts, since the PHY datasheet claims it does not >>> support aneg >>> V3: - Replace clr with mask >>> - Add hwmon support >>> - Check commstat in tja11xx_read_status() only if link is up >>> - Use PHY_ID_MATCH_MODEL() >>> --- >>> drivers/net/phy/Kconfig | 6 + >>> drivers/net/phy/Makefile | 1 + >>> drivers/net/phy/nxp-tja11xx.c | 424 ++++++++++++++++++++++++++++++++++ >>> 3 files changed, 431 insertions(+) >>> create mode 100644 drivers/net/phy/nxp-tja11xx.c >>> >> [...] >>> + >>> +struct tja11xx_phy_stats { >>> + const char *string; >>> + u8 reg; >>> + u8 off; >>> + u16 mask; >>> +}; >>> + >> As written in my other mail, you could think of using >> FIELD_GET() again. Things like >> ... n, BIT(n), >> ... m, BIT(m), >> are simply redundant. > > Done
And undone, FIELD_GET() requires a mask that is compile-time constant. That's not the case here. Replicating what FIELD_GET() does at runtime is inefficient, so we can as well encode the field and offset back into the table. Or is there a better suggestion ? -- Best regards, Marek Vasut