On Mon, Feb 02, 2004 at 12:52:52AM -0500, [EMAIL PROTECTED] wrote:
> 
> I'll apologize in advance for posting this to both users and devel, but it
> didn't get much attention on the users list.
> 
> I have a Casio 2000ux camera that worked fine under linux through 2.4.22:
> 
> Jan 28 00:44:54 localhost kernel:   Vendor: Casio     Model: QV DigitalCamera  Rev: 
> 9009
> Jan 28 00:44:54 localhost kernel:   Type:   Direct-Access                      ANSI 
> SCSI revision: 02
> Jan 28 00:44:54 localhost kernel: Attached scsi generic sg0 at scsi0, channel 0, id 
> 0, lun 0,  type 0
> 
> By 2.4.23 it stopped working in a most unfriendly manner, spewing more
> nonsense than dmesg could report.  A sampling from /var/log/messages:
> 
> Jan 16 22:24:43 localhost kernel: sda : READ CAPACITY failed.
> Jan 16 22:24:43 localhost kernel: sda : status=0, message=00, host=7, driver=00 
> Jan 16 22:24:43 localhost kernel: sda : sense not available. 
> Jan 16 22:24:43 localhost kernel: sda: assuming Write Enabled
> Jan 16 22:24:43 localhost kernel: sda: assuming drive cache: write through
> Jan 16 22:25:55 localhost kernel: sda : READ CAPACITY failed.
> Jan 16 22:25:55 localhost kernel: sda : status=0, message=00, host=7, driver=00 
> Jan 16 22:25:55 localhost kernel: sda : sense not available. 
> Jan 16 22:25:55 localhost kernel: sda: assuming Write Enabled
> Jan 16 22:25:55 localhost kernel: sda: assuming drive cache: write through
> Jan 16 22:26:11 localhost kernel: usb 1-1: USB disconnect, address 2
> Jan 16 22:26:11 localhost kernel: scsi0 (0:0): rejecting I/O to dead device
> Jan 16 22:26:11 localhost kernel: scsi0 (0:0): rejecting I/O to dead device
> Jan 16 22:26:11 localhost kernel: sda : READ CAPACITY failed.
> Jan 16 22:26:11 localhost kernel: sda : status=0, message=00, host=1, driver=00 
> Jan 16 22:26:11 localhost kernel: sda : sense not available. 
> Jan 16 22:26:11 localhost kernel: sda: assuming Write Enabled
> Jan 16 22:26:11 localhost kernel: sda: assuming drive cache: write through
> Jan 16 22:26:11 localhost kernel:  sda:<3>scsi0 (0:0): rejecting I/O to dead device
> Jan 16 22:26:11 localhost kernel: Buffer I/O error on device sda, logical block 0
> Jan 16 22:26:11 localhost kernel: scsi0 (0:0): rejecting I/O to dead device
> Jan 16 22:26:11 localhost kernel: Buffer I/O error on device sda, logical block 0
> Jan 16 22:26:11 localhost kernel:  unable to read partition table
> Jan 16 22:26:11 localhost kernel:  sda:<3>scsi0 (0:0): rejecting I/O to dead device
> Jan 16 22:26:11 localhost kernel: Buffer I/O error on device sda, logical block 0
> Jan 16 22:26:11 localhost kernel:  unable to read partition table
> Jan 16 22:26:11 localhost kernel: scsi0 (0:0): rejecting I/O to dead device
> Jan 16 22:26:11 localhost kernel: Attached scsi removable disk sda at scsi0, channel 
> 0, id 0, lun 0
> Jan 16 22:26:11 localhost kernel: ------------[ cut here ]------------
> Jan 16 22:26:11 localhost kernel: kernel BUG at drivers/usb/storage/usb.c:848!
> Jan 16 22:26:11 localhost kernel: invalid operand: 0000 [#1]
> 
> The problem seems clear enough; here is the unusual_devs.h entry from
> 2.4.22:
> 
> /* Casio QV 2x00/3x00/4000/8000 digital still cameras are not conformant
>  * to the USB storage specification in two ways:
>  * - They tell us they are using transport protocol CBI. In reality they
>  *   are using transport protocol CB.
>  * - They don't like the INQUIRY command. So we must handle this command
>  *   of the SCSI layer ourselves.
>  */
> UNUSUAL_DEV( 0x07cf, 0x1001, 0x1000, 0x9009,
>                                   "Casio",
>                                   "QV DigitalCamera",
>                                   US_SC_8070, US_PR_CB, NULL,
>                                   US_FL_FIX_INQUIRY ),
> 
> and from 2.4.23 and beyond (up to 2.6.2-rc2):
> 
> UNUSUAL_DEV( 0x07cf, 0x1001, 0x1000, 0x9999,
>                 "Casio",
>                 "QV DigitalCamera",
>                 US_SC_DEVICE, US_PR_DEVICE, NULL,
>                 US_FL_FIX_INQUIRY ),
> 
> There are 3 differences, but the key one seems to be replacing
> US_PR_CB with US_PR_DEVICE, given that the comment states that the
> camera lies about the transport protocol.  I replaced the entry in
> 2.6.2-rc2 with the older version and the camera again works fine.  I
> know this has been discussed here in the past; I gather from the
> archives that newer Casio cameras don't have this problem and perhaps
> nobody else is still using the old cameras (hence the lack of outrage
> after the change).  Still, I think this entry should be at least
> partially reverted or a new entry added for the older cameras.

How about 2 entries.  One for devices 0x1000 to 0x9009 and one for
0x9010 to 0x9999 ?  Care to make up a patch for this?

thanks,

greg k-h


-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to