]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/net/tulip/dmfe.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit...
[net-next-2.6.git] / drivers / net / tulip / dmfe.c
index 6f44ebf58910261a2aa8ef2ae3c9ae56da2e4808..9568156dea982aa8058479774a2ad1e59c8c7846 100644 (file)
@@ -61,6 +61,8 @@
     Test and make sure PCI latency is now correct for all cases.
 */
 
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
 #define DRV_NAME       "dmfe"
 #define DRV_VERSION    "1.36.4"
 #define DRV_RELDATE    "2002-01-17"
@@ -72,7 +74,6 @@
 #include <linux/ptrace.h>
 #include <linux/errno.h>
 #include <linux/ioport.h>
-#include <linux/slab.h>
 #include <linux/interrupt.h>
 #include <linux/pci.h>
 #include <linux/dma-mapping.h>
 #define DMFE_TX_TIMEOUT ((3*HZ)/2)     /* tx packet time-out time 1.5 s" */
 #define DMFE_TX_KICK   (HZ/2)  /* tx packet Kick-out time 0.5 s" */
 
-#define DMFE_DBUG(dbug_now, msg, value) \
-       do { \
-               if (dmfe_debug || (dbug_now)) \
-                       printk(KERN_ERR DRV_NAME ": %s %lx\n",\
-                               (msg), (long) (value)); \
+#define DMFE_DBUG(dbug_now, msg, value)                        \
+       do {                                            \
+               if (dmfe_debug || (dbug_now))           \
+                       pr_err("%s %lx\n",              \
+                              (msg), (long) (value));  \
        } while (0)
 
-#define SHOW_MEDIA_TYPE(mode) \
-       printk (KERN_INFO DRV_NAME ": Change Speed to %sMhz %s duplex\n" , \
-               (mode & 1) ? "100":"10", (mode & 4) ? "full":"half");
+#define SHOW_MEDIA_TYPE(mode)                          \
+       pr_info("Change Speed to %sMhz %s duplex\n" ,   \
+               (mode & 1) ? "100":"10",                \
+               (mode & 4) ? "full":"half");
 
 
 /* CR9 definition: SROM/MII */
@@ -327,8 +329,8 @@ static void poll_dmfe (struct net_device *dev);
 static void dmfe_descriptor_init(struct dmfe_board_info *, unsigned long);
 static void allocate_rx_buffer(struct dmfe_board_info *);
 static void update_cr6(u32, unsigned long);
-static void send_filter_frame(struct DEVICE * ,int);
-static void dm9132_id_table(struct DEVICE * ,int);
+static void send_filter_frame(struct DEVICE *);
+static void dm9132_id_table(struct DEVICE *);
 static u16 phy_read(unsigned long, u8, u8, u32);
 static void phy_write(unsigned long, u8, u8, u16, u32);
 static void phy_write_1bit(unsigned long, u32);
@@ -391,8 +393,7 @@ static int __devinit dmfe_init_one (struct pci_dev *pdev,
                struct device_node *dp = pci_device_to_OF_node(pdev);
 
                if (dp && of_get_property(dp, "local-mac-address", NULL)) {
-                       printk(KERN_INFO DRV_NAME
-                              ": skipping on-board DM910x (use tulip)\n");
+                       pr_info("skipping on-board DM910x (use tulip)\n");
                        return -ENODEV;
                }
        }
@@ -405,8 +406,7 @@ static int __devinit dmfe_init_one (struct pci_dev *pdev,
        SET_NETDEV_DEV(dev, &pdev->dev);
 
        if (pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) {
-               printk(KERN_WARNING DRV_NAME
-                       ": 32-bit PCI DMA not available.\n");
+               pr_warning("32-bit PCI DMA not available\n");
                err = -ENODEV;
                goto err_out_free;
        }
@@ -417,13 +417,13 @@ static int __devinit dmfe_init_one (struct pci_dev *pdev,
                goto err_out_free;
 
        if (!pci_resource_start(pdev, 0)) {
-               printk(KERN_ERR DRV_NAME ": I/O base is zero\n");
+               pr_err("I/O base is zero\n");
                err = -ENODEV;
                goto err_out_disable;
        }
 
        if (pci_resource_len(pdev, 0) < (CHK_IO_SIZE(pdev)) ) {
-               printk(KERN_ERR DRV_NAME ": Allocated I/O size too small\n");
+               pr_err("Allocated I/O size too small\n");
                err = -ENODEV;
                goto err_out_disable;
        }
@@ -438,7 +438,7 @@ static int __devinit dmfe_init_one (struct pci_dev *pdev,
 #endif
 
        if (pci_request_regions(pdev, DRV_NAME)) {
-               printk(KERN_ERR DRV_NAME ": Failed to request PCI regions\n");
+               pr_err("Failed to request PCI regions\n");
                err = -ENODEV;
                goto err_out_disable;
        }
@@ -497,12 +497,9 @@ static int __devinit dmfe_init_one (struct pci_dev *pdev,
        if (err)
                goto err_out_free_buf;
 
-       printk(KERN_INFO "%s: Davicom DM%04lx at pci%s, %pM, irq %d.\n",
-              dev->name,
-              ent->driver_data >> 16,
-              pci_name(pdev),
-              dev->dev_addr,
-              dev->irq);
+       dev_info(&dev->dev, "Davicom DM%04lx at pci%s, %pM, irq %d\n",
+                ent->driver_data >> 16,
+                pci_name(pdev), dev->dev_addr, dev->irq);
 
        pci_set_master(pdev);
 
@@ -660,9 +657,9 @@ static void dmfe_init_dm910x(struct DEVICE *dev)
 
        /* Send setup frame */
        if (db->chip_id == PCI_DM9132_ID)
-               dm9132_id_table(dev, dev->mc_count);    /* DM9132 */
+               dm9132_id_table(dev);   /* DM9132 */
        else
-               send_filter_frame(dev, dev->mc_count);  /* DM9102/DM9102A */
+               send_filter_frame(dev); /* DM9102/DM9102A */
 
        /* Init CR7, interrupt active bit */
        db->cr7_data = CR7_DEFAULT;
@@ -696,7 +693,7 @@ static netdev_tx_t dmfe_start_xmit(struct sk_buff *skb,
 
        /* Too large packet check */
        if (skb->len > MAX_PACKET_SIZE) {
-               printk(KERN_ERR DRV_NAME ": big packet = %d\n", (u16)skb->len);
+               pr_err("big packet = %d\n", (u16)skb->len);
                dev_kfree_skb(skb);
                return NETDEV_TX_OK;
        }
@@ -706,8 +703,7 @@ static netdev_tx_t dmfe_start_xmit(struct sk_buff *skb,
        /* No Tx resource check, it never happen nromally */
        if (db->tx_queue_cnt >= TX_FREE_DESC_CNT) {
                spin_unlock_irqrestore(&db->lock, flags);
-               printk(KERN_ERR DRV_NAME ": No Tx resource %ld\n",
-                      db->tx_queue_cnt);
+               pr_err("No Tx resource %ld\n", db->tx_queue_cnt);
                return NETDEV_TX_BUSY;
        }
 
@@ -779,12 +775,11 @@ static int dmfe_stop(struct DEVICE *dev)
 
 #if 0
        /* show statistic counter */
-       printk(DRV_NAME ": FU:%lx EC:%lx LC:%lx NC:%lx"
-               " LOC:%lx TXJT:%lx RESET:%lx RCR8:%lx FAL:%lx TT:%lx\n",
-               db->tx_fifo_underrun, db->tx_excessive_collision,
-               db->tx_late_collision, db->tx_no_carrier, db->tx_loss_carrier,
-               db->tx_jabber_timeout, db->reset_count, db->reset_cr8,
-               db->reset_fatal, db->reset_TXtimeout);
+       printk("FU:%lx EC:%lx LC:%lx NC:%lx LOC:%lx TXJT:%lx RESET:%lx RCR8:%lx FAL:%lx TT:%lx\n",
+              db->tx_fifo_underrun, db->tx_excessive_collision,
+              db->tx_late_collision, db->tx_no_carrier, db->tx_loss_carrier,
+              db->tx_jabber_timeout, db->reset_count, db->reset_cr8,
+              db->reset_fatal, db->reset_TXtimeout);
 #endif
 
        return 0;
@@ -885,7 +880,7 @@ static void dmfe_free_tx_pkt(struct DEVICE *dev, struct dmfe_board_info * db)
        txptr = db->tx_remove_ptr;
        while(db->tx_packet_cnt) {
                tdes0 = le32_to_cpu(txptr->tdes0);
-               /* printk(DRV_NAME ": tdes0=%x\n", tdes0); */
+               pr_debug("tdes0=%x\n", tdes0);
                if (tdes0 & 0x80000000)
                        break;
 
@@ -895,7 +890,7 @@ static void dmfe_free_tx_pkt(struct DEVICE *dev, struct dmfe_board_info * db)
 
                /* Transmit statistic counter */
                if ( tdes0 != 0x7fffffff ) {
-                       /* printk(DRV_NAME ": tdes0=%x\n", tdes0); */
+                       pr_debug("tdes0=%x\n", tdes0);
                        dev->stats.collisions += (tdes0 >> 3) & 0xf;
                        dev->stats.tx_bytes += le32_to_cpu(txptr->tdes1) & 0x7ff;
                        if (tdes0 & TDES0_ERR_MASK) {
@@ -992,7 +987,7 @@ static void dmfe_rx_packet(struct DEVICE *dev, struct dmfe_board_info * db)
                        /* error summary bit check */
                        if (rdes0 & 0x8000) {
                                /* This is a error packet */
-                               //printk(DRV_NAME ": rdes0: %lx\n", rdes0);
+                               pr_debug("rdes0: %x\n", rdes0);
                                dev->stats.rx_errors++;
                                if (rdes0 & 1)
                                        dev->stats.rx_fifo_errors++;
@@ -1056,6 +1051,7 @@ static void dmfe_set_filter_mode(struct DEVICE * dev)
 {
        struct dmfe_board_info *db = netdev_priv(dev);
        unsigned long flags;
+       int mc_count = netdev_mc_count(dev);
 
        DMFE_DBUG(0, "dmfe_set_filter_mode()", 0);
        spin_lock_irqsave(&db->lock, flags);
@@ -1068,19 +1064,19 @@ static void dmfe_set_filter_mode(struct DEVICE * dev)
                return;
        }
 
-       if (dev->flags & IFF_ALLMULTI || dev->mc_count > DMFE_MAX_MULTICAST) {
-               DMFE_DBUG(0, "Pass all multicast address", dev->mc_count);
+       if (dev->flags & IFF_ALLMULTI || mc_count > DMFE_MAX_MULTICAST) {
+               DMFE_DBUG(0, "Pass all multicast address", mc_count);
                db->cr6_data &= ~(CR6_PM | CR6_PBF);
                db->cr6_data |= CR6_PAM;
                spin_unlock_irqrestore(&db->lock, flags);
                return;
        }
 
-       DMFE_DBUG(0, "Set multicast address", dev->mc_count);
+       DMFE_DBUG(0, "Set multicast address", mc_count);
        if (db->chip_id == PCI_DM9132_ID)
-               dm9132_id_table(dev, dev->mc_count);    /* DM9132 */
+               dm9132_id_table(dev);   /* DM9132 */
        else
-               send_filter_frame(dev, dev->mc_count);  /* DM9102/DM9102A */
+               send_filter_frame(dev); /* DM9102/DM9102A */
        spin_unlock_irqrestore(&db->lock, flags);
 }
 
@@ -1191,8 +1187,7 @@ static void dmfe_timer(unsigned long data)
                if ( time_after(jiffies, dev->trans_start + DMFE_TX_TIMEOUT) ) {
                        db->reset_TXtimeout++;
                        db->wait_reset = 1;
-                       printk(KERN_WARNING "%s: Tx timeout - resetting\n",
-                              dev->name);
+                       dev_warn(&dev->dev, "Tx timeout - resetting\n");
                }
        }
 
@@ -1456,7 +1451,7 @@ static void update_cr6(u32 cr6_data, unsigned long ioaddr)
  *     This setup frame initilize DM910X address filter mode
 */
 
-static void dm9132_id_table(struct DEVICE *dev, int mc_cnt)
+static void dm9132_id_table(struct DEVICE *dev)
 {
        struct dev_mc_list *mcptr;
        u16 * addrptr;
@@ -1476,15 +1471,14 @@ static void dm9132_id_table(struct DEVICE *dev, int mc_cnt)
        ioaddr += 4;
 
        /* Clear Hash Table */
-       for (i = 0; i < 4; i++)
-               hash_table[i] = 0x0;
+       memset(hash_table, 0, sizeof(hash_table));
 
        /* broadcast address */
        hash_table[3] = 0x8000;
 
        /* the multicast address in Hash Table : 64 bits */
-       for (mcptr = dev->mc_list, i = 0; i < mc_cnt; i++, mcptr = mcptr->next) {
-               hash_val = cal_CRC( (char *) mcptr->dmi_addr, 6, 0) & 0x3f;
+       netdev_for_each_mc_addr(mcptr, dev) {
+               hash_val = cal_CRC((char *) mcptr->dmi_addr, 6, 0) & 0x3f;
                hash_table[hash_val / 16] |= (u16) 1 << (hash_val % 16);
        }
 
@@ -1499,7 +1493,7 @@ static void dm9132_id_table(struct DEVICE *dev, int mc_cnt)
  *     This setup frame initilize DM910X address filter mode
  */
 
-static void send_filter_frame(struct DEVICE *dev, int mc_cnt)
+static void send_filter_frame(struct DEVICE *dev)
 {
        struct dmfe_board_info *db = netdev_priv(dev);
        struct dev_mc_list *mcptr;
@@ -1525,14 +1519,14 @@ static void send_filter_frame(struct DEVICE *dev, int mc_cnt)
        *suptr++ = 0xffff;
 
        /* fit the multicast address */
-       for (mcptr = dev->mc_list, i = 0; i < mc_cnt; i++, mcptr = mcptr->next) {
+       netdev_for_each_mc_addr(mcptr, dev) {
                addrptr = (u16 *) mcptr->dmi_addr;
                *suptr++ = addrptr[0];
                *suptr++ = addrptr[1];
                *suptr++ = addrptr[2];
        }
 
-       for (; i<14; i++) {
+       for (i = netdev_mc_count(dev); i < 14; i++) {
                *suptr++ = 0xffff;
                *suptr++ = 0xffff;
                *suptr++ = 0xffff;
@@ -1646,7 +1640,7 @@ static u8 dmfe_sense_speed(struct dmfe_board_info * db)
                else                            /* DM9102/DM9102A */
                        phy_mode = phy_read(db->ioaddr,
                                    db->phy_addr, 17, db->chip_id) & 0xf000;
-               /* printk(DRV_NAME ": Phy_mode %x ",phy_mode); */
+               pr_debug("Phy_mode %x\n", phy_mode);
                switch (phy_mode) {
                case 0x1000: db->op_mode = DMFE_10MHF; break;
                case 0x2000: db->op_mode = DMFE_10MFD; break;
@@ -2089,7 +2083,7 @@ static void dmfe_HPNA_remote_cmd_chk(struct dmfe_board_info * db)
 
 
 
-static struct pci_device_id dmfe_pci_tbl[] = {
+static DEFINE_PCI_DEVICE_TABLE(dmfe_pci_tbl) = {
        { 0x1282, 0x9132, PCI_ANY_ID, PCI_ANY_ID, 0, 0, PCI_DM9132_ID },
        { 0x1282, 0x9102, PCI_ANY_ID, PCI_ANY_ID, 0, 0, PCI_DM9102_ID },
        { 0x1282, 0x9100, PCI_ANY_ID, PCI_ANY_ID, 0, 0, PCI_DM9100_ID },