| .. | .. |
|---|
| 7 | 7 | #include <linux/kernel.h> |
|---|
| 8 | 8 | #include <linux/usb.h> |
|---|
| 9 | 9 | #include <linux/io.h> |
|---|
| 10 | +#include <linux/iopoll.h> |
|---|
| 10 | 11 | #include <linux/usb/otg.h> |
|---|
| 11 | 12 | #include <linux/usb/ulpi.h> |
|---|
| 12 | 13 | |
|---|
| .. | .. |
|---|
| 20 | 21 | |
|---|
| 21 | 22 | static int ulpi_viewport_wait(void __iomem *view, u32 mask) |
|---|
| 22 | 23 | { |
|---|
| 23 | | - unsigned long usec = 2000; |
|---|
| 24 | + u32 val; |
|---|
| 24 | 25 | |
|---|
| 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); |
|---|
| 33 | 27 | } |
|---|
| 34 | 28 | |
|---|
| 35 | 29 | static int ulpi_viewport_read(struct usb_phy *otg, u32 reg) |
|---|