On Wed, Feb 15, 2012 at 06:56:57PM -0800, Paul Zimmerman wrote: > - The loop in dwc3_gadget_set_link_state was using a udelay(500), > which is a long time to delay in interrupt context. Change it to > udelay(5) and increase the loop count to match. > > - dwc3_gadget_wakeup was looping on !time_after(jiffies, timeout)) > with interrupts disabled, which is wrong. Fix it. > > - dwc3_gadget_ep_set_wedge and dwc3_gadget_set_selfpowered were > modifying dwc->flags/dwc->is_selfpowered without taking the lock. > Since those modifications are non-atomic, that could cause other > flags to be corrupted. Fix them both to take the lock. > > - Transfer resource index is cleared in hardware when XFERCOMPLETE > event is generated, so clear the driver's res_trans_idx variable > immediately after that event is received. The upcoming > hibernation patches also need this change. this needs to be split further. I can see a bunch of small easy to review patches coming out of this one single commit. -- balbi
Attachment:
signature.asc
Description: Digital signature