[PATCH v4 00/24] usb: ci13xxx: rework

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


Hi,

This is the 4th version of the patchset, it has changed its title
on the way since it's more about reworking the driver's structure
than supporting langwell/penwell. 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.

I'm dropping "RFC" from the subject like Felipe suggested, and also
to attract more attention to the series.

New since the previous version:
  * more cleanups
  * fixed _msm platform driver to not request platform resources and
    actually add the platform device -- found by Heikki's review; now
    it should really work
  * added Michael's fix and also fixed another problem that he pointed
    out
  * made to work on sheevaplug
  * moved the driver to drivers/usb/chipidea as it's really a dual role
    controller
  * implemented separate host and gadget roles and switching between
    them on devices that support both; host-only and gadget-only versions
    of chipidea are also supported

Alexander Shishkin (23):
  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 field regs
  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

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                      |  352 +++
 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                     | 1902 +++++++++++++++
 drivers/usb/chipidea/udc.h                     |  109 +
 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, 4074 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