summaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/altera_tse.c2
-rw-r--r--drivers/net/davinci_emac.c2
-rw-r--r--drivers/net/designware.c2
-rw-r--r--drivers/net/dm9k.c2
-rw-r--r--drivers/net/ep93xx.c2
-rw-r--r--drivers/net/fec_imx.c2
-rw-r--r--drivers/net/fec_imx.h2
-rw-r--r--drivers/net/fec_mpc5200.c2
-rw-r--r--drivers/net/ksz8864rmn.c2
-rw-r--r--drivers/net/phy/phy.c49
-rw-r--r--drivers/net/smc91111.c2
-rw-r--r--drivers/net/smc911x.c2
-rw-r--r--drivers/net/smc911x.h2
13 files changed, 53 insertions, 20 deletions
diff --git a/drivers/net/altera_tse.c b/drivers/net/altera_tse.c
index 1e67c7a8e7..316b971742 100644
--- a/drivers/net/altera_tse.c
+++ b/drivers/net/altera_tse.c
@@ -533,7 +533,7 @@ static int tse_probe(struct device_d *dev)
}
#endif
- memset(rx_desc, 0, (sizeof *rx_desc) * (PKTBUFSRX + 1));
+ memset(rx_desc, 0, (sizeof *rx_desc) * (PKTBUFSRX + 1));
memset(tx_desc, 0, (sizeof *tx_desc) * 2);
iores = dev_request_mem_resource(dev, 0);
diff --git a/drivers/net/davinci_emac.c b/drivers/net/davinci_emac.c
index 3dc4b16b67..75a917a76d 100644
--- a/drivers/net/davinci_emac.c
+++ b/drivers/net/davinci_emac.c
@@ -49,7 +49,7 @@
#include <asm/system.h>
#include <linux/phy.h>
#include <mach/emac_defs.h>
-#include <net/davinci_emac.h>
+#include <platform_data/eth-davinci-emac.h>
#include "davinci_emac.h"
struct davinci_emac_priv {
diff --git a/drivers/net/designware.c b/drivers/net/designware.c
index 3b21244478..1d662a71d9 100644
--- a/drivers/net/designware.c
+++ b/drivers/net/designware.c
@@ -27,7 +27,7 @@
#include <io.h>
#include <net.h>
#include <of_net.h>
-#include <net/designware.h>
+#include <platform_data/eth-designware.h>
#include <linux/phy.h>
#include <linux/err.h>
#include "designware.h"
diff --git a/drivers/net/dm9k.c b/drivers/net/dm9k.c
index ad402e3efc..acc0abbc48 100644
--- a/drivers/net/dm9k.c
+++ b/drivers/net/dm9k.c
@@ -29,7 +29,7 @@
#include <net.h>
#include <io.h>
#include <xfuncs.h>
-#include <dm9000.h>
+#include <platform_data/eth-dm9000.h>
#include <errno.h>
#include <linux/phy.h>
diff --git a/drivers/net/ep93xx.c b/drivers/net/ep93xx.c
index 0acb9b692f..fd725a56ee 100644
--- a/drivers/net/ep93xx.c
+++ b/drivers/net/ep93xx.c
@@ -38,7 +38,7 @@
#include <linux/types.h>
#include <mach/ep93xx-regs.h>
#include <linux/phy.h>
-#include <net/ep93xx_eth.h>
+#include <platform_data/eth-ep93xx.h>
#include "ep93xx.h"
#define EP93XX_MAX_PKT_SIZE 1536
diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c
index 83fdec66d7..8bc7c2993a 100644
--- a/drivers/net/fec_imx.c
+++ b/drivers/net/fec_imx.c
@@ -20,7 +20,7 @@
#include <net.h>
#include <init.h>
#include <driver.h>
-#include <fec.h>
+#include <platform_data/eth-fec.h>
#include <io.h>
#include <clock.h>
#include <xfuncs.h>
diff --git a/drivers/net/fec_imx.h b/drivers/net/fec_imx.h
index 0921b52bae..1947e60f69 100644
--- a/drivers/net/fec_imx.h
+++ b/drivers/net/fec_imx.h
@@ -193,7 +193,7 @@ static inline int fec_is_imx6(struct fec_priv *priv)
#define FEC_RBD_SH 0x0008 /**< Receive BD status: Short frame */
#define FEC_RBD_CR 0x0004 /**< Receive BD status: CRC error */
#define FEC_RBD_OV 0x0002 /**< Receive BD status: Receive FIFO overrun */
-#define FEC_RBD_TR 0x0001 /**< Receive BD status: Frame is truncated */
+#define FEC_RBD_TR 0x0001 /**< Receive BD status: Frame is truncated */
#define FEC_RBD_ERR (FEC_RBD_LG | FEC_RBD_NO | FEC_RBD_CR | \
FEC_RBD_OV | FEC_RBD_TR)
diff --git a/drivers/net/fec_mpc5200.c b/drivers/net/fec_mpc5200.c
index bb57c34502..b99c23f7d4 100644
--- a/drivers/net/fec_mpc5200.c
+++ b/drivers/net/fec_mpc5200.c
@@ -10,7 +10,7 @@
#include <mach/mpc5xxx.h>
#include <malloc.h>
#include <net.h>
-#include <fec.h>
+#include <platform_data/eth-fec.h>
#include <init.h>
#include <driver.h>
#include <mach/sdma.h>
diff --git a/drivers/net/ksz8864rmn.c b/drivers/net/ksz8864rmn.c
index 3ca85fb3f3..860af448ea 100644
--- a/drivers/net/ksz8864rmn.c
+++ b/drivers/net/ksz8864rmn.c
@@ -149,7 +149,7 @@ static int micrel_switch_probe(struct device_d *dev)
return -ENODEV;
}
- priv->cdev.name = asprintf("switch%d", dev->id);
+ priv->cdev.name = basprintf("switch%d", dev->id);
priv->cdev.size = 256;
priv->cdev.ops = &micrel_switch_ops;
priv->cdev.priv = priv;
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index be2c68bf68..73176fbc04 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -52,9 +52,11 @@ int phy_update_status(struct phy_device *phydev)
int ret;
int oldspeed = phydev->speed, oldduplex = phydev->duplex;
- ret = drv->read_status(phydev);
- if (ret)
- return ret;
+ if (drv) {
+ ret = drv->read_status(phydev);
+ if (ret)
+ return ret;
+ }
if (phydev->speed == oldspeed && phydev->duplex == oldduplex)
return 0;
@@ -173,10 +175,15 @@ struct phy_device *phy_device_create(struct mii_bus *bus, int addr, int phy_id)
phydev->bus = bus;
phydev->dev.bus = &mdio_bus_type;
- sprintf(phydev->dev.name, "mdio%d-phy%02x",
+ if (bus) {
+ sprintf(phydev->dev.name, "mdio%d-phy%02x",
phydev->bus->dev.id,
phydev->addr);
- phydev->dev.id = DEVICE_ID_SINGLE;
+ phydev->dev.id = DEVICE_ID_SINGLE;
+ } else {
+ sprintf(phydev->dev.name, "fixed-phy");
+ phydev->dev.id = DEVICE_ID_DYNAMIC;
+ }
return phydev;
}
@@ -245,7 +252,9 @@ static void phy_config_aneg(struct phy_device *phydev)
struct phy_driver *drv;
drv = to_phy_driver(phydev->dev.driver);
- drv->config_aneg(phydev);
+
+ if (drv)
+ drv->config_aneg(phydev);
}
int phy_register_device(struct phy_device *phydev)
@@ -255,13 +264,15 @@ int phy_register_device(struct phy_device *phydev)
if (phydev->registered)
return -EBUSY;
- phydev->dev.parent = &phydev->bus->dev;
+ if (!phydev->dev.parent)
+ phydev->dev.parent = &phydev->bus->dev;
ret = register_device(&phydev->dev);
if (ret)
return ret;
- phydev->bus->phy_map[phydev->addr] = phydev;
+ if (phydev->bus)
+ phydev->bus->phy_map[phydev->addr] = phydev;
phydev->registered = 1;
@@ -289,6 +300,22 @@ void phy_unregister_device(struct phy_device *phydev)
phydev->registered = 0;
}
+struct phy_device *of_phy_register_fixed_link(struct device_node *np, struct eth_device *edev)
+{
+ struct phy_device *phydev;
+
+ phydev = phy_device_create(NULL, 0, 0);
+
+ phydev->dev.parent = &edev->dev;
+ phydev->registered = 1;
+ phydev->speed = 1000;
+ phydev->duplex = 1;
+ phydev->pause = phydev->asym_pause = 0;
+ phydev->link = 1;
+
+ return phydev;
+}
+
static struct phy_device *of_mdio_find_phy(struct eth_device *edev)
{
struct device_d *dev;
@@ -305,6 +332,12 @@ static struct phy_device *of_mdio_find_phy(struct eth_device *edev)
phy_node = of_parse_phandle(edev->parent->device_node, "phy", 0);
if (!phy_node)
phy_node = of_parse_phandle(edev->parent->device_node, "phy-device", 0);
+ if (!phy_node) {
+ phy_node = of_get_child_by_name(edev->parent->device_node, "fixed-link");
+ if (phy_node)
+ return of_phy_register_fixed_link(phy_node, edev);
+ }
+
if (!phy_node)
return NULL;
diff --git a/drivers/net/smc91111.c b/drivers/net/smc91111.c
index b7055910eb..e08e3dd1b5 100644
--- a/drivers/net/smc91111.c
+++ b/drivers/net/smc91111.c
@@ -67,7 +67,7 @@
#include <io.h>
#include <linux/phy.h>
#include <linux/err.h>
-#include <net/smc91111.h>
+#include <platform_data/eth-smc91111.h>
/*---------------------------------------------------------------
.
diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c
index 9b1a38ae21..fe9d1df502 100644
--- a/drivers/net/smc911x.c
+++ b/drivers/net/smc911x.c
@@ -28,7 +28,7 @@
#include <errno.h>
#include <clock.h>
#include <io.h>
-#include <smc911x.h>
+#include <platform_data/eth-smc911x.h>
#include <linux/phy.h>
#include "smc911x.h"
diff --git a/drivers/net/smc911x.h b/drivers/net/smc911x.h
index 8540a84344..3bf2af9c35 100644
--- a/drivers/net/smc911x.h
+++ b/drivers/net/smc911x.h
@@ -186,7 +186,7 @@
#define RX_DP_CTRL_RX_FFWD 0x80000000 /* R/W */
#define RX_DP_CTRL_FFWD_BUSY 0x80000000 /* RO */
-#define RX_FIFO_INF 0x7C
+#define RX_FIFO_INF 0x7C
#define RX_FIFO_INF_RXSUSED 0x00FF0000 /* RO */
#define RX_FIFO_INF_RXDUSED 0x0000FFFF /* RO */