]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/net/ethernet/ethoc.c
Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
[karo-tx-linux.git] / drivers / net / ethernet / ethoc.c
index 45abc81f6f55efe7644897ea36fa3cd9dfa40e4c..23d82748f52b9aa19ecd17226444f3326dfaaed4 100644 (file)
@@ -180,8 +180,6 @@ MODULE_PARM_DESC(buffer_size, "DMA buffer allocation size");
  * struct ethoc - driver-private device structure
  * @iobase:    pointer to I/O memory region
  * @membase:   pointer to buffer memory region
- * @dma_alloc: dma allocated buffer size
- * @io_region_size:    I/O memory region size
  * @num_bd:    number of buffer descriptors
  * @num_tx:    number of send buffers
  * @cur_tx:    last send buffer written
@@ -199,8 +197,6 @@ MODULE_PARM_DESC(buffer_size, "DMA buffer allocation size");
 struct ethoc {
        void __iomem *iobase;
        void __iomem *membase;
-       int dma_alloc;
-       resource_size_t io_region_size;
        bool big_endian;
 
        unsigned int num_bd;
@@ -618,7 +614,7 @@ static int ethoc_poll(struct napi_struct *napi, int budget)
        tx_work_done = ethoc_tx(priv->netdev, budget);
 
        if (rx_work_done < budget && tx_work_done < budget) {
-               napi_complete(napi);
+               napi_complete_done(napi, rx_work_done);
                ethoc_enable_irq(priv, INT_MASK_TX | INT_MASK_RX);
        }
 
@@ -999,7 +995,7 @@ static int ethoc_set_ringparam(struct net_device *dev,
        return 0;
 }
 
-const struct ethtool_ops ethoc_ethtool_ops = {
+static const struct ethtool_ops ethoc_ethtool_ops = {
        .get_regs_len = ethoc_get_regs_len,
        .get_regs = ethoc_get_regs,
        .nway_reset = phy_ethtool_nway_reset,
@@ -1035,7 +1031,6 @@ static int ethoc_probe(struct platform_device *pdev)
        struct ethoc *priv = NULL;
        int num_bd;
        int ret = 0;
-       bool random_mac = false;
        struct ethoc_platform_data *pdata = dev_get_platdata(&pdev->dev);
        u32 eth_clkfreq = pdata ? pdata->eth_clkfreq : 0;
 
@@ -1096,8 +1091,6 @@ static int ethoc_probe(struct platform_device *pdev)
        /* setup driver-private data */
        priv = netdev_priv(netdev);
        priv->netdev = netdev;
-       priv->dma_alloc = 0;
-       priv->io_region_size = resource_size(mmio);
 
        priv->iobase = devm_ioremap_nocache(&pdev->dev, netdev->base_addr,
                        resource_size(mmio));
@@ -1127,7 +1120,6 @@ static int ethoc_probe(struct platform_device *pdev)
                        goto free;
                }
                netdev->mem_end = netdev->mem_start + buffer_size;
-               priv->dma_alloc = buffer_size;
        }
 
        priv->big_endian = pdata ? pdata->big_endian :
@@ -1176,16 +1168,11 @@ static int ethoc_probe(struct platform_device *pdev)
        /* Check the MAC again for validity, if it still isn't choose and
         * program a random one.
         */
-       if (!is_valid_ether_addr(netdev->dev_addr)) {
-               eth_random_addr(netdev->dev_addr);
-               random_mac = true;
-       }
+       if (!is_valid_ether_addr(netdev->dev_addr))
+               eth_hw_addr_random(netdev);
 
        ethoc_do_set_mac_address(netdev);
 
-       if (random_mac)
-               netdev->addr_assign_type = NET_ADDR_RANDOM;
-
        /* Allow the platform setup code to adjust MII management bus clock. */
        if (!eth_clkfreq) {
                struct clk *clk = devm_clk_get(&pdev->dev, NULL);