mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
usb: xhci: fix TDS for MTK xHCI1.1
For MTK's xHCI 1.0 or latter, TD size is the number of max packet sized packets remaining in the TD, not including this TRB (following spec). For MTK's xHCI 0.96 and older, TD size is the number of max packet sized packets remaining in the TD, including this TRB (not following spec). Cc: stable <stable@vger.kernel.org> Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com> Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
5d9b70f7d5
commit
72b663a99c
1 changed files with 3 additions and 3 deletions
|
@ -3112,7 +3112,7 @@ static u32 xhci_td_remainder(struct xhci_hcd *xhci, int transferred,
|
|||
{
|
||||
u32 maxp, total_packet_count;
|
||||
|
||||
/* MTK xHCI is mostly 0.97 but contains some features from 1.0 */
|
||||
/* MTK xHCI 0.96 contains some features from 1.0 */
|
||||
if (xhci->hci_version < 0x100 && !(xhci->quirks & XHCI_MTK_HOST))
|
||||
return ((td_total_len - transferred) >> 10);
|
||||
|
||||
|
@ -3121,8 +3121,8 @@ static u32 xhci_td_remainder(struct xhci_hcd *xhci, int transferred,
|
|||
trb_buff_len == td_total_len)
|
||||
return 0;
|
||||
|
||||
/* for MTK xHCI, TD size doesn't include this TRB */
|
||||
if (xhci->quirks & XHCI_MTK_HOST)
|
||||
/* for MTK xHCI 0.96, TD size include this TRB, but not in 1.x */
|
||||
if ((xhci->quirks & XHCI_MTK_HOST) && (xhci->hci_version < 0x100))
|
||||
trb_buff_len = 0;
|
||||
|
||||
maxp = usb_endpoint_maxp(&urb->ep->desc);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue