diff options
| -rw-r--r-- | drivers/mmc/host/omap_hsmmc.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c index 9a7a60aeb19e..389a3eedfc24 100644 --- a/drivers/mmc/host/omap_hsmmc.c +++ b/drivers/mmc/host/omap_hsmmc.c | |||
| @@ -85,7 +85,6 @@ | |||
| 85 | #define BRR_ENABLE (1 << 5) | 85 | #define BRR_ENABLE (1 << 5) |
| 86 | #define DTO_ENABLE (1 << 20) | 86 | #define DTO_ENABLE (1 << 20) |
| 87 | #define INIT_STREAM (1 << 1) | 87 | #define INIT_STREAM (1 << 1) |
| 88 | #define ACEN_ACMD12 (1 << 2) | ||
| 89 | #define DP_SELECT (1 << 21) | 88 | #define DP_SELECT (1 << 21) |
| 90 | #define DDIR (1 << 4) | 89 | #define DDIR (1 << 4) |
| 91 | #define DMA_EN 0x1 | 90 | #define DMA_EN 0x1 |
| @@ -117,7 +116,6 @@ | |||
| 117 | #define OMAP_MMC_MAX_CLOCK 52000000 | 116 | #define OMAP_MMC_MAX_CLOCK 52000000 |
| 118 | #define DRIVER_NAME "omap_hsmmc" | 117 | #define DRIVER_NAME "omap_hsmmc" |
| 119 | 118 | ||
| 120 | #define AUTO_CMD12 (1 << 0) /* Auto CMD12 support */ | ||
| 121 | /* | 119 | /* |
| 122 | * One controller can have multiple slots, like on some omap boards using | 120 | * One controller can have multiple slots, like on some omap boards using |
| 123 | * omap.c controller driver. Luckily this is not currently done on any known | 121 | * omap.c controller driver. Luckily this is not currently done on any known |
| @@ -177,7 +175,6 @@ struct omap_hsmmc_host { | |||
| 177 | int reqs_blocked; | 175 | int reqs_blocked; |
| 178 | int use_reg; | 176 | int use_reg; |
| 179 | int req_in_progress; | 177 | int req_in_progress; |
| 180 | unsigned int flags; | ||
| 181 | struct omap_hsmmc_next next_data; | 178 | struct omap_hsmmc_next next_data; |
| 182 | 179 | ||
| 183 | struct omap_mmc_platform_data *pdata; | 180 | struct omap_mmc_platform_data *pdata; |
| @@ -773,8 +770,6 @@ omap_hsmmc_start_command(struct omap_hsmmc_host *host, struct mmc_command *cmd, | |||
| 773 | cmdtype = 0x3; | 770 | cmdtype = 0x3; |
| 774 | 771 | ||
| 775 | cmdreg = (cmd->opcode << 24) | (resptype << 16) | (cmdtype << 22); | 772 | cmdreg = (cmd->opcode << 24) | (resptype << 16) | (cmdtype << 22); |
| 776 | if ((host->flags & AUTO_CMD12) && mmc_op_multi(cmd->opcode)) | ||
| 777 | cmdreg |= ACEN_ACMD12; | ||
| 778 | 773 | ||
| 779 | if (data) { | 774 | if (data) { |
| 780 | cmdreg |= DP_SELECT | MSBS | BCE; | 775 | cmdreg |= DP_SELECT | MSBS | BCE; |
| @@ -847,14 +842,11 @@ omap_hsmmc_xfer_done(struct omap_hsmmc_host *host, struct mmc_data *data) | |||
| 847 | else | 842 | else |
| 848 | data->bytes_xfered = 0; | 843 | data->bytes_xfered = 0; |
| 849 | 844 | ||
| 850 | if (data->stop && ((!(host->flags & AUTO_CMD12)) || data->error)) { | 845 | if (!data->stop) { |
| 851 | omap_hsmmc_start_command(host, data->stop, NULL); | ||
| 852 | } else { | ||
| 853 | if (data->stop) | ||
| 854 | data->stop->resp[0] = OMAP_HSMMC_READ(host->base, | ||
| 855 | RSP76); | ||
| 856 | omap_hsmmc_request_done(host, data->mrq); | 846 | omap_hsmmc_request_done(host, data->mrq); |
| 847 | return; | ||
| 857 | } | 848 | } |
| 849 | omap_hsmmc_start_command(host, data->stop, NULL); | ||
| 858 | } | 850 | } |
| 859 | 851 | ||
| 860 | /* | 852 | /* |
| @@ -1859,7 +1851,6 @@ static int __devinit omap_hsmmc_probe(struct platform_device *pdev) | |||
| 1859 | host->mapbase = res->start + pdata->reg_offset; | 1851 | host->mapbase = res->start + pdata->reg_offset; |
| 1860 | host->base = ioremap(host->mapbase, SZ_4K); | 1852 | host->base = ioremap(host->mapbase, SZ_4K); |
| 1861 | host->power_mode = MMC_POWER_OFF; | 1853 | host->power_mode = MMC_POWER_OFF; |
| 1862 | host->flags = AUTO_CMD12; | ||
| 1863 | host->next_data.cookie = 1; | 1854 | host->next_data.cookie = 1; |
| 1864 | 1855 | ||
| 1865 | platform_set_drvdata(pdev, host); | 1856 | platform_set_drvdata(pdev, host); |
