Re: [PATCH 2/3] usb: gadget: fsl_qe_udc: do not use tasklet_disable before tasklet_kill
Hi, On Wed, Oct 31, 2012 at 10:35:37PM +0800, Li Yang wrote: > On Wed, Oct 31, 2012 at 9:26 PM, Felipe Balbi wrote: > > On Wed, Oct 31, 2012 at 04:06:00PM +0800, Xiaotian Feng wrote: > >> If tasklet_disable() is called before related tasklet handled, > >> tasklet_kill will never be finished. tasklet_kill is enough. > > > > how did you test this ? Why changing FSL driver instead of switching > > over to chipidea which is supposed to be shared by every licensee of the > > chipidea core ? > > The QE UDC is an private controller that is not compatible with the > Chipidea core. thanks for the clarification, but you still haven't answered how you tested this ;-) -- balbi signature.asc Description: Digital signature ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 2/3] usb: gadget: fsl_qe_udc: do not use tasklet_disable before tasklet_kill
On Wed, Oct 31, 2012 at 9:26 PM, Felipe Balbi wrote: > On Wed, Oct 31, 2012 at 04:06:00PM +0800, Xiaotian Feng wrote: >> If tasklet_disable() is called before related tasklet handled, >> tasklet_kill will never be finished. tasklet_kill is enough. > > how did you test this ? Why changing FSL driver instead of switching > over to chipidea which is supposed to be shared by every licensee of the > chipidea core ? The QE UDC is an private controller that is not compatible with the Chipidea core. - Leo ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: [PATCH 2/3] usb: gadget: fsl_qe_udc: do not use tasklet_disable before tasklet_kill
On Wed, Oct 31, 2012 at 04:06:00PM +0800, Xiaotian Feng wrote: > If tasklet_disable() is called before related tasklet handled, > tasklet_kill will never be finished. tasklet_kill is enough. how did you test this ? Why changing FSL driver instead of switching over to chipidea which is supposed to be shared by every licensee of the chipidea core ? > Signed-off-by: Xiaotian Feng > Cc: Li Yang > Cc: Felipe Balbi > Cc: Greg Kroah-Hartman > Cc: linux-...@vger.kernel.org > Cc: linuxppc-dev@lists.ozlabs.org > --- > drivers/usb/gadget/fsl_qe_udc.c |4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c > index b09452d..4ad3b82 100644 > --- a/drivers/usb/gadget/fsl_qe_udc.c > +++ b/drivers/usb/gadget/fsl_qe_udc.c > @@ -2661,7 +2661,7 @@ static int __devexit qe_udc_remove(struct > platform_device *ofdev) > usb_del_gadget_udc(&udc->gadget); > > udc->done = &done; > - tasklet_disable(&udc->rx_tasklet); > + tasklet_kill(&udc->rx_tasklet); > > if (udc->nullmap) { > dma_unmap_single(udc->gadget.dev.parent, > @@ -2698,8 +2698,6 @@ static int __devexit qe_udc_remove(struct > platform_device *ofdev) > free_irq(udc->usb_irq, udc); > irq_dispose_mapping(udc->usb_irq); > > - tasklet_kill(&udc->rx_tasklet); > - > iounmap(udc->usb_regs); > > device_unregister(&udc->gadget.dev); > -- > 1.7.9.5 > -- balbi signature.asc Description: Digital signature ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
[PATCH 2/3] usb: gadget: fsl_qe_udc: do not use tasklet_disable before tasklet_kill
If tasklet_disable() is called before related tasklet handled, tasklet_kill will never be finished. tasklet_kill is enough. Signed-off-by: Xiaotian Feng Cc: Li Yang Cc: Felipe Balbi Cc: Greg Kroah-Hartman Cc: linux-...@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org --- drivers/usb/gadget/fsl_qe_udc.c |4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/usb/gadget/fsl_qe_udc.c b/drivers/usb/gadget/fsl_qe_udc.c index b09452d..4ad3b82 100644 --- a/drivers/usb/gadget/fsl_qe_udc.c +++ b/drivers/usb/gadget/fsl_qe_udc.c @@ -2661,7 +2661,7 @@ static int __devexit qe_udc_remove(struct platform_device *ofdev) usb_del_gadget_udc(&udc->gadget); udc->done = &done; - tasklet_disable(&udc->rx_tasklet); + tasklet_kill(&udc->rx_tasklet); if (udc->nullmap) { dma_unmap_single(udc->gadget.dev.parent, @@ -2698,8 +2698,6 @@ static int __devexit qe_udc_remove(struct platform_device *ofdev) free_irq(udc->usb_irq, udc); irq_dispose_mapping(udc->usb_irq); - tasklet_kill(&udc->rx_tasklet); - iounmap(udc->usb_regs); device_unregister(&udc->gadget.dev); -- 1.7.9.5 ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev