From 20e5c023919c8982aa40b818efb134800c6ccad9 Mon Sep 17 00:00:00 2001 From: 4lDO2 <4lDO2@protonmail.com> Date: Sat, 15 Feb 2020 09:55:36 +0100 Subject: [PATCH] Use correct ioc and chain bits when creating trbs. --- xhcid/src/xhci/scheme.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/xhcid/src/xhci/scheme.rs b/xhcid/src/xhci/scheme.rs index 50fb886b2b..f8c35f877b 100644 --- a/xhcid/src/xhci/scheme.rs +++ b/xhcid/src/xhci/scheme.rs @@ -918,6 +918,10 @@ impl Xhci { |trb, cycle| { let len = cmp::min(bytes_left, max_transfer_size as usize) as u32; + // set the interrupt on completion (IOC) flag for the last trb. + let ioc = bytes_left <= max_transfer_size as usize; + let chain = !ioc; + trb.normal( buffer, len, @@ -926,7 +930,7 @@ impl Xhci { 0, false, true, - false, + chain, true, idt, false,