linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: Heikki Krogerus <heikki.krogerus@linux.intel.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Darren Hart <dvhart@infradead.org>,
	Andy Shevchenko <andy@infradead.org>,
	MyungJoo Ham <myungjoo.ham@samsung.com>,
	Chanwoo Choi <cw00.choi@samsung.com>,
	Mathias Nyman <mathias.nyman@intel.com>,
	Guenter Roeck <linux@roeck-us.net>, Jun Li <jun.li@nxp.com>,
	platform-driver-x86@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org
Subject: Re: [PATCH v7 00/12] USB Type-C device-connection, mux and switch support
Date: Mon, 12 Mar 2018 17:53:19 +0100	[thread overview]
Message-ID: <02ac8e27-9e42-63a1-2305-d333f65b16f6@redhat.com> (raw)
In-Reply-To: <20180312143431.82396-1-heikki.krogerus@linux.intel.com>

Hi,

On 12-03-18 15:34, Heikki Krogerus wrote:
> Hi,
> 
> This is version 7 of Hans' and my series introducing support for USB muxes and
> generic device-connections. The api naming for device-connections is now made
> according to proposal from Greg, connection.h is dropped and the prototypes are
> now in device.h. kbuild test robot <fengguang.wu@intel.com> also found stylistic
> problems from patches 9/12 and 10/12 which were fixed. The patch 4/12 ("usb:
> typec: Separate the definitions for data and power roles") was added to the
> series.

Thanks.

I've given this new series a quick test run and it works for me :)

Regards,

Hans




> 
> Check the v6 from here:
> https://lkml.org/lkml/2018/3/2/340
> 
> 
> Here is the cover-letter of v6:
> 
> Hi All,
> 
> Here is version 6 of Heikki's and my USB Type-C device-connection, mux and
> switch support series. Versions 2 - 5 bring various small code and style
> fixes based on review (no major changes). Version 6 is rebased on top of
> the latest usb-next and brings one small but important code fix in
> the devcon code.
> 
> Here is the original cover-letter of v1:
> 
> Some devices with an USB Type-C connector have a bunch of muxes
> behind that connector which need to be controlled by the kernel (rather
> then having them controlled by firmware as on most devices).
> 
> Quite a while back I submitted a patch-series to tie together these muxes
> and the Type-C Port Manager (tcpm) code, using the then new drivers/mux
> framework. But the way I used the mux framework went against what it was
> designed for, so in the end that series got nowhere.
> 
> Heikki Krogerus from Intel, who maintains the USB TYPEC subsystem, has
> recently been working on solving the same problem for some boards he is
> doing hardware-enablement for.
> 
> Heikki has come up with a number of infrastructure patches for this.
> The first one is a new device-connection framework. This solves the
> problem of describing non bus device-links on x86 in what in my experience
> with this problematic area is a really nice simple, clean and *generic*
> way. This could for example in the near future also replace the custom
> lookup code in the pwm subsys and the custom pwm_add_table() /
> pwm_remove_table() functions.
> 
> The other 3 patches add a framework for the different type of Type-C /
> USB "muxes".
> 
> Heikki and I have gone through a number of iterations of these patches
> together and we believe these are now ready for merging. Since merging
> infrastructure patches without users is not done and Heikki's own use-case
> for these is not yet ready for merging, the rest of this series consists
> of patches by me to make the Type-C connector found on some Cherry Trail
> devices (finally) be able to actually work as an USB port and not just
> a charge port.
> 
> The last patch uses the new usb-role-switch framework to also do proper
> devcie / host switching on CHT devices with a USB micro AB connector.
> This is also a big feature for CHT users, because before this they had
> to do a reboot to get an OTG-host cable recognized (on some devices).
> 
> Part of this series is an usb-role-switch driver for the role-switch
> found inside the xhci controller on e.g. CHT devices, this is currently
> implemented as the generic xhci controller instantiating a platform
> child-device for this, since this really is a separate chunk of HW
> which happens to sit in the XHCI mmio space. This approach may not be
> universally liked, given that in this new series the role-switch driver
> is much smaller and does not have any external deps anymore we could
> just integrate it into the xhci code if that is preferred.
> 
> About merging this series (once everything is reviewed, etc.), there are
> quite some interdependencies in it esp. a lot of the patches depend on
> the first patch. Luckily patches 1-10 all apply to subsystems which are
> maintained by Greg (most to the USB subsys). Which just leaves patches
> 11 and 12 once 1-10 are merged. Greg, can you create an immutable branch
> for the platform/x86 and extcon maintainers to merge once this is done?
> 
> Regards,
> 
> Hans
> 
> 
> Hans de Goede (7):
>    usb: typec: tcpm: Set USB role switch to device mode when configured
>      as such
>    usb: typec: tcpm: Use new Type-C switch/mux and usb-role-switch
>      functions
>    xhci: Add Intel extended cap / otg phy mux handling
>    usb: roles: Add Intel xHCI USB role switch driver
>    usb: typec: driver for Pericom PI3USB30532 Type-C cross switch
>    platform/x86: intel_cht_int33fe: Add device connections for the Type-C
>      port
>    extcon: axp288: Set USB role where necessary
> 
> Heikki Krogerus (4):
>    drivers: base: Unified device connection lookup
>    usb: typec: API for controlling USB Type-C Multiplexers
>    usb: common: Small class for USB role switches
>    usb: typec: Separate the definitions for data and power roles
> 
> Mathias Nyman (1):
>    xhci: Add option to get next extended capability in list by passing id
>      = 0
> 
>   Documentation/ABI/testing/sysfs-class-usb_role |  21 ++
>   Documentation/driver-api/device_connection.rst |  43 ++++
>   Documentation/driver-api/usb/typec.rst         |  73 +++++-
>   MAINTAINERS                                    |  12 +
>   drivers/base/Makefile                          |   3 +-
>   drivers/base/devcon.c                          | 141 ++++++++++++
>   drivers/extcon/Kconfig                         |   3 +-
>   drivers/extcon/extcon-axp288.c                 | 176 +++++++++++++-
>   drivers/platform/x86/intel_cht_int33fe.c       |  24 ++
>   drivers/usb/Kconfig                            |   5 +
>   drivers/usb/Makefile                           |   2 +
>   drivers/usb/common/Makefile                    |   1 +
>   drivers/usb/common/roles.c                     | 305 +++++++++++++++++++++++++
>   drivers/usb/host/Makefile                      |   2 +-
>   drivers/usb/host/xhci-ext-caps.c               |  90 ++++++++
>   drivers/usb/host/xhci-ext-caps.h               |   7 +-
>   drivers/usb/host/xhci-pci.c                    |   5 +
>   drivers/usb/host/xhci.h                        |   2 +
>   drivers/usb/roles/Kconfig                      |  14 ++
>   drivers/usb/roles/Makefile                     |   1 +
>   drivers/usb/roles/intel-xhci-usb-role-switch.c | 192 ++++++++++++++++
>   drivers/usb/typec/Kconfig                      |   3 +
>   drivers/usb/typec/Makefile                     |   2 +
>   drivers/usb/typec/{typec.c => class.c}         | 124 ++++++++--
>   drivers/usb/typec/fusb302/fusb302.c            |   2 +-
>   drivers/usb/typec/mux.c                        | 191 ++++++++++++++++
>   drivers/usb/typec/mux/Kconfig                  |  10 +
>   drivers/usb/typec/mux/Makefile                 |   3 +
>   drivers/usb/typec/mux/pi3usb30532.c            | 178 +++++++++++++++
>   drivers/usb/typec/tcpm.c                       |  63 +++--
>   drivers/usb/typec/tps6598x.c                   |  26 ++-
>   drivers/usb/typec/typec_wcove.c                |   1 +
>   drivers/usb/typec/ucsi/ucsi.c                  |  13 +-
>   include/linux/device.h                         |  22 ++
>   include/linux/usb/role.h                       |  53 +++++
>   include/linux/usb/tcpm.h                       |  15 +-
>   include/linux/usb/typec.h                      |  28 ++-
>   include/linux/usb/typec_mux.h                  |  55 +++++
>   38 files changed, 1817 insertions(+), 94 deletions(-)
>   create mode 100644 Documentation/ABI/testing/sysfs-class-usb_role
>   create mode 100644 Documentation/driver-api/device_connection.rst
>   create mode 100644 drivers/base/devcon.c
>   create mode 100644 drivers/usb/common/roles.c
>   create mode 100644 drivers/usb/host/xhci-ext-caps.c
>   create mode 100644 drivers/usb/roles/Kconfig
>   create mode 100644 drivers/usb/roles/Makefile
>   create mode 100644 drivers/usb/roles/intel-xhci-usb-role-switch.c
>   rename drivers/usb/typec/{typec.c => class.c} (93%)
>   create mode 100644 drivers/usb/typec/mux.c
>   create mode 100644 drivers/usb/typec/mux/Kconfig
>   create mode 100644 drivers/usb/typec/mux/Makefile
>   create mode 100644 drivers/usb/typec/mux/pi3usb30532.c
>   create mode 100644 include/linux/usb/role.h
>   create mode 100644 include/linux/usb/typec_mux.h
> 

      parent reply	other threads:[~2018-03-12 16:53 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-12 14:34 [PATCH v7 00/12] USB Type-C device-connection, mux and switch support Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 01/12] drivers: base: Unified device connection lookup Heikki Krogerus
2018-03-14 11:16   ` Greg Kroah-Hartman
2018-03-14 12:13     ` Heikki Krogerus
2018-03-14 12:25       ` Greg Kroah-Hartman
2018-03-12 14:34 ` [PATCH v7 02/12] usb: typec: API for controlling USB Type-C Multiplexers Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 03/12] usb: common: Small class for USB role switches Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 04/12] usb: typec: Separate the definitions for data and power roles Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 05/12] usb: typec: tcpm: Set USB role switch to device mode when configured as such Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 06/12] usb: typec: tcpm: Use new Type-C switch/mux and usb-role-switch functions Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 07/12] xhci: Add option to get next extended capability in list by passing id = 0 Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 08/12] xhci: Add Intel extended cap / otg phy mux handling Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 09/12] usb: roles: Add Intel xHCI USB role switch driver Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 10/12] usb: typec: driver for Pericom PI3USB30532 Type-C cross switch Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 11/12] platform/x86: intel_cht_int33fe: Add device connections for the Type-C port Heikki Krogerus
2018-03-12 14:34 ` [PATCH v7 12/12] extcon: axp288: Set USB role where necessary Heikki Krogerus
2018-03-12 16:53 ` Hans de Goede [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=02ac8e27-9e42-63a1-2305-d333f65b16f6@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=andy@infradead.org \
    --cc=cw00.choi@samsung.com \
    --cc=dvhart@infradead.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=heikki.krogerus@linux.intel.com \
    --cc=jun.li@nxp.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=mathias.nyman@intel.com \
    --cc=myungjoo.ham@samsung.com \
    --cc=platform-driver-x86@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).