Lars Erdmann updated the USB host controller drivers to version 10.240. (2021/06/06)
- Hobbes
USBDRV is an updated USB host controller drivers: USBUHCD.SYS, USBOHCD.SYS, USBEHCD.SYS, USBD.SYS, USBRESMG.SYS and more USB drivers.
Project URL: http://trac.netlabs.org/usb
Project URL: http://trac.netlabs.org/usb
changes in 10.240:
USBUHCD,USBOHCD,USBEHCD:
1) simplify and speed up routine "CreateTDList": this routine is called hundreds and hundreds of times, it is therefore time critical
USBOHCD:
1) minimize the number of TDs used for a transfer, this will prevent TD depletion when larger transfers/ a lot of transfers are scheduled
(example: I have a builtin webcam sending MPEG packets of size 3060 bytes via a bulk endpoint of wMaxPacketSize = 64 bytes:
it now needs one TD to transfer this data, before, it needed 3060 / 64 = 48 TDs to transfer this data)
USBRESMG:
1) change error return code from "ProcessIoRB" routine to cover the case a transfer is not scheduled at all and therefore no transmission
result is available
2) add a check to "ClearStalled" (the data pipe of a device is to be cleared) for valid pDeviceInfo pointer:
avoids a trap if a device is detached while this routine is being called, there might be more fixes like these in the future
USBUHCD,USBOHCD,USBEHCD:
1) simplify and speed up routine "CreateTDList": this routine is called hundreds and hundreds of times, it is therefore time critical
USBOHCD:
1) minimize the number of TDs used for a transfer, this will prevent TD depletion when larger transfers/ a lot of transfers are scheduled
(example: I have a builtin webcam sending MPEG packets of size 3060 bytes via a bulk endpoint of wMaxPacketSize = 64 bytes:
it now needs one TD to transfer this data, before, it needed 3060 / 64 = 48 TDs to transfer this data)
USBRESMG:
1) change error return code from "ProcessIoRB" routine to cover the case a transfer is not scheduled at all and therefore no transmission
result is available
2) add a check to "ClearStalled" (the data pipe of a device is to be cleared) for valid pDeviceInfo pointer:
avoids a trap if a device is detached while this routine is being called, there might be more fixes like these in the future