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@