> On Wed, May 19, 2021 at 10:48:29AM +0200, dave penkler wrote: > > On Sat, 8 May 2021 at 16:29, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> wrote: > > > > > > On Sat, May 08, 2021 at 10:14:41AM +0200, dave penkler wrote: > > > > When the host driver detects a protocol error while processing an > > > > URB it completes the URB with EPROTO status and marks the endpoint > > > > as halted. > > > > > > Not true. It does not mark the endpoint as halted, not unless it > > > receives a STALL handshake from the device. A STALL is not a > > > protocol error. > > > > > > > When the class driver resubmits the URB and the if the host driver > > > > finds the endpoint still marked as halted it should return EPIPE > > > > status on the resubmitted URB > > > > > > Irrelevant. > > Not at all. The point is that when an application is talking to an > > instrument over the usbtmc driver, the underlying host controller and > > its driver will detect and silence a babbling endpoint. > > No, they won't. That is, they will detect a babble error and return an error status, but > they won't silence the endpoint. What makes you think they will? Maybe there is a misunderstanding. I guess that Dave wanted to propose: "EPROTO is a link level issue and needs to be handled by the host driver. When the host driver detects a protocol error while processing an URB it SHOULD complete the URB with EPROTO status and SHOULD mark the endpoint as halted." Is this a realistic fix for all host drivers? -Guido