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