[PATCH v6 00/28] usb: ci13xxx: rework

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

 



Hi,

This is the 6th 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.

Finally, it removes langwell_udc driver, as it is now covered by the
reworked chipidea driver too and adds a new entry in MAINTAINERS.

New since the previous version:
  * moved platform data of the pci driver to driver_data in pci_id
    tables as Felipe suggested,
  * split "new style" conversion into two patches, first of which moves
    endpoint initialization from start() to probe(), per Felipe's request,
  * fixed deferred address setting per Felipe's comment,
  * minor fixes here and there per Felipe's comments,
  * removed langwell_udc,
  * added a MAINTAINERS entry

Alexander Shishkin (27):
  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: move endpoint (de-)initialization to
    probe/remove
  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 field "regs" from ci13xxx
  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
  usb: chipidea: drop unused field "device" from ci13xxx_ep
  usb: gadget: remove langwell_udc
  MAINTAINERS: Add an entry for ChipIdea USB driver

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

 MAINTAINERS                                    |    6 +
 drivers/usb/Kconfig                            |    2 +
 drivers/usb/Makefile                           |    1 +
 drivers/usb/chipidea/Kconfig                   |   32 +
 drivers/usb/chipidea/Makefile                  |   14 +
 drivers/usb/chipidea/ci.h                      |  353 +++
 drivers/usb/{gadget => chipidea}/ci13xxx_msm.c |   60 +-
 drivers/usb/{gadget => chipidea}/ci13xxx_pci.c |  124 +-
 drivers/usb/chipidea/core.c                    |  446 +++
 drivers/usb/chipidea/debug.c                   |  825 ++++++
 drivers/usb/chipidea/debug.h                   |   76 +
 drivers/usb/chipidea/host.c                    |  172 ++
 drivers/usb/chipidea/host.h                    |   17 +
 drivers/usb/chipidea/udc.c                     | 1879 +++++++++++++
 drivers/usb/chipidea/udc.h                     |  128 +
 drivers/usb/gadget/Kconfig                     |   55 +-
 drivers/usb/gadget/Makefile                    |    3 -
 drivers/usb/gadget/ci13xxx_udc.c               | 2999 ---------------------
 drivers/usb/gadget/ci13xxx_udc.h               |  227 --
 drivers/usb/gadget/langwell_udc.c              | 3434 ------------------------
 drivers/usb/gadget/langwell_udc.h              |  224 --
 drivers/usb/host/ehci-hcd.c                    |    8 +
 include/linux/usb/chipidea.h                   |   28 +
 include/linux/usb/langwell_udc.h               |  310 ---
 24 files changed, 4084 insertions(+), 7339 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 (58%)
 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
 delete mode 100644 drivers/usb/gadget/langwell_udc.c
 delete mode 100644 drivers/usb/gadget/langwell_udc.h
 create mode 100644 include/linux/usb/chipidea.h
 delete mode 100644 include/linux/usb/langwell_udc.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


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux