Skip to content
Snippets Groups Projects
  1. Aug 08, 2013
  2. Aug 06, 2013
  3. Aug 03, 2013
    • Marek Vasut's avatar
      i2c: soft: Fix typo in CONFIG_SYS_I2C_SOFT_SPEED · 90f002a9
      Marek Vasut authored and Heiko Schocher's avatar Heiko Schocher committed
      
      In case only the CONFIG_SYS_I2C_SPEED is set in configuration file,
      the CONFIG_SYS_I2C_SOFT_SPEED is defined as CONFIG_SYS_I2C_SPEED.
      The CONFIG_SYS_I2C_SOFT_SPEED is then used throughout the driver.
      
      Unfortunatelly, due to a typo in the driver, instead of defining
      CONFIG_SYS_I2C_SOFT_SPEED, an CONFIG_SYS_SOFT_I2C_SPEED was defined
      and therefore the driver failed to compile. The same applies for
      CONFIG_SYS_I2C_SOFT_SLAVE , where the swap happens as well.
      
      This patch fixes the issue.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Heiko Schocher <hs@denx.de>
      90f002a9
  4. Aug 02, 2013
  5. Aug 01, 2013
  6. Jul 31, 2013
  7. Jul 30, 2013
  8. Jul 29, 2013
    • Nikita Kiryanov's avatar
      ehci-hcd: fix memory leak in lowlevel init · 8bc36036
      Nikita Kiryanov authored
      
      usb_lowlevel_init() allocates a new periodic_list each time it is invoked,
      without freeing the original list. Since it is initialized later on in the code,
      just reuse the first-allocated list in future invocations of usb_lowlevel_init.
      
      Cc: Marek Vasut <marex@denx.de>
      Cc: Igor Grinberg <grinberg@compulab.co.il>
      Signed-off-by: default avatarNikita Kiryanov <nikita@compulab.co.il>
      8bc36036
    • Nikita Kiryanov's avatar
      usb_hub: fix power cycling logic · 0adc331b
      Nikita Kiryanov authored
      
      When power cycling the hub ports, a misbehaving port will prevent all ports
      from being powered on because we quit at the first sign of trouble.
      
      Skip problematic ports instead of failing the entire power on.
      
      Cc: Marek Vasut <marex@denx.de>
      Cc: Igor Grinberg <grinberg@compulab.co.il>
      Signed-off-by: default avatarNikita Kiryanov <nikita@compulab.co.il>
      0adc331b
    • Roger Quadros's avatar
      usb: ehci-omap: Don't softreset USB High-speed Host (UHH) Module · bb1f327d
      Roger Quadros authored
      
      Fixes NFS root problems with Beagle (3530 ES1.0) when used with
      external USB-ethernet adapter and "USB start" command used within
      u-boot.
      
      Soft resetting the UHH module causes instability issues on
      all OMAPs so we just avoid it.
      
      See OMAP36xx Errata
        i571: USB host EHCI may stall when entering smart-standby mode
        i660: USBHOST Configured In Smart-Idle Can Lead To a Deadlock
      
      On OMAP4/5, soft-resetting the UHH module can put it into
      Smart-Idle mode and lead to a deadlock.
      
      On OMAP3 this doesn't seem to be the case but still instabilities
      are observed on beagle (3530 ES1.0) if soft-reset is used.
       e.g. NFS root failures with Linux kernel.
      
      Signed-off-by: default avatarRoger Quadros <rogerq@ti.com>
      bb1f327d
    • Łukasz Majewski's avatar
      dfu: Implementation of target reset after communication with dfu-util's -R switch · 6bed7ce5
      Łukasz Majewski authored
      
      This patch extends dfu code to support transmission with -R switch
      specified at dfu-util.
      
      When -R is specified, the extra USB_REQ_DFU_DETACH request is sent after
      successful data transmission. Then dfu resources are released and reset
      command is issued.
      
      Signed-off-by: default avatarLukasz Majewski <l.majewski@samsung.com>
      Signed-off-by: default avatarKyungmin Park <kyungmin.park@samsung.com>
      6bed7ce5
    • Marek Vasut's avatar
      usb: mv_udc: Add bounce buffer · 6dd30af0
      Marek Vasut authored
      
      The requests sent to the controller are not properly cache aligned
      most of the time, thus implement a simple bounce buffer to avoid
      problem with cache.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      6dd30af0
    • Marek Vasut's avatar
      usb: mv_udc: Add proper cache management · f19a343e
      Marek Vasut authored
      
      Implement functions to flush/invalidate dcache over QH and qTDs
      and make use of them where appropriate. Also use them to replace
      the old incorrect cache management attempt. This is the first step
      towards making this driver work with data cache enabled.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      f19a343e
    • Marek Vasut's avatar
      usb: mv_udc: Implement better qTD item accessor · ede709c0
      Marek Vasut authored
      
      The code for retrieving qTD item for particular endpoint is hard
      to understand, moreover it's duplicated all over the driver. Move
      the code into single nice and documented function.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      ede709c0
    • Marek Vasut's avatar
      usb: mv_udc: Improve allocation of qTD items · 8a095a68
      Marek Vasut authored
      
      Allocate the qTD items all at once instead of allocating them
      separately. Moreover, make sure each qTD is properly aligned
      to 32-bytes boundary and that cache can be safely flushed over
      each qTD touple.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      8a095a68
    • Marek Vasut's avatar
      usb: mv_udc: Implement better QH accessor · b5cd45bf
      Marek Vasut authored
      
      The code for retrieving QH for particular endpoint is hard to understand,
      moreover it's duplicated all over the driver. Move the code into single
      nice and documented function.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      b5cd45bf
    • Marek Vasut's avatar
      usb: mv_udc: Add cacheline length check · 5804b885
      Marek Vasut authored
      
      Check the length of system cacheline at compile-time and fail
      if the system uses too long cachelines.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      5804b885
    • Marek Vasut's avatar
      usb: mv_udc: Properly align the endpoint QH and qTD list · ab65da14
      Marek Vasut authored
      
      The endpoint QH list has to be aligned to 10-bit boundary. We also have
      to make sure the list is aligned on a cacheline boundary. Make sure it
      is. Furthermore, check if the memory allocation for the QH list didn't
      fail. Moveover, improve the comment about the QH list structure.
      
      Finally, the qTD item list has to be aligned only to 5-bit boundary, not
      10-bit as it is now, fix this as well.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      ab65da14
    • Marek Vasut's avatar
      usb: mv_udc: Move QH and qTD into mv_drv · ab52df19
      Marek Vasut authored
      
      Both the endpoint queue head and the endpoint item list is a controller
      specific thing. Move them both into controller private data.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      ab52df19
    • Marek Vasut's avatar
      usb: mv_udc: Init mv_drv.gadget.ops statically · fe48f058
      Marek Vasut authored
      
      There is no need to init this field at runtime, so init it statically.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      fe48f058
    • Marek Vasut's avatar
      usb: mv_udc: Remove QH_MAXNUM macro · f6463177
      Marek Vasut authored
      
      The QH_MAXNUM is used in absolutelly incorrect manner and is not
      even needed. Remove it and correctly replace it's occurance with
      2 * NUM_ENDPOINTS .
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      f6463177
    • Marek Vasut's avatar
      usb: mv_udc: Clean up the initial variable check · d7663038
      Marek Vasut authored
      
      Clean up the code that checks the validity of a USB gadget driver
      in usb_gadget_register_driver(). Moreover, limit the speed of the
      driver to either FULL or HIGH, this is more precise and once we
      have xHCI support, also more correct.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      d7663038
    • Marek Vasut's avatar
      usb: mv_udc: Make use of struct ehci_ctrl · be7ed253
      Marek Vasut authored
      
      The usb_lowlevel_init() call already fills and passes back struct
      ehci_ctrl , which readily contains correctly determined address of
      the port register block address computed from values from controller
      configuration registers. Leverage this and make use of this value
      as this makes the code mode universal, but also gets us rid of the
      CONFIG_USB_REG_BASE configuration option.
      
      Moreover, this patch cleans up the usb_gadget_register_driver() call
      a little by correcting the error handling. Note the usb_lowlevel_init()
      and mvudc_probe() are now called in reversed order, but this has no
      impact on the code.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      be7ed253
    • Marek Vasut's avatar
      usb: ehci: Split out struct ehci_ctrl definition · b959655f
      Marek Vasut authored
      
      Move the struct ehci_ctrl defition from ehci-hcd.c into ehci.h
      so it can be re-used by drivers. In particular, the mv_udc driver
      can benefit from this move.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      b959655f
    • Marek Vasut's avatar
      usb: mv_udc: Clean up the EP initialization · 2ea4b448
      Marek Vasut authored
      
      Move the constant values that are programmed into mv_ep.ep into
      separate static const structure so they can be memcpy()'d when
      the initialization happens.
      
      Moveover, we only every init NUM_ENDPOINTS, not 2 * NUM_ENDPOINTS,
      so fix this bug as well.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      2ea4b448
    • Marek Vasut's avatar
      usb: mv_udc: Move endpoint array into driver data · 532d846f
      Marek Vasut authored
      
      The endpoints are operated on a per-controller basis, move the
      endpoint array into controller's private data. Also shuffle the
      struct mv_ep structure definition just above the definition of
      the struct mv_drv so they're well grouped together.
      
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Fabio Estevam <fabio.estevam@freescale.com>
      Cc: Lei Wen <leiwen@marvell.com>
      Cc: Otavio Salvador <otavio@ossystems.com.br>
      Cc: Stefano Babic <sbabic@denx.de>
      532d846f
Loading