]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Fix a XHCI driver issue with Intel's Gemini Lake SOC.
authorhselasky <hselasky@FreeBSD.org>
Thu, 9 Jan 2020 09:29:24 +0000 (09:29 +0000)
committerhselasky <hselasky@FreeBSD.org>
Thu, 9 Jan 2020 09:29:24 +0000 (09:29 +0000)
commita3c9c189e78ca48b5515383b7ca04bd33f5b61ee
tree05bd7d17b2952cd6ae283b35e92261066cbc045f
parent4337b4c492a31d35fe1c4a99439581192f1d3e99
Fix a XHCI driver issue with Intel's Gemini Lake SOC.

Do not configure any endpoint twice, but instead keep track of which
endpoints are configured on a per device basis, and use an evaluate
endpoint context command instead. When changing the configuration make
sure all endpoints get deconfigured and the configured endpoint mask
is reset.

This fixes an issue where an endpoint might stop working if there is
an error and the endpoint needs to be reconfigured as a part of the
error recovery mechanism in the FreeBSD USB stack.

Tested by: Shichun.Ma@dell.com
MFC after: 1 week
Sponsored by: Mellanox Technologies
sys/dev/usb/controller/xhci.c
sys/dev/usb/controller/xhci.h