Has anybody merged this into 3.4? is it worth spending time on this?

oliver

On 01/15/14 11:00, wills wrote:
It's for sunxi-3.4, use new mmc driver for sun4i.

On Wednesday, January 15, 2014 5:55:19 PM UTC+8, wills wrote:

---
  drivers/mmc/host/Kconfig     |  2 +-
  drivers/mmc/host/sunxi-mci.h | 45
+++++++++++++++++++++++++++++++-------------
  2 files changed, 33 insertions(+), 14 deletions(-)

diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
index 958a428..5f1d3d8 100644
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
@@ -558,7 +558,7 @@ config MMC_SH_MMCIF

  config MMC_SUNXI_NEW
          tristate "SUNXI MMC Card Interface support (new driver)"
-        depends on MMC && (ARCH_SUN5I || ARCH_SUN7I)
+        depends on MMC && (ARCH_SUN4I || ARCH_SUN5I || ARCH_SUN7I)
          default y
          help
            This selects support for the SD/MMC controller on AllWinner
SoCs.
diff --git a/drivers/mmc/host/sunxi-mci.h b/drivers/mmc/host/sunxi-mci.h
index 8e385c5..1447257 100644
--- a/drivers/mmc/host/sunxi-mci.h
+++ b/drivers/mmc/host/sunxi-mci.h
@@ -24,17 +24,32 @@
                          " Compiled in " __DATE__ " at " __TIME__ ""

  /*========== platform define ==========*/
+/*---------- for sun4i ----------*/
+#ifdef CONFIG_ARCH_SUN4I
+#define REG_FIFO_OS                                (0x100)
+#define SMC_IRQNO(x)                        (SW_INT_IRQNO_SDMC0 + (x))
+
+#define MMC_SRCCLK_HOSC                        "hosc"
+#define MMC_SRCCLK_PLL6                        "sdram_pll_p"
+#define MMC_AHBCLK_PREFIX                "ahb_sdc"
+#define MMC_MODCLK_PREFIX                "sdc"
+#define MMC3_DMA_TL                                (0x20070008)
+#define MMC_MAX_DMA_DES_BIT                13
+#define MMC_DMA_DES_BIT_LEFT        5
+#endif
+
  /*---------- for sun5i ----------*/
  #ifdef CONFIG_ARCH_SUN5I
-#define REG_FIFO_OS                (0x100)
-#define SMC_IRQNO(x)                (SW_INT_IRQNO_SDMC0 + (x))
-
-#define MMC_SRCCLK_HOSC                "hosc"
-#define MMC_SRCCLK_PLL5                "sdram_pll_p"
-#define MMC_SRCCLK_PLL6                "sata_pll_2"
-#define MMC_AHBCLK_PREFIX        "ahb_sdc"
-#define MMC_MODCLK_PREFIX        "sdc"
-#define MMC3_DMA_TL                (0x20070008)
+#define REG_FIFO_OS                                (0x100)
+#define SMC_IRQNO(x)                        (SW_INT_IRQNO_SDMC0 + (x))
+
+#define MMC_SRCCLK_HOSC                        "hosc"
+#define MMC_SRCCLK_PLL6                        "sata_pll_2"
+#define MMC_AHBCLK_PREFIX                "ahb_sdc"
+#define MMC_MODCLK_PREFIX                "sdc"
+#define MMC3_DMA_TL                                (0x20070008)
+#define MMC_MAX_DMA_DES_BIT                16
+#define MMC_DMA_DES_BIT_LEFT        0
  #endif

  /*---------- for sun6i ----------*/
@@ -47,6 +62,8 @@
  #define MMC_AHBCLK_PREFIX       "ahb_sdmmc"
  #define MMC_MODCLK_PREFIX       "mod_sdc"
  #define MMC3_DMA_TL             (0x2007000f)
+#define MMC_MAX_DMA_DES_BIT                16
+#define MMC_DMA_DES_BIT_LEFT        0

  #ifdef CONFIG_AW_FPGA_PLATFORM
  #undef SMC_IRQNO
@@ -61,11 +78,12 @@
  #define SMC_IRQNO(x)                (SW_INT_IRQNO_SDMC0 + (x))

  #define MMC_SRCCLK_HOSC         "hosc"
-#define MMC_SRCCLK_PLL5         "sdram_pll_p"
  #define MMC_SRCCLK_PLL6         "sata_pll"
  #define MMC_AHBCLK_PREFIX       "ahb_sdc"
  #define MMC_MODCLK_PREFIX       "sdc"
  #define MMC3_DMA_TL             (0x20070008)
+#define MMC_MAX_DMA_DES_BIT                16
+#define MMC_DMA_DES_BIT_LEFT        0

  #ifdef CONFIG_AW_FPGA_PLATFORM
  #undef SMC_IRQNO
@@ -232,7 +250,7 @@
  #define SDXC_IDMA_ERR (SDXC_IDMACFatalBusErr|SDXC_IDMACDesInvalid \
                          |SDXC_IDMACCardErrSum|SDXC_IDMACAbnormalIntSum)

-#define SDXC_DES_NUM_SHIFT        (15)
+#define SDXC_DES_NUM_SHIFT        (MMC_MAX_DMA_DES_BIT)
  #define SDXC_DES_BUFFER_MAX_LEN        (1U << SDXC_DES_NUM_SHIFT)
  struct sunxi_mmc_idma_des {
          u32        config;
@@ -244,8 +262,9 @@ struct sunxi_mmc_idma_des {
  #define SDXC_IDMAC_DES0_CES        BIT(30) // card error summary
  #define SDXC_IDMAC_DES0_OWN        BIT(31) // des owner:1-idma owns it,
0-host owns it

-        u32        data_buf1_sz    :16,
-                data_buf2_sz    :16;
+        u32        data_buf1_sz    :MMC_MAX_DMA_DES_BIT,
+                data_buf2_sz    :MMC_MAX_DMA_DES_BIT,
+                                                :MMC_DMA_DES_BIT_LEFT;
          u32        buf_addr_ptr1;
          u32        buf_addr_ptr2;
  };
--
1.8.3.2




--
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 linux-sunxi+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to