Re: [PATCH 02/10] mmc: mxs-mmc: let ssp_is_old take host as parameter
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
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
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); +