--- zzzz-none-000/linux-4.4.271/include/linux/phy.h 2021-06-03 06:22:09.000000000 +0000 +++ hawkeye-5590-750/linux-4.4.271/include/linux/phy.h 2023-04-19 10:22:30.000000000 +0000 @@ -343,6 +343,7 @@ * phy_timer: The timer for handling the state machine * phy_queue: A work_queue for the interrupt * attached_dev: The attached enet driver's device instance ptr + * avm_no_suspend: If set to false PHY can not be suspended. * adjust_link: Callback for the enet controller to respond to * changes in the link state. * @@ -429,6 +430,9 @@ u8 mdix; + /* AVM/PME: PHY suspend suppress flag for F!PLC 1260Ev1*/ + bool avm_no_suspend; + void (*adjust_link)(struct net_device *dev); }; #define to_phy_device(d) container_of(d, struct phy_device, dev) @@ -497,6 +501,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 +519,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 +823,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 +850,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