Greetings,

I finally managet to get Sony DCR-TRV17E memory stick
working with usb-storage.
The solution turned out to be very simple:

echo "Sony:Sony DSC:0" > /proc/scsi/device_info

But I'm puzzled as to why didn't it work in the first 
place despite several reports to the contrary. My guess
is it used to work in earlier kernels and then some
seemingly unrelated change broke it.

I investigated it a little and that's what I found:
This device uses CB transport (SENSE status not reported).
This device does not support MODE_SENSE at all.
MODE_SENSE(6) fails with STALL condition. Subsequent 
REQUEST-SENSE reports ILLEGAL REQUEST. SCSI layer is 
able to handle this situation, the only drawback is 
that write-protect status is not reported.

Unfortunately usb-storage sets use_10_for_ms flag 
by default which causes SCSI to try MODE_SENSE(10)
first. 
The device responds to MODE_SENSE(10) with "babble" 
(-EOVERFLOW). scsiglue sees transport error and 
tries to do a soft reset (which also fails).
Note that scsiglue does not automatically send 
REQUEST-SENSE in this case.

scsiglue then gives up after several attempts and 
reports the error to the upper layer. Upper layer
(SCSI) correctly realises that MODE_SENSE(10) does
not work and attempts to fallback to MODE_SENSE(6) 
but before that it issues TEST_UNIT_READY. 

This time the device responds with ILLEGAL REQUEST.
Now SCSI gets totally confused and decides to give up.

As I understand it this ILLEGAL REQUEST actually refers
to the previous MODE_SENSE(10) command because this 
error condition has never been cleared properly.

If I change interpret_usb_result() in transport.c 
to ignore "babble" then the next REQUEST-SENSE 
reports ILLEGAL REQUEST, SCSI handles that and 
everything sort of works.

Regards,
Dmitri

Some info:

/proc/scsi/scsi:
Attached devices:
Host: scsi1 Channel: 00 Id: 00 Lun: 00
  Vendor: Sony     Model: Sony DSC         Rev: 3.00
  Type:   Direct-Access                    ANSI SCSI revision: 02

/proc/scsi/usb-storage/1:
   Host scsi1: usb-storage
       Vendor: Sony
      Product: Sony Handycam
Serial Number: None
     Protocol: Transparent SCSI
    Transport: Control/Bulk
       Quirks: SINGLE_LUN

kernel log is attached in my previous message "usb-storage babble"






-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive?  Does it
help you create better code?   SHARE THE LOVE, and help us help
YOU!  Click Here: http://sourceforge.net/donate/
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to