static void sdhci_adma_show_error(struct sdhci_host *host)
 {
        void *desc = host->adma_table;
+       dma_addr_t dma = host->adma_addr;
 
        sdhci_dumpregs(host);
 
                struct sdhci_adma2_64_desc *dma_desc = desc;
 
                if (host->flags & SDHCI_USE_64_BIT_DMA)
-                       DBG("%p: DMA 0x%08x%08x, LEN 0x%04x, Attr=0x%02x\n",
-                           desc, le32_to_cpu(dma_desc->addr_hi),
+                       SDHCI_DUMP("%08llx: DMA 0x%08x%08x, LEN 0x%04x, Attr=0x%02x\n",
+                           (unsigned long long)dma,
+                           le32_to_cpu(dma_desc->addr_hi),
                            le32_to_cpu(dma_desc->addr_lo),
                            le16_to_cpu(dma_desc->len),
                            le16_to_cpu(dma_desc->cmd));
                else
-                       DBG("%p: DMA 0x%08x, LEN 0x%04x, Attr=0x%02x\n",
-                           desc, le32_to_cpu(dma_desc->addr_lo),
+                       SDHCI_DUMP("%08llx: DMA 0x%08x, LEN 0x%04x, Attr=0x%02x\n",
+                           (unsigned long long)dma,
+                           le32_to_cpu(dma_desc->addr_lo),
                            le16_to_cpu(dma_desc->len),
                            le16_to_cpu(dma_desc->cmd));
 
                desc += host->desc_sz;
+               dma += host->desc_sz;
 
                if (dma_desc->cmd & cpu_to_le16(ADMA2_END))
                        break;
                        != MMC_BUS_TEST_R)
                host->data->error = -EILSEQ;
        else if (intmask & SDHCI_INT_ADMA_ERROR) {
-               pr_err("%s: ADMA error\n", mmc_hostname(host->mmc));
+               pr_err("%s: ADMA error: 0x%08x\n", mmc_hostname(host->mmc),
+                      intmask);
                sdhci_adma_show_error(host);
                host->data->error = -EIO;
                if (host->ops->adma_workaround)