[PATCH v5 00/25] usb: ci13xxx: rework

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Hi,

This is the 5th version of the patchset aiming to rework ci13xxx
driver. With this patchset, the driver also supports an older version
of chipidea found in Marvell's Feroceon SoC, that is, it works with
sheevaplug (provided you can find or make a USB A-to-A cable).

This patchset fixes several bugs in the udc driver and addresses
some of the style issues. This patchset also includes conversion to
platform_device, which in case if msm is only compile-tested. While
at it, I have also converted "choice" of UDC controllers into a menu,
since we can probably have more than one UDC in the system, at least
theoretically.

It also converts ci13xxx_udc to the "new style", so that we can finally
get rid of the global _udc pointer and theoretically can now have as
many chipidea gadgets in the system as we please.

Then, it proceeds to move the driver to drivers/usb/chipidea and turn
it into a dual-role controller driver, complete with role switching
(manual and ID-pin based) and both device and host roles. Tested on
both sheevaplug and penwell. The former requires modifications to the
platform code in arch/arm, which are not part of these series. The
latter just works.

New since the previous version:
  * one tiny cleanup more
  * beautify a couple more structure definitions
  * switch the udc code to using generic map/unmap routines and eliminate
    DMA_ADDR_INVALID

Alexander Shishkin (24):
  usb: gadget: ci13xxx: drop needless parens
  usb: gadget: ci13xxx: fix ep list removal in gadget unregistering
    code
  usb: gadget: ci13xxx: initialize ep0{out,in} dynamically
  usb: gadget: ci13xxx: rename register layouts
  usb: gadget: ci13xxx_pci: add langwell/penwell pci ids
  usb: gadget: ci13xxx: move global variables inside struct ci13xxx
  usb: gadget: ci13xxx: redo register access
  usb: gadget: conversion of controllers choice to menu
  usb: gadget: ci13xxx: convert to platform device
  usb: gadget: ci13xxx: replace home-brewed logging with
    dev_{err,warn,info}
  usb: gadget: ci13xxx: convert to new style
  usb: gadget: ci13xxx: make tracing slightly more useful
  usb: gadget: ci13xxx: don't use "advance" feature when setting
    address
  usb: gadget: ci13xxx: print basic device info when probing
  usb: move ci13xxx and related code to drivers/usb/chipidea
  usb: chipidea: split the driver code into units
  usb: chipidea: add support for roles
  usb: chipidea: remove unused fields from structures
  usb: chipidea: brush up structure definitions
  usb: chipidea: drop redundant NULL check
  usb: chipidea: drop unused msm register definitions
  usb: chipidea: add host role
  usb: chipidea: add power_budget limit for ehci to platform data
  usb: chipidea: use generic map/unmap routines

Michael Grzeschik (1):
  usb: chipidea: isr_reset_handler fix missing locking

 drivers/usb/Kconfig                            |    2 +
 drivers/usb/Makefile                           |    1 +
 drivers/usb/chipidea/Kconfig                   |   32 +
 drivers/usb/chipidea/Makefile                  |   14 +
 drivers/usb/chipidea/ci.h                      |  351 +++
 drivers/usb/{gadget => chipidea}/ci13xxx_msm.c |   60 +-
 drivers/usb/{gadget => chipidea}/ci13xxx_pci.c |  118 +-
 drivers/usb/chipidea/core.c                    |  446 ++++
 drivers/usb/chipidea/debug.c                   |  825 +++++++
 drivers/usb/chipidea/debug.h                   |   76 +
 drivers/usb/chipidea/host.c                    |  173 ++
 drivers/usb/chipidea/host.h                    |   17 +
 drivers/usb/chipidea/udc.c                     | 1879 +++++++++++++++
 drivers/usb/chipidea/udc.h                     |  128 +
 drivers/usb/gadget/Kconfig                     |   39 +-
 drivers/usb/gadget/Makefile                    |    2 -
 drivers/usb/gadget/ci13xxx_udc.c               | 2999 ------------------------
 drivers/usb/gadget/ci13xxx_udc.h               |  227 --
 drivers/usb/host/ehci-hcd.c                    |    8 +
 include/linux/usb/chipidea.h                   |   28 +
 20 files changed, 4069 insertions(+), 3356 deletions(-)
 create mode 100644 drivers/usb/chipidea/Kconfig
 create mode 100644 drivers/usb/chipidea/Makefile
 create mode 100644 drivers/usb/chipidea/ci.h
 rename drivers/usb/{gadget => chipidea}/ci13xxx_msm.c (69%)
 rename drivers/usb/{gadget => chipidea}/ci13xxx_pci.c (60%)
 create mode 100644 drivers/usb/chipidea/core.c
 create mode 100644 drivers/usb/chipidea/debug.c
 create mode 100644 drivers/usb/chipidea/debug.h
 create mode 100644 drivers/usb/chipidea/host.c
 create mode 100644 drivers/usb/chipidea/host.h
 create mode 100644 drivers/usb/chipidea/udc.c
 create mode 100644 drivers/usb/chipidea/udc.h
 delete mode 100644 drivers/usb/gadget/ci13xxx_udc.c
 delete mode 100644 drivers/usb/gadget/ci13xxx_udc.h
 create mode 100644 include/linux/usb/chipidea.h

-- 
1.7.10
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


B and H Foto and Electronics Corp.

[Linux Media]     [Video for Linux]     [Linux Input]     [Linux Audio Users]     [Photo]     [Yosemite News]    [Yosemite Photos]    [Free Online Dating]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]     [More Archives]

Add to Google Powered by Linux