mmc: dw_mmc: Support SDIO interrupts for all slots
[linux-2.6.git] / drivers / mmc / host / dw_mmc.h
index 23c662a..bfa3c1c 100644 (file)
@@ -82,7 +82,7 @@
 #define SDMMC_CTYPE_4BIT               BIT(0)
 #define SDMMC_CTYPE_1BIT               0
 /* Interrupt status & mask register defines */
-#define SDMMC_INT_SDIO                 BIT(16)
+#define SDMMC_INT_SDIO(n)              BIT(16 + (n))
 #define SDMMC_INT_EBE                  BIT(15)
 #define SDMMC_INT_ACD                  BIT(14)
 #define SDMMC_INT_SBE                  BIT(13)
 #define SDMMC_CMD_INDX(n)              ((n) & 0x1F)
 /* Status register defines */
 #define SDMMC_GET_FCNT(x)              (((x)>>17) & 0x1FF)
-#define SDMMC_FIFO_SZ                  32
 /* Internal DMAC interrupt defines */
 #define SDMMC_IDMAC_INT_AI             BIT(9)
 #define SDMMC_IDMAC_INT_NI             BIT(8)
 
 /* Register access macros */
 #define mci_readl(dev, reg)                    \
-       __raw_readl(dev->regs + SDMMC_##reg)
+       __raw_readl((dev)->regs + SDMMC_##reg)
 #define mci_writel(dev, reg, value)                    \
-       __raw_writel((value), dev->regs + SDMMC_##reg)
+       __raw_writel((value), (dev)->regs + SDMMC_##reg)
 
 /* 16-bit FIFO access macros */
 #define mci_readw(dev, reg)                    \
-       __raw_readw(dev->regs + SDMMC_##reg)
+       __raw_readw((dev)->regs + SDMMC_##reg)
 #define mci_writew(dev, reg, value)                    \
-       __raw_writew((value), dev->regs + SDMMC_##reg)
+       __raw_writew((value), (dev)->regs + SDMMC_##reg)
 
 /* 64-bit FIFO access macros */
 #ifdef readq
 #define mci_readq(dev, reg)                    \
-       __raw_readq(dev->regs + SDMMC_##reg)
+       __raw_readq((dev)->regs + SDMMC_##reg)
 #define mci_writeq(dev, reg, value)                    \
-       __raw_writeq((value), dev->regs + SDMMC_##reg)
+       __raw_writeq((value), (dev)->regs + SDMMC_##reg)
 #else
 /*
  * Dummy readq implementation for architectures that don't define it.
  * rest of the code free from ifdefs.
  */
 #define mci_readq(dev, reg)                    \
-       (*(volatile u64 __force *)(dev->regs + SDMMC_##reg))
+       (*(volatile u64 __force *)((dev)->regs + SDMMC_##reg))
 #define mci_writeq(dev, reg, value)                    \
-       (*(volatile u64 __force *)(dev->regs + SDMMC_##reg) = value)
+       (*(volatile u64 __force *)((dev)->regs + SDMMC_##reg) = (value))
 #endif
 
 #endif /* _DW_MMC_H_ */