diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2009-06-11 15:32:06 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2009-07-21 16:41:46 +0200 |
commit | 2f8df2a003a22e8b7397e51ac5f1796db920d579 (patch) | |
tree | f92f130a7a4522e6391174a02fdb3d82ba44e080 /drivers | |
parent | 56139274fda2ce914860a978d32d79bd43099ae1 (diff) | |
download | barebox-2f8df2a003a22e8b7397e51ac5f1796db920d579.tar.gz barebox-2f8df2a003a22e8b7397e51ac5f1796db920d579.tar.xz |
add a device_d to ethernet devices
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/at91_ether.c | 1 | ||||
-rw-r--r-- | drivers/net/cs8900.c | 1 | ||||
-rw-r--r-- | drivers/net/dm9000.c | 1 | ||||
-rw-r--r-- | drivers/net/fec_imx.c | 1 | ||||
-rw-r--r-- | drivers/net/fec_mpc5200.c | 1 | ||||
-rw-r--r-- | drivers/net/macb.c | 1 | ||||
-rw-r--r-- | drivers/net/miiphy.c | 27 | ||||
-rw-r--r-- | drivers/net/netx_eth.c | 1 | ||||
-rw-r--r-- | drivers/net/smc911x.c | 1 | ||||
-rw-r--r-- | drivers/net/tap.c | 1 | ||||
-rw-r--r-- | drivers/net/usb/asix.c | 36 | ||||
-rw-r--r-- | drivers/net/usb/usbnet.c | 25 |
12 files changed, 47 insertions, 50 deletions
diff --git a/drivers/net/at91_ether.c b/drivers/net/at91_ether.c index 72660481ed..a2d15948f3 100644 --- a/drivers/net/at91_ether.c +++ b/drivers/net/at91_ether.c @@ -265,7 +265,6 @@ static int at91rm9200_eth_init (struct device_d *dev) edev = malloc(sizeof(struct eth_device)); dev->priv = edev; - edev->dev = dev; edev->open = at91rm9200_eth_open; edev->send = at91rm9200_eth_send; diff --git a/drivers/net/cs8900.c b/drivers/net/cs8900.c index 544526216c..32566cdb30 100644 --- a/drivers/net/cs8900.c +++ b/drivers/net/cs8900.c @@ -450,7 +450,6 @@ static int cs8900_probe(struct device_d *dev) edev = (struct eth_device *)malloc(sizeof(struct eth_device)); dev->type_data = edev; edev->priv = priv; - edev->dev = dev; edev->init = cs8900_dev_init; edev->open = cs8900_open; diff --git a/drivers/net/dm9000.c b/drivers/net/dm9000.c index 081be22f56..b8ad98d1da 100644 --- a/drivers/net/dm9000.c +++ b/drivers/net/dm9000.c @@ -480,7 +480,6 @@ static int dm9000_probe(struct device_d *dev) edev = xzalloc(sizeof(struct eth_device) + sizeof(struct dm9000_priv)); dev->type_data = edev; - edev->dev = dev; edev->priv = (struct dm9000_priv *)(edev + 1); if (!dev->platform_data) { diff --git a/drivers/net/fec_imx.c b/drivers/net/fec_imx.c index ab405e73ae..ace6d05523 100644 --- a/drivers/net/fec_imx.c +++ b/drivers/net/fec_imx.c @@ -538,7 +538,6 @@ static int fec_probe(struct device_d *dev) dev->type_data = edev; fec = (struct fec_priv *)malloc(sizeof(*fec)); edev->priv = fec; - edev->dev = dev; edev->open = fec_open, edev->init = fec_init, edev->send = fec_send, diff --git a/drivers/net/fec_mpc5200.c b/drivers/net/fec_mpc5200.c index b37a8576c8..a942631ebe 100644 --- a/drivers/net/fec_mpc5200.c +++ b/drivers/net/fec_mpc5200.c @@ -676,7 +676,6 @@ int mpc5xxx_fec_probe(struct device_d *dev) dev->type_data = edev; fec = (mpc5xxx_fec_priv *)malloc(sizeof(*fec)); edev->priv = fec; - edev->dev = dev; edev->open = mpc5xxx_fec_open, edev->init = mpc5xxx_fec_init, edev->send = mpc5xxx_fec_send, diff --git a/drivers/net/macb.c b/drivers/net/macb.c index 1ca002089b..499c77e2c0 100644 --- a/drivers/net/macb.c +++ b/drivers/net/macb.c @@ -421,7 +421,6 @@ static int macb_probe(struct device_d *dev) edev = xzalloc(sizeof(struct eth_device) + sizeof(struct macb_device)); dev->type_data = edev; - edev->dev = dev; edev->priv = (struct macb_device *)(edev + 1); macb = edev->priv; diff --git a/drivers/net/miiphy.c b/drivers/net/miiphy.c index b4e6756a93..30f235390b 100644 --- a/drivers/net/miiphy.c +++ b/drivers/net/miiphy.c @@ -26,6 +26,7 @@ #include <miiphy.h> #include <clock.h> #include <net.h> +#include <malloc.h> int miiphy_restart_aneg(struct miiphy_device *mdev) { @@ -175,10 +176,8 @@ static struct file_operations miiphy_ops = { static int miiphy_probe(struct device_d *dev) { struct miiphy_device *mdev = dev->priv; - char name[MAX_DRIVER_NAME]; - get_free_deviceid(name, "phy"); - mdev->cdev.name = strdup(name); + mdev->cdev.name = asprintf("phy%d", dev->id); mdev->cdev.size = 32; mdev->cdev.ops = &miiphy_ops; mdev->cdev.priv = mdev; @@ -186,19 +185,33 @@ static int miiphy_probe(struct device_d *dev) return 0; } -int miiphy_register(struct miiphy_device *mdev) +static void miiphy_remove(struct device_d *dev) { - mdev->dev.priv = mdev; - strcpy(mdev->dev.name, "miiphy"); + struct miiphy_device *mdev = dev->priv; - return register_device(&mdev->dev); + free(mdev->cdev.name); + devfs_remove(&mdev->cdev); } static struct driver_d miiphy_drv = { .name = "miiphy", .probe = miiphy_probe, + .remove = miiphy_remove, }; +int miiphy_register(struct miiphy_device *mdev) +{ + mdev->dev.priv = mdev; + strcpy(mdev->dev.name, "miiphy"); + + return register_device(&mdev->dev); +} + +void miiphy_unregister(struct miiphy_device *mdev) +{ + unregister_device(&mdev->dev); +} + static int miiphy_init(void) { register_driver(&miiphy_drv); diff --git a/drivers/net/netx_eth.c b/drivers/net/netx_eth.c index 69b05179d3..6c52fb790c 100644 --- a/drivers/net/netx_eth.c +++ b/drivers/net/netx_eth.c @@ -246,7 +246,6 @@ static int netx_eth_probe(struct device_d *dev) edev = xzalloc(sizeof(struct eth_device) + sizeof(struct netx_eth_priv)); dev->type_data = edev; - edev->dev = dev; edev->priv = (struct netx_priv *)(edev + 1); priv = edev->priv; diff --git a/drivers/net/smc911x.c b/drivers/net/smc911x.c index 991e231d01..4a5e7b614c 100644 --- a/drivers/net/smc911x.c +++ b/drivers/net/smc911x.c @@ -717,7 +717,6 @@ static int smc911x_probe(struct device_d *dev) edev = xzalloc(sizeof(struct eth_device) + sizeof(struct smc911x_priv)); dev->type_data = edev; - edev->dev = dev; edev->priv = (struct smc911x_priv *)(edev + 1); priv = edev->priv; diff --git a/drivers/net/tap.c b/drivers/net/tap.c index 2bd1643876..74e6ab3844 100644 --- a/drivers/net/tap.c +++ b/drivers/net/tap.c @@ -89,7 +89,6 @@ int tap_probe(struct device_d *dev) edev = malloc(sizeof(struct eth_device)); dev->type_data = edev; - edev->dev = dev; edev->priv = priv; edev->init = tap_eth_open; diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c index b5acb0c2ac..e44ce67b6e 100644 --- a/drivers/net/usb/asix.c +++ b/drivers/net/usb/asix.c @@ -154,7 +154,7 @@ static int asix_read_cmd(struct usbnet *dev, u8 cmd, u16 value, u16 index, void *buf; int err = -ENOMEM; - dev_dbg(dev->edev.dev, "asix_read_cmd() cmd=0x%02x value=0x%04x index=0x%04x size=%d", + dev_dbg(&dev->edev.dev, "asix_read_cmd() cmd=0x%02x value=0x%04x index=0x%04x size=%d", cmd, value, index, size); buf = malloc(size); @@ -187,7 +187,7 @@ static int asix_write_cmd(struct usbnet *dev, u8 cmd, u16 value, u16 index, void *buf = NULL; int err = -ENOMEM; - dev_dbg(dev->edev.dev, "asix_write_cmd() cmd=0x%02x value=0x%04x index=0x%04x size=%d", + dev_dbg(&dev->edev.dev, "asix_write_cmd() cmd=0x%02x value=0x%04x index=0x%04x size=%d", cmd, value, index, size); if (data) { @@ -218,7 +218,7 @@ static inline int asix_set_sw_mii(struct usbnet *dev) int ret; ret = asix_write_cmd(dev, AX_CMD_SET_SW_MII, 0x0000, 0, 0, NULL); if (ret < 0) - dev_err(dev->edev.dev, "Failed to enable software MII access"); + dev_err(&dev->edev.dev, "Failed to enable software MII access"); return ret; } @@ -227,7 +227,7 @@ static inline int asix_set_hw_mii(struct usbnet *dev) int ret; ret = asix_write_cmd(dev, AX_CMD_SET_HW_MII, 0x0000, 0, 0, NULL); if (ret < 0) - dev_err(dev->edev.dev, "Failed to enable hardware MII access"); + dev_err(&dev->edev.dev, "Failed to enable hardware MII access"); return ret; } @@ -243,7 +243,7 @@ static int asix_mdio_read(struct miiphy_device *mdev, uint8_t phy_id, (__u16)loc, 2, &res); asix_set_hw_mii(dev); - dev_dbg(dev->edev.dev, "asix_mdio_read() phy_id=0x%02x, loc=0x%02x, returns=0x%04x", + dev_dbg(&dev->edev.dev, "asix_mdio_read() phy_id=0x%02x, loc=0x%02x, returns=0x%04x", phy_id, loc, le16_to_cpu(res)); *val = le16_to_cpu(res); @@ -258,7 +258,7 @@ static int asix_mdio_write(struct miiphy_device *mdev, uint8_t phy_id, struct usbnet *dev = eth->priv; __le16 res = cpu_to_le16(val); - dev_dbg(dev->edev.dev, "asix_mdio_write() phy_id=0x%02x, loc=0x%02x, val=0x%04x", + dev_dbg(&dev->edev.dev, "asix_mdio_write() phy_id=0x%02x, loc=0x%02x, val=0x%04x", phy_id, loc, val); asix_set_sw_mii(dev); @@ -273,13 +273,13 @@ static inline int asix_get_phy_addr(struct usbnet *dev) u8 buf[2]; int ret = asix_read_cmd(dev, AX_CMD_READ_PHY_ID, 0, 0, 2, buf); - dev_dbg(dev->edev.dev, "asix_get_phy_addr()"); + dev_dbg(&dev->edev.dev, "asix_get_phy_addr()"); if (ret < 0) { - dev_err(dev->edev.dev, "Error reading PHYID register: %02x", ret); + dev_err(&dev->edev.dev, "Error reading PHYID register: %02x", ret); goto out; } - dev_dbg(dev->edev.dev, "asix_get_phy_addr() returning 0x%04x", *((__le16 *)buf)); + dev_dbg(&dev->edev.dev, "asix_get_phy_addr() returning 0x%04x", *((__le16 *)buf)); ret = buf[1]; out: @@ -292,7 +292,7 @@ static int asix_sw_reset(struct usbnet *dev, u8 flags) ret = asix_write_cmd(dev, AX_CMD_SW_RESET, flags, 0, 0, NULL); if (ret < 0) - dev_err(dev->edev.dev, "Failed to send software reset: %02x", ret); + dev_err(&dev->edev.dev, "Failed to send software reset: %02x", ret); return ret; } @@ -303,7 +303,7 @@ static u16 asix_read_rx_ctl(struct usbnet *dev) int ret = asix_read_cmd(dev, AX_CMD_READ_RX_CTL, 0, 0, 2, &v); if (ret < 0) { - dev_err(dev->edev.dev, "Error reading RX_CTL register: %02x", ret); + dev_err(&dev->edev.dev, "Error reading RX_CTL register: %02x", ret); goto out; } ret = le16_to_cpu(v); @@ -315,10 +315,10 @@ static int asix_write_rx_ctl(struct usbnet *dev, u16 mode) { int ret; - dev_dbg(dev->edev.dev, "asix_write_rx_ctl() - mode = 0x%04x", mode); + dev_dbg(&dev->edev.dev, "asix_write_rx_ctl() - mode = 0x%04x", mode); ret = asix_write_cmd(dev, AX_CMD_WRITE_RX_CTL, mode, 0, 0, NULL); if (ret < 0) - dev_err(dev->edev.dev, "Failed to write RX_CTL mode to 0x%04x: %02x", + dev_err(&dev->edev.dev, "Failed to write RX_CTL mode to 0x%04x: %02x", mode, ret); return ret; @@ -330,7 +330,7 @@ static u16 asix_read_medium_status(struct usbnet *dev) int ret = asix_read_cmd(dev, AX_CMD_READ_MEDIUM_STATUS, 0, 0, 2, &v); if (ret < 0) { - dev_err(dev->edev.dev, "Error reading Medium Status register: %02x", ret); + dev_err(&dev->edev.dev, "Error reading Medium Status register: %02x", ret); goto out; } ret = le16_to_cpu(v); @@ -342,10 +342,10 @@ static int asix_write_medium_mode(struct usbnet *dev, u16 mode) { int ret; - dev_dbg(dev->edev.dev, "asix_write_medium_mode() - mode = 0x%04x", mode); + dev_dbg(&dev->edev.dev, "asix_write_medium_mode() - mode = 0x%04x", mode); ret = asix_write_cmd(dev, AX_CMD_WRITE_MEDIUM_MODE, mode, 0, 0, NULL); if (ret < 0) - dev_err(dev->edev.dev, "Failed to write Medium Mode mode to 0x%04x: %02x", + dev_err(&dev->edev.dev, "Failed to write Medium Mode mode to 0x%04x: %02x", mode, ret); return ret; @@ -355,10 +355,10 @@ static int asix_write_gpio(struct usbnet *dev, u16 value, int sleep) { int ret; - dev_dbg(dev->edev.dev,"asix_write_gpio() - value = 0x%04x", value); + dev_dbg(&dev->edev.dev,"asix_write_gpio() - value = 0x%04x", value); ret = asix_write_cmd(dev, AX_CMD_WRITE_GPIOS, value, 0, 0, NULL); if (ret < 0) - dev_err(dev->edev.dev, "Failed to write GPIO value 0x%04x: %02x", + dev_err(&dev->edev.dev, "Failed to write GPIO value 0x%04x: %02x", value, ret); if (sleep) diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c index 903ad4a6c9..123cc3b30c 100644 --- a/drivers/net/usb/usbnet.c +++ b/drivers/net/usb/usbnet.c @@ -112,7 +112,7 @@ static int usbnet_send(struct eth_device *edev, void *eth_data, int data_length) tx_buffer[len++] = 0; ret = usb_bulk_msg(dev->udev, dev->out, tx_buffer, len, &alen, 1000); - dev_dbg(edev->dev, "%s: ret: %d len: %d alen: %d\n", __func__, ret, len, alen); + dev_dbg(&edev->dev, "%s: ret: %d len: %d alen: %d\n", __func__, ret, len, alen); return ret; } @@ -125,7 +125,7 @@ static int usbnet_recv(struct eth_device *edev) struct driver_info *info = dev->driver_info; int len, ret, alen = 0; - dev_dbg(edev->dev, "%s\n",__func__); + dev_dbg(&edev->dev, "%s\n",__func__); len = dev->rx_urb_size; @@ -149,14 +149,14 @@ static int usbnet_init(struct eth_device *edev) struct driver_info *info = dev->driver_info; int ret = 0; - dev_dbg(edev->dev, "%s\n",__func__); + dev_dbg(&edev->dev, "%s\n",__func__); /* put into "known safe" state */ if (info->reset) ret = info->reset(dev); if (ret) { - dev_info (edev->dev, "open reset fail (%d)", ret); + dev_info(&edev->dev, "open reset fail (%d)", ret); return ret; } @@ -169,7 +169,7 @@ static int usbnet_open(struct eth_device *edev) { struct usbnet *dev = (struct usbnet*)edev->priv; - dev_dbg(edev->dev, "%s\n",__func__); + dev_dbg(&edev->dev, "%s\n",__func__); if (miiphy_wait_aneg(&dev->miiphy)) return -1; @@ -181,7 +181,7 @@ static int usbnet_open(struct eth_device *edev) static void usbnet_halt(struct eth_device *edev) { - dev_dbg(edev->dev, "%s\n",__func__); + dev_dbg(&edev->dev, "%s\n",__func__); } int usbnet_probe(struct usb_device *usbdev, const struct usb_device_id *prod) @@ -191,7 +191,7 @@ int usbnet_probe(struct usb_device *usbdev, const struct usb_device_id *prod) struct driver_info *info; int status; - dev_dbg(edev->dev, "%s\n", __func__); + dev_dbg(&edev->dev, "%s\n", __func__); undev = xzalloc(sizeof (*undev)); @@ -206,10 +206,6 @@ int usbnet_probe(struct usb_device *usbdev, const struct usb_device_id *prod) edev->recv = usbnet_recv, edev->halt = usbnet_halt, edev->priv = undev; - edev->dev = &undev->dev; - - get_free_deviceid(edev->dev->id, "eth"); - sprintf(edev->dev->name, "%s", "usbnet"); info = (struct driver_info *)prod->driver_info; undev->driver_info = info; @@ -224,14 +220,11 @@ int usbnet_probe(struct usb_device *usbdev, const struct usb_device_id *prod) undev->rx_urb_size = 1514; /* FIXME: What to put here? */ undev->maxpacket = usb_maxpacket(undev->udev, undev->out); - /* FIXME: eth layer should have the device and register it */ - register_device(edev->dev); - eth_register(edev); return 0; out1: - dev_dbg(edev->dev, "err: %d\n", status); + dev_dbg(&edev->dev, "err: %d\n", status); return status; } @@ -242,7 +235,7 @@ void usbnet_disconnect(struct usb_device *usbdev) struct driver_info *info; eth_unregister(edev); - unregister_device(edev->dev); + unregister_device(&edev->dev); info = undev->driver_info; if (info->unbind) |