Re: [PATCH v2 00/13] usb: dwc2: descriptor dma mode bug fixes
On 11/5/2015 12:41 AM, Gregory Herrero wrote: > Hi, > > This patchset contains bug fixes for host descriptor dma mode. > > Descriptor dma mode can't be used as the default mode since controller > does not support split transfers in this mode. > So we add a new configuration parameter which allows descriptor dma mode > to be enabled for full-speed devices only. > > All patches are verified on dwc2 v3.0a with dedicated fifos and our > main test target was usb audio devices. > > All patches are based on Felipe's testing/next branch. > > Regards, > Gregory > > History: > v2: > - Use dma cache in "usb: dwc2: host: use kmem cache to allocate descriptors" > and replace usage of deprecated GFP_DMA32 flag. > - Remove "usb: dwc2: host: free status_buf on hcd de-init". > > v1: > - Fix compilation error introduced by: > "usb: dwc2: host: avoid usage of dma_alloc_coherent with irqs disabled" > - Fix warning introduced by: > "usb: dwc2: host: fix descriptor list address masking" > > Gregory Herrero (11): > usb: dwc2: host: ensure filling of isoc desc is correctly done > usb: dwc2: host: set active bit in isochronous descriptors > usb: dwc2: host: rework isochronous halt path > usb: dwc2: host: fix use of qtd after free in desc dma mode > usb: dwc2: host: spinlock release channel > usb: dwc2: host: add function to compare frame index > usb: dwc2: host: program descriptor for next frame > usb: dwc2: host: always increment available host channel during > release > usb: dwc2: host: process all completed urbs > usb: dwc2: host: avoid usage of dma_alloc_coherent with irqs disabled > usb: dwc2: host: use kmem cache to allocate descriptors > > Mian Yousaf Kaukab (2): > usb: dwc2: host: enable descriptor dma for fs devices > usb: dwc2: host: fix descriptor list address masking > > drivers/usb/dwc2/core.c | 37 +-- > drivers/usb/dwc2/core.h | 26 + > drivers/usb/dwc2/hcd.c | 76 +- > drivers/usb/dwc2/hcd.h | 19 > drivers/usb/dwc2/hcd_ddma.c | 240 > +++ > drivers/usb/dwc2/hcd_intr.c | 15 ++- > drivers/usb/dwc2/hcd_queue.c | 2 +- > drivers/usb/dwc2/hw.h| 4 - > drivers/usb/dwc2/platform.c | 4 + > 9 files changed, 367 insertions(+), 56 deletions(-) > For this series: Acked-by: John Youn I'm not able to test DDMA on host. But I checked that it didn't break anything else. Regards, John -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 00/13] usb: dwc2: descriptor dma mode bug fixes
Hi, On Thu, Nov 5, 2015 at 12:41 AM, Gregory Herrero wrote: > Hi, > > This patchset contains bug fixes for host descriptor dma mode. > > Descriptor dma mode can't be used as the default mode since controller > does not support split transfers in this mode. > So we add a new configuration parameter which allows descriptor dma mode > to be enabled for full-speed devices only. > > All patches are verified on dwc2 v3.0a with dedicated fifos and our > main test target was usb audio devices. > > All patches are based on Felipe's testing/next branch. > > Regards, > Gregory > > History: > v2: > - Use dma cache in "usb: dwc2: host: use kmem cache to allocate descriptors" > and replace usage of deprecated GFP_DMA32 flag. > - Remove "usb: dwc2: host: free status_buf on hcd de-init". > > v1: > - Fix compilation error introduced by: > "usb: dwc2: host: avoid usage of dma_alloc_coherent with irqs disabled" > - Fix warning introduced by: > "usb: dwc2: host: fix descriptor list address masking" > > Gregory Herrero (11): > usb: dwc2: host: ensure filling of isoc desc is correctly done > usb: dwc2: host: set active bit in isochronous descriptors > usb: dwc2: host: rework isochronous halt path > usb: dwc2: host: fix use of qtd after free in desc dma mode > usb: dwc2: host: spinlock release channel > usb: dwc2: host: add function to compare frame index > usb: dwc2: host: program descriptor for next frame > usb: dwc2: host: always increment available host channel during > release > usb: dwc2: host: process all completed urbs > usb: dwc2: host: avoid usage of dma_alloc_coherent with irqs disabled > usb: dwc2: host: use kmem cache to allocate descriptors > > Mian Yousaf Kaukab (2): > usb: dwc2: host: enable descriptor dma for fs devices > usb: dwc2: host: fix descriptor list address masking > > drivers/usb/dwc2/core.c | 37 +-- > drivers/usb/dwc2/core.h | 26 + > drivers/usb/dwc2/hcd.c | 76 +- > drivers/usb/dwc2/hcd.h | 19 > drivers/usb/dwc2/hcd_ddma.c | 240 > +++ > drivers/usb/dwc2/hcd_intr.c | 15 ++- > drivers/usb/dwc2/hcd_queue.c | 2 +- > drivers/usb/dwc2/hw.h| 4 - > drivers/usb/dwc2/platform.c | 4 + > 9 files changed, 367 insertions(+), 56 deletions(-) With the previous version of this series, I could confirm that the series didn't break things terribly (after fixing the DMA flag) and it _sometimes_ made DMA Descriptor mode work for me (I believe it never worked before). It was unclear why it didn't work sometimes and I haven't had a chance to debug it yet. I'm not sure I can give a Tested-by for that, but I figured I'd at least let you know the current status on my rk3288 board. -Doug -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 00/13] usb: dwc2: descriptor dma mode bug fixes
Hi Doug, On Thu, Nov 05, 2015 at 04:32:46PM -0800, Doug Anderson wrote: > Hi, > > On Thu, Nov 5, 2015 at 12:41 AM, Gregory Herrero > wrote: > > Hi, > > > > This patchset contains bug fixes for host descriptor dma mode. > > > > Descriptor dma mode can't be used as the default mode since controller > > does not support split transfers in this mode. > > So we add a new configuration parameter which allows descriptor dma mode > > to be enabled for full-speed devices only. > > > > All patches are verified on dwc2 v3.0a with dedicated fifos and our > > main test target was usb audio devices. > > > > All patches are based on Felipe's testing/next branch. > > > > Regards, > > Gregory > > > > History: > > v2: > > - Use dma cache in "usb: dwc2: host: use kmem cache to allocate > > descriptors" > > and replace usage of deprecated GFP_DMA32 flag. > > - Remove "usb: dwc2: host: free status_buf on hcd de-init". > > > > v1: > > - Fix compilation error introduced by: > > "usb: dwc2: host: avoid usage of dma_alloc_coherent with irqs disabled" > > - Fix warning introduced by: > > "usb: dwc2: host: fix descriptor list address masking" > > > > Gregory Herrero (11): > > usb: dwc2: host: ensure filling of isoc desc is correctly done > > usb: dwc2: host: set active bit in isochronous descriptors > > usb: dwc2: host: rework isochronous halt path > > usb: dwc2: host: fix use of qtd after free in desc dma mode > > usb: dwc2: host: spinlock release channel > > usb: dwc2: host: add function to compare frame index > > usb: dwc2: host: program descriptor for next frame > > usb: dwc2: host: always increment available host channel during > > release > > usb: dwc2: host: process all completed urbs > > usb: dwc2: host: avoid usage of dma_alloc_coherent with irqs disabled > > usb: dwc2: host: use kmem cache to allocate descriptors > > > > Mian Yousaf Kaukab (2): > > usb: dwc2: host: enable descriptor dma for fs devices > > usb: dwc2: host: fix descriptor list address masking > > > > drivers/usb/dwc2/core.c | 37 +-- > > drivers/usb/dwc2/core.h | 26 + > > drivers/usb/dwc2/hcd.c | 76 +- > > drivers/usb/dwc2/hcd.h | 19 > > drivers/usb/dwc2/hcd_ddma.c | 240 > > +++ > > drivers/usb/dwc2/hcd_intr.c | 15 ++- > > drivers/usb/dwc2/hcd_queue.c | 2 +- > > drivers/usb/dwc2/hw.h| 4 - > > drivers/usb/dwc2/platform.c | 4 + > > 9 files changed, 367 insertions(+), 56 deletions(-) > > With the previous version of this series, I could confirm that the > series didn't break things terribly (after fixing the DMA flag) and it > _sometimes_ made DMA Descriptor mode work for me (I believe it never > worked before). It was unclear why it didn't work sometimes and I > haven't had a chance to debug it yet. > > I'm not sure I can give a Tested-by for that, but I figured I'd at > least let you know the current status on my rk3288 board. > Thanks for trying. It would be interesting to see traces when you get a chance to debug it again. I didn't notice any instability with core version 3.00a. Those patches will only impact descriptor DMA mode, so there is no risk to break anything else now that DMA flag is fixed :). BR, Gregory -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: [PATCH v2 00/13] usb: dwc2: descriptor dma mode bug fixes
Hi Felipe, Can you take this serie or would you like me to resend it? BR, Gregory On Fri, Nov 06, 2015 at 12:02:42AM +0100, John Youn wrote: > On 11/5/2015 12:41 AM, Gregory Herrero wrote: > > Hi, > > > > This patchset contains bug fixes for host descriptor dma mode. > > > > Descriptor dma mode can't be used as the default mode since controller > > does not support split transfers in this mode. > > So we add a new configuration parameter which allows descriptor dma mode > > to be enabled for full-speed devices only. > > > > All patches are verified on dwc2 v3.0a with dedicated fifos and our > > main test target was usb audio devices. > > > > All patches are based on Felipe's testing/next branch. > > > > Regards, > > Gregory > > > > History: > > v2: > > - Use dma cache in "usb: dwc2: host: use kmem cache to allocate > > descriptors" > > and replace usage of deprecated GFP_DMA32 flag. > > - Remove "usb: dwc2: host: free status_buf on hcd de-init". > > > > v1: > > - Fix compilation error introduced by: > > "usb: dwc2: host: avoid usage of dma_alloc_coherent with irqs disabled" > > - Fix warning introduced by: > > "usb: dwc2: host: fix descriptor list address masking" > > > > Gregory Herrero (11): > > usb: dwc2: host: ensure filling of isoc desc is correctly done > > usb: dwc2: host: set active bit in isochronous descriptors > > usb: dwc2: host: rework isochronous halt path > > usb: dwc2: host: fix use of qtd after free in desc dma mode > > usb: dwc2: host: spinlock release channel > > usb: dwc2: host: add function to compare frame index > > usb: dwc2: host: program descriptor for next frame > > usb: dwc2: host: always increment available host channel during > > release > > usb: dwc2: host: process all completed urbs > > usb: dwc2: host: avoid usage of dma_alloc_coherent with irqs disabled > > usb: dwc2: host: use kmem cache to allocate descriptors > > > > Mian Yousaf Kaukab (2): > > usb: dwc2: host: enable descriptor dma for fs devices > > usb: dwc2: host: fix descriptor list address masking > > > > drivers/usb/dwc2/core.c | 37 +-- > > drivers/usb/dwc2/core.h | 26 + > > drivers/usb/dwc2/hcd.c | 76 +- > > drivers/usb/dwc2/hcd.h | 19 > > drivers/usb/dwc2/hcd_ddma.c | 240 > > +++ > > drivers/usb/dwc2/hcd_intr.c | 15 ++- > > drivers/usb/dwc2/hcd_queue.c | 2 +- > > drivers/usb/dwc2/hw.h| 4 - > > drivers/usb/dwc2/platform.c | 4 + > > 9 files changed, 367 insertions(+), 56 deletions(-) > > > > For this series: > > Acked-by: John Youn > > > I'm not able to test DDMA on host. But I checked that it didn't > break anything else. > > Regards, > John > > > -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html