Re: [PATCH 02/10] mmc: mxs-mmc: let ssp_is_old take host as parameter

2012-05-08 Thread Shawn Guo
On Tue, May 08, 2012 at 01:43:49AM +0200, Marek Vasut wrote:
   #define SSP_VERSION_LATEST 4
  -#define ssp_is_old()   (host-version  SSP_VERSION_LATEST)
  +#define ssp_is_old(host)   (host-version  SSP_VERSION_LATEST)
 
 (host)-version ... to make the macro safer.
 
Sounds good.

  -   if ((stat  BM_SSP_CTRL1_SDIO_IRQ)  (stat  BM_SSP_CTRL1_SDIO_IRQ_EN))
  +   if ((sta  BM_SSP_CTRL1_SDIO_IRQ)  (stat  BM_SSP_CTRL1_SDIO_IRQ_EN))
 
 ^ s/sta/stat/ ... did you try compiling this at all ? :-)
 
This is an error introduced by a last minute rebase.  Thanks for
catching it.  Fixed.

-- 
Regards,
Shawn
--
To unsubscribe from this list: send the line unsubscribe linux-mmc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 02/10] mmc: mxs-mmc: let ssp_is_old take host as parameter

2012-05-07 Thread Shawn Guo
Let macro ssp_is_old take host as parameter to make the code easy
to read.

Signed-off-by: Shawn Guo shawn@linaro.org
---
 drivers/mmc/host/mxs-mmc.c |   59 ++-
 1 files changed, 30 insertions(+), 29 deletions(-)

diff --git a/drivers/mmc/host/mxs-mmc.c b/drivers/mmc/host/mxs-mmc.c
index 2ea5361..13907e4 100644
--- a/drivers/mmc/host/mxs-mmc.c
+++ b/drivers/mmc/host/mxs-mmc.c
@@ -51,7 +51,7 @@
 #define MXS_MMC_DETECT_TIMEOUT (HZ/2)
 
 #define SSP_VERSION_LATEST 4
-#define ssp_is_old()   (host-version  SSP_VERSION_LATEST)
+#define ssp_is_old(host)   (host-version  SSP_VERSION_LATEST)
 
 /* SSP registers */
 #define HW_SSP_CTRL0   0x000
@@ -86,14 +86,14 @@
 #define  BM_SSP_BLOCK_SIZE_BLOCK_COUNT (0xff  4)
 #define  BP_SSP_BLOCK_SIZE_BLOCK_SIZE  (0)
 #define  BM_SSP_BLOCK_SIZE_BLOCK_SIZE  (0xf)
-#define HW_SSP_TIMING  (ssp_is_old() ? 0x050 : 0x070)
+#define HW_SSP_TIMING(h)   (ssp_is_old(h) ? 0x050 : 0x070)
 #define  BP_SSP_TIMING_TIMEOUT (16)
 #define  BM_SSP_TIMING_TIMEOUT (0x  16)
 #define  BP_SSP_TIMING_CLOCK_DIVIDE(8)
 #define  BM_SSP_TIMING_CLOCK_DIVIDE(0xff  8)
 #define  BP_SSP_TIMING_CLOCK_RATE  (0)
 #define  BM_SSP_TIMING_CLOCK_RATE  (0xff)
-#define HW_SSP_CTRL1   (ssp_is_old() ? 0x060 : 0x080)
+#define HW_SSP_CTRL1(h)(ssp_is_old(h) ? 0x060 
: 0x080)
 #define  BM_SSP_CTRL1_SDIO_IRQ (1  31)
 #define  BM_SSP_CTRL1_SDIO_IRQ_EN  (1  30)
 #define  BM_SSP_CTRL1_RESP_ERR_IRQ (1  29)
@@ -116,11 +116,11 @@
 #define  BM_SSP_CTRL1_WORD_LENGTH  (0xf  4)
 #define  BP_SSP_CTRL1_SSP_MODE (0)
 #define  BM_SSP_CTRL1_SSP_MODE (0xf)
-#define HW_SSP_SDRESP0 (ssp_is_old() ? 0x080 : 0x0a0)
-#define HW_SSP_SDRESP1 (ssp_is_old() ? 0x090 : 0x0b0)
-#define HW_SSP_SDRESP2 (ssp_is_old() ? 0x0a0 : 0x0c0)
-#define HW_SSP_SDRESP3 (ssp_is_old() ? 0x0b0 : 0x0d0)
-#define HW_SSP_STATUS  (ssp_is_old() ? 0x0c0 : 0x100)
+#define HW_SSP_SDRESP0(h)  (ssp_is_old(h) ? 0x080 : 0x0a0)
+#define HW_SSP_SDRESP1(h)  (ssp_is_old(h) ? 0x090 : 0x0b0)
+#define HW_SSP_SDRESP2(h)  (ssp_is_old(h) ? 0x0a0 : 0x0c0)
+#define HW_SSP_SDRESP3(h)  (ssp_is_old(h) ? 0x0b0 : 0x0d0)
+#define HW_SSP_STATUS(h)   (ssp_is_old(h) ? 0x0c0 : 0x100)
 #define  BM_SSP_STATUS_CARD_DETECT (1  28)
 #define  BM_SSP_STATUS_SDIO_IRQ(1  17)
 #define HW_SSP_VERSION (cpu_is_mx23() ? 0x110 : 0x130)
@@ -183,7 +183,7 @@ static int mxs_mmc_get_cd(struct mmc_host *mmc)
 {
struct mxs_mmc_host *host = mmc_priv(mmc);
 
-   return !(readl(host-base + HW_SSP_STATUS) 
+   return !(readl(host-base + HW_SSP_STATUS(host)) 
 BM_SSP_STATUS_CARD_DETECT);
 }
 
@@ -207,7 +207,7 @@ static void mxs_mmc_reset(struct mxs_mmc_host *host)
writel(BF_SSP(0x, TIMING_TIMEOUT) |
   BF_SSP(2, TIMING_CLOCK_DIVIDE) |
   BF_SSP(0, TIMING_CLOCK_RATE),
-  host-base + HW_SSP_TIMING);
+  host-base + HW_SSP_TIMING(host));
 
if (host-sdio_irq_en) {
ctrl0 |= BM_SSP_CTRL0_SDIO_IRQ_CHECK;
@@ -215,7 +215,7 @@ static void mxs_mmc_reset(struct mxs_mmc_host *host)
}
 
writel(ctrl0, host-base + HW_SSP_CTRL0);
-   writel(ctrl1, host-base + HW_SSP_CTRL1);
+   writel(ctrl1, host-base + HW_SSP_CTRL1(host));
 }
 
 static void mxs_mmc_start_cmd(struct mxs_mmc_host *host,
@@ -229,12 +229,12 @@ static void mxs_mmc_request_done(struct mxs_mmc_host 
*host)
 
if (mmc_resp_type(cmd)  MMC_RSP_PRESENT) {
if (mmc_resp_type(cmd)  MMC_RSP_136) {
-   cmd-resp[3] = readl(host-base + HW_SSP_SDRESP0);
-   cmd-resp[2] = readl(host-base + HW_SSP_SDRESP1);
-   cmd-resp[1] = readl(host-base + HW_SSP_SDRESP2);
-   cmd-resp[0] = readl(host-base + HW_SSP_SDRESP3);
+   cmd-resp[3] = readl(host-base + HW_SSP_SDRESP0(host));
+   cmd-resp[2] = readl(host-base + HW_SSP_SDRESP1(host));
+   cmd-resp[1] = readl(host-base + HW_SSP_SDRESP2(host));
+   cmd-resp[0] = readl(host-base + HW_SSP_SDRESP3(host));
} else {
-   cmd-resp[0] = readl(host-base + HW_SSP_SDRESP0);
+   cmd-resp[0] = readl(host-base + HW_SSP_SDRESP0(host));
}
}
 
@@ -277,11 +277,11 @@ static irqreturn_t mxs_mmc_irq_handler(int irq, void 

Re: [PATCH 02/10] mmc: mxs-mmc: let ssp_is_old take host as parameter

2012-05-07 Thread Marek Vasut
Dear Shawn Guo,

 Let macro ssp_is_old take host as parameter to make the code easy
 to read.
 
 Signed-off-by: Shawn Guo shawn@linaro.org
 ---
  drivers/mmc/host/mxs-mmc.c |   59
 ++- 1 files changed, 30
 insertions(+), 29 deletions(-)
 
 diff --git a/drivers/mmc/host/mxs-mmc.c b/drivers/mmc/host/mxs-mmc.c
 index 2ea5361..13907e4 100644
 --- a/drivers/mmc/host/mxs-mmc.c
 +++ b/drivers/mmc/host/mxs-mmc.c
 @@ -51,7 +51,7 @@
  #define MXS_MMC_DETECT_TIMEOUT   (HZ/2)
 
  #define SSP_VERSION_LATEST   4
 -#define ssp_is_old() (host-version  SSP_VERSION_LATEST)
 +#define ssp_is_old(host) (host-version  SSP_VERSION_LATEST)

(host)-version ... to make the macro safer.

 
  /* SSP registers */
  #define HW_SSP_CTRL0 0x000
 @@ -86,14 +86,14 @@
  #define  BM_SSP_BLOCK_SIZE_BLOCK_COUNT   (0xff  4)
  #define  BP_SSP_BLOCK_SIZE_BLOCK_SIZE(0)
  #define  BM_SSP_BLOCK_SIZE_BLOCK_SIZE(0xf)
 -#define HW_SSP_TIMING(ssp_is_old() ? 0x050 : 
0x070)
 +#define HW_SSP_TIMING(h) (ssp_is_old(h) ? 0x050 : 0x070)
  #define  BP_SSP_TIMING_TIMEOUT   (16)
  #define  BM_SSP_TIMING_TIMEOUT   (0x  16)
  #define  BP_SSP_TIMING_CLOCK_DIVIDE  (8)
  #define  BM_SSP_TIMING_CLOCK_DIVIDE  (0xff  8)
  #define  BP_SSP_TIMING_CLOCK_RATE(0)
  #define  BM_SSP_TIMING_CLOCK_RATE(0xff)
 -#define HW_SSP_CTRL1 (ssp_is_old() ? 0x060 : 0x080)
 +#define HW_SSP_CTRL1(h)  (ssp_is_old(h) ? 0x060 
 : 
0x080)
  #define  BM_SSP_CTRL1_SDIO_IRQ   (1  31)
  #define  BM_SSP_CTRL1_SDIO_IRQ_EN(1  30)
  #define  BM_SSP_CTRL1_RESP_ERR_IRQ   (1  29)
 @@ -116,11 +116,11 @@
  #define  BM_SSP_CTRL1_WORD_LENGTH(0xf  4)
  #define  BP_SSP_CTRL1_SSP_MODE   (0)
  #define  BM_SSP_CTRL1_SSP_MODE   (0xf)
 -#define HW_SSP_SDRESP0   (ssp_is_old() ? 0x080 : 
0x0a0)
 -#define HW_SSP_SDRESP1   (ssp_is_old() ? 0x090 : 
0x0b0)
 -#define HW_SSP_SDRESP2   (ssp_is_old() ? 0x0a0 : 
0x0c0)
 -#define HW_SSP_SDRESP3   (ssp_is_old() ? 0x0b0 : 
0x0d0)
 -#define HW_SSP_STATUS(ssp_is_old() ? 0x0c0 : 
0x100)
 +#define HW_SSP_SDRESP0(h)(ssp_is_old(h) ? 0x080 : 0x0a0)
 +#define HW_SSP_SDRESP1(h)(ssp_is_old(h) ? 0x090 : 0x0b0)
 +#define HW_SSP_SDRESP2(h)(ssp_is_old(h) ? 0x0a0 : 0x0c0)
 +#define HW_SSP_SDRESP3(h)(ssp_is_old(h) ? 0x0b0 : 0x0d0)
 +#define HW_SSP_STATUS(h) (ssp_is_old(h) ? 0x0c0 : 0x100)
  #define  BM_SSP_STATUS_CARD_DETECT   (1  28)
  #define  BM_SSP_STATUS_SDIO_IRQ  (1  17)
  #define HW_SSP_VERSION   (cpu_is_mx23() ? 0x110 
 : 
0x130)
 @@ -183,7 +183,7 @@ static int mxs_mmc_get_cd(struct mmc_host *mmc)
  {
   struct mxs_mmc_host *host = mmc_priv(mmc);
 
 - return !(readl(host-base + HW_SSP_STATUS) 
 + return !(readl(host-base + HW_SSP_STATUS(host)) 
BM_SSP_STATUS_CARD_DETECT);
  }
 
 @@ -207,7 +207,7 @@ static void mxs_mmc_reset(struct mxs_mmc_host *host)
   writel(BF_SSP(0x, TIMING_TIMEOUT) |
  BF_SSP(2, TIMING_CLOCK_DIVIDE) |
  BF_SSP(0, TIMING_CLOCK_RATE),
 -host-base + HW_SSP_TIMING);
 +host-base + HW_SSP_TIMING(host));
 
   if (host-sdio_irq_en) {
   ctrl0 |= BM_SSP_CTRL0_SDIO_IRQ_CHECK;
 @@ -215,7 +215,7 @@ static void mxs_mmc_reset(struct mxs_mmc_host *host)
   }
 
   writel(ctrl0, host-base + HW_SSP_CTRL0);
 - writel(ctrl1, host-base + HW_SSP_CTRL1);
 + writel(ctrl1, host-base + HW_SSP_CTRL1(host));
  }
 
  static void mxs_mmc_start_cmd(struct mxs_mmc_host *host,
 @@ -229,12 +229,12 @@ static void mxs_mmc_request_done(struct mxs_mmc_host
 *host)
 
   if (mmc_resp_type(cmd)  MMC_RSP_PRESENT) {
   if (mmc_resp_type(cmd)  MMC_RSP_136) {
 - cmd-resp[3] = readl(host-base + HW_SSP_SDRESP0);
 - cmd-resp[2] = readl(host-base + HW_SSP_SDRESP1);
 - cmd-resp[1] = readl(host-base + HW_SSP_SDRESP2);
 - cmd-resp[0] = readl(host-base + HW_SSP_SDRESP3);
 + cmd-resp[3] = readl(host-base + HW_SSP_SDRESP0(host));
 + cmd-resp[2] = readl(host-base + HW_SSP_SDRESP1(host));
 + cmd-resp[1] = readl(host-base + HW_SSP_SDRESP2(host));
 + cmd-resp[0] = readl(host-base + HW_SSP_SDRESP3(host));
   } else {
 - cmd-resp[0] = readl(host-base + HW_SSP_SDRESP0);
 +