linux: rtl836x: add a reset_chip callback to rtl8366_smi_ops
authorGabor Juhos <juhosg@openwrt.org>
Sun, 29 Apr 2012 18:29:26 +0000 (18:29 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Sun, 29 Apr 2012 18:29:26 +0000 (18:29 +0000)
SVN-Revision: 31534

target/linux/generic/files/drivers/net/phy/rtl8366_smi.c
target/linux/generic/files/drivers/net/phy/rtl8366_smi.h
target/linux/generic/files/drivers/net/phy/rtl8366rb.c
target/linux/generic/files/drivers/net/phy/rtl8366s.c
target/linux/generic/files/drivers/net/phy/rtl8367.c

index e48ca99ce84dd27b1f8e5d3362237e6562894486..434cbfbb8511140e2d2cc415bd7304656e9614a6 100644 (file)
@@ -1277,6 +1277,10 @@ int rtl8366_smi_init(struct rtl8366_smi *smi)
                goto err_free_sck;
        }
 
+       err = smi->ops->reset_chip(smi);
+       if (err)
+               goto err_free_sck;
+
        err = smi->ops->setup(smi);
        if (err) {
                dev_err(smi->parent, "chip setup failed, err=%d\n", err);
index 8b1a70dca8c4ba1bc8413461d1513029d172020a..1105ce47fcfee6794d26604104797b0d41c29a1a 100644 (file)
@@ -76,6 +76,7 @@ struct rtl8366_vlan_4k {
 
 struct rtl8366_smi_ops {
        int     (*detect)(struct rtl8366_smi *smi);
+       int     (*reset_chip)(struct rtl8366_smi *smi);
        int     (*setup)(struct rtl8366_smi *smi);
 
        int     (*mii_read)(struct mii_bus *bus, int addr, int reg);
index 020e93a445bdd955cba0f884983468c89085958c..ea99aa73c2ff7bbaec5a6423d4afcdc03f5ffcf0 100644 (file)
@@ -1140,14 +1140,7 @@ static int rtl8366rb_mii_write(struct mii_bus *bus, int addr, int reg, u16 val)
 
 static int rtl8366rb_setup(struct rtl8366_smi *smi)
 {
-       int ret;
-
-       ret = rtl8366rb_reset_chip(smi);
-       if (ret)
-               return ret;
-
-       ret = rtl8366rb_hw_init(smi);
-       return ret;
+       return rtl8366rb_hw_init(smi);
 }
 
 static int rtl8366rb_detect(struct rtl8366_smi *smi)
@@ -1185,6 +1178,7 @@ static int rtl8366rb_detect(struct rtl8366_smi *smi)
 
 static struct rtl8366_smi_ops rtl8366rb_smi_ops = {
        .detect         = rtl8366rb_detect,
+       .reset_chip     = rtl8366rb_reset_chip,
        .setup          = rtl8366rb_setup,
 
        .mii_read       = rtl8366rb_mii_read,
index 7f9680aa11323bdb09d8cc3a13f9564e6e71095a..2a8b3a7c8c0822b6c5324b9dae9a254de57670c3 100644 (file)
@@ -1020,14 +1020,7 @@ static int rtl8366s_mii_write(struct mii_bus *bus, int addr, int reg, u16 val)
 
 static int rtl8366s_setup(struct rtl8366_smi *smi)
 {
-       int ret;
-
-       ret = rtl8366s_reset_chip(smi);
-       if (ret)
-               return ret;
-
-       ret = rtl8366s_hw_init(smi);
-       return ret;
+       return rtl8366s_hw_init(smi);
 }
 
 static int rtl8366s_detect(struct rtl8366_smi *smi)
@@ -1065,6 +1058,7 @@ static int rtl8366s_detect(struct rtl8366_smi *smi)
 
 static struct rtl8366_smi_ops rtl8366s_smi_ops = {
        .detect         = rtl8366s_detect,
+       .reset_chip     = rtl8366s_reset_chip,
        .setup          = rtl8366s_setup,
 
        .mii_read       = rtl8366s_mii_read,
index 917976e3020b38cfc060450652a8d6fee8a094b5..c56a129b90ca12123ccc1b29f096fe35f38d4ac0 100644 (file)
@@ -1637,14 +1637,7 @@ static int rtl8367_mii_write(struct mii_bus *bus, int addr, int reg, u16 val)
 
 static int rtl8367_setup(struct rtl8366_smi *smi)
 {
-       int ret;
-
-       ret = rtl8367_reset_chip(smi);
-       if (ret)
-               return ret;
-
-       ret = rtl8367_hw_init(smi);
-       return ret;
+       return rtl8367_hw_init(smi);
 }
 
 static int rtl8367_detect(struct rtl8366_smi *smi)
@@ -1686,6 +1679,7 @@ static int rtl8367_detect(struct rtl8366_smi *smi)
 
 static struct rtl8366_smi_ops rtl8367_smi_ops = {
        .detect         = rtl8367_detect,
+       .reset_chip     = rtl8367_reset_chip,
        .setup          = rtl8367_setup,
 
        .mii_read       = rtl8367_mii_read,