Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Jan 2015 22:57:14 +0300
From:      Chagin Dmitry <dchagin@freebsd.org>
To:        Hans Petter Selasky <hps@selasky.org>
Cc:        freebsd-usb@freebsd.org
Subject:   Re: [Bug?] Control Transfers in xHCI
Message-ID:  <20150129195714.GA3683@dchagin.static.corbina.net>
In-Reply-To: <54CA4BE3.2090706@selasky.org>
References:  <20150129.212550.434561541001871867.okuno.kohji@jp.panasonic.com> <54CA4BE3.2090706@selasky.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, Jan 29, 2015 at 04:04:03PM +0100, Hans Petter Selasky wrote:
> On 01/29/15 13:25, Kohji Okuno wrote:
> > Hi HPS,
> >
> > I found a bug in xHCI device driver.
> >
> > Acording to extensible-host-controler-interface-usb-xhci.pdf:"3.2.9
> > Control Transfers"...
> >
> > A Data Stage TD consists of a Data Stage TRB followed by zero or more
> > Normal TRBs. If the data is not physically contiguous, Normal TRBs may
> > be chained to the Data Stage TRB.
> >
> >
> > But, in the current imprementation, when two or more TRBs are needed,
> > the device driver set XHCI_TRB_TYPE_DATA_STAGE to all TRBs.
> > This is the violation of the spec.
> >
> > In my minor xHCI, I encountered strange bubble error in a control
> > transfer. After I changed as the following, I succeeded its control
> > transfer.
> >
> > Would you check the following (****)?
> >
>=20
> Hi Kohji,
>=20
> You are correct there is a bug, but your patch is not correct.
>=20
> In FreeBSD we allow SETUP and DATA stages to be done as separate jobs.=20
> That means at the entry of creating a new DATA chain, we need to check=20
> if it is there first DATA packet or not.
>=20
> Can you test the attached patch and see if it works for you?
>=20
patch is lost somewhere, Hans.
--=20
Have fun!
chd



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20150129195714.GA3683>