CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected]        2022/09/04 02:42:40

Modified files:
        sys/arch/octeon/dev: octdwctwo.c 
        sys/dev/fdt    : bcm2835_dwctwo.c 
        sys/dev/usb    : uhub.c usbdivar.h 
        sys/dev/usb/dwc2: dwc2.c dwc2.h dwc2_core.c dwc2_core.h 
                          dwc2_coreintr.c dwc2_hcd.c dwc2_hcd.h 
                          dwc2_hcdddma.c dwc2_hcdintr.c dwc2_hcdqueue.c 
                          dwc2_hw.h dwc2var.h files.dwc2 
Added files:
        sys/dev/usb/dwc2: dwc2_params.c gcd.h 

Log message:
Improve periodic USB transfers (device intr, isoc) used for input
devices, audio, and video.  It's still not perfect, and will need
further improvements.

High level, the diff contains following changes:

* Sync up with the Linux code base, which did re-work the periodic
scheduling code path.
* Run the driver in IPL_VM instead of IPL_USB to prioritize us before
lower/equal interrupts (same what NetBSD does).
* Add two new flags to our USB stack required by the updated driver
code:
- 'multi' flag in the usbd_hub structure to keep track whether
a hub has one Transaction Translator for all ports (single TT)
or one Transaction Translator per port (multi TT).
- 'hcpriv' pointer in the usbd_tt structure for the HC driver to
allocate memory for the scheduling depending on single or multi TT.

"go for it" kettenis@

Reply via email to