mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-09 02:00:43 -04:00
Merge branch 'net-phy-remove-phy_driver_is_genphy-and-phy_driver_is_genphy_10g'
Heiner Kallweit says: ==================== net: phy: remove phy_driver_is_genphy and phy_driver_is_genphy_10g Replace phy_driver_is_genphy() and phy_driver_is_genphy_10g() with a new flag in struct phy_device. ==================== Link: https://patch.msgid.link/5778e86e-dd54-4388-b824-6132729ad481@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
@@ -1522,7 +1522,6 @@ int phy_attach_direct(struct net_device *dev, struct phy_device *phydev,
|
||||
struct mii_bus *bus = phydev->mdio.bus;
|
||||
struct device *d = &phydev->mdio.dev;
|
||||
struct module *ndev_owner = NULL;
|
||||
bool using_genphy = false;
|
||||
int err;
|
||||
|
||||
/* For Ethernet device drivers that register their own MDIO bus, we
|
||||
@@ -1548,7 +1547,7 @@ int phy_attach_direct(struct net_device *dev, struct phy_device *phydev,
|
||||
else
|
||||
d->driver = &genphy_driver.mdiodrv.driver;
|
||||
|
||||
using_genphy = true;
|
||||
phydev->is_genphy_driven = 1;
|
||||
}
|
||||
|
||||
if (!try_module_get(d->driver->owner)) {
|
||||
@@ -1557,7 +1556,7 @@ int phy_attach_direct(struct net_device *dev, struct phy_device *phydev,
|
||||
goto error_put_device;
|
||||
}
|
||||
|
||||
if (using_genphy) {
|
||||
if (phydev->is_genphy_driven) {
|
||||
err = d->driver->probe(d);
|
||||
if (err >= 0)
|
||||
err = device_bind_driver(d);
|
||||
@@ -1627,7 +1626,7 @@ int phy_attach_direct(struct net_device *dev, struct phy_device *phydev,
|
||||
* the generic PHY driver we can't figure it out, thus set the old
|
||||
* legacy PORT_MII value.
|
||||
*/
|
||||
if (using_genphy)
|
||||
if (phydev->is_genphy_driven)
|
||||
phydev->port = PORT_MII;
|
||||
|
||||
/* Initial carrier state is off as the phy is about to be
|
||||
@@ -1666,6 +1665,7 @@ int phy_attach_direct(struct net_device *dev, struct phy_device *phydev,
|
||||
|
||||
error_module_put:
|
||||
module_put(d->driver->owner);
|
||||
phydev->is_genphy_driven = 0;
|
||||
d->driver = NULL;
|
||||
error_put_device:
|
||||
put_device(d);
|
||||
@@ -1713,36 +1713,6 @@ struct phy_device *phy_attach(struct net_device *dev, const char *bus_id,
|
||||
}
|
||||
EXPORT_SYMBOL(phy_attach);
|
||||
|
||||
static bool phy_driver_is_genphy_kind(struct phy_device *phydev,
|
||||
struct device_driver *driver)
|
||||
{
|
||||
struct device *d = &phydev->mdio.dev;
|
||||
bool ret = false;
|
||||
|
||||
if (!phydev->drv)
|
||||
return ret;
|
||||
|
||||
get_device(d);
|
||||
ret = d->driver == driver;
|
||||
put_device(d);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool phy_driver_is_genphy(struct phy_device *phydev)
|
||||
{
|
||||
return phy_driver_is_genphy_kind(phydev,
|
||||
&genphy_driver.mdiodrv.driver);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(phy_driver_is_genphy);
|
||||
|
||||
bool phy_driver_is_genphy_10g(struct phy_device *phydev)
|
||||
{
|
||||
return phy_driver_is_genphy_kind(phydev,
|
||||
&genphy_c45_driver.mdiodrv.driver);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(phy_driver_is_genphy_10g);
|
||||
|
||||
/**
|
||||
* phy_detach - detach a PHY device from its network device
|
||||
* @phydev: target phy_device struct
|
||||
@@ -1799,9 +1769,10 @@ void phy_detach(struct phy_device *phydev)
|
||||
* from the generic driver so that there's a chance a
|
||||
* real driver could be loaded
|
||||
*/
|
||||
if (phy_driver_is_genphy(phydev) ||
|
||||
phy_driver_is_genphy_10g(phydev))
|
||||
if (phydev->is_genphy_driven) {
|
||||
device_release_driver(&phydev->mdio.dev);
|
||||
phydev->is_genphy_driven = 0;
|
||||
}
|
||||
|
||||
/* Assert the reset signal */
|
||||
phy_device_reset(phydev, 1);
|
||||
|
||||
@@ -528,6 +528,7 @@ struct macsec_ops;
|
||||
* @mac_managed_pm: Set true if MAC driver takes of suspending/resuming PHY
|
||||
* @wol_enabled: Set to true if the PHY or the attached MAC have Wake-on-LAN
|
||||
* enabled.
|
||||
* @is_genphy_driven: PHY is driven by one of the generic PHY drivers
|
||||
* @state: State of the PHY for management purposes
|
||||
* @dev_flags: Device-specific flags used by the PHY driver.
|
||||
*
|
||||
@@ -631,6 +632,7 @@ struct phy_device {
|
||||
unsigned is_on_sfp_module:1;
|
||||
unsigned mac_managed_pm:1;
|
||||
unsigned wol_enabled:1;
|
||||
unsigned is_genphy_driven:1;
|
||||
|
||||
unsigned autoneg:1;
|
||||
/* The most recently read link state */
|
||||
@@ -1293,6 +1295,17 @@ static inline bool phy_is_started(struct phy_device *phydev)
|
||||
return phydev->state >= PHY_UP;
|
||||
}
|
||||
|
||||
/**
|
||||
* phy_driver_is_genphy - Convenience function to check whether PHY is driven
|
||||
* by one of the generic PHY drivers
|
||||
* @phydev: The phy_device struct
|
||||
* Return: true if PHY is driven by one of the genphy drivers
|
||||
*/
|
||||
static inline bool phy_driver_is_genphy(struct phy_device *phydev)
|
||||
{
|
||||
return phydev->is_genphy_driven;
|
||||
}
|
||||
|
||||
/**
|
||||
* phy_disable_eee_mode - Don't advertise an EEE mode.
|
||||
* @phydev: The phy_device struct
|
||||
@@ -2095,7 +2108,4 @@ module_exit(phy_module_exit)
|
||||
#define module_phy_driver(__phy_drivers) \
|
||||
phy_module_driver(__phy_drivers, ARRAY_SIZE(__phy_drivers))
|
||||
|
||||
bool phy_driver_is_genphy(struct phy_device *phydev);
|
||||
bool phy_driver_is_genphy_10g(struct phy_device *phydev);
|
||||
|
||||
#endif /* __PHY_H */
|
||||
|
||||
Reference in New Issue
Block a user