10 May, 2014

5 commits


09 May, 2014

5 commits

  • Tom Rini
     
  • Without this patch SPARC/LEON does not build.

    Reported-by: Tom Rini
    Signed-off-by: Daniel Hellstrom

    Daniel Hellstrom
     
  • Before it was hardcoded to 1000 ticks per second.

    Signed-off-by: Daniel Hellstrom

    Daniel Hellstrom
     
  • 's/zynq_serial_initalize/zynq_serial_initialize/g'
    serial_initialize is used by all serial drivers.

    Signed-off-by: Michal Simek

    Michal Simek
     
  • Warnings:
    drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_init' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_setbrg' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_getc' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_tstc' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_putc' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_puts' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:182:22: warning: symbol 'uart_zynq_serial0_device' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_init' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_setbrg' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_getc' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_tstc' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_putc' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_puts' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:185:22: warning: symbol 'uart_zynq_serial1_device' was not declared. Should it be static?

    Signed-off-by: Michal Simek

    Michal Simek
     

08 May, 2014

1 commit


07 May, 2014

4 commits


06 May, 2014

5 commits

  • 's/zynq_serial_initalize/zynq_serial_initialize/g'
    serial_initialize is used by all serial drivers.

    Signed-off-by: Michal Simek

    Michal Simek
     
  • Warnings:
    drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_init' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_setbrg' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_getc' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_tstc' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_putc' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:181:1: warning: symbol 'uart_zynq0_puts' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:182:22: warning: symbol 'uart_zynq_serial0_device' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_init' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_setbrg' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_getc' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_tstc' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_putc' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:184:1: warning: symbol 'uart_zynq1_puts' was not declared. Should it be static?
    drivers/serial/serial_zynq.c:185:22: warning: symbol 'uart_zynq_serial1_device' was not declared. Should it be static?

    Signed-off-by: Michal Simek

    Michal Simek
     
  • Add missing header.

    Warnings:
    drivers/net/zynq_gem.c:491:5: warning: symbol 'zynq_gem_initialize' was not declared. Should it be static?
    drivers/net/zynq_gem.c:542:5: warning: symbol 'zynq_gem_of_init' was not declared. Should it be static?

    Signed-off-by: Michal Simek

    Michal Simek
     
  • MII is used by this driver.

    Signed-off-by: Michal Simek

    Michal Simek
     
  • - expand the condition with CONFIG_OF_CONTROL

    Signed-off-by: Stephan Linz
    Acked-by: Simon Glass
    Signed-off-by: Michal Simek

    Stephan Linz
     

05 May, 2014

10 commits

  • Last argument shouldn't be there.

    Signed-off-by: Mateusz Zalega
    Acked-by: Marek Vasut
    Cc: Tom Rini

    Mateusz Zalega
     
  • g_dnl_register() currently first attempts to register a composite
    driver by name, and then saves the driver name once it's registered.
    Internally to the registration code, g_dnl_do_config() is called and
    attempts to compare the composite device's name with the list of known
    device names. This fails since the composite device's name has not yet
    been stored. This means that the first time "ums 0 0" is run, it fails,
    but subsequent attempts succeed.

    Re-order the name-saving and registration code to solve this.

    Fixes: e5b834e07f51 ("USB: gadget: added a saner gadget downloader registration API")
    Signed-off-by: Stephen Warren

    Stephen Warren
     
  • Preprocessor definitions and hardcoded implementation selection in
    g_dnl core were replaced by a linker list made of (usb_function_name,
    bind_callback) pairs.

    Signed-off-by: Mateusz Zalega
    Acked-by: Lukasz Majewski
    Acked-by: Marek Vasut

    Mateusz Zalega
     
  • Future patches will make DFU too large to fit in this board's SPL build.

    Signed-off-by: Mateusz Zalega
    Acked-by: Tom Rini
    Reviewed-by: Lukasz Majewski

    Mateusz Zalega
     
  • In cases when MMC hadn't been initialized before, ie. by the user or other
    subsystem, it was still uninitialized while UMS media capacity check,
    leading to broken ums command.

    UMS has to initialize resources it uses.

    Tested on Samsung Goni.

    Signed-off-by: Mateusz Zalega
    Tested-by: Mateusz Zalega
    Acked-by: Lukasz Majewski
    Cc: Minkyu Kang

    Mateusz Zalega
     
  • Previously offsets handled by dfu_fill_entity_mmc(), defined in boards'
    CONFIG_DFU_ALT were treated as hexadecimal regardless of their prefix,
    which sometimes led to confusion. This patch forces usage of explicit
    numerical base prefixes.

    Signed-off-by: Mateusz Zalega
    Acked-by: Lukasz Majewski
    Cc: Tom Rini
    Cc: Minkyu Kang

    Mateusz Zalega
     
  • When user attempted to perform a raw write using DFU (vide
    dfu_fill_entity_mmc) with MMC interface not initialized before,
    get_mmc_blk_size() reported invalid (zero) block size - it wasn't
    possible to write ie. a new u-boot image.

    This commit fixes that by initializing MMC device before use in
    dfu_fill_entity_mmc().

    While fixing initialization sequence, I had to change about half of
    dfu_fill_entity_mmc's body, so I refactored it on the way to make it,
    IMHO, considerably more comprehensible.

    Being left as dead code, get_mmc_blk_size() was removed.

    Tested on Samsung Goni.

    Signed-off-by: Mateusz Zalega
    Signed-off-by: Kyungmin Park
    Acked-by: Lukasz Majewski
    Acked-by: Tom Rini
    Cc: Minkyu Kang

    Mateusz Zalega
     
  • Former usb_cable_connected() patch broke compilation of boards which do
    not support this feature.

    I've renamed usb_cable_connected() to g_dnl_usb_cable_connected() and added
    its default implementation to gadget downloader driver code. There's
    only one driver of this kind and it's unlikely there'll be another, so
    there's no point in keeping it in /common.

    Previously this function was declared in usb.h. I've moved it, since
    it's more appropriate to keep it in g_dnl.h - usb.h seems to be intended
    for USB host implementation.

    Existing code, confronted with default -EOPNOTSUPP return value,
    continues as if the cable was connected.

    CONFIG_USB_CABLE_CHECK was removed.

    Change-Id: Ib9198621adee2811b391c64512f14646cefd0369
    Signed-off-by: Mateusz Zalega
    Acked-by: Marek Vasut
    Acked-by: Lukasz Majewski

    Mateusz Zalega
     
  • Implementation made use of types defined in common.h, even though it
    wasn't #included. It worked in circumstances when .c files included
    every needed header (all).

    Signed-off-by: Mateusz Zalega
    Cc: Tom Rini
    Cc: Minkyu Kang

    Mateusz Zalega
     
  • Structure definition used type block_dev_desc_t, defined in part.h, which
    wasn't included in mmc.h. It worked only in circumstances when common.h,
    or another header using part.h was incuded in implementation files.

    Change-Id: I5b203928b689887e3e78beb00a378955e0553eb7
    Signed-off-by: Mateusz Zalega
    Acked-by: Pantelis Antoniou
    Cc: Minkyu Kang

    Mateusz Zalega
     

02 May, 2014

1 commit


01 May, 2014

1 commit

  • Allow ci_udc.o to be built when using the new(?) USB gadget framework,
    as enabled by CONFIG_USB_GADGET.

    Note that this duplicates the Makefile entry for ci_udc.o, since it's
    also included inside #ifdef CONFIG_USB_ETHER. I'm not sure what that
    define means; perhaps an old style of Ethernet-specific USB gadget
    implementation?

    I wonder if the line that this patch adds shouldn't be outside all of
    the ifdefs, so it stands on its own, similar to how e.g. epautoconf.o
    is shared between the two?

    Signed-off-by: Stephen Warren

    Stephen Warren
     

30 Apr, 2014

8 commits

  • ci_udc.c allocates only a single buffer for each endpoint, which
    ci_ep_alloc_request() returns as a hard-coded value rather than
    dynamically allocating. Consequently, storage_common.c must limit
    itself to using a single buffer at a time. Add a special case
    to the definition of FSG_NUM_BUFFERS for this.

    Another option would be to fix ci_ep_alloc_request() to dynamically
    allocate the buffers like some/all(?) other device mode drivers do.
    However, I don't think that ci_ep_queue() supports queueing up
    multiple buffers either yet, and I'm not familiar enough with the
    controller yet to implement that. As such, any attempt to use multiple
    buffers simply results in data corruption and other errors.

    Signed-off-by: Stephen Warren

    Stephen Warren
     
  • Tegra's USB controller appears to be a variant of the ChipIdea
    controller; perhaps derived from it, or simply a different version of
    the IP core to what U-Boot supports today.

    In this variant, at least the following difference are present:
    - Some registers are moved about.
    - Setup transaction completion is reported in a separate 'epsetupstat'
    register, rather than in 'epstat' (which still exists, perhaps for
    other transaction types).
    - USB connection speed is reported in a separate 'hostpc1_devlc'
    register, rather than 'portsc'.
    - The registers used by ci_udc.c begin at offset 0x130 from the USB
    register base, rather than offset 0x140. However, this is handled
    by the associated EHCI controller driver, since the register address
    is stored in controller.ctrl->hcor.

    Introduce define CONFIG_CI_UDC_HAS_HOSTPC to indicate which variant of
    the controller should be supported. The "HAS_HOSTPC" part of this name
    mirrors the similar "has_hostpc" field used by the Linux EHCI controller
    core to represent the presence/absence of the hostpc1_devlc register.

    Signed-off-by: Stephen Warren

    Stephen Warren
     
  • usb_gadget_register_driver() currently unconditionally programs PORTSC
    to select a ULPI PHY. This is incorrect on at least the Tegra boards I
    am testing with, which use a UTMI PHY for the OTG ports. Make the PHY
    selection code conditional upon the specific EHCI controller that is in
    use.

    Ideally, I believe that the PHY initialization code should be part of
    ehci_hcd_init() in the relevant EHCI controller driver, or some board-
    specific function that ehci_hcd_init() calls.

    For MX6, I'm not sure this PHY initialization code is correct even before
    this patch, since ehci-mx6's ehci_hcd_init() already configures PORTSC to
    a board-specific value, and it seems likely that the code in ci_udc.c is
    incorrectly undoing this. Perhaps this is not an issue if the PHY
    selection register bits aren't implemented on this instance of the MX6
    USB controller?

    ehci-mxs.c doens't appear to touch PORTSC, so this code is likely still
    required there.

    Signed-off-by: Stephen Warren

    Stephen Warren
     
  • At least drivers/usb/gadget/storage_common.c expects that ep->req.actual
    contain the number of bytes actually transferred. (At least in practice,
    I observed it failing to work correctly unless this was the case).

    However, ci_udc.c modifies ep->req.length instead. I assume that .length
    is supposed to represent the allocated buffer size, whereas .actual is
    supposed to represent the actual number of bytes transferred. In the OUT
    transaction case, this may happen simply because the host sends a smaller
    packet than the max possible size, which is quite legal. In the IN case,
    transferring fewer bytes than requested could presumably happen as an
    error.

    Modify handle_ep_complete() to write to .actual rather than modifying
    .length.

    Signed-off-by: Stephen Warren

    Stephen Warren
     
  • ci_ep_queue() currently only fills in the page0/page1 fields in the
    queue item. If the buffer is larger than 4KiB (unaligned) or 8KiB
    (page-aligned), then this prevents the HW from knowing where to write
    the balance of the data.

    Fix this by initializing all 5 pageN pointers, which allows up to
    16KiB (potentially non-page-aligned) buffers.

    Signed-off-by: Stephen Warren

    Stephen Warren
     
  • This patch remove always false (since we tested ret = 0) ternary operator
    with ret value returned.

    Signed-off-by: Lukasz Majewski

    Lukasz Majewski
     
  • Commit 4a271cb1b4ff doesn't take into account that fdtdec_setup_gpio()
    returns success when the gpio passed to it is FDT_GPIO_NONE (no
    gpio node found in the fdtdec_decode_gpio() call). This results in
    calling gpio_direction_output() on invalid gpio. For this reason
    executing "usb start" command on Arndale causes data abort in the
    ehci-exynos driver.

    Add the fdt_gpio_isvalid() check to fix that problem.

    Signed-off-by: Andrey Konovalov
    Cc: Julius Werner
    Cc: Simon Glass
    Cc: Minkyu Kang
    Cc: Marek Vasut

    andrey.konovalov@linaro.org
     
  • Add missing missing disconnect and unbind calls to the musb gadget driver's
    usb_gadget_unregister_driver function. Otherwise, any gadget drivers fail
    to uninitialize and run a 2nd time.

    Signed-off-by: Rob Herring

    Rob Herring