hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/drivers/usb/phy/phy-ulpi-viewport.c
....@@ -7,6 +7,7 @@
77 #include <linux/kernel.h>
88 #include <linux/usb.h>
99 #include <linux/io.h>
10
+#include <linux/iopoll.h>
1011 #include <linux/usb/otg.h>
1112 #include <linux/usb/ulpi.h>
1213
....@@ -20,16 +21,9 @@
2021
2122 static int ulpi_viewport_wait(void __iomem *view, u32 mask)
2223 {
23
- unsigned long usec = 2000;
24
+ u32 val;
2425
25
- while (usec--) {
26
- if (!(readl(view) & mask))
27
- return 0;
28
-
29
- udelay(1);
30
- }
31
-
32
- return -ETIMEDOUT;
26
+ return readl_poll_timeout_atomic(view, val, !(val & mask), 1, 2000);
3327 }
3428
3529 static int ulpi_viewport_read(struct usb_phy *otg, u32 reg)