diff options
author | Vincent Yang <vincent.yang.fujitsu@gmail.com> | 2015-01-20 03:05:17 -0500 |
---|---|---|
committer | Ulf Hansson <ulf.hansson@linaro.org> | 2015-01-20 03:29:16 -0500 |
commit | d3fc5d71ac4dfd28a66689cfd1eea84c4dba8bde (patch) | |
tree | b37f8c1a3c4341ecc76ef7573b25d77c3cc5c7b9 /drivers | |
parent | 67d0d04a762db4bd610fd628ad683b5d7dc905e7 (diff) |
mmc: sdhci: add a quirk for single block transactions
This patch defines a quirk to disable the block count
for single block transactions.
It is a preparation and will be used by Fujitsu
SDHCI controller f_sdh30 driver.
Signed-off-by: Vincent Yang <Vincent.Yang@tw.fujitsu.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/mmc/host/sdhci.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index a3ecd20e5510..c9881ca131d5 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c | |||
@@ -904,7 +904,7 @@ static void sdhci_prepare_data(struct sdhci_host *host, struct mmc_command *cmd) | |||
904 | static void sdhci_set_transfer_mode(struct sdhci_host *host, | 904 | static void sdhci_set_transfer_mode(struct sdhci_host *host, |
905 | struct mmc_command *cmd) | 905 | struct mmc_command *cmd) |
906 | { | 906 | { |
907 | u16 mode; | 907 | u16 mode = 0; |
908 | struct mmc_data *data = cmd->data; | 908 | struct mmc_data *data = cmd->data; |
909 | 909 | ||
910 | if (data == NULL) { | 910 | if (data == NULL) { |
@@ -922,9 +922,11 @@ static void sdhci_set_transfer_mode(struct sdhci_host *host, | |||
922 | 922 | ||
923 | WARN_ON(!host->data); | 923 | WARN_ON(!host->data); |
924 | 924 | ||
925 | mode = SDHCI_TRNS_BLK_CNT_EN; | 925 | if (!(host->quirks2 & SDHCI_QUIRK2_SUPPORT_SINGLE)) |
926 | mode = SDHCI_TRNS_BLK_CNT_EN; | ||
927 | |||
926 | if (mmc_op_multi(cmd->opcode) || data->blocks > 1) { | 928 | if (mmc_op_multi(cmd->opcode) || data->blocks > 1) { |
927 | mode |= SDHCI_TRNS_MULTI; | 929 | mode = SDHCI_TRNS_BLK_CNT_EN | SDHCI_TRNS_MULTI; |
928 | /* | 930 | /* |
929 | * If we are sending CMD23, CMD12 never gets sent | 931 | * If we are sending CMD23, CMD12 never gets sent |
930 | * on successful completion (so no Auto-CMD12). | 932 | * on successful completion (so no Auto-CMD12). |