generic: fix adm6996 init
authorblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 26 Oct 2015 10:39:53 +0000 (10:39 +0000)
committerblogic <blogic@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 26 Oct 2015 10:39:53 +0000 (10:39 +0000)
Kernel 3.14 added aditional genphy_soft_reset phy reset to phy_init_hw in drivers/net/phy/phy_device.c
Since adm6996 does in driver soft reset and doesn't use BMCR_RESET for soft reset
add dummy soft_reset callback to adm6996 driver, like it is done in ar8216.

This fixes ticket #20147

Signed-off-by: Andrej Vlasic <andrej.vlasic0@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@47272 3c298f89-4303-0410-b956-a3cf2f4a3e73

target/linux/generic/files/drivers/net/phy/adm6996.c

index bf5ed15..cada4aa 100644 (file)
@@ -1099,6 +1099,11 @@ static void adm6996_remove(struct phy_device *pdev)
                unregister_switch(&priv->dev);
 }
 
+static int adm6996_soft_reset(struct phy_device *phydev)
+{
+       /* we don't need an extra reset */
+       return 0;
+}
 
 static struct phy_driver adm6996_phy_driver = {
        .name           = "Infineon ADM6996",
@@ -1110,6 +1115,7 @@ static struct phy_driver adm6996_phy_driver = {
        .config_init    = &adm6996_config_init,
        .config_aneg    = &adm6996_config_aneg,
        .read_status    = &adm6996_read_status,
+       .soft_reset     = adm6996_soft_reset,
        .driver         = { .owner = THIS_MODULE,},
 };