summaryrefslogtreecommitdiff
path: root/drivers/mmc/host/sdhci-xenon.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2020-05-25 15:10:37 +0200
committerIngo Molnar <mingo@kernel.org>2020-05-25 15:10:37 +0200
commita5d8e55b2c7d3d18d7837af0ef8d1477eeeb919c (patch)
treefe07d3af2f6f13d005da832fe3d18d5d257fb9bd /drivers/mmc/host/sdhci-xenon.c
parent4da0b2b7e67524cc206067865666899bc02e1cb0 (diff)
parent9cb1fd0efd195590b828b9b865421ad345a4a145 (diff)
Merge tag 'v5.7-rc7' into efi/core, to refresh the branch and pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'drivers/mmc/host/sdhci-xenon.c')
-rw-r--r--drivers/mmc/host/sdhci-xenon.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/mmc/host/sdhci-xenon.c b/drivers/mmc/host/sdhci-xenon.c
index 1dea1ba66f7b..4703cd540c7f 100644
--- a/drivers/mmc/host/sdhci-xenon.c
+++ b/drivers/mmc/host/sdhci-xenon.c
@@ -235,6 +235,16 @@ static void xenon_voltage_switch(struct sdhci_host *host)
{
/* Wait for 5ms after set 1.8V signal enable bit */
usleep_range(5000, 5500);
+
+ /*
+ * For some reason the controller's Host Control2 register reports
+ * the bit representing 1.8V signaling as 0 when read after it was
+ * written as 1. Subsequent read reports 1.
+ *
+ * Since this may cause some issues, do an empty read of the Host
+ * Control2 register here to circumvent this.
+ */
+ sdhci_readw(host, SDHCI_HOST_CONTROL2);
}
static const struct sdhci_ops sdhci_xenon_ops = {