Hello, as told by unusual_devs.h I send this mail to request the inclusion of a new quirk for my D-Link DNS-313 NAS I use in USB mass storage mode. Since linux-3.3 (IIRC), the device didn't work anymore because of the use of READ_CAPACITY_16 SCSI command. The device prepends its reply with two bytes that prevents a good size detection. With my patch (or dynamically with quirks set to "2310:6688:e") it works perfectly. I hope everything is ok with my patch. I don't have /proc/bus/usb/devices anymore, so I paste below the output of lsusb -v and I hope it will be a good replacement. I also have a wireshark/usbmon dump of the bad exchange between host and faulty device if you need it. Regards, Philippe Valembois Bus 005 Device 002: ID 2310:6688 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x2310 idProduct 0x6688 bcdDevice 2.18 iManufacturer 16 Faraday inc. iProduct 32 USB2.0 Storage Device iSerial 48 <serial here> bNumConfigurations 1 OTG Descriptor: bLength 3 bDescriptorType 9 bmAttributes 0x03 SRP (Session Request Protocol) HNP (Host Negotiation Protocol) Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 35 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xe0 Self Powered Remote Wakeup 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 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 0 Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1 Device Status: 0x0001 Self Powered
--- linux/drivers/usb/storage/unusual_devs.h 2012-06-17 00:12:43.085005471 +0200 +++ linux/drivers/usb/storage/unusual_devs.h 2012-06-17 12:48:54.942837003 +0200 @@ -1961,10 +1961,19 @@ "Motorola", "MSnc.", USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_FIX_INQUIRY | US_FL_FIX_CAPACITY | US_FL_BULK_IGNORE_TAG), +/* Reported by Philippe Valembois <lephilousophe@xxxxxxxxxxxxxxxxxxxxx> + * D-Link DNS-313 and maybe others : the READ_CAPACITY_16 reply has two 0 bytes prepended to the real reply + */ +UNUSUAL_DEV( 0x2310, 0x6688, 0x0218, 0x0218, + "Faraday inc.", + "USB2.0 Storage Device", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_NO_READ_CAPACITY_16), + /* Reported by Radovan Garabik <garabik@xxxxxxxxxxxxxxxxxxxxxxxx> */ UNUSUAL_DEV( 0x2735, 0x100b, 0x0000, 0x9999, "MPIO", "HS200", USB_SC_DEVICE, USB_PR_DEVICE, NULL,