Re: ASM1153 detected as ASM1051 and breaking UAS

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

 



Am Donnerstag, den 24.08.2017, 14:05 +0200 schrieb Massimo Burcheri:
> 
> Bus 004 Device 005: ID 174c:5106 ASMedia Technology Inc. ASM1051 SATA 3Gb/s bridge
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               3.00
>   bDeviceClass            0 
>   bDeviceSubClass         0 
>   bDeviceProtocol         0 
>   bMaxPacketSize0         9
>   idVendor           0x174c ASMedia Technology Inc.
>   idProduct          0x5106 ASM1051 SATA 3Gb/s bridge

Good

>   bcdDevice           80.00
>   iManufacturer           2 StoreJet Transcend
>   iProduct                3 StoreJet Transcend
>   iSerial                 1 S36VJ9CH307FOO
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength           44
>     bNumInterfaces          1
>     bConfigurationValue     1
>     iConfiguration          0 
>     bmAttributes         0xc0
>       Self Powered
>     MaxPower                0mA
>     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

This device advertises itself as Bulk-only, not UAS.

We can try, but I am not confident of the outcome. Is this the full
descriptor?

	Regards
		Oliver
From d836d367bf8ee7138a61c603b27cd5edf81ffae2 Mon Sep 17 00:00:00 2001
From: Oliver Neukum <oneukum@xxxxxxxx>
Date: Mon, 28 Aug 2017 17:06:58 +0200
Subject: [PATCH] USB: uas: force UAS probing for ASMedia 1153

This forces the device into uas with a sledge hammer.
---
 drivers/usb/storage/uas-detect.h | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/usb/storage/uas-detect.h b/drivers/usb/storage/uas-detect.h
index f58caa9e6a27..0287b03e2d48 100644
--- a/drivers/usb/storage/uas-detect.h
+++ b/drivers/usb/storage/uas-detect.h
@@ -4,6 +4,12 @@
 
 static int uas_is_interface(struct usb_host_interface *intf)
 {
+	struct usb_device *udev = interface_to_usbdev(intf);
+
+	if (le16_to_cpu(udev->descriptor.idVendor) == 0x174c &&
+		le16_to_cpu(udev->descriptor.idProduct) == 0x5106)
+		return 1;
+ 
 	return (intf->desc.bInterfaceClass == USB_CLASS_MASS_STORAGE &&
 		intf->desc.bInterfaceSubClass == USB_SC_SCSI &&
 		intf->desc.bInterfaceProtocol == USB_PR_UAS);
-- 
2.12.3


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

  Powered by Linux