mmc: sdhci-acpi: Fix card detect race for Intel BXT/APL
authorAdrian Hunter <adrian.hunter@intel.com>
Tue, 9 Feb 2016 14:12:38 +0000 (16:12 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 3 Mar 2016 23:07:15 +0000 (15:07 -0800)
commit43919d0ca15d5e93efd40467c63502b33b7acf5c
tree2e3aab89fb4315b9886bebc00cb01907dd96d3d5
parent2bfda88879216667b7f60d91851606f165244b0a
mmc: sdhci-acpi: Fix card detect race for Intel BXT/APL

commit 6a645dd87a5a506779810d7d9935c25fc2ef4687 upstream.

Intel BXT/APL use a card detect GPIO however the host controller
will not enable bus power unless it's card detect also reflects
the presence of a card.  Unfortunately those 2 things race which
can result in commands not starting, after which the controller
does nothing and there is a 10 second wait for the driver's
10-second timer to timeout.

That is fixed by having the driver look also at the present state
register to determine if the card is present.  Consequently, provide
a 'get_cd' mmc host operation for BXT/APL that does that.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/mmc/host/sdhci-acpi.c