usb: phy-ulpi-viewport: convert to readl_poll_timeout_atomic()
authorChunfeng Yun <chunfeng.yun@mediatek.com>
Mon, 21 Sep 2020 06:13:32 +0000 (14:13 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 25 Sep 2020 14:30:05 +0000 (16:30 +0200)
Use readl_poll_timeout_atomic() to simplify code

Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Link: https://lore.kernel.org/r/1600668815-12135-8-git-send-email-chunfeng.yun@mediatek.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/phy/phy-ulpi-viewport.c

index 7a14e0e..0f61e32 100644 (file)
@@ -7,6 +7,7 @@
 #include <linux/kernel.h>
 #include <linux/usb.h>
 #include <linux/io.h>
+#include <linux/iopoll.h>
 #include <linux/usb/otg.h>
 #include <linux/usb/ulpi.h>
 
 
 static int ulpi_viewport_wait(void __iomem *view, u32 mask)
 {
-       unsigned long usec = 2000;
+       u32 val;
 
-       while (usec--) {
-               if (!(readl(view) & mask))
-                       return 0;
-
-               udelay(1);
-       }
-
-       return -ETIMEDOUT;
+       return readl_poll_timeout_atomic(view, val, !(val & mask), 1, 2000);
 }
 
 static int ulpi_viewport_read(struct usb_phy *otg, u32 reg)