25 Jun, 2013

1 commit

  • "ci13xxx" is bad for at least the following reasons:
    * people often mistype it
    * it doesn't add any informational value to the names it's used in
    * it needlessly attracts mail filters

    This patch replaces it with "ci_hdrc", "ci_udc" or "ci_hw", depending
    on the situation. Modules with ci13xxx prefix are also renamed accordingly
    and aliases are added for compatibility. Otherwise, no functional changes.

    Signed-off-by: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     

18 Jun, 2013

4 commits

  • Even if a chipidea core is otg capable the board may not be. This allows
    to explicitly set the core to host/peripheral mode. Without these flags
    the driver falls back to the old behaviour.

    Signed-off-by: Sascha Hauer
    Signed-off-by: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Sascha Hauer
     
  • This patch makes it possible to configure the PTW, PTS and STS bits
    inside the portsc register for host and device mode before the driver
    starts and the phy can be addressed as hardware implementation is
    designed.

    Signed-off-by: Michael Grzeschik
    Signed-off-by: Marc Kleine-Budde
    Signed-off-by: Sascha Hauer
    Signed-off-by: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Michael Grzeschik
     
  • This patch removes the restriction of having a limited amount of only
    four active tds on one endpoint. We use the linked list implementation
    to manage all tds which get added and removed by hardware_{en,de}queue.

    The removal of this restriction adds the driver to run into a hardware
    errata. It's possible that the hardware will still address an transfer
    descriptor that already got cleaned up. To solve this the patch also
    postpone the cleanup of processed tds by one.

    Signed-off-by: Michael Grzeschik
    Signed-off-by: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Michael Grzeschik
     
  • This patch adds iso endpoint support to the device controller.
    It makes use of the multiplication bits in the maxpacket field
    of the endpoint and calculates the multiplier bits for each
    transfer description on every request.

    Signed-off-by: Michael Grzeschik
    Reviewed-by: Peter Chen
    Signed-off-by: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Michael Grzeschik
     

12 Jun, 2013

1 commit

  • Re-enable chipidea irq even if there's no role changing to do. This is
    a problem since b183c19f ("USB: chipidea: re-order irq handling to avoid
    unhandled irqs"); when it manifests, chipidea irq gets disabled for good.

    Cc: stable@vger.kernel.org # v3.7
    Signed-off-by: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     

18 May, 2013

1 commit


30 Mar, 2013

6 commits


22 Jan, 2013

1 commit

  • Delete successive tests to the same location. In this case res has already
    been tested for being NULL, and calling devm_request_and_ioremap will not
    make it NULL. On the other hand, devm_request_and_ioremap can return NULL
    on failure.

    A simplified version of the semantic match that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    @s exists@
    local idexpression y;
    expression x,e;
    @@

    *if ( \(x == NULL\|IS_ERR(x)\|y != 0\) )
    { ... when forall
    return ...; }
    ... when != \(y = e\|y += e\|y -= e\|y |= e\|y &= e\|y++\|y--\|&y\)
    when != \(XT_GETPAGE(...,y)\|WMI_CMD_BUF(...)\)
    *if ( \(x == NULL\|IS_ERR(x)\|y != 0\) )
    { ... when forall
    return ...; }
    //

    Signed-off-by: Julia Lawall
    Cc: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Julia Lawall
     

27 Nov, 2012

1 commit

  • The pointer to a platform_device struct must not be dereferenced after
    the device has been unregistered.

    This bug produces a crash when unloading the ci13xxx kernel module
    compiled with CONFIG_PAGE_POISONING enabled.

    Signed-off-by: Lothar Waßmann
    Cc: stable # 3.6
    Acked-by: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Lothar Waßmann
     

22 Nov, 2012

3 commits

  • CONFIG_HOTPLUG is going away as an option so __devexit is no
    longer needed.

    Signed-off-by: Bill Pemberton
    Cc: Peter Korsgaard
    Cc: Alexander Shishkin
    Acked-by: Felipe Balbi
    Cc: Li Yang
    Cc: Alan Stern
    Cc: Wan ZongShun
    Cc: Ben Dooks
    Cc: Kukjin Kim
    Signed-off-by: Greg Kroah-Hartman

    Bill Pemberton
     
  • CONFIG_HOTPLUG is going away as an option so __devinit is no longer
    needed.

    Signed-off-by: Bill Pemberton
    Cc: Peter Korsgaard
    Cc: Alexander Shishkin
    Acked-by: Felipe Balbi
    Cc: Li Yang
    Acked-by: Alan Stern
    Cc: Geoff Levand
    Cc: Wan ZongShun
    Cc: Olav Kongas
    Cc: Lennert Buytenhek
    Cc: Ben Dooks
    Cc: Kukjin Kim
    Acked-by: Nicolas Ferre
    Signed-off-by: Greg Kroah-Hartman

    Bill Pemberton
     
  • CONFIG_HOTPLUG is going away as an option so __devexit_p is no longer
    needed.

    Signed-off-by: Bill Pemberton
    Cc: Peter Korsgaard
    Cc: Alexander Shishkin
    Acked-by: Felipe Balbi
    Cc: Li Yang
    Cc: Alan Stern
    Cc: Wan ZongShun
    Cc: Ben Dooks
    Cc: Kukjin Kim
    Acked-by: Nicolas Ferre
    Acked-by: Peter Korsgaard
    Signed-off-by: Greg Kroah-Hartman

    Bill Pemberton
     

13 Sep, 2012

3 commits


10 Jul, 2012

3 commits


07 Jul, 2012

1 commit


15 May, 2012

1 commit


12 May, 2012

5 commits

  • This adds EHCI host support to the chipidea driver. We want it to be
    part of the hdrc driver and not a standalone (sub-)driver module, as
    the structure of ehci-hcd.c suggests, so for chipidea controller we
    hack it to not provide platform-related code, but only the ehci hcd.

    The ehci-platform driver won't work for us here too, because the
    controller uses the same registers for both device and host mode and
    also otg-related bits, so it's not really possible to put ehci registers
    into a separate resource.

    This is not a pretty solution, but the alternative is exporting symbols
    from the chipidea driver to a ehci-chipidea driver and doing all the
    module refcounting.

    Signed-off-by: Alexander Shishkin
    Cc: Alan Stern
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • Some of the bits of USBMODE register are defined in ,
    use them instead of having our own definitions.

    Signed-off-by: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • These definitions are unused, and the same registers are also defined
    in .

    Signed-off-by: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • Add some generic code for roles and implement simple role switching
    based on ID pin state and/or a sysfs file. At this, we also rename
    the device to ci_hdrc, which is what it is.

    The "manual" switch is made into a sysfs file and not debugfs, because
    it might be useful even in non-debug context. For some boards, like
    sheevaplug, it seems to be the only way to switch roles without modifying
    the hardware, since the ID pin is always grounded.

    Signed-off-by: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin
     
  • Split the driver into the following parts:
    * core -- resources, register access, capabilities, etc;
    * udc -- device controller functionality;
    * debug -- logging events.

    Signed-off-by: Alexander Shishkin
    Signed-off-by: Greg Kroah-Hartman

    Alexander Shishkin