mbox series

[0/6] usb: typec: and platform/chrome: Add PD revision numbers

Message ID 20210129061406.2680146-1-bleung@chromium.org (mailing list archive)
Headers show
Series usb: typec: and platform/chrome: Add PD revision numbers | expand

Message

Benson Leung Jan. 29, 2021, 6:14 a.m. UTC
USB Power Delivery has a 3 entity handshake (port, cable, partner), and as
of USB PD R3.0, each entity may independently support either Revision 2 or
Revision 3 signaling and protocol. In order for userspace and the kernel
to properly process the data objects received from a particular SOP*, we
must know to which revision of the spec each conforms.

This series adds individual version numbers for the partner and the cable,
and exposes them in the appropriate sysfs in /sys/class/typec.

I provide as a first implementation of this, platform/chrome's cros_ec_typec
driver, whose underlying status messages convey the SOP and SOP' revisions
already.

Thanks,
Benson

Benson Leung (6):
  usb: typec: Standardize PD Revision format with Type-C Revision
  usb: typec: Provide PD Specification Revision for cable and partner
  usb: typec: Add typec_partner_set_pd_revision
  platform/chrome: cros_ec_typec: Report SOP' PD revision from status
  platform/chrome: cros_ec_typec: Set Partner PD revision from status
  platform/chrome: cros_ec_typec: Set opmode to PD on SOP connected

 Documentation/ABI/testing/sysfs-class-typec | 20 ++++++-
 drivers/platform/chrome/cros_ec_typec.c     | 26 +++++++--
 drivers/usb/typec/class.c                   | 59 +++++++++++++++++++--
 include/linux/usb/typec.h                   | 11 ++++
 4 files changed, 108 insertions(+), 8 deletions(-)

Comments

Greg Kroah-Hartman Feb. 1, 2021, 2:32 p.m. UTC | #1
On Thu, Jan 28, 2021 at 10:14:00PM -0800, Benson Leung wrote:
> USB Power Delivery has a 3 entity handshake (port, cable, partner), and as
> of USB PD R3.0, each entity may independently support either Revision 2 or
> Revision 3 signaling and protocol. In order for userspace and the kernel
> to properly process the data objects received from a particular SOP*, we
> must know to which revision of the spec each conforms.
> 
> This series adds individual version numbers for the partner and the cable,
> and exposes them in the appropriate sysfs in /sys/class/typec.
> 
> I provide as a first implementation of this, platform/chrome's cros_ec_typec
> driver, whose underlying status messages convey the SOP and SOP' revisions
> already.

I've taken the first 3 patches in my tree now, but the last 3 (for the
chrome_ec_typec.c driver), they do not apply at all.

thanks,

greg k-h
Enric Balletbo i Serra Feb. 1, 2021, 2:37 p.m. UTC | #2
Hi all,

On 29/1/21 7:14, Benson Leung wrote:
> USB Power Delivery has a 3 entity handshake (port, cable, partner), and as
> of USB PD R3.0, each entity may independently support either Revision 2 or
> Revision 3 signaling and protocol. In order for userspace and the kernel
> to properly process the data objects received from a particular SOP*, we
> must know to which revision of the spec each conforms.
> 
> This series adds individual version numbers for the partner and the cable,
> and exposes them in the appropriate sysfs in /sys/class/typec.
> 
> I provide as a first implementation of this, platform/chrome's cros_ec_typec
> driver, whose underlying status messages convey the SOP and SOP' revisions
> already.
> 
> Thanks,
> Benson
> 
> Benson Leung (6):
>   usb: typec: Standardize PD Revision format with Type-C Revision
>   usb: typec: Provide PD Specification Revision for cable and partner
>   usb: typec: Add typec_partner_set_pd_revision
>   platform/chrome: cros_ec_typec: Report SOP' PD revision from status
>   platform/chrome: cros_ec_typec: Set Partner PD revision from status
>   platform/chrome: cros_ec_typec: Set opmode to PD on SOP connected
> 

I acked the above chrome/platform patches in case Greg wants to pick up the full
series through his usb tree, I think is what makes more sense. They look good to
me from the chrome/platform side.

Thanks,
  Enric

>  Documentation/ABI/testing/sysfs-class-typec | 20 ++++++-
>  drivers/platform/chrome/cros_ec_typec.c     | 26 +++++++--
>  drivers/usb/typec/class.c                   | 59 +++++++++++++++++++--
>  include/linux/usb/typec.h                   | 11 ++++
>  4 files changed, 108 insertions(+), 8 deletions(-)
>
Enric Balletbo i Serra Feb. 1, 2021, 2:43 p.m. UTC | #3
Hi all,

On 1/2/21 15:37, Enric Balletbo i Serra wrote:
> Hi all,
> 
> On 29/1/21 7:14, Benson Leung wrote:
>> USB Power Delivery has a 3 entity handshake (port, cable, partner), and as
>> of USB PD R3.0, each entity may independently support either Revision 2 or
>> Revision 3 signaling and protocol. In order for userspace and the kernel
>> to properly process the data objects received from a particular SOP*, we
>> must know to which revision of the spec each conforms.
>>
>> This series adds individual version numbers for the partner and the cable,
>> and exposes them in the appropriate sysfs in /sys/class/typec.
>>
>> I provide as a first implementation of this, platform/chrome's cros_ec_typec
>> driver, whose underlying status messages convey the SOP and SOP' revisions
>> already.
>>
>> Thanks,
>> Benson
>>
>> Benson Leung (6):
>>   usb: typec: Standardize PD Revision format with Type-C Revision
>>   usb: typec: Provide PD Specification Revision for cable and partner
>>   usb: typec: Add typec_partner_set_pd_revision
>>   platform/chrome: cros_ec_typec: Report SOP' PD revision from status
>>   platform/chrome: cros_ec_typec: Set Partner PD revision from status
>>   platform/chrome: cros_ec_typec: Set opmode to PD on SOP connected
>>
> 
> I acked the above chrome/platform patches in case Greg wants to pick up the full
> series through his usb tree, I think is what makes more sense. They look good to
> me from the chrome/platform side.
> 

Sorry, just noticed that the platform/chrome patches depends on some patches
that we have already queued for 5.12. So we will pick up these patches and take
care to not merge before the specific usb type-c bits. So forget about the above.

Thanks,
 Enric


> Thanks,
>   Enric
> 
>>  Documentation/ABI/testing/sysfs-class-typec | 20 ++++++-
>>  drivers/platform/chrome/cros_ec_typec.c     | 26 +++++++--
>>  drivers/usb/typec/class.c                   | 59 +++++++++++++++++++--
>>  include/linux/usb/typec.h                   | 11 ++++
>>  4 files changed, 108 insertions(+), 8 deletions(-)
>>
Benson Leung Feb. 2, 2021, 7:04 a.m. UTC | #4
Hi Greg,

On Mon, Feb 01, 2021 at 03:32:47PM +0100, Greg KH wrote:
> On Thu, Jan 28, 2021 at 10:14:00PM -0800, Benson Leung wrote:
> > USB Power Delivery has a 3 entity handshake (port, cable, partner), and as
> > of USB PD R3.0, each entity may independently support either Revision 2 or
> > Revision 3 signaling and protocol. In order for userspace and the kernel
> > to properly process the data objects received from a particular SOP*, we
> > must know to which revision of the spec each conforms.
> > 
> > This series adds individual version numbers for the partner and the cable,
> > and exposes them in the appropriate sysfs in /sys/class/typec.
> > 
> > I provide as a first implementation of this, platform/chrome's cros_ec_typec
> > driver, whose underlying status messages convey the SOP and SOP' revisions
> > already.
> 
> I've taken the first 3 patches in my tree now, but the last 3 (for the
> chrome_ec_typec.c driver), they do not apply at all.
> 

Ah, that's because we have some other changes for the cros_ec_typec.c driver
already in platform/chrome for our 5.12 branch.

For 5.12, the changes for cros_ec_typec driver is pretty well contained,
although there is some dependence on typec subsystem changes now.

If I send you a pull request containing all of the changes for this driver we
have already merged, plus these last three that depend on both of our trees
would you merge it through usb for 5.12?

Thanks,
Benson

> thanks,
> 
> greg k-h
Greg Kroah-Hartman Feb. 2, 2021, 7:32 a.m. UTC | #5
On Mon, Feb 01, 2021 at 11:04:15PM -0800, Benson Leung wrote:
> Hi Greg,
> 
> On Mon, Feb 01, 2021 at 03:32:47PM +0100, Greg KH wrote:
> > On Thu, Jan 28, 2021 at 10:14:00PM -0800, Benson Leung wrote:
> > > USB Power Delivery has a 3 entity handshake (port, cable, partner), and as
> > > of USB PD R3.0, each entity may independently support either Revision 2 or
> > > Revision 3 signaling and protocol. In order for userspace and the kernel
> > > to properly process the data objects received from a particular SOP*, we
> > > must know to which revision of the spec each conforms.
> > > 
> > > This series adds individual version numbers for the partner and the cable,
> > > and exposes them in the appropriate sysfs in /sys/class/typec.
> > > 
> > > I provide as a first implementation of this, platform/chrome's cros_ec_typec
> > > driver, whose underlying status messages convey the SOP and SOP' revisions
> > > already.
> > 
> > I've taken the first 3 patches in my tree now, but the last 3 (for the
> > chrome_ec_typec.c driver), they do not apply at all.
> > 
> 
> Ah, that's because we have some other changes for the cros_ec_typec.c driver
> already in platform/chrome for our 5.12 branch.
> 
> For 5.12, the changes for cros_ec_typec driver is pretty well contained,
> although there is some dependence on typec subsystem changes now.
> 
> If I send you a pull request containing all of the changes for this driver we
> have already merged, plus these last three that depend on both of our trees
> would you merge it through usb for 5.12?

If the subsystem maintainer says it is ok, yes, I will be glad to take a
stable git tag to pull from into my usb-next branch.

thanks,

greg k-h