Просмотр исходного кода

linux: rtl836x: add a reset_chip callback to rtl8366_smi_ops

SVN-Revision: 31534
Gabor Juhos 13 лет назад
Родитель
Сommit
badd7a3cf2

+ 4 - 0
target/linux/generic/files/drivers/net/phy/rtl8366_smi.c

@@ -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);

+ 1 - 0
target/linux/generic/files/drivers/net/phy/rtl8366_smi.h

@@ -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);

+ 2 - 8
target/linux/generic/files/drivers/net/phy/rtl8366rb.c

@@ -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,

+ 2 - 8
target/linux/generic/files/drivers/net/phy/rtl8366s.c

@@ -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,

+ 2 - 8
target/linux/generic/files/drivers/net/phy/rtl8367.c

@@ -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,