diff options
author | Anand Gadiyar <gadiyar@ti.com> | 2009-09-22 19:44:21 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-09-23 10:39:32 -0400 |
commit | ccdfe3a66a57f5e36f56101e60946ee341eb5f1b (patch) | |
tree | 1d6fcd267589ebf8b9b5cc1692ad2fa0f757275d /drivers/mmc/host/omap_hsmmc.c | |
parent | 500f35648e5ebd04be00f974738a9db959a892b8 (diff) |
OMAP: HSMMC: do not enable buffer ready interrupt if using DMA
This considerably reduces the number of interrupts during a transfer
and ought to result in some power saving.
Signed-off-by: Anand Gadiyar <gadiyar@ti.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Kishore Kadiyala <kishore.kadiyala@ti.com>
Cc: Pierre Ossman <drzeus@drzeus.cx>
Cc: Matt Fleming <matt@console-pimps.org>
Cc: Ian Molton <ian@mnementh.co.uk>
Cc: "Roberto A. Foglietta" <roberto.foglietta@gmail.com>
Cc: Philip Langdale <philipl@overt.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/mmc/host/omap_hsmmc.c')
-rw-r--r-- | drivers/mmc/host/omap_hsmmc.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 1cf9cfb3b64f..fee895b02f39 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c | |||
@@ -70,6 +70,8 @@ | |||
70 | #define DTO_MASK 0x000F0000 | 70 | #define DTO_MASK 0x000F0000 |
71 | #define DTO_SHIFT 16 | 71 | #define DTO_SHIFT 16 |
72 | #define INT_EN_MASK 0x307F0033 | 72 | #define INT_EN_MASK 0x307F0033 |
73 | #define BWR_ENABLE (1 << 4) | ||
74 | #define BRR_ENABLE (1 << 5) | ||
73 | #define INIT_STREAM (1 << 1) | 75 | #define INIT_STREAM (1 << 1) |
74 | #define DP_SELECT (1 << 21) | 76 | #define DP_SELECT (1 << 21) |
75 | #define DDIR (1 << 4) | 77 | #define DDIR (1 << 4) |
@@ -241,7 +243,12 @@ mmc_omap_start_command(struct mmc_omap_host *host, struct mmc_command *cmd, | |||
241 | */ | 243 | */ |
242 | OMAP_HSMMC_WRITE(host->base, STAT, STAT_CLEAR); | 244 | OMAP_HSMMC_WRITE(host->base, STAT, STAT_CLEAR); |
243 | OMAP_HSMMC_WRITE(host->base, ISE, INT_EN_MASK); | 245 | OMAP_HSMMC_WRITE(host->base, ISE, INT_EN_MASK); |
244 | OMAP_HSMMC_WRITE(host->base, IE, INT_EN_MASK); | 246 | |
247 | if (host->use_dma) | ||
248 | OMAP_HSMMC_WRITE(host->base, IE, | ||
249 | INT_EN_MASK & ~(BRR_ENABLE | BWR_ENABLE)); | ||
250 | else | ||
251 | OMAP_HSMMC_WRITE(host->base, IE, INT_EN_MASK); | ||
245 | 252 | ||
246 | host->response_busy = 0; | 253 | host->response_busy = 0; |
247 | if (cmd->flags & MMC_RSP_PRESENT) { | 254 | if (cmd->flags & MMC_RSP_PRESENT) { |