Bug in split transactions on Raspberry Pi

Doug Anderson dianders at chromium.org
Tue Jan 26 13:35:14 PST 2016


On Tue, Jan 26, 2016 at 12:29 PM, Alan Stern <stern at rowland.harvard.edu> wrote:
> On Tue, 26 Jan 2016, Doug Anderson wrote:
>> >> Doug, do you have a list of patches you'd like me to try on top of the
>> >> rpi-4.4.y branch?
>> >
>> > Nice!  You can give this series a try.  It aims to improve SPLIT
>> > scheduling quite a bit:
>> >
>> > 8091691 New          [v5,01/21] usb: dwc2: rockchip: Make the
>> > max_transfer_size automatic
>> > 8091701 New          [v5,02/21] usb: dwc2: host: Get aligned DMA in a
>> > more supported way
> This one failed to apply; there was a merge conflict in hcd_queue.c.
> The original code says:
> void dwc2_hcd_qh_free(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
> {
>         if (hsotg->core_params->dma_desc_enable > 0) {
>                 dwc2_hcd_qh_free_ddma(hsotg, qh);
>         } else {
> whereas the patch says:
>  void dwc2_hcd_qh_free(struct dwc2_hsotg *hsotg, struct dwc2_qh *qh)
>  {
> -       if (qh->desc_list) {
> +       if (qh->desc_list)
>                 dwc2_hcd_qh_free_ddma(hsotg, qh);
> -       } else {
> This probably indicates that the list of patches was incomplete (i.e.,
> some other patches were applied before these).  Also, the patches
> aren't listed in order of the patchwork IDs -- which order is correct?

The order like 01, 02, 03, etc is correct.  Patchwork numbers things
in a random order (depending on the vagaries of SMTP and which one
arrives to their server first).

Ah, I had tried linux/master recently, but that has a patch that's not in v4.4:

fbb9e22b15ad usb: dwc2: host: enable descriptor dma for fs devices

I'd bet that you don't have descriptor DMA turned on anyway, so the
descriptor DMA patches won't really matter (they'll just be noops).
...but you could pick all the patches up to that one to avoid

fbb9e22b15ad usb: dwc2: host: enable descriptor dma for fs devices
762d3a1a9cd7 usb: dwc2: host: process all completed urbs
3f808bdae75e usb: dwc2: host: always increment available host channel
during release
c17b337c1ea4 usb: dwc2: host: program descriptor for next frame
b9392d9920fd usb: dwc2: host: add function to compare frame index
2b046bc5aaef usb: dwc2: host: spinlock release channel
26a19ea69906 usb: dwc2: host: fix use of qtd after free in desc dma mode
c503b3815385 usb: dwc2: host: rework isochronous halt path
dde4c1bf5df0 usb: dwc2: host: set active bit in isochronous descriptors
3ac38d260fa5 usb: dwc2: host: ensure filling of isoc desc is correctly done


More information about the linux-rpi-kernel mailing list