drivers: phy: qcom: ipq806x-usb: conver latch function to pool macro
authorAnsuel Smith <ansuelsmth@gmail.com>
Mon, 17 Jan 2022 00:26:41 +0000 (01:26 +0100)
committerVinod Koul <vkoul@kernel.org>
Mon, 24 Jan 2022 04:28:12 +0000 (09:58 +0530)
Convert latch function to readl pool macro to tidy things up.

Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
Link: https://lore.kernel.org/r/20220117002641.26773-2-ansuelsmth@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/qualcomm/phy-qcom-ipq806x-usb.c

index 2aca0e2..7bacc52 100644 (file)
 #define SS_CR_READ_REG                         BIT(0)
 #define SS_CR_WRITE_REG                                BIT(0)
 
+#define LATCH_SLEEP                            40
+#define LATCH_TIMEOUT                          100
+
 struct usb_phy {
        void __iomem            *base;
        struct device           *dev;
@@ -157,19 +160,9 @@ static inline void usb_phy_write_readback(struct usb_phy *phy_dwc3,
 
 static int wait_for_latch(void __iomem *addr)
 {
-       u32 retry = 10;
-
-       while (true) {
-               if (!readl(addr))
-                       break;
-
-               if (--retry == 0)
-                       return -ETIMEDOUT;
-
-               usleep_range(10, 20);
-       }
+       u32 val;
 
-       return 0;
+       return readl_poll_timeout(addr, val, !val, LATCH_SLEEP, LATCH_TIMEOUT);
 }
 
 /**