9
0
Fork 0

ehci: use is_timeout for timeout instead of udelay counter

Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Sascha Hauer 2010-06-24 10:22:40 +02:00
parent d99aa6b761
commit 0b863c83d0
1 changed files with 7 additions and 5 deletions

View File

@ -213,18 +213,20 @@ static inline void ehci_invalidate_dcache(struct QH *qh)
static int handshake(uint32_t *ptr, uint32_t mask, uint32_t done, int usec)
{
uint32_t result;
uint64_t start;
do {
start = get_time_ns();
while (1) {
result = ehci_readl(ptr);
if (result == ~(uint32_t)0)
return -1;
result &= mask;
if (result == done)
return 0;
udelay(1);
usec--;
} while (usec > 0);
return -1;
if (is_timeout(start, usec * USECOND))
return -ETIMEDOUT;
}
}
static int ehci_reset(struct ehci_priv *ehci)