mbox series

[v4,0/9] Type-C switch driver and Type-C framework updates

Message ID 20220711072333.2064341-1-pmalani@chromium.org (mailing list archive)
Headers show
Series Type-C switch driver and Type-C framework updates | expand

Message

Prashant Malani July 11, 2022, 7:22 a.m. UTC
This series introduces a retimer class to the USB Type-C framework,
It also introduces a Chrome EC (Embedded Controller) switch driver which
registers the aforementioned retimer switches as well as mode-switches.

Patch 1 and 2 introduce the retimer class and associated functions to
the Type-C common code.

Patches 3-7 add the cros-typec-switch driver.

Patches 8-9 update cros-ec-typec to get and use retimer switch handles.

Submission suggestion (as always, open to better suggestions):
- Patch 1 and 2 can go through the USB repo.
- Patch 3-9 can go through the chrome-platform repo. Since they depend
  on patches 1 and 2, we can create an "topic branch" off of usb-next
  once Patch 1 and 2 are submitted, and then apply Patches 3-9 on top
  of that "topic branch" before merging it back into chrome-platform's
  for-next branch

v3: https://lore.kernel.org/linux-usb/20220707222045.1415417-1-pmalani@chromium.org/

Changes since v3:
- Updated Commit message of Patch 1 to mention that no new
  class-specific sysfs files are being created.

Changes since v2:
- Fixed missing "static" declarations, and removed newlines from
  function signatures.

Changes since v1:
- Changed class name and retimer device type name, and fixed
  retimer reference release issue.

Prashant Malani (9):
  usb: typec: Add support for retimers
  usb: typec: Add retimer handle to port
  platform/chrome: Add Type-C mux set command definitions
  platform/chrome: cros_typec_switch: Add switch driver
  platform/chrome: cros_typec_switch: Set EC retimer
  platform/chrome: cros_typec_switch: Add event check
  platform/chrome: cros_typec_switch: Register mode switches
  platform/chrome: cros_ec_typec: Cleanup switch handle return paths
  platform/chrome: cros_ec_typec: Get retimer handle

 MAINTAINERS                                   |   1 +
 drivers/platform/chrome/Kconfig               |  11 +
 drivers/platform/chrome/Makefile              |   1 +
 drivers/platform/chrome/cros_ec_typec.c       |  50 ++-
 drivers/platform/chrome/cros_typec_switch.c   | 332 ++++++++++++++++++
 drivers/usb/typec/Makefile                    |   2 +-
 drivers/usb/typec/class.c                     |  18 +-
 drivers/usb/typec/class.h                     |   2 +
 drivers/usb/typec/retimer.c                   | 168 +++++++++
 drivers/usb/typec/retimer.h                   |  15 +
 .../linux/platform_data/cros_ec_commands.h    |  18 +
 include/linux/usb/typec_retimer.h             |  45 +++
 12 files changed, 654 insertions(+), 9 deletions(-)
 create mode 100644 drivers/platform/chrome/cros_typec_switch.c
 create mode 100644 drivers/usb/typec/retimer.c
 create mode 100644 drivers/usb/typec/retimer.h
 create mode 100644 include/linux/usb/typec_retimer.h

Comments

Greg KH July 14, 2022, 2:13 p.m. UTC | #1
On Mon, Jul 11, 2022 at 07:22:54AM +0000, Prashant Malani wrote:
> This series introduces a retimer class to the USB Type-C framework,
> It also introduces a Chrome EC (Embedded Controller) switch driver which
> registers the aforementioned retimer switches as well as mode-switches.
> 
> Patch 1 and 2 introduce the retimer class and associated functions to
> the Type-C common code.
> 
> Patches 3-7 add the cros-typec-switch driver.
> 
> Patches 8-9 update cros-ec-typec to get and use retimer switch handles.
> 
> Submission suggestion (as always, open to better suggestions):
> - Patch 1 and 2 can go through the USB repo.
> - Patch 3-9 can go through the chrome-platform repo. Since they depend
>   on patches 1 and 2, we can create an "topic branch" off of usb-next
>   once Patch 1 and 2 are submitted, and then apply Patches 3-9 on top
>   of that "topic branch" before merging it back into chrome-platform's
>   for-next branch

That's a mess, I can just take all of them into my tree if you want.

thanks,

greg k-h
Greg KH July 14, 2022, 2:14 p.m. UTC | #2
On Mon, Jul 11, 2022 at 07:22:54AM +0000, Prashant Malani wrote:
> This series introduces a retimer class to the USB Type-C framework,
> It also introduces a Chrome EC (Embedded Controller) switch driver which
> registers the aforementioned retimer switches as well as mode-switches.
> 
> Patch 1 and 2 introduce the retimer class and associated functions to
> the Type-C common code.
> 
> Patches 3-7 add the cros-typec-switch driver.
> 
> Patches 8-9 update cros-ec-typec to get and use retimer switch handles.
> 
> Submission suggestion (as always, open to better suggestions):
> - Patch 1 and 2 can go through the USB repo.

Patches 1 and 2 now in my tree.

thanks,

greg k-h
Prashant Malani July 14, 2022, 5:02 p.m. UTC | #3
Hi Greg,

On Thu, Jul 14, 2022 at 7:15 AM Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
>
> On Mon, Jul 11, 2022 at 07:22:54AM +0000, Prashant Malani wrote:
> > This series introduces a retimer class to the USB Type-C framework,
> > It also introduces a Chrome EC (Embedded Controller) switch driver which
> > registers the aforementioned retimer switches as well as mode-switches.
> >
> > Patch 1 and 2 introduce the retimer class and associated functions to
> > the Type-C common code.
> >
> > Patches 3-7 add the cros-typec-switch driver.
> >
> > Patches 8-9 update cros-ec-typec to get and use retimer switch handles.
> >
> > Submission suggestion (as always, open to better suggestions):
> > - Patch 1 and 2 can go through the USB repo.
> > - Patch 3-9 can go through the chrome-platform repo. Since they depend
> >   on patches 1 and 2, we can create an "topic branch" off of usb-next
> >   once Patch 1 and 2 are submitted, and then apply Patches 3-9 on top
> >   of that "topic branch" before merging it back into chrome-platform's
> >   for-next branch
>
> That's a mess, I can just take all of them into my tree if you want.

That works for me. Thanks for taking Patch 1 and 2; it should be fine
to apply the rest of the patches to your tree too.

Best regards,
Greg KH July 14, 2022, 5:29 p.m. UTC | #4
On Thu, Jul 14, 2022 at 10:02:32AM -0700, Prashant Malani wrote:
> Hi Greg,
> 
> On Thu, Jul 14, 2022 at 7:15 AM Greg Kroah-Hartman
> <gregkh@linuxfoundation.org> wrote:
> >
> > On Mon, Jul 11, 2022 at 07:22:54AM +0000, Prashant Malani wrote:
> > > This series introduces a retimer class to the USB Type-C framework,
> > > It also introduces a Chrome EC (Embedded Controller) switch driver which
> > > registers the aforementioned retimer switches as well as mode-switches.
> > >
> > > Patch 1 and 2 introduce the retimer class and associated functions to
> > > the Type-C common code.
> > >
> > > Patches 3-7 add the cros-typec-switch driver.
> > >
> > > Patches 8-9 update cros-ec-typec to get and use retimer switch handles.
> > >
> > > Submission suggestion (as always, open to better suggestions):
> > > - Patch 1 and 2 can go through the USB repo.
> > > - Patch 3-9 can go through the chrome-platform repo. Since they depend
> > >   on patches 1 and 2, we can create an "topic branch" off of usb-next
> > >   once Patch 1 and 2 are submitted, and then apply Patches 3-9 on top
> > >   of that "topic branch" before merging it back into chrome-platform's
> > >   for-next branch
> >
> > That's a mess, I can just take all of them into my tree if you want.
> 
> That works for me. Thanks for taking Patch 1 and 2; it should be fine
> to apply the rest of the patches to your tree too.

Ok, now queued up.

greg k-h
patchwork-bot+chrome-platform@kernel.org Aug. 15, 2022, 3:44 a.m. UTC | #5
Hello:

This series was applied to chrome-platform/linux.git (for-kernelci)
by Greg Kroah-Hartman <gregkh@linuxfoundation.org>:

On Mon, 11 Jul 2022 07:22:54 +0000 you wrote:
> This series introduces a retimer class to the USB Type-C framework,
> It also introduces a Chrome EC (Embedded Controller) switch driver which
> registers the aforementioned retimer switches as well as mode-switches.
> 
> Patch 1 and 2 introduce the retimer class and associated functions to
> the Type-C common code.
> 
> [...]

Here is the summary with links:
  - [v4,1/9] usb: typec: Add support for retimers
    https://git.kernel.org/chrome-platform/c/ddaf8d96f93b
  - [v4,2/9] usb: typec: Add retimer handle to port
    https://git.kernel.org/chrome-platform/c/f31a8702cd36
  - [v4,3/9] platform/chrome: Add Type-C mux set command definitions
    https://git.kernel.org/chrome-platform/c/28a6ed8e39f7
  - [v4,4/9] platform/chrome: cros_typec_switch: Add switch driver
    https://git.kernel.org/chrome-platform/c/e54369058f3d
  - [v4,5/9] platform/chrome: cros_typec_switch: Set EC retimer
    https://git.kernel.org/chrome-platform/c/34f375f0fdf6
  - [v4,6/9] platform/chrome: cros_typec_switch: Add event check
    https://git.kernel.org/chrome-platform/c/bb53ad958012
  - [v4,7/9] platform/chrome: cros_typec_switch: Register mode switches
    https://git.kernel.org/chrome-platform/c/f5434e30011e
  - [v4,8/9] platform/chrome: cros_ec_typec: Cleanup switch handle return paths
    https://git.kernel.org/chrome-platform/c/66fe238a9bcc
  - [v4,9/9] platform/chrome: cros_ec_typec: Get retimer handle
    https://git.kernel.org/chrome-platform/c/c76d09da77d6

You are awesome, thank you!
patchwork-bot+chrome-platform@kernel.org Aug. 15, 2022, 3:55 a.m. UTC | #6
Hello:

This series was applied to chrome-platform/linux.git (for-next)
by Greg Kroah-Hartman <gregkh@linuxfoundation.org>:

On Mon, 11 Jul 2022 07:22:54 +0000 you wrote:
> This series introduces a retimer class to the USB Type-C framework,
> It also introduces a Chrome EC (Embedded Controller) switch driver which
> registers the aforementioned retimer switches as well as mode-switches.
> 
> Patch 1 and 2 introduce the retimer class and associated functions to
> the Type-C common code.
> 
> [...]

Here is the summary with links:
  - [v4,1/9] usb: typec: Add support for retimers
    https://git.kernel.org/chrome-platform/c/ddaf8d96f93b
  - [v4,2/9] usb: typec: Add retimer handle to port
    https://git.kernel.org/chrome-platform/c/f31a8702cd36
  - [v4,3/9] platform/chrome: Add Type-C mux set command definitions
    https://git.kernel.org/chrome-platform/c/28a6ed8e39f7
  - [v4,4/9] platform/chrome: cros_typec_switch: Add switch driver
    https://git.kernel.org/chrome-platform/c/e54369058f3d
  - [v4,5/9] platform/chrome: cros_typec_switch: Set EC retimer
    https://git.kernel.org/chrome-platform/c/34f375f0fdf6
  - [v4,6/9] platform/chrome: cros_typec_switch: Add event check
    https://git.kernel.org/chrome-platform/c/bb53ad958012
  - [v4,7/9] platform/chrome: cros_typec_switch: Register mode switches
    https://git.kernel.org/chrome-platform/c/f5434e30011e
  - [v4,8/9] platform/chrome: cros_ec_typec: Cleanup switch handle return paths
    https://git.kernel.org/chrome-platform/c/66fe238a9bcc
  - [v4,9/9] platform/chrome: cros_ec_typec: Get retimer handle
    https://git.kernel.org/chrome-platform/c/c76d09da77d6

You are awesome, thank you!