aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux')
-rw-r--r--target/linux/generic/files/drivers/net/phy/rtl8366_smi.c6
-rw-r--r--target/linux/generic/files/drivers/net/phy/rtl8366_smi.h1
-rw-r--r--target/linux/generic/files/drivers/net/phy/rtl8366rb.c6
-rw-r--r--target/linux/generic/files/drivers/net/phy/rtl8366s.c6
4 files changed, 11 insertions, 8 deletions
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c
index ac8862ced6..c7e03901db 100644
--- a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c
+++ b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c
@@ -790,6 +790,12 @@ int rtl8366_smi_init(struct rtl8366_smi *smi)
goto err_free_sck;
}
+ err = smi->ops->setup(smi);
+ if (err) {
+ dev_err(smi->parent, "chip setup failed, err=%d\n", err);
+ goto err_free_sck;
+ }
+
err = rtl8366_smi_mii_init(smi);
if (err)
goto err_free_sck;
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h
index 775f95935e..86517c97ce 100644
--- a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h
+++ b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h
@@ -69,6 +69,7 @@ struct rtl8366_vlan_4k {
struct rtl8366_smi_ops {
int (*detect)(struct rtl8366_smi *smi);
+ int (*setup)(struct rtl8366_smi *smi);
int (*mii_read)(struct mii_bus *bus, int addr, int reg);
int (*mii_write)(struct mii_bus *bus, int addr, int reg, u16 val);
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c
index aa0b4a0b71..984f3861f7 100644
--- a/target/linux/generic/files/drivers/net/phy/rtl8366rb.c
+++ b/target/linux/generic/files/drivers/net/phy/rtl8366rb.c
@@ -1103,6 +1103,8 @@ static int rtl8366rb_detect(struct rtl8366_smi *smi)
static struct rtl8366_smi_ops rtl8366rb_smi_ops = {
.detect = rtl8366rb_detect,
+ .setup = rtl8366rb_setup,
+
.mii_read = rtl8366rb_mii_read,
.mii_write = rtl8366rb_mii_write,
@@ -1154,10 +1156,6 @@ static int __init rtl8366rb_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, smi);
- err = rtl8366rb_setup(smi);
- if (err)
- goto err_clear_drvdata;
-
err = rtl8366rb_switch_init(smi);
if (err)
goto err_clear_drvdata;
diff --git a/target/linux/generic/files/drivers/net/phy/rtl8366s.c b/target/linux/generic/files/drivers/net/phy/rtl8366s.c
index 6f3fdd5092..34fd188595 100644
--- a/target/linux/generic/files/drivers/net/phy/rtl8366s.c
+++ b/target/linux/generic/files/drivers/net/phy/rtl8366s.c
@@ -1130,6 +1130,8 @@ static int rtl8366s_detect(struct rtl8366_smi *smi)
static struct rtl8366_smi_ops rtl8366s_smi_ops = {
.detect = rtl8366s_detect,
+ .setup = rtl8366s_setup,
+
.mii_read = rtl8366s_mii_read,
.mii_write = rtl8366s_mii_write,
@@ -1181,10 +1183,6 @@ static int __init rtl8366s_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, smi);
- err = rtl8366s_setup(smi);
- if (err)
- goto err_clear_drvdata;
-
err = rtl8366s_switch_init(smi);
if (err)
goto err_clear_drvdata;