From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:56427) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QIG4T-0004CY-4M for qemu-devel@nongnu.org; Fri, 06 May 2011 04:07:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QIG4S-0001GC-54 for qemu-devel@nongnu.org; Fri, 06 May 2011 04:07:33 -0400 MIME-Version: 1.0 In-Reply-To: <4DC29287.5030106@redhat.com> References: <4DC29287.5030106@redhat.com> Date: Fri, 6 May 2011 10:07:30 +0200 Message-ID: From: Jan Vesely Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] Bug #757654: UHCI fails to signal stall response patch List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: qemu-trivial@nongnu.org, qemu-devel@nongnu.org hi, using the modified (single line) patch only works half-way, it sets the value in status register (guess that's what that line does :)) but hw interrupt is not generated. I tried adding uhci_update_irq and this patch: diff --git a/hw/usb-uhci.c b/hw/usb-uhci.c index a65e0b3..1e9c1e7 100644 --- a/hw/usb-uhci.c +++ b/hw/usb-uhci.c @@ -702,11 +702,15 @@ out: case USB_RET_STALL: td->ctrl |=3D TD_CTRL_STALL; td->ctrl &=3D ~TD_CTRL_ACTIVE; + s->status |=3D UHCI_STS_USBERR; + uhci_update_irq(s); return 1; case USB_RET_BABBLE: td->ctrl |=3D TD_CTRL_BABBLE | TD_CTRL_STALL; td->ctrl &=3D ~TD_CTRL_ACTIVE; + s->status |=3D UHCI_STS_USBERR; + uhci_update_irq(s); /* frame interrupted */ return -1; works. jan On Thu, May 5, 2011 at 2:05 PM, Gerd Hoffmann wrote: >> diff --git a/hw/usb-uhci.c b/hw/usb-uhci.c >> index 346db3e..a51d89b 100644 >> --- a/hw/usb-uhci.c >> +++ b/hw/usb-uhci.c >> @@ -732,11 +732,21 @@ out: >> =C2=A0 =C2=A0 =C2=A0case USB_RET_STALL: >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0td->ctrl |=3D TD_CTRL_STALL; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0td->ctrl&=3D ~TD_CTRL_ACTIVE; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0s->status |=3D UHCI_STS_USBERR; > > Just this line should be enougth. > >> =C2=A0 =C2=A0 =C2=A0case USB_RET_BABBLE: >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0td->ctrl |=3D TD_CTRL_BABBLE | TD_CTRL= _STALL; >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0td->ctrl&=3D ~TD_CTRL_ACTIVE; >> + =C2=A0 =C2=A0 =C2=A0 =C2=A0s->status |=3D UHCI_STS_USBERR; > > Likewise. > > Tried that? > > cheers, > =C2=A0Gerd > >