1. 08 1月, 2009 28 次提交
    • Q
      USB: gadget: pxa27x_udc.c: cleanup kernel-doc · 1c53e6cb
      Qinghuang Feng 提交于
      no argument named @index in pio_irq_disable, and
      no argument named @req in inc_ep_stats_bytes,
      remove them.
      Signed-off-by: NQinghuang Feng <qhfeng.kernel@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      1c53e6cb
    • M
      USB: m66592 and r8a66597 resource changes · 0a2e5b9b
      Magnus Damm 提交于
      Use the more common platform_get_resource() together with index instead
      of depending on the resource name and platform_get_resource_by_name().
      Replace the resource_len() implementation with resource_size().
      Signed-off-by: NMagnus Damm <damm@igel.co.jp>
      Acked-by: NYoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      0a2e5b9b
    • J
      USB: Convert ohci-pnx4008 to a new-style i2c driver · 3a407e73
      Jean Delvare 提交于
      The legacy i2c binding model will go away soon, convert ohci-pnx4008
      to use the new binding model instead.
      Signed-off-by: NJean Delvare <khali@linux-fr.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3a407e73
    • I
      USB: Introduce usb_queue_reset() to do resets from atomic contexts · dc023dce
      Inaky Perez-Gonzalez 提交于
      This patch introduces a new call to be able to do a USB reset from an
      atomic contect. This is quite helpful in USB callbacks to handle
      errors (when the only thing that can be done is to do a device
      reset).
      
      It is done queuing a work struct that will do the actual reset. The
      struct is "attached" to an interface so pending requests from an
      interface are removed when said interface is unbound from the driver.
      
      The call flow then becomes:
      
      usb_queue_reset_device()
        __usb_queue_reset_device() [workqueue]
          usb_reset_device()
      
      usb_probe_interface()
        usb_cancel_queue_reset()      [error path]
      
      usb_unbind_interface()
        usb_cancel_queue_reset()
      
      usb_driver_release_interface()
        usb_cancel_queue_reset()
      
      Note usb_cancel_queue_reset() needs smarts to try not to unqueue when
      it is actually being executed. This happens when we run the reset from
      the workqueue: usb_reset_device() is called and on interface unbind
      time, usb_cancel_queue_reset() would be called. That would deadlock on
      cancel_work_sync(). To avoid that, we set (before running
      usb_reset_device()) usb_intf->reset_running and clear it inmediately
      after returning.
      
      Patch is against 2.6.28-rc2 and depends on
      http://marc.info/?l=linux-usb&m=122581634925308&w=2 (as submitted by
      Alan Stern).
      Signed-off-by: NInaky Perez-Gonzalez <inaky@linux.intel.com>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      dc023dce
    • A
      USB: add asynchronous autosuspend/autoresume support · 9ac39f28
      Alan Stern 提交于
      This patch (as1160b) adds support routines for asynchronous autosuspend
      and autoresume, with accompanying documentation updates.  There
      already are several potential users of this interface, and others are
      likely to arise as autosuspend support becomes more widespread.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      9ac39f28
    • A
      USB: usb-storage: add "quirks=" module parameter · d4f373e5
      Alan Stern 提交于
      This patch (as1163b) adds a "quirks=" module parameter to usb-storage.
      This will allow people to make short-term changes to their
      unusual_devs list without rebuilding the entire driver.  Testing will
      become much easier, and less-sophisticated users will be able to
      access their buggy devices after a simple config-file change instead
      of having to wait for a new kernel release.
      
      The patch also adds a documentation entry for usb-storage's
      "delay_use" parameter, which has been around for years but but was
      never listed among the kernel parameters.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      d4f373e5
    • K
    • K
    • V
      USB: powerpc: Workaround for the PPC440EPX USBH_23 errata [take 3] · 796bcae7
      Vitaly Bordug 提交于
      A published errata for ppc440epx states, that when running Linux with
      both EHCI and OHCI modules loaded, the EHCI module experiences a fatal
      error when a high-speed device is connected to the USB2.0, and
      functions normally if OHCI module is not loaded.
      
      There used to be recommendation to use only hi-speed or full-speed
      devices with specific conditions, when respective module was unloaded.
      Later, it was observed that ohci suspend is enough to keep things
      going, and it was turned into workaround, as explained below.
      
      Quote from original descriprion:
      
      The 440EPx USB 2.0 Host controller is an EHCI compliant controller.  In
      USB 2.0 Host controllers, each EHCI controller has one or more companion
      controllers, which may be OHCI or UHCI.  An USB 2.0 Host controller will
      contain one or more ports.  For each port, only one of the controllers
      is connected at any one time. In the 440EPx, there is only one OHCI
      companion controller, and only one USB 2.0 Host port.
      All ports on an USB 2.0 controller default to the companion
      controller.  If you load only an ohci driver, it will have control of
      the ports and any deviceplugged in will operate, although high speed
      devices will be forced to operate at full speed.  When an ehci driver
      is loaded, it explicitly takes control of the ports.  If there is a
      device connected, and / or every time there is a new device connected,
      the ehci driver determines if the device is high speed or not.  If it
      is high speed, the driver retains control of the port.  If it is not,
      the driver explicitly gives the companion controller control of the
      port.
      
      The is a software workaround that uses
      Initial version of the software workaround was posted to
      linux-usb-devel:
      
      http://www.mail-archive.com/linux-usb-devel@lists.sourceforge.net/msg54019.html
      
      and later available from amcc.com:
      http://www.amcc.com/Embedded/Downloads/download.html?cat=1&family=15&ins=2
      
      The patch below is generally based on the latter, but reworked to
      powerpc/of_device USB drivers, and uses a few devicetree inquiries to
      get rid of (some) hardcoded defines.
      Signed-off-by: NVitaly Bordug <vitb@kernel.crashing.org>
      Signed-off-by: NStefan Roese <sr@denx.de>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      796bcae7
    • A
      USB: fsl_qe_udc: Check for muram allocation errors · cd40c4c4
      Anton Vorontsov 提交于
      The QE UDC doesn't check for cpm_muram_alloc() return values, this
      might cause all sorts of misbehaviour when cpm_muram_alloc() failed
      to allocate the muram memory.
      
      While at at, change few dev_dbg() calls to dev_err(), so that the
      driver would not die silently.
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Cc: David Brownell <dbrownell@users.sourceforge.net>
      Cc: Kumar Gala <galak@kernel.crashing.org>
      Cc: Li Yang <leoli@freescale.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      cd40c4c4
    • A
      USB: change interface to usb_lock_device_for_reset() · 011b15df
      Alan Stern 提交于
      This patch (as1161) changes the interface to
      usb_lock_device_for_reset().  The existing interface is apparently not
      very clear, judging from the fact that several of its callers don't
      use it correctly.  The new interface always returns 0 for success and
      it always requires the caller to unlock the device afterward.
      
      The new routine will not return immediately if it is called while the
      driver's probe method is running.  Instead it will wait until the
      probe is over and the device has been unlocked.  This shouldn't cause
      any problems; I don't know of any cases where drivers call
      usb_lock_device_for_reset() during probe.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Cc: Pete Zaitcev <zaitcev@redhat.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      011b15df
    • I
      USB: usbtmc: indent & braces disagree, something else is desired · 857cc4df
      Ilpo Järvinen 提交于
      It seems that there's rather involved way to say something
      which is commonly written in a plain simple form.
      
      Some type changes would probably be necessary to get gcc
      to do bitops instead of divide but it's no worse after my
      change than before I think.
      Signed-off-by: NIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      857cc4df
    • O
      USB: power availability check for berry_charge · b404299f
      Oliver Neukum 提交于
      this introduces a sanity check into berry_charge to give up before
      damage is done if we lack juice.
      Signed-off-by: NOliver Neukum <oneukum@suse.de>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b404299f
    • P
      USB: Remove restrictions on signal numbers in devio.c · ff8973d9
      Phil Endecott 提交于
      Just over a year ago (!) I had this brief exchange with Alan Stern:
      
      >> It seems that the signal that can be used with USBDEVFS_DISCSIGNAL and 
      >> in usbdevfs_urb.signr is limited to the real-time signals SIGRTMIN to 
      >> SIGRTMAX. What's the rationale for this restriction? I believe that a 
      >> process can kill() itself with any signal number, can't it? I was 
      >> planning to use SIGIO for usbdevfs_urb.signr and SIGTERM (uncaught) for 
      >> USBDEVFS_DISCSIGNAL. I don't think I'll have a problem with using 
      >> SIGRTMIN+n instead, but I'm curious to know if there's some subtle 
      >> problem with the non-real-time signals that I should be aware of.
      >
      > I don't know of any reason for this restriction.
      
      Since no-one else could think of a reason either, I offer the following 
      patch which allows any signal to be used with USBDEVFS_DISCSIGNAL and 
      usbdevfs_urb.signr.
      Signed-off-by: NPhil Endecott <usbpatch@chezphil.org>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      ff8973d9
    • H
      USB: wusb: annotate association types withe proper endianness · d767d888
      Harvey Harrison 提交于
      Also a trivial annotation in rh.c for:
      drivers/usb/wusbcore/rh.c:366:9: warning: incorrect type in assignment (different base types)
      drivers/usb/wusbcore/rh.c:366:9:    expected unsigned short [unsigned] [short] [usertype] <noident>
      drivers/usb/wusbcore/rh.c:366:9:    got restricted __le16 [usertype] <noident>
      drivers/usb/wusbcore/rh.c:367:9: warning: incorrect type in assignment (different base types)
      drivers/usb/wusbcore/rh.c:367:9:    expected unsigned short [unsigned] [short] [usertype] <noident>
      drivers/usb/wusbcore/rh.c:367:9:    got restricted __le16 [usertype] <noident>
      
      Association types annotation fixes piles of warnings similar to:
      drivers/usb/wusbcore/cbaf.c:238:30: warning: incorrect type in initializer (different base types)
      drivers/usb/wusbcore/cbaf.c:238:30:    expected restricted __le16 [usertype] id
      drivers/usb/wusbcore/cbaf.c:238:30:    got int
      drivers/usb/wusbcore/cbaf.c:238:30: warning: incorrect type in initializer (different base types)
      drivers/usb/wusbcore/cbaf.c:238:30:    expected restricted __le16 [usertype] len
      drivers/usb/wusbcore/cbaf.c:238:30:    got int
      Signed-off-by: NHarvey Harrison <harvey.harrison@gmail.com>
      Cc: David Vrabel <david.vrabel@csr.com>
      Cc: Inaky Perez-Gonzalez <inaky.perez-gonzalez@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      d767d888
    • S
      USB: EHCI pci-quirks.c: don't wait so long for BIOS handoff · d859bffc
      Steven Noonan 提交于
      Instead of waiting a painful 5000ms, quirk_usb_disable_ehci() now does a
      1000ms loop to wait for the BIOS to acknowledge the handoff.
      
      The five second delay is really quite irritating to have to deal with
      every boot up, and I very seriously doubt any non-broken bios takes more
      than a second to do the actual handoff.
      Signed-off-by: NSteven Noonan <steven@uplinklabs.net>
      Cc: Alan Stern <stern@rowland.harvard.edu>
      Cc: David Brownell <david-b@pacbell.net>
      Cc: Jeff Garzik <jeff@garzik.org>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      d859bffc
    • A
      USB: straighten out inline code in sysfs.c · 92b0da15
      Alan Stern 提交于
      This patch (as1156) straightens out some code in usbcore.  The
      usb_create_intf_ep_files() and usb_remove_intf_ep_files() routines
      don't need to be separate inlines; they should be moved bodily into
      the places where they get used.
      Signed-off-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      
      92b0da15
    • H
      USB: avoid needless address-taking of function parameters · da2bbdcc
      Harvey Harrison 提交于
      There's no need to take the address of the function params or local variables
      when the direct value byteswapping routines are available.
      Signed-off-by: NHarvey Harrison <harvey.harrison@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      da2bbdcc
    • A
      USB: protect hcd.h from multiple inclusions · aa459e6a
      Anton Vorontsov 提交于
      This will let us use this header in other header files.
      Will be needed for the FHCI USB Host driver.
      Signed-off-by: NAnton Vorontsov <avorontsov@ru.mvista.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      aa459e6a
    • R
      usb host: Oxford OXU210HP HCD driver. · b92a78e5
      Rodolfo Giometti 提交于
      This driver implements the support for Oxford OXU210HP USB high-speed host,
      no peripheral nor OTG.
      Signed-off-by: NRodolfo Giometti <giometti@linux.it>
      Cc: Kan Liu <kan.k.liu@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b92a78e5
    • V
      USB: Avoid 20ms delay in EHCI resume · 3a4e72cb
      Vikram Pandita 提交于
      For function ehci_bus_resume()
      - Added flag resume_needed
        No need to wait for 20ms if no port was suspended
      
      - Change mdelay to msleep
      
      - release and reacquire the spinlock around mdelay
      Signed-off-by: Nvikram pandita <vikram.pandita@ti.com>
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3a4e72cb
    • A
      USB: use pci_ioremap_bar() in drivers/usb · 8e8ce4b6
      Arjan van de Ven 提交于
      Use the newly introduced pci_ioremap_bar() function in drivers/usb.
      pci_ioremap_bar() just takes a pci device and a bar number, with the goal
      of making it really hard to get wrong, while also having a central place
      to stick sanity checks.
      Signed-off-by: NArjan van de Ven <arjan@linux.intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      8e8ce4b6
    • R
      USB: clean up redundant tests on unsigned · e64a5219
      roel kluin 提交于
      temp, bytes and param->{length,sglen,vary} are unsigned so
      these tests do nothing.
      Signed-off-by: NRoel Kluin <roel.kluin@gmail.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      e64a5219
    • S
      USB: storage: unusual_devs.h additions for Macpower MasterBox · 3b438e30
      Sergey Ovcharenko 提交于
      Jason Johnston reported these problems with his external USB hard drive:
      http://bugs.gentoo.org/show_bug.cgi?id=250789
      
      The number of reported sectors is off-by-one.
      
      /proc/bus/usb/devices:
      T:  Bus=01 Lev=02 Prnt=08 Port=00 Cnt=01 Dev#=  9 Spd=480 MxCh= 0
      D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
      P:  Vendor=0dc4 ProdID=0073 Rev= 0.00
      S:  Manufacturer=Macpower Technology Co.LTD.
      S:  Product=USB 2.0 3.5" DEVICE
      S:  SerialNumber=03006C
      C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
      I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
      E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
      Signed-off-by: NSergey Ovcharenko <velegrin@mail.mipt.ru>
      Signed-off-by: NPhil Dibowitz <phil@ipom.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      3b438e30
    • P
      USB: storage: recognizing and enabling Nokia 5200 cell phoes · b8d23491
      Paulo Afonso Graner Fessel 提交于
      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: NPaulo Afonso Graner Fessel <pfessel@gmail.com>
      Signed-off-by: NPhil Dibowitz <phil@ipom.com>
      Cc: stable <stable@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b8d23491
    • O
      USB: storage: extend unusual range for 067b:3507 · b1636399
      Oliver Neukum 提交于
      This device has been released in a new revision which is still buggy.
      Signed-off-by: NOliver Neukum <oneukum@suse.de>
      Signed-off-by: NPhil Dibowitz <phil@ipom.com>
      Cc: stable <stable@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      b1636399
    • N
      USB: another unusual_devs entry for another bad Argosy storage device · e2673b28
      Nguyen Anh Quynh 提交于
      I have another Argosy USB storage device, which has the same problem
      with the Argosy USB storage device already fixed in 2.6.27.7. But this
      device has another product ID (840:84), so this patch adds a new entry
      into unusual_devs to fix the mount problem.
      
      I enclose here two patches: one against 2.6.27.8, and another against
      the latest linus-git tree.
      
      
      The information about the Argosy device is like below:
      
      #lsusb -v -d 840:84
      Bus 005 Device 005: ID 0840:0084 Argosy Research, Inc.
      Device Descriptor:
        bLength                18
        bDescriptorType         1
        bcdUSB               2.00
        bDeviceClass            0 (Defined at Interface level)
        bDeviceSubClass         0
        bDeviceProtocol         0
        bMaxPacketSize0        64
        idVendor           0x0840 Argosy Research, Inc.
        idProduct          0x0084
        bcdDevice            0.01
        iManufacturer           1 Generic
        iProduct                2 USB 2.0 Storage Device
        iSerial                 3 8400000000002549
        bNumConfigurations      1
        Configuration Descriptor:
          bLength                 9
          bDescriptorType         2
          wTotalLength           32
          bNumInterfaces          1
          bConfigurationValue     1
          iConfiguration          0
          bmAttributes         0xc0
            Self Powered
          MaxPower                2mA
          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     0x01  EP 1 OUT
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
            Endpoint Descriptor:
              bLength                 7
              bDescriptorType         5
              bEndpointAddress     0x82  EP 2 IN
              bmAttributes            2
                Transfer Type            Bulk
                Synch Type               None
                Usage Type               Data
              wMaxPacketSize     0x0200  1x 512 bytes
              bInterval               0
      Device Qualifier (for other device speed):
        bLength                10
        bDescriptorType         6
        bcdUSB               2.00
        bDeviceClass            0 (Defined at Interface level)
        bDeviceSubClass         0
        bDeviceProtocol         0
        bMaxPacketSize0        64
        bNumConfigurations      1
      Device Status:     0x0000
        (Bus Powered)
      
      Before the patch, dmesg returns a lot of information like below (my
      dmesg is overflown):
      ....
      [  138.833390] sd 7:0:0:0: [sdb] Add. Sense: No additional sense information
      [  138.877631] sd 7:0:0:0: [sdb] Sense Key : No Sense [current]
      [  138.877643] sd 7:0:0:0: [sdb] Add. Sense: No additional sense information
      [  138.921906] sd 7:0:0:0: [sdb] Sense Key : No Sense [current]
      [  138.921923] sd 7:0:0:0: [sdb] Add. Sense: No additional sense information
      ....
      
      After the fix, dmesg returns below information:
      ....
      usb 5-1: new high speed USB device using ehci_hcd and address 5
      usb 5-1: configuration #1 chosen from 1 choice
      scsi7 : SCSI emulation for USB Mass Storage devices
      usb-storage: device found at 5
      usb-storage: waiting for device to settle before scanning
      usb-storage: device scan complete
      scsi 7:0:0:0: Direct-Access     HTS54808 0M9AT00          MG4O PQ: 0 ANSI: 0
      sd 7:0:0:0: [sdb] 156301488 512-byte hardware sectors (80026 MB)
      sd 7:0:0:0: [sdb] Write Protect is off
      sd 7:0:0:0: [sdb] Mode Sense: 03 00 00 00
      sd 7:0:0:0: [sdb] Assuming drive cache: write through
      sd 7:0:0:0: [sdb] 156301488 512-byte hardware sectors (80026 MB)
      sd 7:0:0:0: [sdb] Write Protect is off
      sd 7:0:0:0: [sdb] Mode Sense: 03 00 00 00
      sd 7:0:0:0: [sdb] Assuming drive cache: write through
       sdb: sdb1
      sd 7:0:0:0: [sdb] Attached SCSI disk
      sd 7:0:0:0: Attached scsi generic sg1 type 0
      kjournald starting.  Commit interval 5 seconds
      EXT3 FS on sdb1, internal journal
      EXT3-fs: recovery complete.
      EXT3-fs: mounted filesystem with ordered data mode.
      
      Cc: Kuniyasu Suzaki <k.suzaki@aist.go.jp>
      Signed-off-by: NNguyen Anh Quynh <aquynh@gmail.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Cc: stable <stable@kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      e2673b28
    • D
      USB: unusual_devs.h additions for Pentax K10D · e3f47f89
      Daniel Drake 提交于
      Jaak Ristioja reported problems with his Pentax K10D camera:
      https://bugs.gentoo.org/show_bug.cgi?id=250406
      
      /proc/bus/usb/devices:
      T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
      D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
      P:  Vendor=0a17 ProdID=006e Rev= 1.00
      S:  Manufacturer=PENTAX Corporation
      S:  Product=K10D
      C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=  2mA
      I:* If#= 0 Alt= 0 #EPs= 3 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
      E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
      E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=100ms
      The number of reported sectors is off-by-one.
      Signed-off-by: NDaniel Drake <dsd@gentoo.org>
      Cc: Kadianakis George <desnacked@gmail.com>
      Cc: stable <stable@kernel.org>
      Signed-off-by: NPhil Dibowitz <phil@ipom.com>
      e3f47f89
  2. 07 1月, 2009 12 次提交