All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
To: William Allen <william.allentx@gmail.com>,
	Mathias Nyman <mathias.nyman@linux.intel.com>
Cc: "linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	Mathias Nyman <mathias.nyman@intel.com>
Subject: Re: USB 3.2 Gen 2x2 "Superspeed+20GBps" support for ASM3242
Date: Wed, 10 Mar 2021 01:19:51 +0000	[thread overview]
Message-ID: <0c5f9e2e-e18e-5727-a7ae-7e92bbd45a0e@synopsys.com> (raw)
In-Reply-To: <2c0011d3-b660-867f-c94e-2af7d83496bc@synopsys.com>

Thinh Nguyen wrote:
> Hi,
>
> William Allen wrote:
>> Thank you! I tested your patches and got a little bit of success. The
>> dmesg output now shows the drive connecting at SuperSpeedPlus Gen 2,
>> which is inline with the 5.11.2-arch1-1 kernel, but shows the same
>> failure messages, except under the "scsi" facility, rather than the
>> "ses" facility
>>
>>
>> 5.12.0-rc2-next-20210309-2-next-git (manually added your patches to
>> the PKGBUILD file)
>> -------------------------------------------------
>> usb 5-1: new SuperSpeedPlus Gen 2 USB device number 2 using xhci_hcd
> It seems like you did not apply all the patches I provided. It wouldn't
> just print "Gen 2" here if you had applied all the patches. If the SSP
> rate is unknown, it would just print "SuperSpeed Plus".
>
> Refer to this patch:
> https://patchwork.kernel.org/project/linux-usb/patch/d7049743924adf82f93ddfe403a5ebb9ac06e49b.1612410491.git.Thinh.Nguyen@synopsys.com/
>
> Please apply all 8 of the patches here:
> https://patchwork.kernel.org/project/linux-usb/list/?series=427561
>
> If there are still issues, I can provide some debugging patches.
>
> BR,
> Thinh
>
>
>> usb 5-1: New USB device found, idVendor=1058, idProduct=2642, bcdDevice=10.03
>> usb 5-1: New USB device strings: Mfr=2, Product=3, SerialNumber=1
>> usb 5-1: Product: Game Drive
>> usb 5-1: Manufacturer: Western Digital
>> usb 5-1: SerialNumber: 323130334431343030303736
>> scsi host12: uas
>> scsi 12:0:0:0: Direct-Access     WD       Game Drive       1003 PQ: 0 ANSI: 6
>> scsi 12:0:0:1: Enclosure         WD       SES Device       1003 PQ: 0 ANSI: 6
>> sd 12:0:0:0: [sdi] 3907029168 512-byte logical blocks: (2.00 TB/1.82 TiB)
>> sd 12:0:0:0: [sdi] Write Protect is off
>> sd 12:0:0:0: [sdi] Mode Sense: 57 00 10 00
>> sd 12:0:0:0: [sdi] Write cache: enabled, read cache: enabled, supports
>> DPO and FUA
>> sd 12:0:0:0: [sdi] Optimal transfer size 33553920 bytes
>> scsi 12:0:0:1: Failed to get diagnostic page 0x1
>> scsi 12:0:0:1: Failed to bind enclosure -19

BTW, this failure is unrelated to which speed the device is connected
as. The device should just work regardless of the connected speed.
Something else is wrong here. It could be a problem with the device not
responding to a SCSI command correctly (often I find many UASP devices
don't properly handle/respond correctly for an unsupported command).

You can force the device to run with BOT protocol instead of UASP since
it's less likely to run into this problem. (Add the 'u' quirk to ignore
UAS).

Thanks,
Thinh

>> sd 12:0:0:0: [sdi] Attached SCSI disk
>> ses 12:0:0:1: Attached Enclosure device
>>
>>
>> The drive also now connects at 10000M, whereas before it was
>> connecting at 5000M.
>> I still am not seeing anything relating to Gen 2x2 speeds.
>>
>>
>> I checked the listed lanes, which IS showing new information. Value of:
>> /sys/bus/usb/devices/usb5/rx_lanes = 2
>> /sys/bus/usb/devices/usb5/tx_lanes = 2
>>
>>
>> Here is the output of lsusb -vvv for the device:
>> -------------------------------------------------
>> Bus 005 Device 002: ID 1058:2642 Western Digital Technologies, Inc. Game Drive
>> Device Descriptor:
>>   bLength                18
>>   bDescriptorType         1
>>   bcdUSB               3.20
>>   bDeviceClass            0
>>   bDeviceSubClass         0
>>   bDeviceProtocol         0
>>   bMaxPacketSize0         9
>>   idVendor           0x1058 Western Digital Technologies, Inc.
>>   idProduct          0x2642
>>   bcdDevice           10.03
>>   iManufacturer           2 Western Digital
>>   iProduct                3 Game Drive
>>   iSerial                 1 323130334431343030303736
>>   bNumConfigurations      1
>>   Configuration Descriptor:
>>     bLength                 9
>>     bDescriptorType         2
>>     wTotalLength       0x0079
>>     bNumInterfaces          1
>>     bConfigurationValue     1
>>     iConfiguration          0
>>     bmAttributes         0x80
>>       (Bus Powered)
>>     MaxPower              896mA
>>     Interface Descriptor:
>>       bLength                 9
>>       bDescriptorType         4
>>       bInterfaceNumber        0
>>       bAlternateSetting       0
>>       bNumEndpoints           2
>>       bInterfaceClass         8 Mass Storage
>>       bInterfaceSubClass      6 SCSI
>>       bInterfaceProtocol     80 Bulk-Only
>>       iInterface              0
>>       Endpoint Descriptor:
>>         bLength                 7
>>         bDescriptorType         5
>>         bEndpointAddress     0x81  EP 1 IN
>>         bmAttributes            2
>>           Transfer Type            Bulk
>>           Synch Type               None
>>           Usage Type               Data
>>         wMaxPacketSize     0x0400  1x 1024 bytes
>>         bInterval               0
>>         bMaxBurst              15
>>       Endpoint Descriptor:
>>         bLength                 7
>>         bDescriptorType         5
>>         bEndpointAddress     0x02  EP 2 OUT
>>         bmAttributes            2
>>           Transfer Type            Bulk
>>           Synch Type               None
>>           Usage Type               Data
>>         wMaxPacketSize     0x0400  1x 1024 bytes
>>         bInterval               0
>>         bMaxBurst              15
>>     Interface Descriptor:
>>       bLength                 9
>>       bDescriptorType         4
>>       bInterfaceNumber        0
>>       bAlternateSetting       1
>>       bNumEndpoints           4
>>       bInterfaceClass         8 Mass Storage
>>       bInterfaceSubClass      6 SCSI
>>       bInterfaceProtocol     98
>>       iInterface              0
>>       Endpoint Descriptor:
>>         bLength                 7
>>         bDescriptorType         5
>>         bEndpointAddress     0x81  EP 1 IN
>>         bmAttributes            2
>>           Transfer Type            Bulk
>>           Synch Type               None
>>           Usage Type               Data
>>         wMaxPacketSize     0x0400  1x 1024 bytes
>>         bInterval               0
>>         bMaxBurst              15
>>         MaxStreams             32
>>         Data-in pipe (0x03)
>>       Endpoint Descriptor:
>>         bLength                 7
>>         bDescriptorType         5
>>         bEndpointAddress     0x02  EP 2 OUT
>>         bmAttributes            2
>>           Transfer Type            Bulk
>>           Synch Type               None
>>           Usage Type               Data
>>         wMaxPacketSize     0x0400  1x 1024 bytes
>>         bInterval               0
>>         bMaxBurst              15
>>         MaxStreams             32
>>         Data-out pipe (0x04)
>>       Endpoint Descriptor:
>>         bLength                 7
>>         bDescriptorType         5
>>         bEndpointAddress     0x83  EP 3 IN
>>         bmAttributes            2
>>           Transfer Type            Bulk
>>           Synch Type               None
>>           Usage Type               Data
>>         wMaxPacketSize     0x0400  1x 1024 bytes
>>         bInterval               0
>>         bMaxBurst              15
>>         MaxStreams             32
>>         Status pipe (0x02)
>>       Endpoint Descriptor:
>>         bLength                 7
>>         bDescriptorType         5
>>         bEndpointAddress     0x04  EP 4 OUT
>>         bmAttributes            2
>>           Transfer Type            Bulk
>>           Synch Type               None
>>           Usage Type               Data
>>         wMaxPacketSize     0x0400  1x 1024 bytes
>>         bInterval               0
>>         bMaxBurst               0
>>         Command pipe (0x01)
>> Binary Object Store Descriptor:
>>   bLength                 5
>>   bDescriptorType        15
>>   wTotalLength       0x002a
>>   bNumDeviceCaps          3
>>   USB 2.0 Extension Device Capability:
>>     bLength                 7
>>     bDescriptorType        16
>>     bDevCapabilityType      2
>>     bmAttributes   0x0000f41e
>>       BESL Link Power Management (LPM) Supported
>>     BESL value     1024 us
>>     Deep BESL value    61440 us
>>   SuperSpeed USB Device Capability:
>>     bLength                10
>>     bDescriptorType        16
>>     bDevCapabilityType      3
>>     bmAttributes         0x00
>>     wSpeedsSupported   0x000e
>>       Device can operate at Full Speed (12Mbps)
>>       Device can operate at High Speed (480Mbps)
>>       Device can operate at SuperSpeed (5Gbps)
>>     bFunctionalitySupport   1
>>       Lowest fully-functional device speed is Full Speed (12Mbps)
>>     bU1DevExitLat          10 micro seconds
>>     bU2DevExitLat        2047 micro seconds
>>   SuperSpeedPlus USB Device Capability:
>>     bLength                20
>>     bDescriptorType        16
>>     bDevCapabilityType     10
>>     bmAttributes         0x00000001
>>       Sublink Speed Attribute count 1
>>       Sublink Speed ID count 0
>>     wFunctionalitySupport   0x1100
>>     bmSublinkSpeedAttr[0]   0x000a4030
>>       Speed Attribute ID: 0 10Gb/s Symmetric RX SuperSpeedPlus
>>     bmSublinkSpeedAttr[1]   0x000a40b0
>>       Speed Attribute ID: 0 10Gb/s Symmetric TX SuperSpeedPlus
>> can't get debug descriptor: Resource temporarily unavailable
>> Device Status:     0x0000
>>   (Bus Powered)
>>
>>
>> And here is output of lspci relating to the ASM3242:
>> -------------------------------------------------
>> 04:00.0 USB controller: ASMedia Technology Inc. ASM3242 USB 3.2 Host
>> Controller (prog-if 30 [XHCI])
>>      Subsystem: ASMedia Technology Inc. ASM3242 USB 3.2 Host Controller
>>      Physical Slot: 1
>>      Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
>> ParErr+ Stepping- SERR- FastB2B- DisINTx+
>>      Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
>> <TAbort- <MAbort- >SERR- <PERR- INTx-
>>      Latency: 0, Cache Line Size: 64 bytes
>>      Interrupt: pin A routed to IRQ 62
>>      Region 0: Memory at f7df0000 (64-bit, non-prefetchable) [size=32K]
>>      Capabilities: [50] MSI: Enable- Count=1/8 Maskable- 64bit+
>>           Address: 0000000000000000  Data: 0000
>>      Capabilities: [68] MSI-X: Enable+ Count=8 Masked-
>>           Vector table: BAR=0 offset=00002000
>>           PBA: BAR=0 offset=00002080
>>      Capabilities: [78] Power Management version 3
>>           Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA
>> PME(D0+,D1-,D2-,D3hot+,D3cold+)
>>           Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
>>      Capabilities: [80] Express (v2) Legacy Endpoint, MSI 00
>>           DevCap:   MaxPayload 512 bytes, PhantFunc 0, Latency L0s
>> <64ns, L1 <2us
>>                ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
>>           DevCtl:   CorrErr- NonFatalErr+ FatalErr+ UnsupReq-
>>                RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+
>>                MaxPayload 256 bytes, MaxReadReq 4096 bytes
>>           DevSta:   CorrErr+ NonFatalErr- FatalErr- UnsupReq+ AuxPwr+ TransPend-
>>           LnkCap:   Port #0, Speed 8GT/s, Width x4, ASPM L1, Exit
>> Latency L1 unlimited
>>                ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
>>           LnkCtl:   ASPM Disabled; RCB 64 bytes, Disabled- CommClk+
>>                ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>>           LnkSta:   Speed 8GT/s (ok), Width x4 (ok)
>>                TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
>>           DevCap2: Completion Timeout: Range A, TimeoutDis- NROPrPrP- LTR+
>>                 10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt+
>> EETLPPrefix-
>>                 EmergencyPowerReduction Not Supported,
>> EmergencyPowerReductionInit-
>>                 FRS-
>>                 AtomicOpsCap: 32bit- 64bit- 128bitCAS-
>>           DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR-
>> OBFF Disabled,
>>                 AtomicOpsCtl: ReqEn-
>>           LnkCap2: Supported Link Speeds: 2.5-8GT/s, Crosslink-
>> Retimer- 2Retimers- DRS-
>>           LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
>>                 Transmit Margin: Normal Operating Range,
>> EnterModifiedCompliance- ComplianceSOS-
>>                 Compliance De-emphasis: -6dB
>>           LnkSta2: Current De-emphasis Level: -6dB,
>> EqualizationComplete+ EqualizationPhase1+
>>                 EqualizationPhase2+ EqualizationPhase3+ LinkEqualizationRequest-
>>                 Retimer- 2Retimers- CrosslinkRes: unsupported
>>      Capabilities: [c0] Subsystem: ASMedia Technology Inc. Device 0201
>>      Capabilities: [100 v1] Advanced Error Reporting
>>           UESta:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
>> RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
>>           UEMsk:    DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
>> RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
>>           UESvrt:   DLP- SDES+ TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt-
>> RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
>>           CESta:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
>>           CEMsk:    RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
>>           AERCap:   First Error Pointer: 00, ECRCGenCap+ ECRCGenEn-
>> ECRCChkCap- ECRCChkEn-
>>                MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
>>           HeaderLog: 00000000 00000000 00000000 00000000
>>      Capabilities: [200 v1] Secondary PCI Express
>>           LnkCtl3: LnkEquIntrruptEn- PerformEqu-
>>           LaneErrStat: LaneErr at lane: 0 1 2 3
>>      Capabilities: [300 v1] Latency Tolerance Reporting
>>           Max snoop latency: 0ns
>>           Max no snoop latency: 0ns
>>      Capabilities: [400 v1] L1 PM Substates
>>           L1SubCap: PCI-PM_L1.2+ PCI-PM_L1.1+ ASPM_L1.2+ ASPM_L1.1+
>> L1_PM_Substates+
>>                  PortCommonModeRestoreTime=0us PortTPowerOnTime=10us
>>           L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1- ASPM_L1.2- ASPM_L1.1-
>>                   T_CommonMode=0us LTR1.2_Threshold=0ns
>>           L1SubCtl2: T_PwrOn=0us
>>      Kernel driver in use: xhci_hcd
>>      Kernel modules: xhci_pci
>>
>> On Tue, Mar 9, 2021 at 6:00 AM Mathias Nyman
>> <mathias.nyman@linux.intel.com> wrote:
>
>
>
>
>>>> Currently the usb host stack doesn't really support USB 3.2 yet, at
>>>> least the speed check part. I made some updates to handle that.
>>>>
>>>> You apply these patches and test on your setup
>>>> https://urldefense.com/v3/__https://patchwork.kernel.org/project/linux-usb/list/?series=427561__;!!A4F2R9G_pg!O509Jgp-IveN9AmXa5oORW98Q_B4_GyjbA5RSAXFuZaexHl4jhm8G9dWbImQUw4CrNZJ$ 
>>>>
>>>> Hopefully Mathias will have time to review and Ack them for the next
>>>> release cycle.
>>> Thanks for the reminder, added some comments to the series
>>>
>>> -Mathias
>>>


  reply	other threads:[~2021-03-10  1:20 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-09  6:41 USB 3.2 Gen 2x2 "Superspeed+20GBps" support for ASM3242 William Allen
2021-03-09  7:27 ` Thinh Nguyen
2021-03-09 12:02   ` Mathias Nyman
2021-03-09 22:51     ` William Allen
2021-03-10  0:56       ` Thinh Nguyen
2021-03-10  1:19         ` Thinh Nguyen [this message]
2021-12-30 13:10     ` youling257
2021-12-30 13:30       ` Greg KH
2021-12-30 13:49         ` Mathias Nyman
2021-12-30 14:57         ` youling 257
2021-12-31  1:39           ` Thinh Nguyen
2021-12-31  3:10             ` youling 257
2021-12-31  3:46               ` Thinh Nguyen
2021-12-31  4:42                 ` youling 257
2021-12-31  4:52                 ` youling 257
2021-12-31  7:02                   ` Thinh Nguyen
2021-12-31  7:59                     ` youling 257
2021-12-31  8:42                     ` youling 257
2022-01-13  1:41                       ` Thinh Nguyen
2022-01-13  6:05                         ` youling 257
2021-12-31  8:49             ` youling 257
2022-01-13 17:53               ` Thinh Nguyen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0c5f9e2e-e18e-5727-a7ae-7e92bbd45a0e@synopsys.com \
    --to=thinh.nguyen@synopsys.com \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@intel.com \
    --cc=mathias.nyman@linux.intel.com \
    --cc=william.allentx@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.