Branch: refs/heads/master
  Home:   https://github.com/tianocore/edk2
  Commit: 70db6510d1b40978dcb8877de55bc6915fa1145a
      
https://github.com/tianocore/edk2/commit/70db6510d1b40978dcb8877de55bc6915fa1145a
  Author: Jack Pham <ja...@qti.qualcomm.com>
  Date:   2025-03-18 (Tue, 18 Mar 2025)

  Changed paths:
    M MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c

  Log Message:
  -----------
  MdeModulePkg/XhciDxe: Refactor endpoint interval calculation

Currently the bInterval value must be calculated differently
based on whether the endpoint type is isochronous or interrupt,
and whether the device is low, full, high or super speed.  Plus,
this is duplicated for both XhcInitializeEndpointContext() and
XhcInitializeEndpointContext64().

To reduce code complexity and duplication, and for future ease of
maintenance, factor this logic out to a separate CalculateInterval()
helper function.

Signed-off-by: Jack Pham <ja...@qti.qualcomm.com>


  Commit: f1a2bd23337b274dbc79826a07a742604ad26a7a
      
https://github.com/tianocore/edk2/commit/f1a2bd23337b274dbc79826a07a742604ad26a7a
  Author: Jack Pham <ja...@qti.qualcomm.com>
  Date:   2025-03-18 (Tue, 18 Mar 2025)

  Changed paths:
    M MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c

  Log Message:
  -----------
  MdeModulePkg/XhciDxe: Adjust out-of-range bInterval values

When a USB device is enumerated it will report one or more endpoint
descriptors which contains a bInterval field which specifies the
interval a host should periodically poll for that particular endpoint
when scheduling transfers.  But the units this value is expressed in
(in whole ms, a power of 2 x 1ms, or a power of 2 x 125us) may differ
depending on the speed of the device and whether the endpoint is
isochronous or interrupt.

Some high/super-speed devices, which are supposed to report isoc/int
bInterval as a power of 2 x 125us, incorrectly report full-speed
bInterval values (that is, in whole units of ms) in their interrupt
endpoint descriptors which results in an assertion error due to being
out of range of the spec-expected values.  Rather than asserting, try
to adjust those assuming they were expressed in units of ms with an
upper limit of 128ms.

Signed-off-by: Jack Pham <ja...@qti.qualcomm.com>


Compare: https://github.com/tianocore/edk2/compare/17cdc512f02a...f1a2bd23337b

To unsubscribe from these emails, change your notification settings at 
https://github.com/tianocore/edk2/settings/notifications


_______________________________________________
edk2-commits mailing list
edk2-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to