lantiq: bump to 3.1
[openwrt/openwrt.git] / target / linux / lantiq / patches / 800-fix-etop.patch
1 --- a/drivers/net/lantiq_etop.c
2 +++ b/drivers/net/lantiq_etop.c
3 @@ -397,7 +397,10 @@ ltq_etop_get_settings(struct net_device
4 {
5 struct ltq_etop_priv *priv = netdev_priv(dev);
6
7 - return phy_ethtool_gset(priv->phydev, cmd);
8 + if (priv->phydev)
9 + return phy_ethtool_gset(priv->phydev, cmd);
10 + else
11 + return 0;
12 }
13
14 static int
15 @@ -405,7 +408,10 @@ ltq_etop_set_settings(struct net_device
16 {
17 struct ltq_etop_priv *priv = netdev_priv(dev);
18
19 - return phy_ethtool_sset(priv->phydev, cmd);
20 + if (priv->phydev)
21 + return phy_ethtool_sset(priv->phydev, cmd);
22 + else
23 + return 0;
24 }
25
26 static int
27 @@ -413,7 +419,10 @@ ltq_etop_nway_reset(struct net_device *d
28 {
29 struct ltq_etop_priv *priv = netdev_priv(dev);
30
31 - return phy_start_aneg(priv->phydev);
32 + if (priv->phydev)
33 + return phy_start_aneg(priv->phydev);
34 + else
35 + return 0;
36 }
37
38 static const struct ethtool_ops ltq_etop_ethtool_ops = {
39 @@ -615,7 +624,8 @@ ltq_etop_open(struct net_device *dev)
40 ltq_dma_open(&ch->dma);
41 napi_enable(&ch->napi);
42 }
43 - phy_start(priv->phydev);
44 + if (priv->phydev)
45 + phy_start(priv->phydev);
46 netif_tx_start_all_queues(dev);
47 return 0;
48 }
49 @@ -627,7 +637,8 @@ ltq_etop_stop(struct net_device *dev)
50 int i;
51
52 netif_tx_stop_all_queues(dev);
53 - phy_stop(priv->phydev);
54 + if (priv->phydev)
55 + phy_stop(priv->phydev);
56 for (i = 0; i < MAX_DMA_CHAN; i++) {
57 struct ltq_etop_chan *ch = &priv->ch[i];
58
59 @@ -775,7 +786,7 @@ ltq_etop_init(struct net_device *dev)
60 ltq_etop_set_multicast_list(dev);
61 err = ltq_etop_mdio_init(dev);
62 if (err)
63 - goto err_netdev;
64 + pr_warn("etop: mdio probe failed\n");;
65 return 0;
66
67 err_netdev: