1. 19 11月, 2015 1 次提交
    • A
      usb: musb: USB_TI_CPPI41_DMA requires dmaengine support · 183e53e8
      Arnd Bergmann 提交于
      The CPPI-4.1 driver selects TI_CPPI41, which is a dmaengine
      driver and that may not be available when CONFIG_DMADEVICES
      is not set:
      
      warning: (USB_TI_CPPI41_DMA) selects TI_CPPI41 which has unmet direct dependencies (DMADEVICES && ARCH_OMAP)
      
      This adds an extra dependency to avoid generating warnings in randconfig
      builds. Ideally we'd remove the 'select' statement, but that has the
      potential to break defconfig files.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Fixes: 411dd19c ("usb: musb: Kconfig: Select the DMA driver if DMA mode of MUSB is enabled")
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      183e53e8
  2. 03 8月, 2015 1 次提交
  3. 29 7月, 2015 1 次提交
    • H
      usb: musb: sunxi: Add support for the Allwinner sunxi musb controller · 744543c5
      Hans de Goede 提交于
      This is based on initial code to get the Allwinner sunxi musb controller
      supported by Chen-Yu Tsai and Roman Byshko.
      
      This adds support for the Allwinner sunxi musb controller in both host only
      and otg mode. Peripheral only mode is not supported, as no boards use that.
      
      This has been tested on a cubietruck (A20 SoC) and an UTOO P66 tablet
      (A13 SoC) with a variety of devices in host mode and with the g_serial gadget
      driver in peripheral mode, plugging otg / host cables in/out a lot of times
      in all possible imaginable plug orders.
      Signed-off-by: NHans de Goede <hdegoede@redhat.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      744543c5
  4. 09 3月, 2015 1 次提交
  5. 30 1月, 2015 2 次提交
    • A
      usb: musb: add omap-control dependency · fbba7db3
      Arnd Bergmann 提交于
      The omap musb front-end calls into the phy driver directly
      instead of using a generic phy interface, which causes a link
      error when the specific driver is not built-in:
      
      drivers/built-in.o: In function `omap2430_musb_disable':
      usb/musb/omap2430.c:480: undefined reference to `omap_control_usb_set_mode'
      drivers/built-in.o: In function `omap2430_musb_enable':
      usb/musb/omap2430.c:466: undefined reference to `omap_control_usb_set_mode'
      usb/musb/omap2430.c:447: undefined reference to `omap_control_usb_set_mode'
      drivers/built-in.o: In function `omap_musb_set_mailbox':
      usb/musb/omap2430.c:273: undefined reference to `omap_control_usb_set_mode'
      usb/musb/omap2430.c:304: undefined reference to `omap_control_usb_set_mode'
      drivers/built-in.o:(.debug_addr+0xbd9e0): more undefined references to `omap_control_usb_set_mode' follow
      
      This adds an explicit dependency.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Fixes: ca784be3 ("usb: start using the control module driver")
      Cc: <stable@vger.kernel.org> # v3.9+
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      fbba7db3
    • A
      usb: musb: add generic usb phy dependencies · a0cb12e2
      Arnd Bergmann 提交于
      Multiple musb glue drivers depend on the generic usb phy support,
      but fail to list it as a dependency in Kconfig. This results
      in build erros like:
      
      drivers/built-in.o: In function `am35x_remove':
      :(.text+0xadacc): undefined reference to `usb_phy_generic_unregister'
      drivers/built-in.o: In function `am35x_probe':
      :(.text+0xae1c8): undefined reference to `usb_phy_generic_register'
      :(.text+0xae244): undefined reference to `usb_phy_generic_unregister'
      drivers/built-in.o: In function `jz4740_remove':
      :(.text+0xaf648): undefined reference to `usb_phy_generic_unregister'
      drivers/built-in.o: In function `jz4740_musb_init':
      :(.text+0xaf694): undefined reference to `usb_phy_generic_register'
      
      This adds the ones that are missing.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      a0cb12e2
  6. 23 12月, 2014 1 次提交
    • T
      usb: musb: Fix randconfig build issues for Kconfig options · c0442479
      Tony Lindgren 提交于
      Commit 82c02f58 ("usb: musb: Allow multiple glue layers to be
      built in") enabled selecting multiple glue layers, which in turn
      exposed things more for randconfig builds. If NOP_USB_XCEIV is
      built-in and TUSB6010 is a loadable module, we will get:
      
      drivers/built-in.o: In function `tusb_remove':
      tusb6010.c:(.text+0x16a817): undefined reference to `usb_phy_generic_unregister'
      drivers/built-in.o: In function `tusb_probe':
      tusb6010.c:(.text+0x16b24e): undefined reference to `usb_phy_generic_register'
      make: *** [vmlinux] Error 1
      
      Let's fix this the same way as commit 70c1ff4b ("usb: musb:
      tusb-dma can't be built-in if tusb is not").
      
      And while at it, let's not allow selecting the glue layers except
      on platforms really using them unless COMPILE_TEST is specified:
      
      - TUSB6010 is in practise only used on omaps
      
      - DSPS is only used on TI platforms
      
      - UX500 is only used on STE platforms
      
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Reported-by: NJim Davis <jim.epost@gmail.com>
      Signed-off-by: NTony Lindgren <tony@atomide.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      c0442479
  7. 25 11月, 2014 1 次提交
  8. 14 5月, 2014 3 次提交
  9. 05 3月, 2014 1 次提交
    • G
      usb: musb: USB_MUSB_DUAL_ROLE/USB_MUSB_GADGET should depend on HAS_DMA · 3f83e538
      Geert Uytterhoeven 提交于
      If NO_DMA=y:
      
          drivers/built-in.o: In function `txstate':
          musb_gadget.c:(.text+0x35955a): undefined reference to `dma_unmap_single'
          musb_gadget.c:(.text+0x35957e): undefined reference to `dma_sync_single_for_cpu'
          drivers/built-in.o: In function `musb_g_giveback':
          (.text+0x359672): undefined reference to `dma_mapping_error'
          drivers/built-in.o: In function `musb_g_giveback':
          (.text+0x3596ba): undefined reference to `dma_unmap_single'
          drivers/built-in.o: In function `musb_g_giveback':
          (.text+0x3596e0): undefined reference to `dma_sync_single_for_cpu'
          drivers/built-in.o: In function `rxstate':
          musb_gadget.c:(.text+0x3599d0): undefined reference to `dma_unmap_single'
          musb_gadget.c:(.text+0x3599f6): undefined reference to `dma_sync_single_for_cpu'
          drivers/built-in.o: In function `musb_gadget_queue':
          musb_gadget.c:(.text+0x35a8c0): undefined reference to `dma_map_single'
          musb_gadget.c:(.text+0x35a8d0): undefined reference to `dma_mapping_error'
          musb_gadget.c:(.text+0x35a906): undefined reference to `dma_sync_single_for_cpu'
          musb_gadget.c:(.text+0x35a9a0): undefined reference to `dma_unmap_single'
          musb_gadget.c:(.text+0x35a9c8): undefined reference to `dma_sync_single_for_cpu'
      Signed-off-by: NGeert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      3f83e538
  10. 24 12月, 2013 1 次提交
  11. 20 12月, 2013 1 次提交
  12. 01 10月, 2013 1 次提交
  13. 28 9月, 2013 1 次提交
  14. 13 9月, 2013 1 次提交
  15. 13 8月, 2013 1 次提交
  16. 09 8月, 2013 2 次提交
    • S
      usb: musb dma: add cppi41 dma driver · 9b3452d1
      Sebastian Andrzej Siewior 提交于
      This driver is currently used by musb' cppi41 couter part. I may merge
      both dma engine user of musb at some point but not just yet.
      
      The driver seems to work in RX/TX mode in host mode, tested on mass
      storage. I increaed the size of the TX / RX transfers and waited for the
      core code to cancel a transfers and it seems to recover.
      
      v2..3:
      - use mall transfers on RX side and check data toggle.
      - use rndis mode on tx side so we haveon interrupt for 4096 transfers.
      - remove custom "transferred" hack and use dmaengine_tx_status() to
        compute the total amount of data that has been transferred.
      - cancel transfers and reclaim descriptors
      
      v1..v2:
      - RX path added
      - dma mode 0 & 1 is working
      - device tree nodes re-created.
      
      Cc: Vinod Koul <vinod.koul@intel.com>
      Cc: Dan Williams <djbw@fb.com>
      Signed-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      9b3452d1
    • S
      usb: musb: dsps: use proper child nodes · 97238b35
      Sebastian Andrzej Siewior 提交于
      This moves the two instances from the big node into two child nodes. The
      glue layer ontop does almost nothing.
      
      There is one devices containing the control module for USB (2) phy,
      (2) usb and later the dma engine. The usb device is the "glue device"
      which contains the musb device as a child. This is what we do ever since.
      
      The new file musb_am335x is just here to prob the new bus and populate
      child devices.
      
      There are a lot of changes to the dsps file as a result of the changes:
      
      - musb_core_offset
        This is gone. The device tree provides memory ressources information
        for the device there is no need to "fix" things
      
      - instances
        This is gone as well. If we have two instances then we have have two
        child enabled nodes in the device tree. For instance the SoC in beagle
        bone has two USB instances but only one has been wired up so there is
        no need to load and init the second instance since it won't be used.
      
      - dsps_glue is now per glue device
        In the past there was one of this structs but with an array of two and
        each instance accessed its variable depending on the platform device
        id.
      
      - no unneeded copy of structs
        I do not know why struct dsps_musb_wrapper is copied but it is not
        necessary. The same goes for musb_hdrc_platform_data which allocated
        on demand and then again by platform_device_add_data(). One copy is
        enough.
      Signed-off-by: NSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      97238b35
  17. 29 5月, 2013 1 次提交
  18. 10 4月, 2013 1 次提交
  19. 18 3月, 2013 4 次提交
  20. 05 3月, 2013 1 次提交
  21. 04 3月, 2013 1 次提交
  22. 09 2月, 2013 1 次提交
  23. 25 1月, 2013 1 次提交
  24. 31 8月, 2012 1 次提交
    • M
      usb: gadget: get rid of USB_GADGET_{DUAL,SUPER}SPEED · 85b8614d
      Michal Nazarewicz 提交于
      This commit removes USB_GADGET_DUALSPEED and USB_GADGET_SUPERSPEED
      Kconfig options.  Since now kernel allows many UDC drivers to be
      compiled, those options may turn to no longer be valid.  For
      instance, if someone decides to build UDC that supports super
      speed and UDC that supports high speed only, the latter will be
      "assumed" to support super speed since USB_GADGET_SUPERSPEED will
      be selected by the former.
      
      The test of whether CONFIG_USB_GADGET_*SPEED was defined was just
      an optimisation which removed otherwise dead code (ie. if UDC is
      not dual speed, there is no need to handle cases that can happen
      if speed is high).  This commit removes those checks.
      Signed-off-by: NMichal Nazarewicz <mina86@mina86.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      85b8614d
  25. 20 8月, 2012 1 次提交
  26. 03 8月, 2012 1 次提交
  27. 04 5月, 2012 2 次提交
  28. 20 12月, 2011 2 次提交
  29. 12 12月, 2011 2 次提交
    • F
      usb: musb: drop ARCH dependency · 1e546aa6
      Felipe Balbi 提交于
      musb core driver and tusb6010 glue layer don't
      depend on anything which is ARCH-specific. It
      builds fine on x86 and ARM. Dropping the dependency
      so we can compile-test on linux-next.
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      1e546aa6
    • A
      usb: musb: use a Kconfig choice to pick the right DMA method · 2e7fc3ba
      Arnd Bergmann 提交于
      The logic to allow only one DMA driver in MUSB is currently
      flawed, because it also allows picking no DMA driver at all
      and also not selecting PIO mode.
      
      Using a choice statement makes this foolproof for now and
      also simplifies the Makefile.
      
      Unfortunately, we will have to revisit this when we start
      supporting multiple ARM platforms in a single kernel binary,
      because at that point we will actually need to select
      multiple DMA drivers and pick the right one at run-time.
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: Felipe Balbi <balbi@ti.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      2e7fc3ba
  30. 15 11月, 2011 1 次提交
    • L
      usb: musb: hdrc: fix dependency on USB_GADGET_DUALSPEED in Kconfig · 0de174b5
      Luciano Coelho 提交于
      USB_MUSB_HDRC depends on USB_GADGET_DUALSPEED.  If HDRC is selected
      but DUALSPEED is not, the kernel oopses:
      
      [    3.132781] Unable to handle kernel NULL pointer dereference at virtual address 00000000
      [    3.141296] pgd = c0004000
      [    3.144134] [00000000] *pgd=00000000
      [    3.147918] Internal error: Oops: 5 [#1] SMP
      [    3.152404] Modules linked in:
      [    3.155609] CPU: 0    Not tainted  (3.1.0-rc9-wl+ #417)
      [    3.161132] PC is at composite_setup+0x738/0xbb4
      [    3.165985] LR is at vprintk+0x400/0x47c
      [    3.170135] pc : [<c031df90>]    lr : [<c004c150>]    psr: 60000093
      [    3.170135] sp : c065dd50  ip : dfb1f0fc  fp : c065ddbc
      [    3.182220] r10: 00000000  r9 : df8fcae8  r8 : df8fcaa0
      [    3.187713] r7 : 00000000  r6 : df8eaa20  r5 : dfae8ea0  r4 : 00000000
      [    3.194580] r3 : df8fcae8  r2 : 00010002  r1 : c065dc40  r0 : 00000047
      [    3.201446] Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
      [    3.209228] Control: 10c53c7d  Table: 8000404a  DAC: 00000015
      [    3.215270] Process swapper (pid: 0, stack limit = 0xc065c2f8)
      [    3.221405] Stack: (0xc065dd50 to 0xc065e000)
      [...]
      [    3.415405] [<c031df90>] (composite_setup+0x738/0xbb4) from [<c0310d18>] (musb_g_ep0_irq+0x9d0/0xaf8)
      [    3.425109] [<c0310d18>] (musb_g_ep0_irq+0x9d0/0xaf8) from [<c030fb04>] (musb_interrupt+0xb48/0xc74)
      [    3.434722] [<c030fb04>] (musb_interrupt+0xb48/0xc74) from [<c030fc98>] (generic_interrupt+0x68/0x80)
      [    3.444458] [<c030fc98>] (generic_interrupt+0x68/0x80) from [<c0095204>] (handle_irq_event_percpu+0x9c/0x234)
      [    3.454925] [<c0095204>] (handle_irq_event_percpu+0x9c/0x234) from [<c00953e8>] (handle_irq_event+0x4c/0x6c)
      [    3.465270] [<c00953e8>] (handle_irq_event+0x4c/0x6c) from [<c0097e10>] (handle_fasteoi_irq+0xd8/0x110)
      [    3.475158] [<c0097e10>] (handle_fasteoi_irq+0xd8/0x110) from [<c0094d2c>] (generic_handle_irq+0x34/0x3c)
      [    3.485260] [<c0094d2c>] (generic_handle_irq+0x34/0x3c) from [<c0014ae4>] (handle_IRQ+0x88/0xc8)
      [    3.494537] [<c0014ae4>] (handle_IRQ+0x88/0xc8) from [<c00085b0>] (asm_do_IRQ+0x18/0x1c)
      [    3.503051] [<c00085b0>] (asm_do_IRQ+0x18/0x1c) from [<c0429e78>] (__irq_svc+0x38/0xc0)
      
      This patch changes Kconfig so that USB_GADGET_DUALSPEED is selected
      automatically by USB_MUSB_HDRC.
      Signed-off-by: NLuciano Coelho <coelho@ti.com>
      Signed-off-by: NFelipe Balbi <balbi@ti.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@suse.de>
      0de174b5