1. 29 Jul, 2013 12 commits
    • 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
    • Marek Vasut's avatar
      usb: mv_udc: Clean up mv_udc.h · 6368c919
      Marek Vasut authored
      
      
      Do a coding-style cleanup of this file and throw away useless
      defined values. These values were likely a result of a copy-paste
      job.
      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>
      6368c919
    • Marek Vasut's avatar
      usb: mv_udc: Unbreak the mv_udc driver · a7eafcfe
      Marek Vasut authored
      
      
      The mv_udc driver is broken for a while and doesn't even compile.
      This patch fixes the issues and gets the driver into working state
      again. This driver was tested on Freescale i.MX233/i.MX28 .
      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>
      a7eafcfe
  2. 26 Jul, 2013 3 commits
  3. 25 Jul, 2013 14 commits
  4. 24 Jul, 2013 11 commits