* [PATCH net 01/10] net: ethernet: mediatek: fix fails from TX housekeeping due to incorrect port setup
2016-08-25 10:22 [PATCH net 00/10] net: ethernet: mediatek: a couple of fixes Sean, Wang
@ 2016-08-25 10:22 ` Sean, Wang
2016-08-25 10:22 ` [PATCH net 02/10] net: ethernet: mediatek: fix incorrect return value of devm_clk_get with EPROBE_DEFER Sean, Wang
` (9 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Sean, Wang @ 2016-08-25 10:22 UTC (permalink / raw)
To: john, davem; +Cc: nbd, netdev, linux-mediatek, keyhaede, Sean Wang
From: Sean Wang <sean.wang@mediatek.com>
which net device the SKB is complete for depends on the forward port
on txd4 on the corresponding TX descriptor, but the information isn't
set up well in case of SKB fragments that would lead to watchdog timeout
from the upper layer, so fix it up.
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 1801fd8..6e4a6ca 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -587,14 +587,15 @@ static int mtk_tx_map(struct sk_buff *skb, struct net_device *dev,
dma_addr_t mapped_addr;
unsigned int nr_frags;
int i, n_desc = 1;
- u32 txd4 = 0;
+ u32 txd4 = 0, fport;
itxd = ring->next_free;
if (itxd == ring->last_free)
return -ENOMEM;
/* set the forward port */
- txd4 |= (mac->id + 1) << TX_DMA_FPORT_SHIFT;
+ fport = (mac->id + 1) << TX_DMA_FPORT_SHIFT;
+ txd4 |= fport;
tx_buf = mtk_desc_to_tx_buf(ring, itxd);
memset(tx_buf, 0, sizeof(*tx_buf));
@@ -652,7 +653,7 @@ static int mtk_tx_map(struct sk_buff *skb, struct net_device *dev,
WRITE_ONCE(txd->txd3, (TX_DMA_SWC |
TX_DMA_PLEN0(frag_map_size) |
last_frag * TX_DMA_LS0));
- WRITE_ONCE(txd->txd4, 0);
+ WRITE_ONCE(txd->txd4, fport);
tx_buf->skb = (struct sk_buff *)MTK_DMA_DUMMY_DESC;
tx_buf = mtk_desc_to_tx_buf(ring, txd);
--
1.9.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net 02/10] net: ethernet: mediatek: fix incorrect return value of devm_clk_get with EPROBE_DEFER
2016-08-25 10:22 [PATCH net 00/10] net: ethernet: mediatek: a couple of fixes Sean, Wang
2016-08-25 10:22 ` [PATCH net 01/10] net: ethernet: mediatek: fix fails from TX housekeeping due to incorrect port setup Sean, Wang
@ 2016-08-25 10:22 ` Sean, Wang
2016-08-25 10:22 ` [PATCH net 03/10] net: ethernet: mediatek: fix API usage with skb_free_frag Sean, Wang
` (8 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Sean, Wang @ 2016-08-25 10:22 UTC (permalink / raw)
To: john, davem; +Cc: nbd, netdev, linux-mediatek, keyhaede, Sean Wang
From: Sean Wang <sean.wang@mediatek.com>
If the return value of devm_clk_get is EPROBE_DEFER, we should
defer probing the driver. The change is verified and works based
on 4.8-rc1 staying with the latest clk-next code for MT7623.
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 6e4a6ca..02b048f 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1851,8 +1851,15 @@ static int mtk_probe(struct platform_device *pdev)
eth->clk_gp1 = devm_clk_get(&pdev->dev, "gp1");
eth->clk_gp2 = devm_clk_get(&pdev->dev, "gp2");
if (IS_ERR(eth->clk_esw) || IS_ERR(eth->clk_gp1) ||
- IS_ERR(eth->clk_gp2) || IS_ERR(eth->clk_ethif))
- return -ENODEV;
+ IS_ERR(eth->clk_gp2) || IS_ERR(eth->clk_ethif)) {
+ if (PTR_ERR(eth->clk_esw) == -EPROBE_DEFER ||
+ PTR_ERR(eth->clk_gp1) == -EPROBE_DEFER ||
+ PTR_ERR(eth->clk_gp1) == -EPROBE_DEFER ||
+ PTR_ERR(eth->clk_gp2) == -EPROBE_DEFER)
+ return -EPROBE_DEFER;
+ else
+ return -ENODEV;
+ }
clk_prepare_enable(eth->clk_ethif);
clk_prepare_enable(eth->clk_esw);
--
1.9.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net 03/10] net: ethernet: mediatek: fix API usage with skb_free_frag
2016-08-25 10:22 [PATCH net 00/10] net: ethernet: mediatek: a couple of fixes Sean, Wang
2016-08-25 10:22 ` [PATCH net 01/10] net: ethernet: mediatek: fix fails from TX housekeeping due to incorrect port setup Sean, Wang
2016-08-25 10:22 ` [PATCH net 02/10] net: ethernet: mediatek: fix incorrect return value of devm_clk_get with EPROBE_DEFER Sean, Wang
@ 2016-08-25 10:22 ` Sean, Wang
2016-08-25 10:22 ` [PATCH net 04/10] net: ethernet: mediatek: remove redundant free_irq for devm_request_irq allocated irq Sean, Wang
` (7 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Sean, Wang @ 2016-08-25 10:22 UTC (permalink / raw)
To: john, davem; +Cc: nbd, netdev, linux-mediatek, keyhaede, Sean Wang
From: Sean Wang <sean.wang@mediatek.com>
use skb_free_frag() instead of legacy put_page()
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 02b048f..1b131a1 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -864,7 +864,7 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
/* receive data */
skb = build_skb(data, ring->frag_size);
if (unlikely(!skb)) {
- put_page(virt_to_head_page(new_data));
+ skb_free_frag(new_data);
netdev->stats.rx_dropped++;
goto release_desc;
}
--
1.9.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net 04/10] net: ethernet: mediatek: remove redundant free_irq for devm_request_irq allocated irq
2016-08-25 10:22 [PATCH net 00/10] net: ethernet: mediatek: a couple of fixes Sean, Wang
` (2 preceding siblings ...)
2016-08-25 10:22 ` [PATCH net 03/10] net: ethernet: mediatek: fix API usage with skb_free_frag Sean, Wang
@ 2016-08-25 10:22 ` Sean, Wang
2016-08-25 10:22 ` [PATCH net 05/10] net: ethernet: mediatek: fix logic unbalance between probe and remove Sean, Wang
` (6 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Sean, Wang @ 2016-08-25 10:22 UTC (permalink / raw)
To: john, davem; +Cc: nbd, netdev, linux-mediatek, keyhaede, Sean Wang
From: Sean Wang <sean.wang@mediatek.com>
these irqs are not used for shared irq and disabled during ethernet stops.
irq requested by devm_request_irq is safe to be freed automatically on
driver detach.
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 1b131a1..9883dac 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1506,8 +1506,6 @@ static void mtk_uninit(struct net_device *dev)
phy_disconnect(mac->phy_dev);
mtk_mdio_cleanup(eth);
mtk_irq_disable(eth, ~0);
- free_irq(eth->irq[1], dev);
- free_irq(eth->irq[2], dev);
}
static int mtk_do_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
--
1.9.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net 05/10] net: ethernet: mediatek: fix logic unbalance between probe and remove
2016-08-25 10:22 [PATCH net 00/10] net: ethernet: mediatek: a couple of fixes Sean, Wang
` (3 preceding siblings ...)
2016-08-25 10:22 ` [PATCH net 04/10] net: ethernet: mediatek: remove redundant free_irq for devm_request_irq allocated irq Sean, Wang
@ 2016-08-25 10:22 ` Sean, Wang
2016-08-25 10:22 ` [PATCH net 06/10] net: ethernet: mediatek: fix the loss of pin-mux setting for GMAC2 Sean, Wang
` (5 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Sean, Wang @ 2016-08-25 10:22 UTC (permalink / raw)
To: john, davem; +Cc: nbd, netdev, linux-mediatek, keyhaede, Sean Wang
From: Sean Wang <sean.wang@mediatek.com>
original mdio_cleanup is not in the symmetric place against where
mdio_init is, so relocate mdio_cleanup to the right one.
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 9883dac..5bd31f8 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1504,7 +1504,6 @@ static void mtk_uninit(struct net_device *dev)
struct mtk_eth *eth = mac->hw;
phy_disconnect(mac->phy_dev);
- mtk_mdio_cleanup(eth);
mtk_irq_disable(eth, ~0);
}
@@ -1915,6 +1914,7 @@ static int mtk_remove(struct platform_device *pdev)
netif_napi_del(ð->tx_napi);
netif_napi_del(ð->rx_napi);
mtk_cleanup(eth);
+ mtk_mdio_cleanup(eth);
return 0;
}
--
1.9.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net 06/10] net: ethernet: mediatek: fix the loss of pin-mux setting for GMAC2
2016-08-25 10:22 [PATCH net 00/10] net: ethernet: mediatek: a couple of fixes Sean, Wang
` (4 preceding siblings ...)
2016-08-25 10:22 ` [PATCH net 05/10] net: ethernet: mediatek: fix logic unbalance between probe and remove Sean, Wang
@ 2016-08-25 10:22 ` Sean, Wang
2016-08-25 10:22 ` [PATCH net 07/10] net: ethernet: mediatek: fix issue of driver removal with interface is up Sean, Wang
` (4 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Sean, Wang @ 2016-08-25 10:22 UTC (permalink / raw)
To: john, davem; +Cc: nbd, netdev, linux-mediatek, keyhaede, Sean Wang
From: Sean Wang <sean.wang@mediatek.com>
ommited the setting about pin-mux which results in incorrect signals
being routed on GMAC2.
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 14 ++++++++++++++
drivers/net/ethernet/mediatek/mtk_eth_soc.h | 3 +++
2 files changed, 17 insertions(+)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 5bd31f8..0a4c782 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1415,6 +1415,7 @@ static int __init mtk_hw_init(struct mtk_eth *eth)
usleep_range(10, 20);
reset_control_deassert(eth->rstc);
usleep_range(10, 20);
+ pinctrl_select_state(eth->pins, eth->ephy_default);
/* Set GE2 driving and slew rate */
regmap_write(eth->pctl, GPIO_DRV_SEL10, 0xa00);
@@ -1858,6 +1859,19 @@ static int mtk_probe(struct platform_device *pdev)
return -ENODEV;
}
+ eth->pins = devm_pinctrl_get(&pdev->dev);
+ if (IS_ERR(eth->pins)) {
+ dev_err(&pdev->dev, "cannot get pinctrl\n");
+ return PTR_ERR(eth->pins);
+ }
+
+ eth->ephy_default =
+ pinctrl_lookup_state(eth->pins, "default");
+ if (IS_ERR(eth->ephy_default)) {
+ dev_err(&pdev->dev, "cannot get pinctrl state\n");
+ return PTR_ERR(eth->ephy_default);
+ }
+
clk_prepare_enable(eth->clk_ethif);
clk_prepare_enable(eth->clk_esw);
clk_prepare_enable(eth->clk_gp1);
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.h b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
index f82e3ac..13d3f1b 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h
@@ -404,6 +404,9 @@ struct mtk_eth {
struct clk *clk_esw;
struct clk *clk_gp1;
struct clk *clk_gp2;
+ struct pinctrl *pins;
+ struct pinctrl_state *ephy_default;
+
struct mii_bus *mii_bus;
struct work_struct pending_work;
};
--
1.9.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net 07/10] net: ethernet: mediatek: fix issue of driver removal with interface is up
2016-08-25 10:22 [PATCH net 00/10] net: ethernet: mediatek: a couple of fixes Sean, Wang
` (5 preceding siblings ...)
2016-08-25 10:22 ` [PATCH net 06/10] net: ethernet: mediatek: fix the loss of pin-mux setting for GMAC2 Sean, Wang
@ 2016-08-25 10:22 ` Sean, Wang
2016-08-25 10:22 ` [PATCH net 08/10] net: ethernet: mediatek: fix the missing of_node_put() after node is used done inside mtk_mdio_init Sean, Wang
` (3 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Sean, Wang @ 2016-08-25 10:22 UTC (permalink / raw)
To: john, davem; +Cc: nbd, netdev, linux-mediatek, keyhaede, Sean Wang
From: Sean Wang <sean.wang@mediatek.com>
1) mtk_stop() must be called to stop for freeing DMA resources
acquired and restoring state changed by mtk_open() when module
removal.
2) group clock disabled related function into mtk_hw_deinit which
could be reused with others functionality such as the whole ethernet
reset that would be posted in the later series of patches.
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 0a4c782..c573475 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1478,6 +1478,16 @@ static int __init mtk_hw_init(struct mtk_eth *eth)
return 0;
}
+static int mtk_hw_deinit(struct mtk_eth *eth)
+{
+ clk_disable_unprepare(eth->clk_esw);
+ clk_disable_unprepare(eth->clk_gp1);
+ clk_disable_unprepare(eth->clk_gp2);
+ clk_disable_unprepare(eth->clk_ethif);
+
+ return 0;
+}
+
static int __init mtk_init(struct net_device *dev)
{
struct mtk_mac *mac = netdev_priv(dev);
@@ -1919,11 +1929,15 @@ err_free_dev:
static int mtk_remove(struct platform_device *pdev)
{
struct mtk_eth *eth = platform_get_drvdata(pdev);
+ int i;
- clk_disable_unprepare(eth->clk_ethif);
- clk_disable_unprepare(eth->clk_esw);
- clk_disable_unprepare(eth->clk_gp1);
- clk_disable_unprepare(eth->clk_gp2);
+ /* stop all devices to make sure that dma is properly shut down */
+ for (i = 0; i < MTK_MAC_COUNT; i++) {
+ if (!eth->netdev[i])
+ continue;
+ mtk_stop(eth->netdev[i]);
+ }
+ mtk_hw_deinit(eth);
netif_napi_del(ð->tx_napi);
netif_napi_del(ð->rx_napi);
--
1.9.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net 08/10] net: ethernet: mediatek: fix the missing of_node_put() after node is used done inside mtk_mdio_init
2016-08-25 10:22 [PATCH net 00/10] net: ethernet: mediatek: a couple of fixes Sean, Wang
` (6 preceding siblings ...)
2016-08-25 10:22 ` [PATCH net 07/10] net: ethernet: mediatek: fix issue of driver removal with interface is up Sean, Wang
@ 2016-08-25 10:22 ` Sean, Wang
2016-08-25 10:22 ` [PATCH net 09/10] net: ethernet: mediatek: use devm_mdiobus_alloc instead of mdiobus_alloc " Sean, Wang
` (2 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Sean, Wang @ 2016-08-25 10:22 UTC (permalink / raw)
To: john, davem; +Cc: nbd, netdev, linux-mediatek, keyhaede, Sean Wang
From: Sean Wang <sean.wang@mediatek.com>
This patch adds the missing of_node_put() after finishing the usage
of of_get_child_by_name.
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index c573475..e3baa63 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -320,6 +320,7 @@ static int mtk_mdio_init(struct mtk_eth *eth)
err = of_mdiobus_register(eth->mii_bus, mii_np);
if (err)
goto err_free_bus;
+ of_node_put(mii_np);
return 0;
--
1.9.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net 09/10] net: ethernet: mediatek: use devm_mdiobus_alloc instead of mdiobus_alloc inside mtk_mdio_init
2016-08-25 10:22 [PATCH net 00/10] net: ethernet: mediatek: a couple of fixes Sean, Wang
` (7 preceding siblings ...)
2016-08-25 10:22 ` [PATCH net 08/10] net: ethernet: mediatek: fix the missing of_node_put() after node is used done inside mtk_mdio_init Sean, Wang
@ 2016-08-25 10:22 ` Sean, Wang
2016-08-25 10:22 ` [PATCH net 10/10] net: ethernet: mediatek: fix error handling " Sean, Wang
[not found] ` <1472120557-15216-1-git-send-email-sean.wang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
10 siblings, 0 replies; 12+ messages in thread
From: Sean, Wang @ 2016-08-25 10:22 UTC (permalink / raw)
To: john, davem; +Cc: nbd, netdev, linux-mediatek, keyhaede, Sean Wang
From: Sean Wang <sean.wang@mediatek.com>
a lot of parts in the driver uses devm_* APIs to gain benefits from the
device resource management, so devm_mdiobus_alloc is also used instead
of mdiobus_alloc to have more elegant code flow.
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 13 +------------
1 file changed, 1 insertion(+), 12 deletions(-)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index e3baa63..05d85da 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -304,7 +304,7 @@ static int mtk_mdio_init(struct mtk_eth *eth)
goto err_put_node;
}
- eth->mii_bus = mdiobus_alloc();
+ eth->mii_bus = devm_mdiobus_alloc(eth->dev);
if (!eth->mii_bus) {
err = -ENOMEM;
goto err_put_node;
@@ -318,18 +318,9 @@ static int mtk_mdio_init(struct mtk_eth *eth)
snprintf(eth->mii_bus->id, MII_BUS_ID_SIZE, "%s", mii_np->name);
err = of_mdiobus_register(eth->mii_bus, mii_np);
- if (err)
- goto err_free_bus;
- of_node_put(mii_np);
-
- return 0;
-
-err_free_bus:
- mdiobus_free(eth->mii_bus);
err_put_node:
of_node_put(mii_np);
- eth->mii_bus = NULL;
return err;
}
@@ -339,8 +330,6 @@ static void mtk_mdio_cleanup(struct mtk_eth *eth)
return;
mdiobus_unregister(eth->mii_bus);
- of_node_put(eth->mii_bus->dev.of_node);
- mdiobus_free(eth->mii_bus);
}
static inline void mtk_irq_disable(struct mtk_eth *eth, u32 mask)
--
1.9.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH net 10/10] net: ethernet: mediatek: fix error handling inside mtk_mdio_init
2016-08-25 10:22 [PATCH net 00/10] net: ethernet: mediatek: a couple of fixes Sean, Wang
` (8 preceding siblings ...)
2016-08-25 10:22 ` [PATCH net 09/10] net: ethernet: mediatek: use devm_mdiobus_alloc instead of mdiobus_alloc " Sean, Wang
@ 2016-08-25 10:22 ` Sean, Wang
[not found] ` <1472120557-15216-1-git-send-email-sean.wang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>
10 siblings, 0 replies; 12+ messages in thread
From: Sean, Wang @ 2016-08-25 10:22 UTC (permalink / raw)
To: john, davem; +Cc: nbd, netdev, linux-mediatek, keyhaede, Sean Wang
From: Sean Wang <sean.wang@mediatek.com>
return -ENODEV if no child is found in MDIO bus.
Signed-off-by: Sean Wang <sean.wang@mediatek.com>
---
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 05d85da..2d547c2 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -300,7 +300,7 @@ static int mtk_mdio_init(struct mtk_eth *eth)
}
if (!of_device_is_available(mii_np)) {
- err = 0;
+ err = -ENODEV;
goto err_put_node;
}
--
1.9.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
[parent not found: <1472120557-15216-1-git-send-email-sean.wang-NuS5LvNUpcJWk0Htik3J/w@public.gmane.org>]