]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/ethernet/ethoc.c
Merge tag 'late-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[karo-tx-linux.git] / drivers / net / ethernet / ethoc.c
index 8db1c06008de16107ba5475580a696f04a5d745a..5722bc61fa582d0796a4ce37b2e8912c4840cc59 100644 (file)
@@ -206,7 +206,7 @@ struct ethoc {
        unsigned int num_rx;
        unsigned int cur_rx;
 
-       void** vma;
+       void **vma;
 
        struct net_device *netdev;
        struct napi_struct napi;
@@ -292,7 +292,7 @@ static int ethoc_init_ring(struct ethoc *dev, unsigned long mem_start)
 {
        struct ethoc_bd bd;
        int i;
-       voidvma;
+       void *vma;
 
        dev->cur_tx = 0;
        dev->dty_tx = 0;
@@ -447,8 +447,8 @@ static int ethoc_rx(struct net_device *dev, int limit)
                                netif_receive_skb(skb);
                        } else {
                                if (net_ratelimit())
-                                       dev_warn(&dev->dev, "low on memory - "
-                                                       "packet dropped\n");
+                                       dev_warn(&dev->dev,
+                                           "low on memory - packet dropped\n");
 
                                dev->stats.rx_dropped++;
                                break;
@@ -555,9 +555,8 @@ static irqreturn_t ethoc_interrupt(int irq, void *dev_id)
        pending = ethoc_read(priv, INT_SOURCE);
        pending &= mask;
 
-       if (unlikely(pending == 0)) {
+       if (unlikely(pending == 0))
                return IRQ_NONE;
-       }
 
        ethoc_ack_irq(priv, pending);
 
@@ -620,7 +619,7 @@ static int ethoc_mdio_read(struct mii_bus *bus, int phy, int reg)
        ethoc_write(priv, MIIADDRESS, MIIADDRESS_ADDR(phy, reg));
        ethoc_write(priv, MIICOMMAND, MIICOMMAND_READ);
 
-       for (i=0; i < 5; i++) {
+       for (i = 0; i < 5; i++) {
                u32 status = ethoc_read(priv, MIISTATUS);
                if (!(status & MIISTATUS_BUSY)) {
                        u32 data = ethoc_read(priv, MIIRX_DATA);
@@ -628,7 +627,7 @@ static int ethoc_mdio_read(struct mii_bus *bus, int phy, int reg)
                        ethoc_write(priv, MIICOMMAND, 0);
                        return data;
                }
-               usleep_range(100,200);
+               usleep_range(100, 200);
        }
 
        return -EBUSY;
@@ -643,14 +642,14 @@ static int ethoc_mdio_write(struct mii_bus *bus, int phy, int reg, u16 val)
        ethoc_write(priv, MIITX_DATA, val);
        ethoc_write(priv, MIICOMMAND, MIICOMMAND_WRITE);
 
-       for (i=0; i < 5; i++) {
+       for (i = 0; i < 5; i++) {
                u32 stat = ethoc_read(priv, MIISTATUS);
                if (!(stat & MIISTATUS_BUSY)) {
                        /* reset MII command register */
                        ethoc_write(priv, MIICOMMAND, 0);
                        return 0;
                }
-               usleep_range(100,200);
+               usleep_range(100, 200);
        }
 
        return -EBUSY;
@@ -671,19 +670,18 @@ static int ethoc_mdio_probe(struct net_device *dev)
        struct phy_device *phy;
        int err;
 
-       if (priv->phy_id != -1) {
+       if (priv->phy_id != -1)
                phy = priv->mdio->phy_map[priv->phy_id];
-       } else {
+       else
                phy = phy_find_first(priv->mdio);
-       }
 
        if (!phy) {
                dev_err(&dev->dev, "no PHY found\n");
                return -ENXIO;
        }
 
-       err = phy_connect_direct(dev, phy, ethoc_mdio_poll, 0,
-                       PHY_INTERFACE_MODE_GMII);
+       err = phy_connect_direct(dev, phy, ethoc_mdio_poll,
+                                PHY_INTERFACE_MODE_GMII);
        if (err) {
                dev_err(&dev->dev, "could not attach to PHY\n");
                return err;
@@ -771,21 +769,24 @@ static int ethoc_config(struct net_device *dev, struct ifmap *map)
        return -ENOSYS;
 }
 
-static int ethoc_set_mac_address(struct net_device *dev, void *addr)
+static void ethoc_do_set_mac_address(struct net_device *dev)
 {
        struct ethoc *priv = netdev_priv(dev);
-       u8 *mac = (u8 *)addr;
-
-       if (!is_valid_ether_addr(mac))
-               return -EADDRNOTAVAIL;
+       unsigned char *mac = dev->dev_addr;
 
        ethoc_write(priv, MAC_ADDR0, (mac[2] << 24) | (mac[3] << 16) |
                                     (mac[4] <<  8) | (mac[5] <<  0));
        ethoc_write(priv, MAC_ADDR1, (mac[0] <<  8) | (mac[1] <<  0));
+}
 
-       memcpy(dev->dev_addr, mac, ETH_ALEN);
-       dev->addr_assign_type &= ~NET_ADDR_RANDOM;
+static int ethoc_set_mac_address(struct net_device *dev, void *p)
+{
+       const struct sockaddr *addr = p;
 
+       if (!is_valid_ether_addr(addr->sa_data))
+               return -EADDRNOTAVAIL;
+       memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN);
+       ethoc_do_set_mac_address(dev);
        return 0;
 }
 
@@ -1022,7 +1023,7 @@ static int ethoc_probe(struct platform_device *pdev)
        dev_dbg(&pdev->dev, "ethoc: num_tx: %d num_rx: %d\n",
                priv->num_tx, priv->num_rx);
 
-       priv->vma = devm_kzalloc(&pdev->dev, num_bd*sizeof(void*), GFP_KERNEL);
+       priv->vma = devm_kzalloc(&pdev->dev, num_bd*sizeof(void *), GFP_KERNEL);
        if (!priv->vma) {
                ret = -ENOMEM;
                goto error;
@@ -1038,7 +1039,7 @@ static int ethoc_probe(struct platform_device *pdev)
 
 #ifdef CONFIG_OF
                {
-               const uint8_tmac;
+               const uint8_t *mac;
 
                mac = of_get_property(pdev->dev.of_node,
                                      "local-mac-address",
@@ -1050,25 +1051,23 @@ static int ethoc_probe(struct platform_device *pdev)
        }
 
        /* Check that the given MAC address is valid. If it isn't, read the
-        * current MAC from the controller. */
+        * current MAC from the controller.
+        */
        if (!is_valid_ether_addr(netdev->dev_addr))
                ethoc_get_mac_address(netdev, netdev->dev_addr);
 
        /* Check the MAC again for validity, if it still isn't choose and
-        * program a random one. */
+        * program a random one.
+        */
        if (!is_valid_ether_addr(netdev->dev_addr)) {
                eth_random_addr(netdev->dev_addr);
                random_mac = true;
        }
 
-       ret = ethoc_set_mac_address(netdev, netdev->dev_addr);
-       if (ret) {
-               dev_err(&netdev->dev, "failed to set MAC address\n");
-               goto error;
-       }
+       ethoc_do_set_mac_address(netdev);
 
        if (random_mac)
-               netdev->addr_assign_type |= NET_ADDR_RANDOM;
+               netdev->addr_assign_type = NET_ADDR_RANDOM;
 
        /* register MII bus */
        priv->mdio = mdiobus_alloc();