1. 05 5月, 2014 4 次提交
    • M
      dfu: mmc: raw data write fix · 711b931f
      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: NMateusz Zalega <m.zalega@samsung.com>
      Signed-off-by: NKyungmin Park <kyungmin.park@samsung.com>
      Acked-by: NLukasz Majewski <l.majewski@samsung.com>
      Acked-by: NTom Rini <trini@ti.com>
      Cc: Minkyu Kang <mk7.kang@samsung.com>
      711b931f
    • M
      usb: dfu: fix boards wo USB cable detection · 75504e95
      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: NMateusz Zalega <m.zalega@samsung.com>
      Acked-by: NMarek Vasut <marex@denx.de>
      Acked-by: NLukasz Majewski <l.majewski@samsung.com>
      75504e95
    • M
      part: header fix · 6b423b75
      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: NMateusz Zalega <m.zalega@samsung.com>
      Cc: Tom Rini <trini@ti.com>
      Cc: Minkyu Kang <mk7.kang@samsung.com>
      6b423b75
    • M
      mmc: mmc header fix · 07a2d42c
      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: NMateusz Zalega <m.zalega@samsung.com>
      Acked-by: NPantelis Antoniou <panto@antoniou-consulting.com>
      Cc: Minkyu Kang <mk7.kang@samsung.com>
      07a2d42c
  2. 01 5月, 2014 1 次提交
    • S
      usb: gadget: allow ci_udc to build with new gadget framework · 2fc5dab2
      Stephen Warren 提交于
      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: NStephen Warren <swarren@nvidia.com>
      2fc5dab2
  3. 30 4月, 2014 14 次提交
    • S
      usb: ums: use only 1 buffer for CI_UDC · a022c1e1
      Stephen Warren 提交于
      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: NStephen Warren <swarren@nvidia.com>
      a022c1e1
    • S
      usb: ci_udc: support variants with hostpc register · fcf2ede1
      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: NStephen Warren <swarren@nvidia.com>
      fcf2ede1
    • S
      usb: ci_udc: make PHY initialization conditional · 0c51dc6d
      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: NStephen Warren <swarren@nvidia.com>
      0c51dc6d
    • S
      usb: ci_udc: set ep->req.actual after transfer · 8aac6e9c
      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: NStephen Warren <swarren@nvidia.com>
      8aac6e9c
    • S
      usb: ci_udc: Support larger packets · f5c03006
      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: NStephen Warren <swarren@nvidia.com>
      f5c03006
    • L
      dfu:fix: Replace wrong return value with proper one · 672ad18c
      Lukasz Majewski 提交于
      This patch remove always false (since we tested ret = 0) ternary operator
      with ret value returned.
      Signed-off-by: NLukasz Majewski <l.majewski@samsung.com>
      672ad18c
    • A
      exynos: usb: Fix data abort on boards w/o vbus-gpio node in the DT · e6e493f3
      andrey.konovalov@linaro.org 提交于
      Commit 4a271cb1 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: NAndrey Konovalov <andrey.konovalov@linaro.org>
      Cc: Julius Werner <jwerner@chromium.org>
      Cc: Simon Glass <sjg@chromium.org>
      Cc: Minkyu Kang <mk7.kang@samsung.com>
      Cc: Marek Vasut <marex@denx.de>
      e6e493f3
    • R
      usb: musb: fill in usb_gadget_unregister_driver · 078d7302
      Rob Herring 提交于
      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: NRob Herring <robh@kernel.org>
      078d7302
    • R
      usb: handle NULL table in usb_gadget_get_string · 52d45012
      Rob Herring 提交于
      Allow a NULL table to be passed to usb_gadget_get_string for cases
      when a string table may not be populated.
      Signed-off-by: NRob Herring <robh@kernel.org>
      Reviewed-by: NTom Rini <trini@ti.com>
      Acked-by: NMarek Vasut <marex@denx.de>
      Acked-by: NLukasz Majewski <l.majewski@samsung.com>
      52d45012
    • P
      usb:gadget:f_thor: fix write to filesystem by add dfu_flush() · fd2a89b2
      Przemyslaw Marczak 提交于
      Since dfu read/write operations needs to be flushed manually,
      writing to filesystem on MMC by thor was broken. MMC raw write
      actually is working fine because current dfu_flush() function
      writes filesystem only. This commit adds dfu_flush() to f_thor
      and now filesystem write is working.
      
      This change was tested on Trats2 board.
      Signed-off-by: NPrzemyslaw Marczak <p.marczak@samsung.com>
      Cc: Lukasz Majewski <l.majewski@samsung.com>
      Cc: Marek Vasut <marex@denx.de>
      Cc: Heiko Schocher <hs@denx.de>
      Cc: Tom Rini <trini@ti.com>
      fd2a89b2
    • P
      usb:gadget:f_thor: code cleanup in function download_tail() · adfc17bf
      Przemyslaw Marczak 提交于
      In thor's download_tail() function, dfu_get_entity() is called
      before each dfu_write() call and the returned entity pointers
      are the same. So dfu_get_entity() can be called just once and
      this patch changes this.
      Signed-off-by: NPrzemyslaw Marczak <p.marczak@samsung.com>
      Cc: Lukasz Majewski <l.majewski@samsung.com>
      Cc: Marek Vasut <marex@denx.de>
      Cc: Heiko Schocher <hs@denx.de>
      Cc: Tom Rini <trini@ti.com>
      adfc17bf
    • A
      usb: Fix USB keyboard polling via control endpoint · 08a98b89
      Adrian Cox 提交于
      USB keyboard polling failed for some keyboards on PowerPC 5020.
      This was caused by requesting only 4 bytes of data from keyboards that
      produce an 8 byte HID report.
      Signed-off-by: NAdrian Cox <adrian@humboldt.co.uk>
      Signed-off-by: NWolfgang Denk <wd@denx.de>
      Cc: Marek Vasut <marex@denx.de>
      08a98b89
    • A
      usb: Add endian support macros to interrupt transfers in the EHCI driver. · ea427775
      Adrian Cox 提交于
      Update the EHCI driver to support interrupt transfers on PowerPC.
      Signed-off-by: NAdrian Cox <adrian@humboldt.co.uk>
      ea427775
    • N
      usb: ehci: rmobile: Add support ehci host driver of rmobile SoCs · ede4d5e3
      Nobuhiro Iwamatsu 提交于
      The rmobile SoC has usb host controller.
      This supports USB controllers listed in the R8A7790, R8A7791 and R8A7740.
      Signed-off-by: NNobuhiro Iwamatsu <nobuhiro.iwamatsu.yj@renesas.com>
      Reviewed-by: NMarek Vasut <marex@denx.de>
      ede4d5e3
  4. 29 4月, 2014 2 次提交
    • S
      drivers/i2c/fsl_i2c: modify i2c_read to handle multi-byte write · a405764c
      Shaveta Leekha 提交于
      Most of the I2C slaves support accesses in the typical style
      that is : read/write series of bytes at particular address offset.
      These transactions look like:"
      (1) START:Address:Tx:Offset:RESTART:Address[0..4]:Tx/Rx:data[0..n]:STOP"
      
      However there are certain devices which support accesses in
      terms of the transactions as follows:
      (2) "START:Address:Tx:Txdata[0..n1]:Clock_stretching:
              RESTART:Address:Rx:data[0..n2]"
      Here Txdata is typically a command and some associated data,
      similarly Rxdata could be command status plus some data received
      as a response to the command sent.
      
      Type (1) transactions are currently supportd in the
      i2c driver using i2c_read and i2c_write APIs. I2C EEPROMs,
      RTC, etc fall in this category.
      
      To handle type (2) along with type (1) transactions,
      i2c_read() function has been modified.
      Signed-off-by: NShaveta Leekha <shaveta@freescale.com>
      Signed-off-by: NPoonam Aggrwal <poonam.aggrwal@freescale.com>
      a405764c
    • Y
      driver/mxc_i2c: Move static data structure to global_data · dec1861b
      York Sun 提交于
      This driver needs a data structure in SRAM before SDRAM is available.
      This is not alway the case using .data section. Moving this data
      structure to global_data guarantees it is writable.
      Signed-off-by: NYork Sun <yorksun@freescale.com>
      CC: Troy Kisky <troy.kisky@boundarydevices.com>
      dec1861b
  5. 26 4月, 2014 4 次提交
  6. 25 4月, 2014 2 次提交
  7. 24 4月, 2014 4 次提交
  8. 23 4月, 2014 9 次提交