mirror of
https://github.com/torvalds/linux.git
synced 2025-08-15 14:11:42 +02:00
net: phy: nxp-c45-tja11xx: simplify .match_phy_device OP
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> Link: https://patch.msgid.link/20250517201353.5137-4-ansuelsmth@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
5253972cb9
commit
1b76b2497a
1 changed files with 21 additions and 26 deletions
|
@ -19,7 +19,6 @@
|
||||||
|
|
||||||
#include "nxp-c45-tja11xx.h"
|
#include "nxp-c45-tja11xx.h"
|
||||||
|
|
||||||
#define PHY_ID_MASK GENMASK(31, 4)
|
|
||||||
/* Same id: TJA1103, TJA1104 */
|
/* Same id: TJA1103, TJA1104 */
|
||||||
#define PHY_ID_TJA_1103 0x001BB010
|
#define PHY_ID_TJA_1103 0x001BB010
|
||||||
/* Same id: TJA1120, TJA1121 */
|
/* Same id: TJA1120, TJA1121 */
|
||||||
|
@ -1966,32 +1965,24 @@ static int nxp_c45_macsec_ability(struct phy_device *phydev)
|
||||||
return macsec_ability;
|
return macsec_ability;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tja1103_match_phy_device(struct phy_device *phydev,
|
static int tja11xx_no_macsec_match_phy_device(struct phy_device *phydev,
|
||||||
const struct phy_driver *phydrv)
|
const struct phy_driver *phydrv)
|
||||||
{
|
{
|
||||||
return phy_id_compare(phydev->phy_id, PHY_ID_TJA_1103, PHY_ID_MASK) &&
|
if (!phy_id_compare(phydev->phy_id, phydrv->phy_id,
|
||||||
!nxp_c45_macsec_ability(phydev);
|
phydrv->phy_id_mask))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return !nxp_c45_macsec_ability(phydev);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int tja1104_match_phy_device(struct phy_device *phydev,
|
static int tja11xx_macsec_match_phy_device(struct phy_device *phydev,
|
||||||
const struct phy_driver *phydrv)
|
const struct phy_driver *phydrv)
|
||||||
{
|
{
|
||||||
return phy_id_compare(phydev->phy_id, PHY_ID_TJA_1103, PHY_ID_MASK) &&
|
if (!phy_id_compare(phydev->phy_id, phydrv->phy_id,
|
||||||
nxp_c45_macsec_ability(phydev);
|
phydrv->phy_id_mask))
|
||||||
}
|
return 0;
|
||||||
|
|
||||||
static int tja1120_match_phy_device(struct phy_device *phydev,
|
return nxp_c45_macsec_ability(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);
|
|
||||||
}
|
|
||||||
|
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct nxp_c45_regmap tja1120_regmap = {
|
static const struct nxp_c45_regmap tja1120_regmap = {
|
||||||
|
@ -2064,6 +2055,7 @@ static const struct nxp_c45_phy_data tja1120_phy_data = {
|
||||||
|
|
||||||
static struct phy_driver nxp_c45_driver[] = {
|
static struct phy_driver nxp_c45_driver[] = {
|
||||||
{
|
{
|
||||||
|
PHY_ID_MATCH_MODEL(PHY_ID_TJA_1103),
|
||||||
.name = "NXP C45 TJA1103",
|
.name = "NXP C45 TJA1103",
|
||||||
.get_features = nxp_c45_get_features,
|
.get_features = nxp_c45_get_features,
|
||||||
.driver_data = &tja1103_phy_data,
|
.driver_data = &tja1103_phy_data,
|
||||||
|
@ -2085,9 +2077,10 @@ static struct phy_driver nxp_c45_driver[] = {
|
||||||
.get_sqi = nxp_c45_get_sqi,
|
.get_sqi = nxp_c45_get_sqi,
|
||||||
.get_sqi_max = nxp_c45_get_sqi_max,
|
.get_sqi_max = nxp_c45_get_sqi_max,
|
||||||
.remove = nxp_c45_remove,
|
.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",
|
.name = "NXP C45 TJA1104",
|
||||||
.get_features = nxp_c45_get_features,
|
.get_features = nxp_c45_get_features,
|
||||||
.driver_data = &tja1103_phy_data,
|
.driver_data = &tja1103_phy_data,
|
||||||
|
@ -2109,9 +2102,10 @@ static struct phy_driver nxp_c45_driver[] = {
|
||||||
.get_sqi = nxp_c45_get_sqi,
|
.get_sqi = nxp_c45_get_sqi,
|
||||||
.get_sqi_max = nxp_c45_get_sqi_max,
|
.get_sqi_max = nxp_c45_get_sqi_max,
|
||||||
.remove = nxp_c45_remove,
|
.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",
|
.name = "NXP C45 TJA1120",
|
||||||
.get_features = nxp_c45_get_features,
|
.get_features = nxp_c45_get_features,
|
||||||
.driver_data = &tja1120_phy_data,
|
.driver_data = &tja1120_phy_data,
|
||||||
|
@ -2134,9 +2128,10 @@ static struct phy_driver nxp_c45_driver[] = {
|
||||||
.get_sqi = nxp_c45_get_sqi,
|
.get_sqi = nxp_c45_get_sqi,
|
||||||
.get_sqi_max = nxp_c45_get_sqi_max,
|
.get_sqi_max = nxp_c45_get_sqi_max,
|
||||||
.remove = nxp_c45_remove,
|
.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",
|
.name = "NXP C45 TJA1121",
|
||||||
.get_features = nxp_c45_get_features,
|
.get_features = nxp_c45_get_features,
|
||||||
.driver_data = &tja1120_phy_data,
|
.driver_data = &tja1120_phy_data,
|
||||||
|
@ -2159,7 +2154,7 @@ static struct phy_driver nxp_c45_driver[] = {
|
||||||
.get_sqi = nxp_c45_get_sqi,
|
.get_sqi = nxp_c45_get_sqi,
|
||||||
.get_sqi_max = nxp_c45_get_sqi_max,
|
.get_sqi_max = nxp_c45_get_sqi_max,
|
||||||
.remove = nxp_c45_remove,
|
.remove = nxp_c45_remove,
|
||||||
.match_phy_device = tja1121_match_phy_device,
|
.match_phy_device = tja11xx_macsec_match_phy_device,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue