usb: musb: omap2430: don't loop indefinitely in interrupt.
authorNeilBrown <neilb@suse.de>
Mon, 13 Aug 2012 02:32:58 +0000 (12:32 +1000)
committerFelipe Balbi <balbi@ti.com>
Tue, 14 Aug 2012 08:03:00 +0000 (11:03 +0300)
commit12a19b5f836c1a1b838e668f9aa804d017d8c58b
treed57cc77e5cb43656d9388b70d53b0628c8406c1a
parent07a67bbb95ea7977846bd851dab5f4f2be8e488c
usb: musb: omap2430: don't loop indefinitely in interrupt.

When called during resume_irqs, omap2430_musb_set_vbus() is run with
interrupts disabled,  In that case 'jiffies' never changes so the loop
can loop forever.

So impose a maximum loop count and add an 'mdelay' to ensure we wait
a reasonable amount of time for bit to be cleared.

This fixes a hang on resume.

Signed-of-by: NeilBrown <neilb@suse.de>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/musb/omap2430.c