Re: [PATCH v2 00/13] usb: dwc2: descriptor dma mode bug fixes

2015-11-19 Thread Herrero, Gregory
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


Re: [PATCH v2 00/13] usb: dwc2: descriptor dma mode bug fixes

2015-11-06 Thread Herrero, Gregory
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


[PATCH v2 00/13] usb: dwc2: descriptor dma mode bug fixes

2015-11-05 Thread Gregory Herrero
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(-)

-- 
2.6.2

--
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

2015-11-05 Thread John Youn
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

2015-11-05 Thread Doug Anderson
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