NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/37884: nvidia ehci umass



The following reply was made to PR kern/37884; it has been noted by GNATS.

From: "Jonathan A. Kollasch" <jakllsch%NetBSD.org@localhost>
To: gnats-bugs%NetBSD.org@localhost
Cc: 
Subject: Re: kern/37884: nvidia ehci umass
Date: Wed, 26 May 2010 03:27:50 +0000

 This bug can probably be traced to the unusual way we activate Queue
 Heads.
 
 We currently link the Queue Head into the Asynchronous List upon pipe
 open.  Then we use the method implemented in ehci_set_qh_qtd() to activate
 the transaction.  This is a somewhat risky method.  The controller is
 constantly reading from and writing to the chained-together Queue Heads
 that we are writing to.
 
 The ehci_set_qh_qtd() method of activation seems hard to derive from
 the EHCI 1.0 specification.  The apparent best-practice for activating
 Queue Heads is to link/unlink them into/from the Asynchronous List.
 Linux and FreeBSD (HPS stack) both appear follow this suggestion.
 
 I've confirmed that the link/unlink method eliminates the problem
 described in this PR.  In the process of testing, it became apparent that
 completely fixing this would amount to a somewhat noticable rototill of
 the driver.
 


Home | Main Index | Thread Index | Old Index