Re: linux-3.3.4 and 3.4-rc5: ASMedia2105 detected at 480Mbps instead of 5Gbps

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

 




Martin Mokrejs wrote:
> Hi,
>   I just bought a Silverstone Treasure TS04B external case. I thought
> it will be based on ASMedia1051 chip but maybe because of the 'B' at
> the end ... ?
> 
>   When I read from a SATAII disk placed into the casing I read at about
> 32MB/s (from raw disk -- dd if=/dev/sdc of=/dev/null) when having connected
> it to either internal Texas Instruments USB3.0 chip or to a NEC USB3.0 chip
> in an Express Card. I conclude this is not an issue with the host controller
> chipset in my laptop Dell Vostro 3550 or the Express card but an issue with
> xhci_hcd or the ASMedia2105 chip. That was with 3.3.4 kernel.
> 
>   I found something on the internet reported by people having an onboard
> ASMedia controller which can be switched by BIOS from XHCI to EHCI ..
> I do not understand whether that relates to me or not. Aside from the fact
> that I have the ASMedia chip in the "client" device (a HDD enclosure).
> 
>   If I look into the "lsusb -t" output I see the device is at 480Mbps.
> Why? I rebooted into 3.4-rc5 and first, connected the enclosure to the
> TexasInstruments USB3 port. 
> 
> This gave me:
> 
> [   92.996770] usb 3-2: new high-speed USB device number 2 using xhci_hcd
> [   93.056517] xhci_hcd 0000:0b:00.0: device LPM test failed, may disconnect and re-enumerate
> [   93.064234] usb 3-2: New USB device found, idVendor=174c, idProduct=5106
> [   93.064245] usb 3-2: New USB device strings: Mfr=2, Product=3, SerialNumber=1
> [   93.064252] usb 3-2: Product: AS2105
> [   93.064257] usb 3-2: Manufacturer: ASMedia
> [   93.064262] usb 3-2: SerialNumber:      WD-WX51C10U8155
> [   93.064436] usb 3-2: ep 0x81 - rounding interval to 32768 microframes, ep desc says 0 microframes
> [   93.064443] usb 3-2: ep 0x2 - rounding interval to 32768 microframes, ep desc says 0 microframes
> [   93.065037] scsi7 : usb-storage 3-2:1.0
> 
> but I wasn't catching the USB trafiic, so you only see in the attached dmesg output.
> On next two re-plkugs of the device it did not happen.
> 
> 
> Then I unpugged it, started usbmon to catch traffic on the same port (the
> port remained in the 480Mbps mode, claimed by xhci_hcd). I ran smartctl to fetch
> some SMART data from the disc and unplugged it again. The recorded file is named
> 3.4-rc5-ASMedia2105_via_Texas_instruments_Bus3_reporting_480Mbps.usbmon.out
> and logs are in 3.4-rc5-ASMedia2105_via_Texas_instruments_Bus3_reporting_480Mbps.txt.
> 
> 
> 
> Then, I saw the other port coming out from the Texas Instruments chip is
> still in 5Gbps mode, so I started to record USB traffic again, connected the
> enclosure to that port and likewise, it is in 3.4-rc5-ASMedia2105_via_Texas_instruments_Bus4_reporting_5Gbps.usbmon.out
> and logs in 3.4-rc5-ASMedia2105_via_Texas_instruments_Bus4_reporting_5Gbps.txt.
> 
>   I hope you can infer something from them as I will probably return the external
> enclosure and go for the "old" ASMedia1051 in Silvertsone RVS02 (if I am lucky
> to grab the right piece).
> 
>   Whats of interest in the ASMedia2005 chip, btw?
> 
>   (I can repeat the test with NEC Corporation uPD720200 USB 3.0 if you want).

So when connected to the NEC controller I found out 'uas' driver is being used:
http://pastebin.com/E89fESQ0 . And with UAS driver omitted from the kernel I get:
http://pastebin.com/pAdmuhpM (merely same - only at high-speeed).

The race between suspend and wekeup sounds weird (a snippet from the latter pastebin):

[  374.658784] xhci_hcd 0000:11:00.0: set port remote wake mask, actual port 0 status  = 0xe4002a0
[  374.658810] xhci_hcd 0000:11:00.0: set port remote wake mask, actual port 1 status  = 0xe0002a0
[  374.658821] hub 6-0:1.0: hub_suspend
[  374.658834] usb usb6: bus auto-suspend, wakeup 1
[  374.658858] usb usb6: suspend raced with wakeup event
[  374.658859] usb usb6: usb auto-resume
[  374.698698] hub 6-0:1.0: hub_resume
[  374.698723] xhci_hcd 0000:11:00.0: get port status, actual port 0 status  = 0x4002a0
[  374.698730] xhci_hcd 0000:11:00.0: Get port status returned 0x4002a0
[  374.698745] xhci_hcd 0000:11:00.0: get port status, actual port 1 status  = 0x2a0
[  374.698751] xhci_hcd 0000:11:00.0: Get port status returned 0x2a0
[  374.698841] hub 6-0:1.0: state 7 ports 2 chg 0000 evt 0000
[  376.695757] xhci_hcd 0000:11:00.0: set port remote wake mask, actual port 0 status  = 0xe4002a0
[  376.695786] xhci_hcd 0000:11:00.0: set port remote wake mask, actual port 1 status  = 0xe0002a0
[  376.695797] hub 6-0:1.0: hub_suspend
[  376.695810] usb usb6: bus auto-suspend, wakeup 1
[  376.695834] usb usb6: suspend raced with wakeup event
[  376.695835] usb usb6: usb auto-resume
[  376.735623] hub 6-0:1.0: hub_resume
[  376.735645] xhci_hcd 0000:11:00.0: get port status, actual port 0 status  = 0x4002a0
[  376.735652] xhci_hcd 0000:11:00.0: Get port status returned 0x4002a0
[  376.735668] xhci_hcd 0000:11:00.0: get port status, actual port 1 status  = 0x2a0
[  376.735674] xhci_hcd 0000:11:00.0: Get port status returned 0x2a0
[  376.735757] hub 6-0:1.0: state 7 ports 2 chg 0000 evt 0000
[  378.732723] xhci_hcd 0000:11:00.0: set port remote wake mask, actual port 0 status  = 0xe4002a0
[  378.732751] xhci_hcd 0000:11:00.0: set port remote wake mask, actual port 1 status  = 0xe0002a0
[  378.732762] hub 6-0:1.0: hub_suspend
[  378.732774] usb usb6: bus auto-suspend, wakeup 1
[  378.732799] usb usb6: suspend raced with wakeup event
[  378.732801] usb usb6: usb auto-resume
[  378.772626] hub 6-0:1.0: hub_resume
[  378.772651] xhci_hcd 0000:11:00.0: get port status, actual port 0 status  = 0x4002a0
[  378.772658] xhci_hcd 0000:11:00.0: Get port status returned 0x4002a0
[  378.772674] xhci_hcd 0000:11:00.0: get port status, actual port 1 status  = 0x2a0
[  378.772680] xhci_hcd 0000:11:00.0: Get port status returned 0x2a0
[  378.772777] hub 6-0:1.0: state 7 ports 2 chg 0000 evt 0000
[  380.769669] xhci_hcd 0000:11:00.0: set port remote wake mask, actual port 0 status  = 0xe4002a0
[  380.769696] xhci_hcd 0000:11:00.0: set port remote wake mask, actual port 1 status  = 0xe0002a0
[  380.769708] hub 6-0:1.0: hub_suspend
[  380.769721] usb usb6: bus auto-suspend, wakeup 1
[  380.769738] usb usb6: suspend raced with wakeup event
[  380.769743] usb usb6: usb auto-resume
[  380.809556] hub 6-0:1.0: hub_resume
[  380.809579] xhci_hcd 0000:11:00.0: get port status, actual port 0 status  = 0x4002a0
[  380.809586] xhci_hcd 0000:11:00.0: Get port status returned 0x4002a0
[  380.809600] xhci_hcd 0000:11:00.0: get port status, actual port 1 status  = 0x2a0
[  380.809605] xhci_hcd 0000:11:00.0: Get port status returned 0x2a0
[  380.809635] hub 6-0:1.0: state 7 ports 2 chg 0000 evt 0000
[  382.806662] xhci_hcd 0000:11:00.0: set port remote wake mask, actual port 0 status  = 0xe4002a0
[  382.806690] xhci_hcd 0000:11:00.0: set port remote wake mask, actual port 1 status  = 0xe0002a0
[  382.806701] hub 6-0:1.0: hub_suspend
[  382.806715] usb usb6: bus auto-suspend, wakeup 1
[  382.806740] usb usb6: suspend raced with wakeup event
[  382.806741] usb usb6: usb auto-resume
[  382.846509] hub 6-0:1.0: hub_resume
[  382.846529] xhci_hcd 0000:11:00.0: get port status, actual port 0 status  = 0x4002a0
[  382.846536] xhci_hcd 0000:11:00.0: Get port status returned 0x4002a0
[  382.846550] xhci_hcd 0000:11:00.0: get port status, actual port 1 status  = 0x2a0
[  382.846556] xhci_hcd 0000:11:00.0: Get port status returned 0x2a0
[  382.846652] hub 6-0:1.0: state 7 ports 2 chg 0000 evt 0000
[  385.562561] xhci_hcd 0000:11:00.0: set port remote wake mask, actual port 0 status  = 0xe4002a0
[  385.562589] xhci_hcd 0000:11:00.0: set port remote wake mask, actual port 1 status  = 0xe0002a0
[  385.562601] hub 6-0:1.0: hub_suspend
[  385.562614] usb usb6: bus auto-suspend, wakeup 1
[  385.562636] usb usb6: suspend raced with wakeup event
[  385.562637] usb usb6: usb auto-resume
[  385.602458] hub 6-0:1.0: hub_resume
[  385.602482] xhci_hcd 0000:11:00.0: get port status, actual port 0 status  = 0x4002a0
[  385.602489] xhci_hcd 0000:11:00.0: Get port status returned 0x4002a0
[  385.602505] xhci_hcd 0000:11:00.0: get port status, actual port 1 status  = 0x2a0
[  385.602511] xhci_hcd 0000:11:00.0: Get port status returned 0x2a0
[  385.602609] hub 6-0:1.0: state 7 ports 2 chg 0000 evt 0000


When I removed also the USB power management although the race messages obviously disappeared
but I still get only high-speed connection: http://pastebin.com/dzSbyPGM .

Martin
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


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

  Powered by Linux