Hi, On Sat, Feb 04, 2012 at 06:55:21PM +0100, Sebastian Andrzej Siewior wrote: > The disconnect code is scheduled in a tasklet. I don't see the point in > doing this and the comment says that we may want do this in the irq. This > patch is doing so. > > Cc: Thomas Dahlmann <dahlmann.thomas@xxxxxxxx> > Signed-off-by: Sebastian Andrzej Siewior <sebastian@xxxxxxxxxxxxx> > --- > drivers/usb/gadget/amd5536udc.c | 22 +++------------------- > 1 files changed, 3 insertions(+), 19 deletions(-) > > diff --git a/drivers/usb/gadget/amd5536udc.c b/drivers/usb/gadget/amd5536udc.c > index e9a2c5c..f0a05e3 100644 > --- a/drivers/usb/gadget/amd5536udc.c > +++ b/drivers/usb/gadget/amd5536udc.c > @@ -64,8 +64,7 @@ > /* udc specific */ > #include "amd5536udc.h" > > - > -static void udc_tasklet_disconnect(unsigned long); > +static void udc_tasklet_disconnect(struct udc *dev); the "tasklet" part of the name doesn't fit anymore. > @@ -1647,22 +1641,14 @@ static void usb_disconnect(struct udc *dev) > /* mask interrupts */ > udc_mask_unused_interrupts(dev); > > - /* REVISIT there doesn't seem to be a point to having this > - * talk to a tasklet ... do it directly, we already hold > - * the spinlock needed to process the disconnect. > - */ > - > - tasklet_schedule(&disconnect_tasklet); > + udc_tasklet_disconnect(dev); > } > > -/* Tasklet for disconnect to be outside of interrupt context */ > -static void udc_tasklet_disconnect(unsigned long par) > +static void udc_tasklet_disconnect(struct udc *dev) > { > - struct udc *dev = (struct udc *)(*((struct udc **) par)); > u32 tmp; > > DBG(dev, "Tasklet disconnect\n"); neither here. -- balbi
Attachment:
signature.asc
Description: Digital signature