Names from Linux driver

Signed-off-by: Ian Campbell <[email protected]>
---
 arch/arm/include/asm/arch-sunxi/mmc.h | 35 +++++++++++++++++++++++++++++++++++
 drivers/mmc/sunxi_mmc.c               | 19 +++++++++++--------
 2 files changed, 46 insertions(+), 8 deletions(-)

diff --git a/arch/arm/include/asm/arch-sunxi/mmc.h 
b/arch/arm/include/asm/arch-sunxi/mmc.h
index 6385bc9..10bf214 100644
--- a/arch/arm/include/asm/arch-sunxi/mmc.h
+++ b/arch/arm/include/asm/arch-sunxi/mmc.h
@@ -70,6 +70,41 @@ struct sunxi_mmc {
 #define SUNXI_MMC_CMD_UPCLK_ONLY       (0x1 << 21)
 #define SUNXI_MMC_CMD_START            (0x1 << 31)
 
+#define SUNXI_MMC_RINT_RESP_ERROR              (0x1 << 1)
+#define SUNXI_MMC_RINT_COMMAND_DONE            (0x1 << 2)
+#define SUNXI_MMC_RINT_DATA_OVER               (0x1 << 3)
+#define SUNXI_MMC_RINT_TX_DATA_REQUEST         (0x1 << 4)
+#define SUNXI_MMC_RINT_RX_DATA_REQUEST         (0x1 << 5)
+#define SUNXI_MMC_RINT_RESP_CRC_ERROR          (0x1 << 6)
+#define SUNXI_MMC_RINT_DATA_CRC_ERROR          (0x1 << 7)
+#define SUNXI_MMC_RINT_RESP_TIMEOUT            (0x1 << 8)
+#define SUNXI_MMC_RINT_DATA_TIMEOUT            (0x1 << 9)
+#define SUNXI_MMC_RINT_VOLTAGE_CHANGE_DONE     (0x1 << 10)
+#define SUNXI_MMC_RINT_FIFO_RUN_ERROR          (0x1 << 11)
+#define SUNXI_MMC_RINT_HARD_WARE_LOCKED                (0x1 << 12)
+#define SUNXI_MMC_RINT_START_BIT_ERROR         (0x1 << 13)
+#define SUNXI_MMC_RINT_AUTO_COMMAND_DONE       (0x1 << 14)
+#define SUNXI_MMC_RINT_END_BIT_ERROR           (0x1 << 15)
+#define SUNXI_MMC_RINT_SDIO_INTERRUPT          (0x1 << 16)
+#define SUNXI_MMC_RINT_CARD_INSERT             (0x1 << 30)
+#define SUNXI_MMC_RINT_CARD_REMOVE             (0x1 << 31)
+#define SUNXI_MMC_RINT_INTERRUPT_ERROR_BIT      \
+       (SUNXI_MMC_RINT_RESP_ERROR |            \
+        SUNXI_MMC_RINT_RESP_CRC_ERROR |        \
+        SUNXI_MMC_RINT_DATA_CRC_ERROR |        \
+        SUNXI_MMC_RINT_RESP_TIMEOUT |          \
+        SUNXI_MMC_RINT_DATA_TIMEOUT |          \
+        SUNXI_MMC_RINT_VOLTAGE_CHANGE_DONE |   \
+        SUNXI_MMC_RINT_FIFO_RUN_ERROR |        \
+        SUNXI_MMC_RINT_HARD_WARE_LOCKED |      \
+        SUNXI_MMC_RINT_START_BIT_ERROR |       \
+        SUNXI_MMC_RINT_END_BIT_ERROR) /* 0xbfc2 */
+#define SUNXI_MMC_RINT_INTERRUPT_DONE_BIT      \
+       (SUNXI_MMC_RINT_AUTO_COMMAND_DONE |     \
+        SUNXI_MMC_RINT_DATA_OVER |             \
+        SUNXI_MMC_RINT_COMMAND_DONE |          \
+        SUNXI_MMC_RINT_VOLTAGE_CHANGE_DONE)
+
 #define SUNXI_MMC_IDMAC_RESET          (0x1 << 0)
 #define SUNXI_MMC_IDMAC_FIXBURST       (0x1 << 1)
 #define SUNXI_MMC_IDMAC_ENABLE         (0x1 << 7)
diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c
index d520599..e67b3ce 100644
--- a/drivers/mmc/sunxi_mmc.c
+++ b/drivers/mmc/sunxi_mmc.c
@@ -505,7 +505,8 @@ static int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd 
*cmd,
                        ret = mmc_trans_data_by_cpu(mmc, data);
                }
                if (ret) {
-                       error = readl(&mmchost->reg->rint) & 0xbfc2;
+                       error = readl(&mmchost->reg->rint) & \
+                               SUNXI_MMC_RINT_INTERRUPT_ERROR_BIT;
                        error = TIMEOUT;
                        goto out;
                }
@@ -514,13 +515,14 @@ static int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd 
*cmd,
        timeout = 0xfffff;
        do {
                status = readl(&mmchost->reg->rint);
-               if (!timeout-- || (status & 0xbfc2)) {
-                       error = status & 0xbfc2;
+               if (!timeout-- ||
+                   (status & SUNXI_MMC_RINT_INTERRUPT_ERROR_BIT)) {
+                       error = status & SUNXI_MMC_RINT_INTERRUPT_ERROR_BIT;
                        debug("cmd timeout %x\n", error);
                        error = TIMEOUT;
                        goto out;
                }
-       } while (!(status & 0x4));
+       } while (!(status & SUNXI_MMC_RINT_COMMAND_DONE));
 
        if (data) {
                unsigned done = 0;
@@ -528,16 +530,17 @@ static int mmc_send_cmd(struct mmc *mmc, struct mmc_cmd 
*cmd,
                debug("cacl timeout %x\n", timeout);
                do {
                        status = readl(&mmchost->reg->rint);
-                       if (!timeout-- || (status & 0xbfc2)) {
-                               error = status & 0xbfc2;
+                       if (!timeout-- ||
+                           (status & SUNXI_MMC_RINT_INTERRUPT_ERROR_BIT)) {
+                               error = status & 
SUNXI_MMC_RINT_INTERRUPT_ERROR_BIT;
                                debug("data timeout %x\n", error);
                                error = TIMEOUT;
                                goto out;
                        }
                        if (data->blocks > 1)
-                               done = status & (0x1 << 14);
+                               done = status & 
SUNXI_MMC_RINT_AUTO_COMMAND_DONE;
                        else
-                               done = status & (0x1 << 3);
+                               done = status & SUNXI_MMC_RINT_DATA_OVER;
                } while (!done);
        }
 
-- 
1.8.5.3

-- 
You received this message because you are subscribed to the Google Groups 
"linux-sunxi" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to