Message ID | 20250410095443.30848-4-ansuelsmth@gmail.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: phy: Add support for new Aeonsemi PHYs | expand |
On 4/10/2025 12:53 PM, Christian Marangi wrote: > Simplify .match_phy_device OP by using a generic function and using the > new phy_id PHY driver info instead of hardcoding the matching PHY ID > with new variant for macsec and no_macsec PHYs. > > Also make use of PHY_ID_MATCH_MODEL macro and drop PHY_ID_MASK define to > introduce phy_id and phy_id_mask again in phy_driver struct. > > Reviewed-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk> > Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> > --- > drivers/net/phy/nxp-c45-tja11xx.c | 45 ++++++++++++++----------------- > 1 file changed, 20 insertions(+), 25 deletions(-) > > diff --git a/drivers/net/phy/nxp-c45-tja11xx.c b/drivers/net/phy/nxp-c45-tja11xx.c > index bc2b7cc0cebe..8880547c4bfa 100644 > --- a/drivers/net/phy/nxp-c45-tja11xx.c > +++ b/drivers/net/phy/nxp-c45-tja11xx.c > @@ -19,7 +19,6 @@ > > #include "nxp-c45-tja11xx.h" > > -#define PHY_ID_MASK GENMASK(31, 4) > /* Same id: TJA1103, TJA1104 */ > #define PHY_ID_TJA_1103 0x001BB010 > /* Same id: TJA1120, TJA1121 */ > @@ -1971,32 +1970,24 @@ static int nxp_c45_macsec_ability(struct phy_device *phydev) > return macsec_ability; > } > > -static int tja1103_match_phy_device(struct phy_device *phydev, > - const struct phy_driver *phydrv) > +static int tja11xx_no_macsec_match_phy_device(struct phy_device *phydev, > + const struct phy_driver *phydrv) > { > - return phy_id_compare(phydev->phy_id, PHY_ID_TJA_1103, PHY_ID_MASK) && > - !nxp_c45_macsec_ability(phydev); > -} > + if (!phy_id_compare(phydev->phy_id, phydrv->phy_id, > + phydrv->phy_id_mask)) > + return 0; > > -static int tja1104_match_phy_device(struct phy_device *phydev, > - const struct phy_driver *phydrv) > -{ > - return phy_id_compare(phydev->phy_id, PHY_ID_TJA_1103, PHY_ID_MASK) && > - nxp_c45_macsec_ability(phydev); > + return !nxp_c45_macsec_ability(phydev); > } > > -static int tja1120_match_phy_device(struct phy_device *phydev, > - const struct phy_driver *phydrv) > +static int tja11xx_macsec_match_phy_device(struct phy_device *phydev, > + const struct phy_driver *phydrv) > { > - return phy_id_compare(phydev->phy_id, PHY_ID_TJA_1120, PHY_ID_MASK) && > - !nxp_c45_macsec_ability(phydev); > -} > + if (!phy_id_compare(phydev->phy_id, phydrv->phy_id, > + phydrv->phy_id_mask)) > + return 0; > > -static int tja1121_match_phy_device(struct phy_device *phydev, > - const struct phy_driver *phydrv) > -{ > - return phy_id_compare(phydev->phy_id, PHY_ID_TJA_1120, PHY_ID_MASK) && > - nxp_c45_macsec_ability(phydev); > + return nxp_c45_macsec_ability(phydev); > } > > static const struct nxp_c45_regmap tja1120_regmap = { > @@ -2069,6 +2060,7 @@ static const struct nxp_c45_phy_data tja1120_phy_data = { > > static struct phy_driver nxp_c45_driver[] = { > { > + PHY_ID_MATCH_MODEL(PHY_ID_TJA_1103), > .name = "NXP C45 TJA1103", > .get_features = nxp_c45_get_features, > .driver_data = &tja1103_phy_data, > @@ -2090,9 +2082,10 @@ static struct phy_driver nxp_c45_driver[] = { > .get_sqi = nxp_c45_get_sqi, > .get_sqi_max = nxp_c45_get_sqi_max, > .remove = nxp_c45_remove, > - .match_phy_device = tja1103_match_phy_device, > + .match_phy_device = tja11xx_no_macsec_match_phy_device, > }, > { > + PHY_ID_MATCH_MODEL(PHY_ID_TJA_1103), > .name = "NXP C45 TJA1104", > .get_features = nxp_c45_get_features, > .driver_data = &tja1103_phy_data, > @@ -2114,9 +2107,10 @@ static struct phy_driver nxp_c45_driver[] = { > .get_sqi = nxp_c45_get_sqi, > .get_sqi_max = nxp_c45_get_sqi_max, > .remove = nxp_c45_remove, > - .match_phy_device = tja1104_match_phy_device, > + .match_phy_device = tja11xx_macsec_match_phy_device, > }, > { > + PHY_ID_MATCH_MODEL(PHY_ID_TJA_1120), > .name = "NXP C45 TJA1120", > .get_features = nxp_c45_get_features, > .driver_data = &tja1120_phy_data, > @@ -2139,9 +2133,10 @@ static struct phy_driver nxp_c45_driver[] = { > .get_sqi = nxp_c45_get_sqi, > .get_sqi_max = nxp_c45_get_sqi_max, > .remove = nxp_c45_remove, > - .match_phy_device = tja1120_match_phy_device, > + .match_phy_device = tja11xx_no_macsec_match_phy_device, > }, > { > + PHY_ID_MATCH_MODEL(PHY_ID_TJA_1120), > .name = "NXP C45 TJA1121", > .get_features = nxp_c45_get_features, > .driver_data = &tja1120_phy_data, > @@ -2164,7 +2159,7 @@ static struct phy_driver nxp_c45_driver[] = { > .get_sqi = nxp_c45_get_sqi, > .get_sqi_max = nxp_c45_get_sqi_max, > .remove = nxp_c45_remove, > - .match_phy_device = tja1121_match_phy_device, > + .match_phy_device = tja11xx_macsec_match_phy_device, > }, > }; > Reviewed-by: Andrei Botila <andrei.botila@oss.nxp.com> Tested-by: Andrei Botila <andrei.botila@oss.nxp.com>
diff --git a/drivers/net/phy/nxp-c45-tja11xx.c b/drivers/net/phy/nxp-c45-tja11xx.c index bc2b7cc0cebe..8880547c4bfa 100644 --- a/drivers/net/phy/nxp-c45-tja11xx.c +++ b/drivers/net/phy/nxp-c45-tja11xx.c @@ -19,7 +19,6 @@ #include "nxp-c45-tja11xx.h" -#define PHY_ID_MASK GENMASK(31, 4) /* Same id: TJA1103, TJA1104 */ #define PHY_ID_TJA_1103 0x001BB010 /* Same id: TJA1120, TJA1121 */ @@ -1971,32 +1970,24 @@ static int nxp_c45_macsec_ability(struct phy_device *phydev) return macsec_ability; } -static int tja1103_match_phy_device(struct phy_device *phydev, - const struct phy_driver *phydrv) +static int tja11xx_no_macsec_match_phy_device(struct phy_device *phydev, + const struct phy_driver *phydrv) { - return phy_id_compare(phydev->phy_id, PHY_ID_TJA_1103, PHY_ID_MASK) && - !nxp_c45_macsec_ability(phydev); -} + if (!phy_id_compare(phydev->phy_id, phydrv->phy_id, + phydrv->phy_id_mask)) + return 0; -static int tja1104_match_phy_device(struct phy_device *phydev, - const struct phy_driver *phydrv) -{ - return phy_id_compare(phydev->phy_id, PHY_ID_TJA_1103, PHY_ID_MASK) && - nxp_c45_macsec_ability(phydev); + return !nxp_c45_macsec_ability(phydev); } -static int tja1120_match_phy_device(struct phy_device *phydev, - const struct phy_driver *phydrv) +static int tja11xx_macsec_match_phy_device(struct phy_device *phydev, + const struct phy_driver *phydrv) { - return phy_id_compare(phydev->phy_id, PHY_ID_TJA_1120, PHY_ID_MASK) && - !nxp_c45_macsec_ability(phydev); -} + if (!phy_id_compare(phydev->phy_id, phydrv->phy_id, + phydrv->phy_id_mask)) + return 0; -static int tja1121_match_phy_device(struct phy_device *phydev, - const struct phy_driver *phydrv) -{ - return phy_id_compare(phydev->phy_id, PHY_ID_TJA_1120, PHY_ID_MASK) && - nxp_c45_macsec_ability(phydev); + return nxp_c45_macsec_ability(phydev); } static const struct nxp_c45_regmap tja1120_regmap = { @@ -2069,6 +2060,7 @@ static const struct nxp_c45_phy_data tja1120_phy_data = { static struct phy_driver nxp_c45_driver[] = { { + PHY_ID_MATCH_MODEL(PHY_ID_TJA_1103), .name = "NXP C45 TJA1103", .get_features = nxp_c45_get_features, .driver_data = &tja1103_phy_data, @@ -2090,9 +2082,10 @@ static struct phy_driver nxp_c45_driver[] = { .get_sqi = nxp_c45_get_sqi, .get_sqi_max = nxp_c45_get_sqi_max, .remove = nxp_c45_remove, - .match_phy_device = tja1103_match_phy_device, + .match_phy_device = tja11xx_no_macsec_match_phy_device, }, { + PHY_ID_MATCH_MODEL(PHY_ID_TJA_1103), .name = "NXP C45 TJA1104", .get_features = nxp_c45_get_features, .driver_data = &tja1103_phy_data, @@ -2114,9 +2107,10 @@ static struct phy_driver nxp_c45_driver[] = { .get_sqi = nxp_c45_get_sqi, .get_sqi_max = nxp_c45_get_sqi_max, .remove = nxp_c45_remove, - .match_phy_device = tja1104_match_phy_device, + .match_phy_device = tja11xx_macsec_match_phy_device, }, { + PHY_ID_MATCH_MODEL(PHY_ID_TJA_1120), .name = "NXP C45 TJA1120", .get_features = nxp_c45_get_features, .driver_data = &tja1120_phy_data, @@ -2139,9 +2133,10 @@ static struct phy_driver nxp_c45_driver[] = { .get_sqi = nxp_c45_get_sqi, .get_sqi_max = nxp_c45_get_sqi_max, .remove = nxp_c45_remove, - .match_phy_device = tja1120_match_phy_device, + .match_phy_device = tja11xx_no_macsec_match_phy_device, }, { + PHY_ID_MATCH_MODEL(PHY_ID_TJA_1120), .name = "NXP C45 TJA1121", .get_features = nxp_c45_get_features, .driver_data = &tja1120_phy_data, @@ -2164,7 +2159,7 @@ static struct phy_driver nxp_c45_driver[] = { .get_sqi = nxp_c45_get_sqi, .get_sqi_max = nxp_c45_get_sqi_max, .remove = nxp_c45_remove, - .match_phy_device = tja1121_match_phy_device, + .match_phy_device = tja11xx_macsec_match_phy_device, }, };