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: Of Bjørn Mork
> Rafal Milecki <zajec5@xxxxxxxxx> writes:
> 
> > Hi,
> >
> > This is report from my Samsung NP700G7A-S01PL. This notebook has two
> > USB 2.0 ports and two 3.0 ports.
> >
> > Starting with the following commit:
> >
> > commit 7dd09a1af2c7150269350aaa567a11b06e831003
> > Author: Xenia Ragiadakou <burzalodowa@xxxxxxxxx>
> > Date: Fri Nov 15 05:34:09 2013 +0200
> >
> >     xhci: replace xhci_write_64() with writeq()
> >
> > my USB 3.0 ports don't work anymore. I connect device but don't see
> > any info about new USB device in dmesg. I tried USB 3.0 ports with
> > mouse, serial console adapter, pendrive and hard drive.
> 
> Maybe I misunderstand something, but won't that commit end up replacing
> the previous pair of writel() with a single native writeq() on 64bit
> platforms?
> 
> Judging by the comment in front of the xhci_write_64(), that might not
> necessarily be supported on all xHCI implementations:
> 
>  * Some xHCI implementations may support 64-bit address pointers.  Registers
>  * with 64-bit address pointers should be written to with dword accesses by
>  * writing the low dword first (ptr[0]), then the high dword (ptr[1]) second.
>  * xHCI implementations that do not support 64-bit address pointers will ignore
>  * the high dword, and write order is irrelevant.
> 
> I wonder if (some of) these implementations actually depend on this
> two-cycle write, making __raw_writeq() fail?

I think this is a 32bit kernel on hardware that would support a 64bit one.
So the xhci controller supports 64 bits addressing (etc) but the cpu doesn't
have a 64bit write, so writeq() will do two 32bit accesses.
ISTR that these are in the correct order.
I assume the required compiler barrier is present.

	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