--- zzzz-none-000/linux-4.4.271/include/linux/phy.h 2021-06-03 06:22:09.000000000 +0000 +++ dakota-7530ac-750/linux-4.4.271/include/linux/phy.h 2023-01-11 09:25:43.000000000 +0000 @@ -497,6 +497,12 @@ /* Determines the negotiated speed and duplex */ int (*read_status)(struct phy_device *phydev); + /* + * Update the value in phydev->link to reflect the + * current link value + */ + int (*update_link)(struct phy_device *phydev); + /* Clears any pending interrupts */ int (*ack_interrupt)(struct phy_device *phydev); @@ -509,6 +515,12 @@ */ int (*did_interrupt)(struct phy_device *phydev); + /* + * Called before an ethernet device is detached + * from the PHY. + */ + void (*detach)(struct phy_device *phydev); + /* Clears up any memory if needed */ void (*remove)(struct phy_device *phydev); @@ -807,6 +819,7 @@ void phy_stop_machine(struct phy_device *phydev); int phy_ethtool_sset(struct phy_device *phydev, struct ethtool_cmd *cmd); int phy_ethtool_gset(struct phy_device *phydev, struct ethtool_cmd *cmd); +int phy_ethtool_ioctl(struct phy_device *phydev, void *useraddr); int phy_mii_ioctl(struct phy_device *phydev, struct ifreq *ifr, int cmd); int phy_start_interrupts(struct phy_device *phydev); void phy_print_status(struct phy_device *phydev); @@ -833,6 +846,23 @@ extern struct bus_type mdio_bus_type; +struct mdio_board_info { + const char *bus_id; + int phy_addr; + + const void *platform_data; +}; + +#ifdef CONFIG_MDIO_BOARDINFO +int mdiobus_register_board_info(const struct mdio_board_info *info, unsigned n); +#else +static inline int +mdiobus_register_board_info(const struct mdio_board_info *info, unsigned n) +{ + return 0; +} +#endif + /** * module_phy_driver() - Helper macro for registering PHY drivers * @__phy_drivers: array of PHY drivers to register