8390 : Replace ei_debug with msg_enable/NETIF_MSG_* feature
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / net / ethernet / 8390 / axnet_cs.c
index d801c14..5698a4c 100644 (file)
@@ -105,6 +105,7 @@ static void AX88190_init(struct net_device *dev, int startp);
 static int ax_open(struct net_device *dev);
 static int ax_close(struct net_device *dev);
 static irqreturn_t ax_interrupt(int irq, void *dev_id);
+static u32 axnet_msg_enable;
 
 /*====================================================================*/
 
@@ -152,6 +153,7 @@ static int axnet_probe(struct pcmcia_device *link)
        return -ENOMEM;
 
     ei_local = netdev_priv(dev);
+    ei_local->msg_enable = axnet_msg_enable;
     spin_lock_init(&ei_local->page_lock);
 
     info = PRIV(dev);
@@ -650,11 +652,12 @@ static void block_input(struct net_device *dev, int count,
                        struct sk_buff *skb, int ring_offset)
 {
     unsigned int nic_base = dev->base_addr;
+    struct ei_device *ei_local = netdev_priv(dev);
     int xfer_count = count;
     char *buf = skb->data;
 
-    if ((ei_debug > 4) && (count != 4))
-           pr_debug("%s: [bi=%d]\n", dev->name, count+4);
+    if ((netif_msg_rx_status(ei_local)) && (count != 4))
+       netdev_dbg(dev, "[bi=%d]\n", count+4);
     outb_p(ring_offset & 0xff, nic_base + EN0_RSARLO);
     outb_p(ring_offset >> 8, nic_base + EN0_RSARHI);
     outb_p(E8390_RREAD+E8390_START, nic_base + AXNET_CMD);
@@ -810,11 +813,6 @@ module_pcmcia_driver(axnet_cs_driver);
 #define ei_block_input (ei_local->block_input)
 #define ei_get_8390_hdr (ei_local->get_8390_hdr)
 
-/* use 0 for production, 1 for verification, >2 for debug */
-#ifndef ei_debug
-int ei_debug = 1;
-#endif
-
 /* Index to functions. */
 static void ei_tx_intr(struct net_device *dev);
 static void ei_tx_err(struct net_device *dev);
@@ -925,11 +923,10 @@ static void axnet_tx_timeout(struct net_device *dev)
        isr = inb(e8390_base+EN0_ISR);
        spin_unlock_irqrestore(&ei_local->page_lock, flags);
 
-       netdev_printk(KERN_DEBUG, dev,
-                     "Tx timed out, %s TSR=%#2x, ISR=%#2x, t=%d.\n",
-                     (txsr & ENTSR_ABT) ? "excess collisions." :
-                     (isr) ? "lost interrupt?" : "cable problem?",
-                     txsr, isr, tickssofar);
+       netdev_dbg(dev, "Tx timed out, %s TSR=%#2x, ISR=%#2x, t=%d.\n",
+                  (txsr & ENTSR_ABT) ? "excess collisions." :
+                  (isr) ? "lost interrupt?" : "cable problem?",
+                  txsr, isr, tickssofar);
 
        if (!isr && !dev->stats.tx_packets) 
        {
@@ -998,29 +995,30 @@ static netdev_tx_t axnet_start_xmit(struct sk_buff *skb,
        {
                output_page = ei_local->tx_start_page;
                ei_local->tx1 = send_length;
-               if (ei_debug  &&  ei_local->tx2 > 0)
-                       netdev_printk(KERN_DEBUG, dev,
-                                     "idle transmitter tx2=%d, lasttx=%d, txing=%d\n",
-                                     ei_local->tx2, ei_local->lasttx,
-                                     ei_local->txing);
+               if ((netif_msg_tx_queued(ei_local)) &&
+                   ei_local->tx2 > 0)
+                       netdev_dbg(dev,
+                                  "idle transmitter tx2=%d, lasttx=%d, txing=%d\n",
+                                  ei_local->tx2, ei_local->lasttx,
+                                  ei_local->txing);
        }
        else if (ei_local->tx2 == 0) 
        {
                output_page = ei_local->tx_start_page + TX_PAGES/2;
                ei_local->tx2 = send_length;
-               if (ei_debug  &&  ei_local->tx1 > 0)
-                       netdev_printk(KERN_DEBUG, dev,
-                                     "idle transmitter, tx1=%d, lasttx=%d, txing=%d\n",
-                                     ei_local->tx1, ei_local->lasttx,
-                                     ei_local->txing);
+               if ((netif_msg_tx_queued(ei_local)) &&
+                   ei_local->tx1 > 0)
+                       netdev_dbg(dev,
+                                  "idle transmitter, tx1=%d, lasttx=%d, txing=%d\n",
+                                  ei_local->tx1, ei_local->lasttx,
+                                  ei_local->txing);
        }
        else
        {       /* We should never get here. */
-               if (ei_debug)
-                       netdev_printk(KERN_DEBUG, dev,
-                                     "No Tx buffers free! tx1=%d tx2=%d last=%d\n",
-                                     ei_local->tx1, ei_local->tx2,
-                                     ei_local->lasttx);
+               netif_dbg(ei_local, tx_err, dev,
+                         "No Tx buffers free! tx1=%d tx2=%d last=%d\n",
+                         ei_local->tx1, ei_local->tx2,
+                         ei_local->lasttx);
                ei_local->irqlock = 0;
                netif_stop_queue(dev);
                outb_p(ENISR_ALL, e8390_base + EN0_IMR);
@@ -1124,10 +1122,9 @@ static irqreturn_t ax_interrupt(int irq, void *dev_id)
                spin_unlock_irqrestore(&ei_local->page_lock, flags);
                return IRQ_NONE;
        }
-    
-       if (ei_debug > 3)
-               netdev_printk(KERN_DEBUG, dev, "interrupt(isr=%#2.2x)\n",
-                             inb_p(e8390_base + EN0_ISR));
+
+       netif_dbg(ei_local, intr, dev, "interrupt(isr=%#2.2x)\n",
+                 inb_p(e8390_base + EN0_ISR));
 
        outb_p(0x00, e8390_base + EN0_ISR);
        ei_local->irqlock = 1;
@@ -1137,9 +1134,8 @@ static irqreturn_t ax_interrupt(int irq, void *dev_id)
               ++nr_serviced < MAX_SERVICE)
        {
                if (!netif_running(dev) || (interrupts == 0xff)) {
-                       if (ei_debug > 1)
-                               netdev_warn(dev,
-                                           "interrupt from stopped card\n");
+                       netif_warn(ei_local, intr, dev,
+                                  "interrupt from stopped card\n");
                        outb_p(interrupts, e8390_base + EN0_ISR);
                        interrupts = 0;
                        break;
@@ -1175,14 +1171,15 @@ static irqreturn_t ax_interrupt(int irq, void *dev_id)
                }
        }
     
-       if (interrupts && ei_debug > 3) 
+       if (interrupts && (netif_msg_intr(ei_local)))
        {
                handled = 1;
                if (nr_serviced >= MAX_SERVICE) 
                {
                        /* 0xFF is valid for a card removal */
-                       if(interrupts!=0xFF)
-                               netdev_warn(dev, "Too much work at interrupt, status %#2.2x\n",
+                       if (interrupts != 0xFF)
+                               netdev_warn(dev,
+                                           "Too much work at interrupt, status %#2.2x\n",
                                            interrupts);
                        outb_p(ENISR_ALL, e8390_base + EN0_ISR); /* Ack. most intrs. */
                } else {
@@ -1221,8 +1218,7 @@ static void ei_tx_err(struct net_device *dev)
        unsigned char tx_was_aborted = txsr & (ENTSR_ABT+ENTSR_FU);
 
 #ifdef VERBOSE_ERROR_DUMP
-       netdev_printk(KERN_DEBUG, dev,
-                     "transmitter error (%#2x):", txsr);
+       netdev_dbg(dev, "transmitter error (%#2x):", txsr);
        if (txsr & ENTSR_ABT)
                pr_cont(" excess-collisions");
        if (txsr & ENTSR_ND)
@@ -1287,9 +1283,9 @@ static void ei_tx_intr(struct net_device *dev)
        else if (ei_local->tx2 < 0) 
        {
                if (ei_local->lasttx != 2  &&  ei_local->lasttx != -2)
-                       netdev_info(dev, "%s: bogus last_tx_buffer %d, tx2=%d\n",
-                                   ei_local->name, ei_local->lasttx,
-                                   ei_local->tx2);
+                       netdev_err(dev, "%s: bogus last_tx_buffer %d, tx2=%d\n",
+                                  ei_local->name, ei_local->lasttx,
+                                  ei_local->tx2);
                ei_local->tx2 = 0;
                if (ei_local->tx1 > 0) 
                {
@@ -1366,9 +1362,11 @@ static void ei_receive(struct net_device *dev)
                   Keep quiet if it looks like a card removal. One problem here
                   is that some clones crash in roughly the same way.
                 */
-               if (ei_debug > 0  &&  this_frame != ei_local->current_page && (this_frame!=0x0 || rxing_page!=0xFF))
-                   netdev_err(dev, "mismatched read page pointers %2x vs %2x\n",
-                              this_frame, ei_local->current_page);
+               if ((netif_msg_rx_err(ei_local)) &&
+                   this_frame != ei_local->current_page &&
+                   (this_frame != 0x0 || rxing_page != 0xFF))
+                       netdev_err(dev, "mismatched read page pointers %2x vs %2x\n",
+                                  this_frame, ei_local->current_page);
                
                if (this_frame == rxing_page)   /* Read all the frames? */
                        break;                          /* Done for now */
@@ -1383,11 +1381,10 @@ static void ei_receive(struct net_device *dev)
                
                if (pkt_len < 60  ||  pkt_len > 1518) 
                {
-                       if (ei_debug)
-                               netdev_printk(KERN_DEBUG, dev,
-                                             "bogus packet size: %d, status=%#2x nxpg=%#2x\n",
-                                             rx_frame.count, rx_frame.status,
-                                             rx_frame.next);
+                       netif_err(ei_local, rx_err, dev,
+                                 "bogus packet size: %d, status=%#2x nxpg=%#2x\n",
+                                 rx_frame.count, rx_frame.status,
+                                 rx_frame.next);
                        dev->stats.rx_errors++;
                        dev->stats.rx_length_errors++;
                }
@@ -1398,10 +1395,9 @@ static void ei_receive(struct net_device *dev)
                        skb = netdev_alloc_skb(dev, pkt_len + 2);
                        if (skb == NULL) 
                        {
-                               if (ei_debug > 1)
-                                       netdev_printk(KERN_DEBUG, dev,
-                                                     "Couldn't allocate a sk_buff of size %d\n",
-                                                     pkt_len);
+                               netif_err(ei_local, rx_err, dev,
+                                         "Couldn't allocate a sk_buff of size %d\n",
+                                         pkt_len);
                                dev->stats.rx_dropped++;
                                break;
                        }
@@ -1420,11 +1416,10 @@ static void ei_receive(struct net_device *dev)
                } 
                else 
                {
-                       if (ei_debug)
-                               netdev_printk(KERN_DEBUG, dev,
-                                             "bogus packet: status=%#2x nxpg=%#2x size=%d\n",
-                                             rx_frame.status, rx_frame.next,
-                                             rx_frame.count);
+                       netif_err(ei_local, rx_err, dev,
+                                 "bogus packet: status=%#2x nxpg=%#2x size=%d\n",
+                                 rx_frame.status, rx_frame.next,
+                                 rx_frame.count);
                        dev->stats.rx_errors++;
                        /* NB: The NIC counts CRC, frame and missed errors. */
                        if (pkt_stat & ENRSR_FO)
@@ -1461,6 +1456,7 @@ static void ei_rx_overrun(struct net_device *dev)
        axnet_dev_t *info = PRIV(dev);
        long e8390_base = dev->base_addr;
        unsigned char was_txing, must_resend = 0;
+       struct ei_device *ei_local = netdev_priv(dev);
     
        /*
         * Record whether a Tx was in progress and then issue the
@@ -1468,9 +1464,8 @@ static void ei_rx_overrun(struct net_device *dev)
         */
        was_txing = inb_p(e8390_base+E8390_CMD) & E8390_TRANS;
        outb_p(E8390_NODMA+E8390_PAGE0+E8390_STOP, e8390_base+E8390_CMD);
-    
-       if (ei_debug > 1)
-               netdev_printk(KERN_DEBUG, dev, "Receiver overrun\n");
+
+       netif_dbg(ei_local, rx_err, dev, "Receiver overrun\n");
        dev->stats.rx_over_errors++;
     
        /*