1. 23 2月, 2015 15 次提交
  2. 18 2月, 2015 1 次提交
  3. 14 2月, 2015 1 次提交
  4. 12 2月, 2015 3 次提交
  5. 09 2月, 2015 1 次提交
  6. 05 2月, 2015 2 次提交
    • B
      usb: musb: fix device hotplug behind hub · 9298b4aa
      Bin Liu 提交于
      The commit 889ad3b "usb: musb: try a race-free wakeup" breaks device
      hotplug enumeraitonn when the device is connected behind a hub while usb
      autosuspend is enabled.
      
      Adding finish_resume_work into runtime resume callback fixes the issue.
      
      Also resume root hub is required to resume the bus from runtime suspend,
      so move musb_host_resume_root_hub() back to its original location, where
      handles RESUME interrupt.
      Signed-off-by: NBin Liu <b-liu@ti.com>
      Tested-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      9298b4aa
    • R
      usb: dwc2: Fix a bug in reading the endpoint directions from reg. · 251a17f5
      Roshan Pius 提交于
      According to  the DWC2 datasheet, the HWCFG1 register stores
      the configured endpoint directions for endpoints 0-15 in bit positions
      0-31.
      ==========================
      Endpoint Direction (EpDir)
      This 32-bit field uses two bits per endpoint to determine the endpoint
      direction.
      Endpoint
      Bits [31:30]: Endpoint 15 direction
      Bits [29:28]: Endpoint 14 direction
      ....
      Bits [3:2]: Endpoint 1 direction
      Bits[1:0]: Endpoint 0 direction (always BIDIR)
      ==========================
      
      The DWC2 driver is currently interpreting the contents of the register
      as directions for endpoints 1-15 which leads to an error in determining
      the configured endpoint directions in the core because the first 2 bits
      determine the direction of endpoint 0 and not 1.
      
      This is based on testing/next branch in Felipe's git.
      Signed-off-by: NRoshan Pius <rpius@chromium.org>
      Acked-by: NJohn Youn <johnyoun@synopsys.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      251a17f5
  7. 04 2月, 2015 5 次提交
  8. 03 2月, 2015 2 次提交
  9. 01 2月, 2015 7 次提交
  10. 31 1月, 2015 3 次提交
    • F
      usb: phy: phy-generic: Fix USB PHY gpio reset · 74379991
      Fabio Estevam 提交于
      Since commit e9f2cefb ("usb: phy: generic: migrate to gpio_desc") a
      kernel hang is observed on imx51-babbage board:
      
      [    1.392824] ci_hdrc ci_hdrc.1: doesn't support gadget
      [    1.397975] ci_hdrc ci_hdrc.1: EHCI Host Controller
      [    1.403205] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 1
      [    1.422335] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00
      [    1.432962] hub 1-0:1.0: USB hub found
      [    1.437119] hub 1-0:1.0: 1 port detected
      
      This hang happens because the reset GPIO stays at logic level 0.
      
      The USB PHY reset gpio is defined in the dts file as:
      
      reset-gpios = <&gpio2 5 GPIO_ACTIVE_LOW>;
      
      , which means it is active low, so what the gpio reset pin needs to do in this
      case is the following:
      
      - Go to logic level 0 to reset the USB PHY
      - Stay at 0 for a bit
      - Go back to logic level 1
      
      When switching to gpiod API we need to following according to
      Documentation/gpio/consumer.txt:
      
      "The first thing a driver must do with a GPIO is setting its direction. If no
      direction-setting flags have been given to gpiod_get*(), this is done by
      invoking one of the gpiod_direction_*() functions:
      
      	int gpiod_direction_input(struct gpio_desc *desc)
      	int gpiod_direction_output(struct gpio_desc *desc, int value)"
      
      Since no direction-setting flags have been given to devm_gpiod_get_optional()
      in our case, we need to use gpiod_direction_output to comply with the gpiod API.
      
      With this change the USB PHY reset performs a proper reset, the kernel boots
      fine and USB host is functional.
      Signed-off-by: NFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      74379991
    • A
      usb: dwc2: fix USB core dependencies · b7974de8
      Arnd Bergmann 提交于
      It is currently possible to configure the dwc2 driver as built-in
      when host mode or dual-role is enabled, but the USB core is
      a loadable module. This leads to a link failure:
      
      drivers/built-in.o: In function `_dwc2_hcd_start':
      :(.text+0x84538): undefined reference to `usb_hcd_resume_root_hub'
      drivers/built-in.o: In function `_dwc2_hcd_urb_dequeue':
      :(.text+0x84aa0): undefined reference to `usb_hcd_check_unlink_urb'
      :(.text+0x84e4c): undefined reference to `usb_hcd_unlink_urb_from_ep'
      :(.text+0x84e74): undefined reference to `usb_hcd_giveback_urb'
      drivers/built-in.o: In function `dwc2_assign_and_init_hc':
      :(.text+0x86b98): undefined reference to `usb_hcd_unmap_urb_for_dma'
      drivers/built-in.o: In function `_dwc2_hcd_urb_enqueue':
      :(.text+0x8717c): undefined reference to `usb_hcd_link_urb_to_ep'
      :(.text+0x872f4): undefined reference to `usb_hcd_unlink_urb_from_ep'
      drivers/built-in.o: In function `dwc2_host_complete':
      :(.text+0x875d4): undefined reference to `usb_hcd_unlink_urb_from_ep'
      :(.text+0x87600): undefined reference to `usb_hcd_giveback_urb'
      drivers/built-in.o: In function `dwc2_hcd_init':
      :(.text+0x87ba8): undefined reference to `usb_disabled'
      :(.text+0x87d38): undefined reference to `usb_create_hcd'
      :(.text+0x88094): undefined reference to `usb_add_hcd'
      :(.text+0x880dc): undefined reference to `usb_put_hcd'
      drivers/built-in.o: In function `dwc2_hcd_remove':
      :(.text+0x8821c): undefined reference to `usb_remove_hcd'
      :(.text+0x8823c): undefined reference to `usb_put_hcd'
      drivers/built-in.o: In function `dwc2_hc_handle_tt_clear.isra.10':
      :(.text+0x88e2c): undefined reference to `usb_hub_clear_tt_buffer'
      drivers/built-in.o: In function `dwc2_hcd_qtd_add':
      :(.text+0x8b554): undefined reference to `usb_calc_bus_time'
      
      To fix the problem, this patch changes the dependencies so that
      dwc2 host mode can only be enabled if either the USB core is
      built-in or both USB and dwc2 are modules.
      Acked-by: NJohn Youn <johnyoun@synopsys.com>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      b7974de8
    • Y
      usb: renesas_usbhs: fix NULL pointer dereference in dma_release_channel() · ffb9da65
      Yoshihiro Shimoda 提交于
      This patch fixes an issue that the following commit causes NULL
      pointer dereference in dma_release_channel().
       "usb: renesas_usbhs: add support for requesting DT DMA"
       (commit id abd2dbf6)
      
      The usbhsf_dma_init_dt() should set fifo->{t,r}x_chan to NULL if
      dma_request_slave_channel_reason() returns IS_ERR value.
      Otherwise, usbhsf_dma_quit() will call dma_release_channel(), and then
      NULL pointer dereference happens.
      Acked-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Tested-by: NSimon Horman <horms+renesas@verge.net.au>
      Reported-by: NSimon Horman <horms@verge.net.au>
      Signed-off-by: NYoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      ffb9da65