19 Sep, 2016

1 commit


16 Sep, 2016

1 commit

  • We have CONFIG_BLACKFIN ifdef redefining all musb registers in
    musb_regs.h and tusb6010.h is never included causing a build
    error with blackfin-allmodconfig and COMPILE_TEST.

    Let's fix the issue by not building tusb6010 if CONFIG_BLACKFIN
    is selected.

    Reported-by: kbuild test robot
    Signed-off-by: Tony Lindgren
    Signed-off-by: Bin Liu
    Signed-off-by: Greg Kroah-Hartman

    Tony Lindgren
     

13 Sep, 2016

1 commit

  • Use the new phy-da8xx-usb driver to take the place of the mach code that
    pokes CFGCHIP2 in the da8xx musb glue driver. This unbreaks the driver.

    Signed-off-by: David Lechner
    Signed-off-by: Bin Liu
    Signed-off-by: Greg Kroah-Hartman

    David Lechner
     

15 Feb, 2016

2 commits

  • drivers/built-in.o: In function `musb_probe':
    /home/vegard/linux/drivers/usb/musb/musb_core.c:2304: undefined reference to `devm_ioremap_resource'

    Signed-off-by: Vegard Nossum
    Signed-off-by: Greg Kroah-Hartman

    Vegard Nossum
     
  • CC drivers/usb/musb/tusb6010.o
    drivers/usb/musb/tusb6010.c: In function ‘tusb_musb_init’:
    drivers/usb/musb/tusb6010.c:1133:2: error: implicit declaration of function ‘ioremap’ [-Werror=implicit-function-declaration]
    sync = ioremap(mem->start, resource_size(mem));
    ^
    drivers/usb/musb/tusb6010.c:1133:7: warning: assignment makes pointer from integer without a cast [enabled by default]
    sync = ioremap(mem->start, resource_size(mem));
    ^
    drivers/usb/musb/tusb6010.c:1162:4: error: implicit declaration of function ‘iounmap’ [-Werror=implicit-function-declaration]
    iounmap(sync);
    ^

    Signed-off-by: Vegard Nossum
    Signed-off-by: Greg Kroah-Hartman

    Vegard Nossum
     

19 Nov, 2015

1 commit

  • 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: Arnd Bergmann
    Fixes: 411dd19c682d ("usb: musb: Kconfig: Select the DMA driver if DMA mode of MUSB is enabled")
    Signed-off-by: Felipe Balbi

    Arnd Bergmann
     

03 Aug, 2015

1 commit


29 Jul, 2015

1 commit

  • 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: Hans de Goede
    Signed-off-by: Felipe Balbi

    Hans de Goede
     

09 Mar, 2015

1 commit

  • A recent bug fix I did that was marked for stable backports
    introduced a slightly wrong dependency on CONFIG_OMAP_CONTROL_PHY.

    I was missing the fact that the PHY driver already stubs out the
    omap_control_usb_set_mode, and we only need to add a dependency
    to prevent the musb-omap2430 driver from being built-in when
    the phy driver is a loadable module, but we should not prevent it
    from being built altogether when the phy driver is disabled.

    Signed-off-by: Arnd Bergmann
    Fixes: ca784be36cc725 ("usb: start using the control module driver")
    Cc: # v3.9+
    Acked-by: Acked-by: Pavel Machek
    Tested-by: Aaro Koskinen
    Signed-off-by: Felipe Balbi

    Arnd Bergmann
     

30 Jan, 2015

2 commits

  • 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: Arnd Bergmann
    Fixes: ca784be36cc725 ("usb: start using the control module driver")
    Cc: # v3.9+
    Signed-off-by: Felipe Balbi

    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: Arnd Bergmann
    Signed-off-by: Felipe Balbi

    Arnd Bergmann
     

23 Dec, 2014

1 commit

  • Commit 82c02f58ba3a ("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 70c1ff4b3c86 ("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
    Reported-by: Jim Davis
    Signed-off-by: Tony Lindgren
    Signed-off-by: Felipe Balbi

    Tony Lindgren
     

25 Nov, 2014

1 commit


14 May, 2014

3 commits

  • The musb/omap2430.c bus glue driver calls usb_hcd_poll_rh_status,
    which is only available if CONFIG_USB is also set, i.e. we
    are building USB host mode and not just endpoint mode.

    Signed-off-by: Arnd Bergmann
    Cc: linux-omap@vger.kernel.org
    Signed-off-by: Felipe Balbi

    Arnd Bergmann
     
  • A configuration with CONFIG_USB_MUSB_HDRC=y, CONFIG_USB_TUSB_OMAP_DMA=y
    and CONFIG_USB_MUSB_TUSB6010=m causes a link failure because of the
    dependency on the tusb_get_revision symbol:

    (.text+0x154ce8): undefined reference to `tusb_get_revision'

    This patch ensures that either MUSB_HDRC and MUSB_TUSB6010 are
    both modules or both built-in, which are the valid configurations.

    Signed-off-by: Arnd Bergmann
    Cc: linux-omap@vger.kernel.org
    Signed-off-by: Felipe Balbi

    Arnd Bergmann
     
  • AM335x MUSB supports both PIO and DMA mode. When DMA mode is
    selected users need to explicitly enable the DMA driver. To avoid the
    extra configuration select the DMA driver if DMA mode is set for AM335x MUSB.

    Signed-off-by: George Cherian
    Signed-off-by: Felipe Balbi

    George Cherian
     

05 Mar, 2014

1 commit

  • 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: Geert Uytterhoeven
    Signed-off-by: Felipe Balbi

    Geert Uytterhoeven
     

24 Dec, 2013

1 commit


20 Dec, 2013

1 commit

  • Add support for Ingenic JZ4740 USB Device Controller through a
    specific musb glue layer.

    JZ4740 UDC not being OTG compatible and missing some hardware
    registers, this musb glue layer is written from scratch to be used in
    gadget mode only and take silicon design specifics into account.

    Signed-off-by: Apelete Seketeli
    Signed-off-by: Lars-Peter Clausen
    Signed-off-by: Felipe Balbi

    Apelete Seketeli
     

24 Oct, 2013

1 commit

  • Felipe writes:

    usb: patches for v3.13

    Final conversions to configfs for mass storage, acm_ms, and
    multi gadgets.

    MUSB should now work out of the box on AM335x-based boards
    (beagle bone white and black) with DMA thanks to Sebastian's
    work.

    We can now enable VERBOSE_DEBUG on builds of drivers/usb/gadget/
    by selecting CONFIG_USB_GADGET_VERBOSE.

    s3c-hsotg got quite a few non-critical fixes but also learned
    a few new tricks (isochronous transfers, multi count support).

    The Marvel USB3 Controller driver got a memory leak fix.

    devm_usb_get_phy() learned not to return NULL, ever.

    Other than these patches, we have the usual set of cleanups
    ranging from removal of unnecessary *_set_drvdata() to using
    SIMPLE_DEV_PM_OPS.

    Signed-of-by: Felipe Balbi

    Greg Kroah-Hartman
     

01 Oct, 2013

1 commit


28 Sep, 2013

1 commit

  • Use the generic PHY framework API to get the PHY. The usb_phy_set_resume
    and usb_phy_set_suspend is replaced with power_on and
    power_off to align with the new PHY framework.

    musb->xceiv can't be removed as of now because musb core uses xceiv.state and
    xceiv.otg. Once there is a separate state machine to handle otg, these can be
    moved out of xceiv and then we can start using the generic PHY framework.

    Signed-off-by: Kishon Vijay Abraham I
    Reviewed-by: Sylwester Nawrocki
    Acked-by: Felipe Balbi
    Signed-off-by: Greg Kroah-Hartman

    Kishon Vijay Abraham I
     

13 Sep, 2013

1 commit


13 Aug, 2013

1 commit


09 Aug, 2013

2 commits

  • 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
    Cc: Dan Williams
    Signed-off-by: Sebastian Andrzej Siewior
    Signed-off-by: Felipe Balbi

    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: Sebastian Andrzej Siewior
    Signed-off-by: Felipe Balbi

    Sebastian Andrzej Siewior
     

29 May, 2013

1 commit


10 Apr, 2013

1 commit

  • This patch removes the depends on USB from all config symbols in
    drivers/usb/host/Kconfig and replace that with an if USB / endif block
    as suggested by Alan Stern. Some source ... Kconfig lines have been
    shuffled around to permit a better regroupment of the Kconfig files
    depending on "config USB" item. No functionnal change is introduced.

    Acked-by: Alan Stern
    Signed-off-by: Florian Fainelli
    Signed-off-by: Greg Kroah-Hartman

    Florian Fainelli
     

18 Mar, 2013

4 commits


05 Mar, 2013

1 commit

  • those are quite unnecessary, the only thing
    we need to be careful about is USB_OTG_UTILS
    which get properly selected by PHY drivers.

    For now, MUSB will select only USB_OTG_UTILS
    until we add stubs for the cases when PHY
    layer isn't enabled.

    Signed-off-by: Felipe Balbi

    Felipe Balbi
     

04 Mar, 2013

1 commit


09 Feb, 2013

1 commit


25 Jan, 2013

1 commit


12 Sep, 2012

2 commits

  • usb: musb: patches for v3.7 merge window

    Here we have a bunch of miscellaneous cleanups and fixes
    to the musb driver. It fixes a bunch of mistakes errors
    which nobody has triggered before, so I'm not Ccing stable
    tree.

    We are finally improving OMAP's VBUS/ID Mailbox usage so
    that we can introduce our PHY drivers properly. Also, we're
    adding support for multiple instances of the MUSB IP in
    the same SoC, as seen on some platforms from TI which
    have 2 MUSB instances.

    Other than that, we have some small fixes like not kicking
    DMA for a zero byte transfer, or properly handling NAK timeout
    on MUSB's host side, and the enabling of DMA Mode1 for any
    transfers which are aligned to wMaxPacketSize.

    All patches have been pending on mailing list for a long time
    and I don't expect any big surprises with this pull request.

    Greg Kroah-Hartman
     
  • usb: gadget: patches for v3.7 merge window

    This pull request is large but the biggest part is the first part
    of the cleanup on the gadget framework so we have a saner setup
    to add configfs support for v3.8.

    We have also some more conversions to the new udc_start/udc_stop
    which makes us closer from dropping the old interfaces.

    USB_GADGET_DUALSPEED and USB_GADGET_SUPERSPEED are finally gone,
    thanks to Michal for his awesome work.

    Other than that, we have the usual set of miscellaneous changes
    and cleanups involving improvements to debug messages, removal
    of duplicated includes, moving dereference after NULL test,
    making renesas_hsbhs' irq handler Shared, unused code being dropped,
    prevention of sleep-inside-spinlock bugs and a race condition fix
    on udc-core.

    Greg Kroah-Hartman
     

31 Aug, 2012

1 commit

  • 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: Michal Nazarewicz
    Signed-off-by: Felipe Balbi

    Michal Nazarewicz
     

20 Aug, 2012

1 commit