All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alan Stern <stern@rowland.harvard.edu>
To: David <david@unsolicited.net>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>,
	<linux-media@vger.kernel.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	<dbrownell@users.sourceforge.net>, <leonidv11@gmail.com>,
	Greg KH <gregkh@suse.de>,
	Andrew Morton <akpm@linux-foundation.org>,
	"Rafael J. Wysocki" <rjw@sisk.pl>
Subject: Re: USB/DVB - Old Technotrend TT-connect S-2400 regression tracked down
Date: Mon, 25 May 2009 11:23:00 -0400 (EDT)	[thread overview]
Message-ID: <Pine.LNX.4.44L0.0905251121370.23874-100000@netrider.rowland.org> (raw)
In-Reply-To: <4A189187.4020407@unsolicited.net>

On Sun, 24 May 2009, David wrote:

> Alan Stern wrote:
> > It's not obvious what could be causing this, so let's start out easy.  
> > Try collecting two usbmon traces (instructions are in
> > Documentation/usb/usbmon.txt), showing what happens with and without
> > the reversion.  Maybe some difference will stick ou
> >   
> Traces attached. Took a while as my quad core hangs solid when 0u is
> piped to a file (I had to compile on a laptop and take the logs there).

Okay, here's a patch for you to try.  It refreshes the toggle setting 
in a linked but otherwise idle QH when a new URB is queued.

Alan Stern


Index: usb-2.6/drivers/usb/host/ehci-q.c
===================================================================
--- usb-2.6.orig/drivers/usb/host/ehci-q.c
+++ usb-2.6/drivers/usb/host/ehci-q.c
@@ -88,7 +88,7 @@ static inline void
 qh_update (struct ehci_hcd *ehci, struct ehci_qh *qh, struct ehci_qtd *qtd)
 {
 	/* writes to an active overlay are unsafe */
-	BUG_ON(qh->qh_state != QH_STATE_IDLE);
+	BUG_ON(qh->qh_state != QH_STATE_IDLE && !list_empty(&qh->qtd_list));
 
 	qh->hw_qtd_next = QTD_NEXT(ehci, qtd->qtd_dma);
 	qh->hw_alt_next = EHCI_LIST_END(ehci);
@@ -971,7 +971,13 @@ static struct ehci_qh *qh_append_tds (
 		/* can't sleep here, we have ehci->lock... */
 		qh = qh_make (ehci, urb, GFP_ATOMIC);
 		*ptr = qh;
+	} else if (list_empty(&qh->qtd_list)) {
+		/* There might have been a Clear-Halt while the QH
+		 * was linked but empty.
+		 */
+		qh_refresh(ehci, qh);
 	}
+
 	if (likely (qh != NULL)) {
 		struct ehci_qtd	*qtd;
 


  parent reply	other threads:[~2009-05-25 15:23 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-22 21:32 USB/DVB - Old Technotrend TT-connect S-2400 regression tracked down David
2009-05-22 21:45 ` David
2009-05-23  8:25 ` Pekka Enberg
2009-05-23  8:25   ` Pekka Enberg
2009-05-23 15:15   ` Alan Stern
2009-05-23 18:20     ` David
2009-05-23 19:22       ` David
2009-05-23 21:02         ` Alan Stern
2009-05-24  0:15           ` David
2009-05-24  0:54             ` hermann pitton
2009-05-24  8:35               ` David
2009-05-24 14:33             ` Alan Stern
2009-05-24 15:28               ` David
2009-05-25  2:10                 ` Alan Stern
2009-05-25  2:39                   ` Pete Zaitcev
2009-05-25  9:00                     ` David
2009-05-25 12:25                       ` David
2009-05-26  0:48                         ` Pete Zaitcev
2009-05-26 14:08                           ` Alan Stern
2009-05-26 18:42                           ` David
2009-05-26 19:01                             ` Pete Zaitcev
2009-05-24 15:16             ` Alan Stern
2009-05-25 15:23             ` Alan Stern [this message]
2009-05-25 17:32               ` David
2009-05-25 18:44                 ` David
2009-05-25 21:12                   ` Alan Stern
2009-05-26 20:57                   ` Alan Stern
2009-05-27 18:42                     ` David
2009-05-27 20:20                       ` Alan Stern
2009-05-27 21:28                         ` David

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.44L0.0905251121370.23874-100000@netrider.rowland.org \
    --to=stern@rowland.harvard.edu \
    --cc=akpm@linux-foundation.org \
    --cc=david@unsolicited.net \
    --cc=dbrownell@users.sourceforge.net \
    --cc=gregkh@suse.de \
    --cc=leonidv11@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=penberg@cs.helsinki.fi \
    --cc=rjw@sisk.pl \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.