RE: xhci regression since "xhci: replace xhci_write_64() with writeq()" - devices not detected

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

 



From: Sarah Sharp
> On Wed, Jan 29, 2014 at 12:50:04PM +0200, Xenia Ragiadakou wrote:
> >
> > Like Bjørn already pointed out, I think too the problem is that the
> > USB3.0 host controller does not support 64 bit addressing (this can
> > be seen from the first bit of HCC PARAMS that is 0) but the patch
> > does not take it into account and blindly tries to perform 64bit
> > write accesses just because your system is 64bit. My mistake. I will
> > try to find a solution for that and send a patch when I ll return
> > home.
> 
> I think the solution should be to just revert the writeq patch, and
> leave the xhci_write64 in place.  We can always optimize that function
> later to do a writeq if the host supports 64-bit writes, but we'll have
> to analyze whether the performance impact of doing so makes sense.

The two 32bit writes will be seen by the PCIe system as writes
to the same address - which will force it to synchronise them.
This may well mean that the second can't be sent until the
first completes.

OTOH the only 64bit writes are during setup and error paths.
In particular the doorbell writes are 32bit.
So the additional cost (equivalent to a PCIe read) probably
doesn't really matter at all.

	David

��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥





[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux