Re: Unable to access USB mass storage device with xhci. okay with ehci

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

 



On Thu, 2015-04-09 at 16:49 +0200, Hans de Goede wrote:
> Hi,
> 
> On 09-04-15 15:27, Steve Bangert wrote:
> > On Wed, 2015-04-08 at 10:56 -0400, Alan Stern wrote:
> >> On Wed, 8 Apr 2015, Steve Bangert wrote:
> >>
> >>> What i did was not correct, usb-storage.quirks=174c:55aa:u was added to
> >>> /etc/default/grub file after GRUB_CMDLINE_LINUX="rhgb quiet", using
> >>> the grub-configurator tool
> >>> followed by a reboot and i now have a working usb storage device
> >>> using xhci. Here's the usbmon trace and the dmesg log is attached.
> >>>
> >>> I also found a comment in the source code file (uas-detect.h see
> >>> attached) that states that my device, the ASMedia bridge is not
> >>> supported by the uas driver.
> >>
> >> The comment does not say that.  It refers to a different model from
> >> yours.  You can tell because the comment says that the non-working
> >> ASM1051 supports 32 streams, whereas your device supports 16.
> >>
> >> In fact, as far as I can tell, your device _does_ work with the uas
> >> driver provided max_sectors isn't too high (i.e., <= 240, which is the
> >> default value used by usb-storage).  Unfortunately, the uas driver
> >> doesn't provide any way to set max_sectors.
> >>
> >> You can test this by adding a line that says:
> >>
> >> 	.max_sectors = 240,
> >>
> >> anywhere inside the definition of uas_host_template in the uas.c source
> >> file.
> >>
> >>> So my next question is there a way to bind usb-storage to this device
> >>> and have a working device out of the box without the hassle of adding
> >>> a module parameter?
> >>
> >> We should ask Hans, since he wrote the comment and code in uas-detect.h
> >> and presumably has a better understanding of the situation.
> >>
> >
> > uas.c was patched (see attached), the quirk line was temporarily removed
> 
> Thanks for testing this.
> 
> > and i now have access to the drive using xhci and uas. usbmon trace is
> > attached.
> 
> What exactly do you mean with "i now have access to the drive using xhci and uas" ?
> Do you mean that everything works correctly with xhci + uas when setting
> .max_sectors = 240 ?
> 
> Alan, any ideas on how to move forward with this, I do not want to limit all
> uas devices to .max_sectors = 240, I can whip up a patch to set max_sectors = 240
> on the ASM1053 but not the ASM1153.
> 
> Steve, can you send me the output of lsusb -vv for the device in question ?

Hans, thanks for you assistance with this concern.  Steve

Bus 002 Device 002: ID 174c:55aa ASMedia Technology Inc. ASM1051 SATA
3Gb/s bridge
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         9
  idVendor           0x174c ASMedia Technology Inc.
  idProduct          0x55aa ASM1051 SATA 3Gb/s bridge
  bcdDevice            1.00
  iManufacturer           2 
  iProduct                3 
  iSerial                 1 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          121
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xc0
      Self Powered
    MaxPower               36mA
    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             16
        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             16
        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             16
        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)




--
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