1. 18 12月, 2013 2 次提交
    • L
      xhci: Remove unused variable 'addr' in inc_deq() and inc_enq(). · 599459d8
      Lin Wang 提交于
      This patch remove unused variable 'addr' in inc_deq() and inc_enq().
      Signed-off-by: NLin Wang <lin.x.wang@intel.com>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      599459d8
    • S
      usbtest: Fix BOS control test for USB 2.01 devices. · 8cf43285
      Sarah Sharp 提交于
      Commit c952a8ba "usb: usbtest: add a
      test case to support bos for queue control" will cause USB 2.01 and USB
      2.10 devices with a BOS descriptor to fail case 15 of the control test.
      
      The Link PM errata (released in 2007, updated in 2011) says:
      
      "The value of the bcdUSB field in the standard USB 2.0 Device Descriptor
      is used to indicate that the device supports the request to read the BOS
      Descriptor (i.e.  GetDescriptor(BOS)). Devices that support the BOS
      descriptor must have a bcdUSB value of 0201H or larger."
      
      The current code says that non-SuperSpeed devices *must* return -EPIPE,
      as this comment shows:
      
                      /* sign of this variable means:
                       *  -: tested code must return this (negative) error code
                       *  +: tested code may return this (negative too) error code
                       */
                      int                     expected = 0;
      
      This means the test will fail with USB 2.01 and USB 2.10 devices that
      provide a BOS descriptor.  Change it to only require a stall response if
      the USB device bcdUSB is less than 2.01.
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Acked-by: NHuang Rui <ray.huang@amd.com>
      8cf43285
  2. 14 12月, 2013 1 次提交
  3. 11 12月, 2013 4 次提交
    • B
      USB: emi62: Provide the correct bitstream firmware · 3d724fa5
      Ben Hutchings 提交于
      Commit b8e24bfa ('emi62: use request_firmware()') made
      emi62/bitstream.HEX a copy of emi26/bitstream.HEX.  Re-do the
      conversion from drivers/usb/misc/emi62_fw_{m,s}.h (these headers
      contained the same bitstream but different firmware).
      
      This produces an identical blob to the known working version in
      http://people.xiph.org/~xiphmont/emagic/emi-20131209.tgzReported-by: NMonty <xiphmont@xiph.org>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Signed-off-by: NBen Hutchings <ben@decadent.org.uk>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      3d724fa5
    • G
      Merge tag 'for-usb-next-2013-12-10' of... · 3191a6f7
      Greg Kroah-Hartman 提交于
      Merge tag 'for-usb-next-2013-12-10' of git://git.kernel.org/pub/scm/linux/kernel/git/sarah/xhci into usb-next
      
      Sarah Writes:
      
      usb: Enumeration change under xHCI for 3.14.
      
      Hi Greg,
      
      Here's two patches for 3.14.
      
      There are buggy USB devices that don't enumerate under xHCI because
      they expect a 64-byte Get Descriptor request before the Set Address control
      transfer.  David Moore has a USB 2.0 webcam that exhibits this behavior:
      
      http://marc.info/?l=linux-usb&m=135879694716380&w=2
      
      These patches change the way USB 2.0 devices are enumerated under xHCI, to try
      the Windows enumeration scheme first.  The USB 3.0 device enumeration scheme is
      unchanged.  This should allow these buggy USB 2.0 devices to enumerate under xHCI.
      
      I've tested this code with USB 3.0 hubs and mass storage devices, and many
      different USB 2.0 devices (webcam, headset, ethernet, serial, mouse, keyboard,
      etc).  They all work, so these patches are ready for wider testing.
      
      Sarah Sharp
      3191a6f7
    • D
      xhci: clarify logging in xhci_setup_device · 6f8ffc0b
      Dan Williams 提交于
      Specify whether we are only performing the context setup portion of the
      'address device' command, or the full operation issuing 'SetAddress'
      on the wire.
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      6f8ffc0b
    • D
      usb: xhci: change enumeration scheme to 'new scheme' by default · 48fc7dbd
      Dan Williams 提交于
      Change the default enumeration scheme for xhci attached non-SuperSpeed
      devices from:
      
         Reset
         SetAddress [xhci address-device BSR = 0]
         GetDescriptor(8)
         GetDescriptor(18)
      
      ...to:
      
         Reset
         [xhci address-device BSR = 1]
         GetDescriptor(64)
         Reset
         SetAddress [xhci address-device BSR = 0]
         GetDescriptor(18)
      
      ...as some devices misbehave when encountering a SetAddress command
      prior to GetDescriptor.  There are known legacy devices that require
      this scheme, but testing has found at least one USB3 device that fails
      enumeration when presented with this ordering.  For now, follow the ehci
      case and enable 'new scheme' by default for non-SuperSpeed devices.
      
      To support this enumeration scheme on xhci the AddressDevice operation
      needs to be performed twice.  The first instance of the command enables
      the HC's device and slot context info for the device, but omits sending
      the device a SetAddress command (BSR == block set address request).
      Then, after GetDescriptor completes, follow up with the full
      AddressDevice+SetAddress operation.
      
      As mentioned before, this ordering of events with USB3 devices causes an
      extra state transition to be exposed to xhci.  Previously USB3 devices
      would transition directly from 'enabled' to 'addressed' and never need
      to underrun responses to 'get descriptor'. We do see the 64-byte
      descriptor fetch the correct data, but the following 18-byte descriptor
      read after the reset gets:
      
      bLength            = 0
      bDescriptorType    = 0
      bcdUSB             = 0
      bDeviceClass       = 0
      bDeviceSubClass    = 0
      bDeviceProtocol    = 0
      bMaxPacketSize0    = 9
      
      instead of:
      
      bLength            = 12
      bDescriptorType    = 1
      bcdUSB             = 300
      bDeviceClass       = 0
      bDeviceSubClass    = 0
      bDeviceProtocol    = 0
      bMaxPacketSize0    = 9
      
      which results in the discovery process looping until falling back to
      'old scheme' enumeration.
      Acked-by: NAlan Stern <stern@rowland.harvard.edu>
      Reported-by: NDavid Moore <david.moore@gmail.com>
      Suggested-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      Reported-by: NDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      Signed-off-by: NSarah Sharp <sarah.a.sharp@linux.intel.com>
      48fc7dbd
  4. 10 12月, 2013 7 次提交
  5. 09 12月, 2013 25 次提交
  6. 05 12月, 2013 1 次提交
    • F
      USB: fix coccinelle warnings · 2e30d14f
      Fengguang Wu 提交于
      drivers/usb/host/ehci-mv.c:181:26-27: WARNING comparing pointer to 0, suggest !E
      /c/kernel-tests/src/cocci/drivers/usb/host/ehci-mv.c:181:26-27: WARNING comparing pointer to 0
      
       Compare pointer-typed values to NULL rather than 0
      
      Semantic patch information:
       This makes an effort to choose between !x and x == NULL.  !x is used
       if it has previously been used with the function used to initialize x.
       This relies on type information.  More type information can be obtained
       using the option -all_includes and the option -I to specify an
       include path.
      
      Generated by: coccinelle/null/badzero.cocci
      
      CC: Jingoo Han <jg1.han@samsung.com>
      CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NFengguang Wu <fengguang.wu@intel.com>
      2e30d14f