diff options
-rw-r--r-- | drivers/net/sh_eth.c | 53 |
1 files changed, 21 insertions, 32 deletions
diff --git a/drivers/net/sh_eth.c b/drivers/net/sh_eth.c index 5a5c6bc39e..6f48e93ab5 100644 --- a/drivers/net/sh_eth.c +++ b/drivers/net/sh_eth.c @@ -63,8 +63,8 @@ static int sh_eth_send_common(struct sh_eth_dev *eth, void *packet, int len) { - int port = eth->port, ret = 0, timeout; - struct sh_eth_info *port_info = ð->port_info[port]; + int ret = 0, timeout; + struct sh_eth_info *port_info = ð->port_info[eth->port]; if (!packet || len > 0xffff) { printf(SHETHER_NAME ": %s: Invalid argument\n", __func__); @@ -120,8 +120,7 @@ err: static int sh_eth_recv_start(struct sh_eth_dev *eth) { - int port = eth->port, len = 0; - struct sh_eth_info *port_info = ð->port_info[port]; + struct sh_eth_info *port_info = ð->port_info[eth->port]; /* Check if the rx descriptor is ready */ invalidate_cache(port_info->rx_desc_cur, sizeof(struct rx_desc_s)); @@ -132,9 +131,7 @@ static int sh_eth_recv_start(struct sh_eth_dev *eth) if (port_info->rx_desc_cur->rd0 & RD_RFE) return -EINVAL; - len = port_info->rx_desc_cur->rd1 & 0xffff; - - return len; + return port_info->rx_desc_cur->rd1 & 0xffff; } static void sh_eth_recv_finish(struct sh_eth_dev *eth) @@ -182,7 +179,7 @@ static int sh_eth_reset(struct sh_eth_dev *eth) return ret; #else sh_eth_write(port_info, sh_eth_read(port_info, EDMR) | EDMR_SRST, EDMR); - udelay(3000); + mdelay(3); sh_eth_write(port_info, sh_eth_read(port_info, EDMR) & ~EDMR_SRST, EDMR); @@ -192,9 +189,9 @@ static int sh_eth_reset(struct sh_eth_dev *eth) static int sh_eth_tx_desc_init(struct sh_eth_dev *eth) { - int port = eth->port, i, ret = 0; + int i, ret = 0; u32 alloc_desc_size = NUM_TX_DESC * sizeof(struct tx_desc_s); - struct sh_eth_info *port_info = ð->port_info[port]; + struct sh_eth_info *port_info = ð->port_info[eth->port]; struct tx_desc_s *cur_tx_desc; /* @@ -245,9 +242,9 @@ err: static int sh_eth_rx_desc_init(struct sh_eth_dev *eth) { - int port = eth->port, i, ret = 0; + int i, ret = 0; u32 alloc_desc_size = NUM_RX_DESC * sizeof(struct rx_desc_s); - struct sh_eth_info *port_info = ð->port_info[port]; + struct sh_eth_info *port_info = ð->port_info[eth->port]; struct rx_desc_s *cur_rx_desc; u8 *rx_buf; @@ -318,8 +315,7 @@ err: static void sh_eth_tx_desc_free(struct sh_eth_dev *eth) { - int port = eth->port; - struct sh_eth_info *port_info = ð->port_info[port]; + struct sh_eth_info *port_info = ð->port_info[eth->port]; if (port_info->tx_desc_alloc) { free(port_info->tx_desc_alloc); @@ -329,8 +325,7 @@ static void sh_eth_tx_desc_free(struct sh_eth_dev *eth) static void sh_eth_rx_desc_free(struct sh_eth_dev *eth) { - int port = eth->port; - struct sh_eth_info *port_info = ð->port_info[port]; + struct sh_eth_info *port_info = ð->port_info[eth->port]; if (port_info->rx_desc_alloc) { free(port_info->rx_desc_alloc); @@ -522,8 +517,8 @@ static int sh_eth_start_common(struct sh_eth_dev *eth) #ifndef CONFIG_DM_ETH static int sh_eth_phy_config_legacy(struct sh_eth_dev *eth) { - int port = eth->port, ret = 0; - struct sh_eth_info *port_info = ð->port_info[port]; + int ret = 0; + struct sh_eth_info *port_info = ð->port_info[eth->port]; struct eth_device *dev = port_info->dev; struct phy_device *phydev; @@ -545,8 +540,8 @@ static int sh_eth_send_legacy(struct eth_device *dev, void *packet, int len) static int sh_eth_recv_common(struct sh_eth_dev *eth) { - int port = eth->port, len = 0; - struct sh_eth_info *port_info = ð->port_info[port]; + int len = 0; + struct sh_eth_info *port_info = ð->port_info[eth->port]; uchar *packet = (uchar *)ADDR_TO_P2(port_info->rx_desc_cur->rd2); len = sh_eth_recv_start(eth); @@ -680,7 +675,7 @@ struct sh_ether_priv { struct sh_eth_dev shdev; struct mii_dev *bus; - void __iomem *iobase; + phys_addr_t iobase; struct clk clk; struct gpio_desc reset_gpio; }; @@ -750,8 +745,8 @@ static int sh_eth_phy_config(struct udevice *dev) struct sh_ether_priv *priv = dev_get_priv(dev); struct eth_pdata *pdata = dev_get_platdata(dev); struct sh_eth_dev *eth = &priv->shdev; - int port = eth->port, ret = 0; - struct sh_eth_info *port_info = ð->port_info[port]; + int ret = 0; + struct sh_eth_info *port_info = ð->port_info[eth->port]; struct phy_device *phydev; int mask = 0xffffffff; @@ -816,15 +811,13 @@ static int sh_ether_probe(struct udevice *udev) struct sh_ether_priv *priv = dev_get_priv(udev); struct sh_eth_dev *eth = &priv->shdev; struct mii_dev *mdiodev; - void __iomem *iobase; int ret; - iobase = map_physmem(pdata->iobase, 0x1000, MAP_NOCACHE); - priv->iobase = iobase; + priv->iobase = pdata->iobase; ret = clk_get_by_index(udev, 0, &priv->clk); if (ret < 0) - goto err_mdio_alloc; + return ret; gpio_request_by_name(udev, "reset-gpios", 0, &priv->reset_gpio, GPIOD_IS_OUT); @@ -832,7 +825,7 @@ static int sh_ether_probe(struct udevice *udev) mdiodev = mdio_alloc(); if (!mdiodev) { ret = -ENOMEM; - goto err_mdio_alloc; + return ret; } mdiodev->read = bb_miiphy_read; @@ -855,8 +848,6 @@ static int sh_ether_probe(struct udevice *udev) err_mdio_register: mdio_free(mdiodev); -err_mdio_alloc: - unmap_physmem(priv->iobase, MAP_NOCACHE); return ret; } @@ -873,8 +864,6 @@ static int sh_ether_remove(struct udevice *udev) if (dm_gpio_is_valid(&priv->reset_gpio)) dm_gpio_free(udev, &priv->reset_gpio); - unmap_physmem(priv->iobase, MAP_NOCACHE); - return 0; } |