Hi !

READ CAPACITY  command seems to return  fuzzy value when I  plug my Sony
Ericsson V630i  (rebranded K610i  by Vodaphone). Here  is an  excerpt of
dmesg :

May 27 13:18:57 neo kernel: [236303.330175] SCSI device sdb: 466907 512-byte 
hdwr sectors (239 MB)
May 27 13:18:57 neo kernel: [236303.338172] sdb: test WP failed, assume Write 
Enabled
May 27 13:18:57 neo kernel: [236303.338177] sdb: assuming drive cache: write 
through
May 27 13:18:57 neo kernel: [236303.338183]  sdb: sdb1
May 27 13:18:57 neo kernel: [236303.349178]  sdb: p1 exceeds device capacity
May 27 13:18:57 neo kernel: [236303.351203] sd 21:0:0:0: Attached scsi 
removable disk sdb
May 27 13:18:57 neo kernel: [236303.351248] sd 21:0:0:0: Attached scsi generic 
sg2 type 0
May 27 13:18:57 neo kernel: [236303.351793] Device driver target21:0:1 lacks 
bus and class support for being resumed.
May 27 13:18:57 neo kernel: [236303.352279] Device driver target21:0:2 lacks 
bus and class support for being resumed.
May 27 13:18:57 neo kernel: [236303.352549] Device driver target21:0:3 lacks 
bus and class support for being resumed.
May 27 13:18:57 neo kernel: [236303.352643] Device driver target21:0:4 lacks 
bus and class support for being resumed.
May 27 13:18:57 neo kernel: [236303.352761] Device driver target21:0:5 lacks 
bus and class support for being resumed.
May 27 13:18:57 neo kernel: [236303.352856] Device driver target21:0:6 lacks 
bus and class support for being resumed.
May 27 13:18:57 neo kernel: [236303.352963] Device driver target21:0:7 lacks 
bus and class support for being resumed.
May 27 13:18:57 neo kernel: [236303.353050] usb-storage: device scan complete
May 27 13:18:57 neo kernel: [236303.445181] attempt to access beyond end of 
device
May 27 13:18:57 neo kernel: [236303.445188] sdb: rw=0, want=466942, limit=466907
May 27 13:18:57 neo kernel: [236303.445190] printk: 70 messages suppressed.
May 27 13:18:57 neo kernel: [236303.445193] Buffer I/O error on device sdb1, 
logical block 466904
May 27 13:18:57 neo kernel: [236303.445439] attempt to access beyond end of 
device

I   have  tried   to  add   my  device   to  unusual_devs.h   with  flag
US_FL_FIX_CAPACITY with no luck. This flag decreases by one the capacity
of the drive while mine is too low.

Here is the output of fdisk -l -u

                   
Disk /dev/sdb: 239 MB, 239056384 bytes
16 heads, 32 sectors/track, 911 cylinders, total 466907 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *          37      466943      233453+   6  FAT16

I have  noticed that 466907  + 37 =  466944 which should be  the correct
value. Therefore, I have added a flag US_FL_REPORT_P1_CAPACITY that just
adds 37 to capacity in sd.c. Well, that does not work either and I don't
know why. dmesg says :

May 27 17:55:20 neo kernel: [   96.382982] SCSI device sdb: 466944 512-byte 
hdwr sectors (239 MB)
May 27 17:55:20 neo kernel: [   96.389786] sdb: assuming Write Enabled
May 27 17:55:20 neo kernel: [   96.396513] sdb: assuming drive cache: write 
through
May 27 17:55:20 neo kernel: [   96.403187]  sdb: sdb1
May 27 17:55:20 neo kernel: [   96.421006] sd 10:0:0:0: Attached scsi removable 
disk sdb
May 27 17:55:20 neo kernel: [   96.427885] sd 10:0:0:0: Attached scsi generic 
sg2 type 0
May 27 17:55:20 neo kernel: [   96.434727] Device driver target10:0:1 lacks bus 
and class support for being resumed.
May 27 17:55:20 neo kernel: [   96.441634] Device driver target10:0:2 lacks bus 
and class support for being resumed.
May 27 17:55:20 neo kernel: [   96.448359] Device driver target10:0:3 lacks bus 
and class support for being resumed.
May 27 17:55:20 neo kernel: [   96.454942] Device driver target10:0:4 lacks bus 
and class support for being resumed.
May 27 17:55:20 neo kernel: [   96.461643] Device driver target10:0:5 lacks bus 
and class support for being resumed.
May 27 17:55:20 neo kernel: [   96.468207] Device driver target10:0:6 lacks bus 
and class support for being resumed.
May 27 17:55:20 neo kernel: [   96.474435] Device driver target10:0:7 lacks bus 
and class support for being resumed.
May 27 17:55:20 neo kernel: [   96.480608] usb-storage: device scan complete
May 27 17:55:20 neo kernel: [   96.505954] end_request: I/O error, dev sdb, 
sector 466941
May 27 17:55:20 neo kernel: [   96.512064] Buffer I/O error on device sdb1, 
logical block 466904
May 27 17:55:20 neo kernel: [   96.524950] end_request: I/O error, dev sdb, 
sector 466942

And after that, I think that my phone is not able to cope any request.

May 27 17:55:20 neo kernel: [   96.852880] end_request: I/O error, dev sdb, 
sector 37
May 27 17:55:20 neo kernel: [   96.862878] end_request: I/O error, dev sdb, 
sector 38

Then

May 27 17:56:00 neo kernel: [  136.547901] Buffer I/O error on device sdb, 
logical block 0
May 27 17:56:00 neo kernel: [  136.549758] Buffer I/O error on device sdb, 
logical block 1
May 27 17:56:00 neo kernel: [  136.551619] Buffer I/O error on device sdb, 
logical block 2

To check that the size reported  by READ CAPACITY is the first partition
size, I have started with a clean 2.6.21 kernel. I have plugged my phone
and here is the partition I have created :

Disk /dev/sdb: 239 MB, 239056384 bytes
16 heads, 32 sectors/track, 911 cylinders, total 466907 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              32      465919      232944   83  Linux

Now, I unplug and replug the phone. And here is what I get :

May 27 18:19:05 neo kernel: [ 1109.211680] SCSI device sdb: 465888 512-byte 
hdwr sectors (239 MB)
May 27 18:19:05 neo kernel: [ 1109.218679] sdb: test WP failed, assume Write 
Enabled
May 27 18:19:05 neo kernel: [ 1109.218682] sdb: assuming drive cache: write 
through
May 27 18:19:05 neo kernel: [ 1109.227676] SCSI device sdb: 465888 512-byte 
hdwr sectors (239 MB)
May 27 18:19:05 neo kernel: [ 1109.234674] sdb: test WP failed, assume Write 
Enabled
May 27 18:19:05 neo kernel: [ 1109.234677] sdb: assuming drive cache: write 
through
May 27 18:19:05 neo kernel: [ 1109.234680]  sdb: sdb1
May 27 18:19:05 neo kernel: [ 1109.244678]  sdb: p1 exceeds device capacity
May 27 18:19:05 neo kernel: [ 1109.246709] sd 11:0:0:0: Attached scsi removable 
disk sdb
May 27 18:19:05 neo kernel: [ 1109.246756] sd 11:0:0:0: Attached scsi generic 
sg2 type 0
May 27 18:19:05 neo kernel: [ 1109.247678] usb-storage: device scan complete
May 27 18:19:05 neo kernel: [ 1109.296681] attempt to access beyond end of 
device
May 27 18:19:05 neo kernel: [ 1109.296688] sdb: rw=0, want=465920, limit=465888
May 27 18:19:05 neo kernel: [ 1109.296692] printk: 30 messages suppressed.
May 27 18:19:05 neo kernel: [ 1109.296695] Buffer I/O error on device sdb1, 
logical block 58235

Disk /dev/sdb: 238 MB, 238534656 bytes
16 heads, 32 sectors/track, 909 cylinders, total 465888 sectors
Units = sectors of 1 * 512 = 512 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              32      465919      232944   83  Linux

So  it seems that  the phone  really returns  the 465919  - 32  for READ
CAPACITY. Therefore, I don't understand why my change does not work. Any
idea  ? How could  I debug  this ?  Maybe the  phone builds  an erronous
partition table ?

PS: I am not subscribed, keep me in Cc. Thanks.
-- 
BEWITCHED, DOES NOT PROMOTE SATANISM
BEWITCHED, DOES NOT PROMOTE SATANISM
BEWITCHED, DOES NOT PROMOTE SATANISM
-+- Bart Simpson on chalkboard in episode 2F17

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to