1. 19 Jul, 2011 2 commits
    • Alan Stern's avatar
      EHCI: fix direction handling for interrupt data toggles · e04f5f7e
      Alan Stern authored
      This patch (as1480) fixes a rather obscure bug in ehci-hcd.  The
      qh_update() routine needs to know the number and direction of the
      endpoint corresponding to its QH argument.  The number can be taken
      directly from the QH data structure, but the direction isn't stored
      there.  The direction is taken instead from the first qTD linked to
      the QH.
      
      However, it turns out that for interrupt transfers, qh_update() gets
      called before the qTDs are linked to the QH.  As a result, qh_update()
      computes a bogus direction value, which messes up the endpoint toggle
      handling.  Under the right combination of circumstances this causes
      usb_reset_endpoint() not to work correctly, which causes packets to be
      dropped and communications to fail.
      
      Now, it's silly for the QH structure not to have direct access to all
      the descriptor information for the corresponding endpoint.  Ultimately
      it may get a pointer to the usb_host_endpoint structure; for now,
      adding a copy of the direction flag solves the immediate problem.
      
      This allows the Spyder2 color-calibration system (a low-speed USB
      device that sends all its interrupt data packets with the toggle set
      to 0 and hance requires constant use of usb_reset_endpoint) to work
      when connected through a high-speed hub.  Thanks to Graeme Gill for
      supplying the hardware that allowed me to track down this bug.
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Reported-by: default avatarGraeme Gill <graeme@argyllcms.com>
      CC: <stable@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      e04f5f7e
    • Wolfgang Denk's avatar
      USB: serial: add IDs for WinChipHead USB->RS232 adapter · 026dfaf1
      Wolfgang Denk authored
      Add ID 4348:5523 for WinChipHead USB->RS 232 adapter with
      Prolifec PL2303 chipset
      Signed-off-by: default avatarWolfgang Denk <wd@denx.de>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      026dfaf1
  2. 16 Jul, 2011 1 commit
    • Alan Stern's avatar
      USB: OHCI: fix another regression for NVIDIA controllers · 6ea12a04
      Alan Stern authored
      The NVIDIA series of OHCI controllers continues to be troublesome.  A
      few people using the MCP67 chipset have reported that even with the
      most recent kernels, the OHCI controller fails to handle new
      connections and spams the system log with "unable to enumerate USB
      port" messages.  This is different from the other problems previously
      reported for NVIDIA OHCI controllers, although it is probably related.
      
      It turns out that the MCP67 controller does not like to be kept in the
      RESET state very long.  After only a few seconds, it decides not to
      work any more.  This patch (as1479) changes the PCI initialization
      quirk code so that NVIDIA controllers are switched into the SUSPEND
      state after 50 ms of RESET.  With no interrupts enabled and all the
      downstream devices reset, and thus unable to send wakeup requests,
      this should be perfectly safe (even for non-NVIDIA hardware).
      
      The removal code in ohci-hcd hasn't been changed; it will still leave
      the controller in the RESET state.  As a result, if someone unloads
      ohci-hcd and then reloads it, the controller won't work again until
      the system is rebooted.  If anybody complains about this, the removal
      code can be updated similarly.
      
      This fixes Bugzilla #22052.
      Tested-by: default avatarLarry Finger <Larry.Finger@lwfinger.net>
      Cc: stable <stable@kernel.org>
      Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
      6ea12a04
  3. 08 Jul, 2011 32 commits
  4. 05 Jul, 2011 5 commits
    • Sebastian Andrzej Siewior's avatar
      usb: gadget: fix up depencies · ac17317d
      Sebastian Andrzej Siewior authored
      Both fusb300 and langwell udcs seem to only
      work with 32-bit address space.
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      ac17317d
    • Sebastian Andrzej Siewior's avatar
      usb: gadget: fusb300_udc: fix compile warnings · 1425b80e
      Sebastian Andrzej Siewior authored
      - remove pointer u32 abuse in fusb300_fill_idma_prdtbl().
        It is assigned the dma_addr to a pointer and then back.
        Poor families may have to recycle variables but we don't
      
      - don't free req.buf in error case. We don't do it in the
        ok case so it is probably wrong to do it in error case.
      
      - return in error case. There is no reason to continue
        without data and performing ops on an invalid pointer.
      
      - The if (d) statement is bogus since an invalid DMA pointer
        is ~0 on some architecutres. And since we return for the
        invalid case we don't need it.
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      1425b80e
    • Sebastian Andrzej Siewior's avatar
      usb: gadget: ci13xx_udc.c: fix compile warning · c2b65f84
      Sebastian Andrzej Siewior authored
      Fix the following compile warning:
      
      | usb/gadget/ci13xxx_udc.c: In function 'show_registers':
      | usb/gadget/ci13xxx_udc.c:1242:1: warning: the frame size of 2064 bytes is larger than 1024 bytes
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      c2b65f84
    • Felipe Balbi's avatar
      usb: gadget: net2272: fix compile warnings · 7b30d19a
      Felipe Balbi authored
      This patch fixes the following compile warnings:
      
      drivers/usb/gadget/net2272.c: In function ‘net2272_kick_dma’:
      drivers/usb/gadget/net2272.c:740:2: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 6 has type ‘dma_addr_t’ [-Wformat]
      drivers/usb/gadget/net2272.c: In function ‘net2272_queue’:
      drivers/usb/gadget/net2272.c:859:2: warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 8 has type ‘dma_addr_t’ [-Wformat]
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      7b30d19a
    • Felipe Balbi's avatar
      usb: gadget: langwell_udc: fix compile warnings · b9af9ea4
      Felipe Balbi authored
      This patch fixes the following compile warnings:
      
      drivers/usb/gadget/langwell_udc.c: In function ‘queue_dtd’:
      drivers/usb/gadget/langwell_udc.c:596:2: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
      drivers/usb/gadget/langwell_udc.c: In function ‘langwell_udc_probe’:
      drivers/usb/gadget/langwell_udc.c:3274:2: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘size_t’ [-Wformat]
      drivers/usb/gadget/langwell_udc.c:3289:2: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘size_t’ [-Wformat]
      drivers/usb/gadget/langwell_udc.c: In function ‘langwell_udc_resume’:
      drivers/usb/gadget/langwell_udc.c:3473:2: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘size_t’ [-Wformat]
      drivers/usb/gadget/langwell_udc.c:3487:2: warning: format ‘%d’ expects argument of type ‘int’, but argument 4 has type ‘size_t’ [-Wformat]
      Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
      b9af9ea4