• Paulo Afonso Graner Fessel's avatar
    USB: storage: recognizing and enabling Nokia 5200 cell phoes · b8d23491
    Paulo Afonso Graner Fessel authored
    This patch corrects the issue when one connects a Nokia 5200 cell
    phone in data storage mode. If one uses an unpatched unusual_devs.h,
    the following messages appear on /var/log/messages:
    
    Dec 12 01:03:24 alberich kernel: usb 4-2: new full speed USB device
    using uhci_hcd and address 3
    Dec 12 01:03:25 alberich kernel: usb 4-2: configuration #1 chosen from 1 choice
    Dec 12 01:03:25 alberich kernel: scsi10 : SCSI emulation for USB Mass
    Storage devices
    Dec 12 01:03:25 alberich kernel: usb 4-2: New USB device found,
    idVendor=0421, idProduct=04bd
    Dec 12 01:03:25 alberich kernel: usb 4-2: New USB device strings:
    Mfr=1, Product=2, SerialNumber=3
    Dec 12 01:03:25 alberich kernel: usb 4-2: Product: Nokia 5200
    Dec 12 01:03:25 alberich kernel: usb 4-2: Manufacturer: Nokia
    Dec 12 01:03:25 alberich kernel: usb 4-2: SerialNumber: 353930018354523
    Dec 12 01:03:25 alberich kernel: usbcore: registered new interface driver ub
    Dec 12 01:03:30 alberich kernel: scsi 10:0:0:0: Direct-Access
    Nokia    Nokia 5200       0000 PQ: 0 AN
    SI: 4
    Dec 12 01:03:30 alberich kernel: sd 10:0:0:0: [sdg] 3985409 512-byte
    hardware sectors (2041 MB)
    Dec 12 01:03:30 alberich kernel: sd 10:0:0:0: [sdg] Write Protect is off
    Dec 12 01:03:30 alberich kernel: sd 10:0:0:0: [sdg] Assuming drive
    cache: write through
    Dec 12 01:03:30 alberich kernel: sd 10:0:0:0: [sdg] 3985409 512-byte
    hardware sectors (2041 MB)
    Dec 12 01:03:30 alberich kernel: sd 10:0:0:0: [sdg] Write Protect is off
    Dec 12 01:03:30 alberich kernel: sd 10:0:0:0: [sdg] Assuming drive
    cache: write through
    Dec 12 01:03:30 alberich kernel:  sdg: sdg1
    Dec 12 01:03:30 alberich kernel: sd 10:0:0:0: [sdg] Attached SCSI removable disk
    Dec 12 01:03:30 alberich kernel: sd 10:0:0:0: Attached scsi generic sg9 type 0
    Dec 12 01:03:30 alberich kernel: sd 10:0:0:0: [sdg] Sense Key : No
    Sense [current]
    Dec 12 01:03:30 alberich kernel: sd 10:0:0:0: [sdg] Add. Sense: No
    additional sense information
    Dec 12 01:03:30 alberich kernel: sd 10:0:0:0: [sdg] Sense Key : No
    Sense [current]
    Dec 12 01:03:30 alberich kernel: sd 10:0:0:0: [sdg] Add. Sense: No
    additional sense information
    Dec 12 01:03:30 alberich kernel: sd 10:0:0:0: [sdg] Sense Key : No
    Sense [current]
    
    (...)
    
    The MicroSD card in the phone remains inaccessible and finally the
    cell phone turns itself off. The patch solves this problem and makes
    the cell phone fully accessible:
    
    [root@alberich kernel-linus-2.6.27.5-1mdv]# df -h
    Sist. Arq.            Tam   Usad Disp  Uso% Montado em
    /dev/sda6              31G  5,2G   26G  17% /
    /dev/sda1              92M   27M   61M  31% /boot
    /dev/mapper/homevg-homelv  240G  237G  3,5G  99% /home
    /dev/sda3              21G  7,9G   13G  40% /mnt/windows
    /dev/sdg1             2,0G  287M  1,7G  15% /media/disk <--------
    
    I've found necessary to use the FL_US_CAPACITY_FIX switch, as without
    it the cell phone is recognized but it went berserk when performing
    low-level functions on it (a fdisk -l /dev/uba for example).
    
    lsusb -v output follows:
    
    Bus 004 Device 004: ID 0421:04bd Nokia Mobile Phones
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               2.00
      bDeviceClass            0 (Defined at Interface level)
      bDeviceSubClass         0
      bDeviceProtocol         0
      bMaxPacketSize0        64
      idVendor           0x0421 Nokia Mobile Phones
      idProduct          0x04bd
      bcdDevice            6.03
      iManufacturer           1 Nokia
      iProduct                2 Nokia 5200
      iSerial                 3 353930018354523
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength           32
        bNumInterfaces          1
        bConfigurationValue     1
        iConfiguration          0
        bmAttributes         0xc0
          Self Powered
        MaxPower              100mA
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          bNumEndpoints           2
          bInterfaceClass         8 Mass Storage
          bInterfaceSubClass      6 SCSI
          bInterfaceProtocol     80 Bulk (Zip)
          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     0x0040  1x 64 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x01  EP 1 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0040  1x 64 bytes
            bInterval               0
    Device Status:     0x0001
      Self Powered
    Signed-off-by: default avatarPaulo Afonso Graner Fessel <pfessel@gmail.com>
    Signed-off-by: default avatarPhil Dibowitz <phil@ipom.com>
    Cc: stable <stable@kernel.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    b8d23491
unusual_devs.h 63.3 KB