X-Git-Url: http://git.openwrt.org/?a=blobdiff_plain;f=target%2Flinux%2Fgeneric%2Fpending-5.4%2F703-phy-add-detach-callback-to-struct-phy_driver.patch;h=7b1989021772f302839595cc50263744ce5a0b59;hb=4e0c54bc5bc8381e031af5147b66b4dadeecc626;hp=1c180b225b17c8a246450bfd5e6c71d43dbba51c;hpb=c16517d26de30c90dabce1e456615fd7fbdce07c;p=openwrt%2Fstaging%2Frmilecki.git diff --git a/target/linux/generic/pending-5.4/703-phy-add-detach-callback-to-struct-phy_driver.patch b/target/linux/generic/pending-5.4/703-phy-add-detach-callback-to-struct-phy_driver.patch index 1c180b225b1..7b198902177 100644 --- a/target/linux/generic/pending-5.4/703-phy-add-detach-callback-to-struct-phy_driver.patch +++ b/target/linux/generic/pending-5.4/703-phy-add-detach-callback-to-struct-phy_driver.patch @@ -11,21 +11,21 @@ Signed-off-by: Gabor Juhos --- a/drivers/net/phy/phy_device.c +++ b/drivers/net/phy/phy_device.c -@@ -1201,6 +1201,9 @@ void phy_detach(struct phy_device *phyde - struct module *ndev_owner = dev->dev.parent->driver->owner; +@@ -1458,6 +1458,9 @@ void phy_detach(struct phy_device *phyde + struct module *ndev_owner = NULL; struct mii_bus *bus; + if (phydev->drv && phydev->drv->detach) + phydev->drv->detach(phydev); + if (phydev->sysfs_links) { - sysfs_remove_link(&dev->dev.kobj, "phydev"); - sysfs_remove_link(&phydev->mdio.dev.kobj, "attached_dev"); + if (dev) + sysfs_remove_link(&dev->dev.kobj, "phydev"); --- a/include/linux/phy.h +++ b/include/linux/phy.h -@@ -567,6 +567,12 @@ struct phy_driver { - */ - int (*did_interrupt)(struct phy_device *phydev); +@@ -537,6 +537,12 @@ struct phy_driver { + /* Override default interrupt handling */ + int (*handle_interrupt)(struct phy_device *phydev); + /* + * Called before an ethernet device is detached