Subject: Re: Fix/workarond for USB ** host controller halted ** errors?
To: None <firstname.lastname@example.org>
From: Lennart Augustsson <email@example.com>
Date: 10/05/2005 09:02:37
Try increasing the time if you suspect it's insufficient.
> On a heavily loaded i386 (dual-Xeon) based system,
> using Intel's ICH3 I/O controller chip (which includes a 1.1 USB HC),
> I'm seeing the following uhci errors:
> kernel: uhci1: host controller process error
> kernel: uhci1: host controller halted
> This occurs after several hours of load on the system.
> Apparently, the USB host controller complains about an inconsistency
> when processing
> one of the TD's in its Frame List.
> Is there any workaround and/or fix for this issue?
> I don't want to reboot to solve this.
> In reviewing the uhci code, there could be a race-condition when
> adding/removing Queue Heads
> between the HCD and the HC;
> specifically, the T-bit needs to be set in the elink field of the QH so
> that the HC
> doesn't follow the pointer.
> However, after setting the T-bit, there is a call to
> to give the HC time to stop looking at the TD.
> Could this delay() be insufficient at times, depending on the platform
> in use and/or load on the system?
> Any help you can provide is greatly appreciated.