All of lore.kernel.org
 help / color / mirror / Atom feed
* [v4 1/3] mmc: sdhci-cadence: Fix writing PHY delay
@ 2017-03-20 11:12 ` Piotr Sroka
  0 siblings, 0 replies; 14+ messages in thread
From: Piotr Sroka @ 2017-03-20 11:12 UTC (permalink / raw)
  To: linux-mmc
  Cc: Adrian Hunter, Ulf Hansson, linux-kernel, Masahiro Yamada, Piotr Sroka

Add polling for ACK to be sure that data are written to PHY register.

Signed-off-by: Piotr Sroka <piotrs@cadence.com>
---
Changes for v2:
- fix indent
---
Changes for v3:
- none
---
Changes for v4:
- none
---
 drivers/mmc/host/sdhci-cadence.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/drivers/mmc/host/sdhci-cadence.c b/drivers/mmc/host/sdhci-cadence.c
index 316cfec..b2334ec 100644
--- a/drivers/mmc/host/sdhci-cadence.c
+++ b/drivers/mmc/host/sdhci-cadence.c
@@ -66,11 +66,12 @@ struct sdhci_cdns_priv {
 	void __iomem *hrs_addr;
 };
 
-static void sdhci_cdns_write_phy_reg(struct sdhci_cdns_priv *priv,
-				     u8 addr, u8 data)
+static int sdhci_cdns_write_phy_reg(struct sdhci_cdns_priv *priv,
+				    u8 addr, u8 data)
 {
 	void __iomem *reg = priv->hrs_addr + SDHCI_CDNS_HRS04;
 	u32 tmp;
+	int ret;
 
 	tmp = (data << SDHCI_CDNS_HRS04_WDATA_SHIFT) |
 	      (addr << SDHCI_CDNS_HRS04_ADDR_SHIFT);
@@ -79,8 +80,14 @@ static void sdhci_cdns_write_phy_reg(struct sdhci_cdns_priv *priv,
 	tmp |= SDHCI_CDNS_HRS04_WR;
 	writel(tmp, reg);
 
+	ret = readl_poll_timeout(reg, tmp, tmp & SDHCI_CDNS_HRS04_ACK, 0, 10);
+	if (ret)
+		return ret;
+
 	tmp &= ~SDHCI_CDNS_HRS04_WR;
 	writel(tmp, reg);
+
+	return 0;
 }
 
 static void sdhci_cdns_phy_init(struct sdhci_cdns_priv *priv)
-- 
2.2.2

^ permalink raw reply related	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2017-03-22  7:25 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-20 11:12 [v4 1/3] mmc: sdhci-cadence: Fix writing PHY delay Piotr Sroka
2017-03-20 11:12 ` Piotr Sroka
2017-03-20 11:20 ` [v4 2/3] dt-bindings: mmc: add description of PHY delays for sdhci-cadence Piotr Sroka
2017-03-20 11:20   ` Piotr Sroka
2017-03-21  7:40   ` Masahiro Yamada
2017-03-20 11:20 ` [v4 3/3] mmc: sdhci-cadence: Update PHY delay configuration Piotr Sroka
2017-03-20 11:20   ` Piotr Sroka
2017-03-21  1:45   ` Masahiro Yamada
2017-03-21  7:01     ` Piotr Sroka
2017-03-21  7:01       ` Piotr Sroka
2017-03-21  7:32       ` Masahiro Yamada
2017-03-22  7:08         ` Piotr Sroka
2017-03-22  7:24           ` Masahiro Yamada
2017-03-21  7:39 ` [v4 1/3] mmc: sdhci-cadence: Fix writing PHY delay Masahiro Yamada

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.