mmc: sdhci: key 8BITBUS bit off MMC_CAP_8_BIT_DATA
Hosts supporting 8-bit bus are marked accordingly. If MMC_CAP_8_BIT_DATA is not among host capabilities, 8BITBUS bit will never be set and it is not cleared in case some non-SDHCI3 host uses it for something else. Signed-off-by: Michał Mirosław <mirq-linux@rere.qmqm.pl> Acked-by: Adrian Hunter <adrian.hunter@intel.com> Tested-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
34292311f0
commit
98f94ea6d8
|
@ -1544,10 +1544,9 @@ void sdhci_set_bus_width(struct sdhci_host *host, int width)
|
||||||
ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
|
ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
|
||||||
if (width == MMC_BUS_WIDTH_8) {
|
if (width == MMC_BUS_WIDTH_8) {
|
||||||
ctrl &= ~SDHCI_CTRL_4BITBUS;
|
ctrl &= ~SDHCI_CTRL_4BITBUS;
|
||||||
if (host->version >= SDHCI_SPEC_300)
|
ctrl |= SDHCI_CTRL_8BITBUS;
|
||||||
ctrl |= SDHCI_CTRL_8BITBUS;
|
|
||||||
} else {
|
} else {
|
||||||
if (host->version >= SDHCI_SPEC_300)
|
if (host->mmc->caps & MMC_CAP_8_BIT_DATA)
|
||||||
ctrl &= ~SDHCI_CTRL_8BITBUS;
|
ctrl &= ~SDHCI_CTRL_8BITBUS;
|
||||||
if (width == MMC_BUS_WIDTH_4)
|
if (width == MMC_BUS_WIDTH_4)
|
||||||
ctrl |= SDHCI_CTRL_4BITBUS;
|
ctrl |= SDHCI_CTRL_4BITBUS;
|
||||||
|
|
Loading…
Reference in New Issue