Message ID | 1599726112-4439-1-git-send-email-chunfeng.yun@mediatek.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [RESEND,v3,01/11] usb: early: convert to readl_poll_timeout_atomic() | expand |
On Thu, Sep 10, 2020 at 10:24 AM Chunfeng Yun <chunfeng.yun@mediatek.com> wrote: > Use readl_poll_timeout_atomic() to simplify code > > Cc: Lu Baolu <baolu.lu@linux.intel.com> > Cc: Mathias Nyman <mathias.nyman@linux.intel.com> > Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Reviewed-by: Jann Horn <jannh@google.com>
diff --git a/drivers/usb/early/xhci-dbc.c b/drivers/usb/early/xhci-dbc.c index c050776..be4ecba 100644 --- a/drivers/usb/early/xhci-dbc.c +++ b/drivers/usb/early/xhci-dbc.c @@ -14,6 +14,7 @@ #include <linux/pci_ids.h> #include <linux/memblock.h> #include <linux/io.h> +#include <linux/iopoll.h> #include <asm/pci-direct.h> #include <asm/fixmap.h> #include <linux/bcd.h> @@ -135,16 +136,9 @@ static int handshake(void __iomem *ptr, u32 mask, u32 done, int wait, int delay) { u32 result; - do { - result = readl(ptr); - result &= mask; - if (result == done) - return 0; - udelay(delay); - wait -= delay; - } while (wait > 0); - - return -ETIMEDOUT; + return readl_poll_timeout_atomic(ptr, result, + ((result & mask) == done), + delay, wait); } static void __init xdbc_bios_handoff(void)
Use readl_poll_timeout_atomic() to simplify code Cc: Lu Baolu <baolu.lu@linux.intel.com> Cc: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> --- v2~v3: no changes --- drivers/usb/early/xhci-dbc.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-)