return genphy_soft_reset(phydev);
 }
 
+static int rtl821x_resume(struct phy_device *phydev)
+{
+       int ret;
+
+       ret = genphy_resume(phydev);
+       if (ret < 0)
+               return ret;
+
+       msleep(20);
+
+       return 0;
+}
+
 static int rtl8211e_config_init(struct phy_device *phydev)
 {
        int ret = 0, oldpage;
                .config_intr    = &rtl8211f_config_intr,
                .handle_interrupt = rtl8211f_handle_interrupt,
                .suspend        = genphy_suspend,
-               .resume         = genphy_resume,
+               .resume         = rtl821x_resume,
                .read_page      = rtl821x_read_page,
                .write_page     = rtl821x_write_page,
        }, {