Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes
[pandora-kernel.git] / drivers / net / ibm_newemac / debug.c
index 86b756a..3995faf 100644 (file)
@@ -33,7 +33,7 @@ static void emac_desc_dump(struct emac_instance *p)
        int i;
        printk("** EMAC %s TX BDs **\n"
               " tx_cnt = %d tx_slot = %d ack_slot = %d\n",
-              p->ofdev->node->full_name,
+              p->ofdev->dev.of_node->full_name,
               p->tx_cnt, p->tx_slot, p->ack_slot);
        for (i = 0; i < NUM_TX_BUFF / 2; ++i)
                printk
@@ -49,7 +49,7 @@ static void emac_desc_dump(struct emac_instance *p)
        printk("** EMAC %s RX BDs **\n"
               " rx_slot = %d flags = 0x%lx rx_skb_size = %d rx_sync_size = %d\n"
               " rx_sg_skb = 0x%p\n",
-              p->ofdev->node->full_name,
+              p->ofdev->dev.of_node->full_name,
               p->rx_slot, p->commac.flags, p->rx_skb_size,
               p->rx_sync_size, p->rx_sg_skb);
        for (i = 0; i < NUM_RX_BUFF / 2; ++i)
@@ -67,29 +67,56 @@ static void emac_desc_dump(struct emac_instance *p)
 static void emac_mac_dump(struct emac_instance *dev)
 {
        struct emac_regs __iomem *p = dev->emacp;
+       const int xaht_regs = EMAC_XAHT_REGS(dev);
+       u32 *gaht_base = emac_gaht_base(dev);
+       u32 *iaht_base = emac_iaht_base(dev);
+       int emac4sync = emac_has_feature(dev, EMAC_FTR_EMAC4SYNC);
+       int n;
 
        printk("** EMAC %s registers **\n"
               "MR0 = 0x%08x MR1 = 0x%08x TMR0 = 0x%08x TMR1 = 0x%08x\n"
               "RMR = 0x%08x ISR = 0x%08x ISER = 0x%08x\n"
-              "IAR = %04x%08x VTPID = 0x%04x VTCI = 0x%04x\n"
-              "IAHT: 0x%04x 0x%04x 0x%04x 0x%04x "
-              "GAHT: 0x%04x 0x%04x 0x%04x 0x%04x\n"
-              "LSA = %04x%08x IPGVR = 0x%04x\n"
-              "STACR = 0x%08x TRTR = 0x%08x RWMR = 0x%08x\n"
-              "OCTX = 0x%08x OCRX = 0x%08x IPCR = 0x%08x\n",
-              dev->ofdev->node->full_name, in_be32(&p->mr0), in_be32(&p->mr1),
+              "IAR = %04x%08x VTPID = 0x%04x VTCI = 0x%04x\n",
+              dev->ofdev->dev.of_node->full_name,
+              in_be32(&p->mr0), in_be32(&p->mr1),
               in_be32(&p->tmr0), in_be32(&p->tmr1),
               in_be32(&p->rmr), in_be32(&p->isr), in_be32(&p->iser),
               in_be32(&p->iahr), in_be32(&p->ialr), in_be32(&p->vtpid),
-              in_be32(&p->vtci),
-              in_be32(&p->iaht1), in_be32(&p->iaht2), in_be32(&p->iaht3),
-              in_be32(&p->iaht4),
-              in_be32(&p->gaht1), in_be32(&p->gaht2), in_be32(&p->gaht3),
-              in_be32(&p->gaht4),
+              in_be32(&p->vtci)
+              );
+
+       if (emac4sync)
+               printk("MAR = %04x%08x MMAR = %04x%08x\n",
+                      in_be32(&p->u0.emac4sync.mahr),
+                      in_be32(&p->u0.emac4sync.malr),
+                      in_be32(&p->u0.emac4sync.mmahr),
+                      in_be32(&p->u0.emac4sync.mmalr)
+                      );
+
+       for (n = 0; n < xaht_regs; n++)
+               printk("IAHT%02d = 0x%08x\n", n + 1, in_be32(iaht_base + n));
+
+       for (n = 0; n < xaht_regs; n++)
+               printk("GAHT%02d = 0x%08x\n", n + 1, in_be32(gaht_base + n));
+
+       printk("LSA = %04x%08x IPGVR = 0x%04x\n"
+              "STACR = 0x%08x TRTR = 0x%08x RWMR = 0x%08x\n"
+              "OCTX = 0x%08x OCRX = 0x%08x\n",
               in_be32(&p->lsah), in_be32(&p->lsal), in_be32(&p->ipgvr),
               in_be32(&p->stacr), in_be32(&p->trtr), in_be32(&p->rwmr),
-              in_be32(&p->octx), in_be32(&p->ocrx), in_be32(&p->ipcr)
-           );
+              in_be32(&p->octx), in_be32(&p->ocrx)
+              );
+
+       if (!emac4sync) {
+               printk("IPCR = 0x%08x\n",
+                      in_be32(&p->u1.emac4.ipcr)
+                      );
+       } else {
+               printk("REVID = 0x%08x TPC = 0x%08x\n",
+                      in_be32(&p->u1.emac4sync.revid),
+                      in_be32(&p->u1.emac4sync.tpc)
+                      );
+       }
 
        emac_desc_dump(dev);
 }
@@ -102,7 +129,7 @@ static void emac_mal_dump(struct mal_instance *mal)
               "CFG = 0x%08x ESR = 0x%08x IER = 0x%08x\n"
               "TX|CASR = 0x%08x CARR = 0x%08x EOBISR = 0x%08x DEIR = 0x%08x\n"
               "RX|CASR = 0x%08x CARR = 0x%08x EOBISR = 0x%08x DEIR = 0x%08x\n",
-              mal->ofdev->node->full_name,
+              mal->ofdev->dev.of_node->full_name,
               get_mal_dcrn(mal, MAL_CFG), get_mal_dcrn(mal, MAL_ESR),
               get_mal_dcrn(mal, MAL_IER),
               get_mal_dcrn(mal, MAL_TXCASR), get_mal_dcrn(mal, MAL_TXCARR),