Commit d43a6901 authored by Chunfeng Yun's avatar Chunfeng Yun Committed by Greg Kroah-Hartman
Browse files

usb: oxu210hp-hcd: convert to readl_poll_timeout_atomic()

parent 8469ab98
Loading
Loading
Loading
Loading
+10 −11
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#include <linux/moduleparam.h>
#include <linux/dma-mapping.h>
#include <linux/io.h>
#include <linux/iopoll.h>

#include <asm/irq.h>
#include <asm/unaligned.h>
@@ -748,18 +749,16 @@ static int handshake(struct oxu_hcd *oxu, void __iomem *ptr,
					u32 mask, u32 done, int usec)
{
	u32 result;
	int ret;

	do {
		result = readl(ptr);
		if (result == ~(u32)0)		/* card removed */
	ret = readl_poll_timeout_atomic(ptr, result,
					((result & mask) == done ||
					 result == U32_MAX),
					1, usec);
	if (result == U32_MAX)		/* card removed */
		return -ENODEV;
		result &= mask;
		if (result == done)
			return 0;
		udelay(1);
		usec--;
	} while (usec > 0);
	return -ETIMEDOUT;

	return ret;
}

/* Force HC to halt state from unknown (EHCI spec section 2.3) */