Re: [PATCH 1/3] usb: USB Type-C Connector Class

From: Heikki Krogerus
Date: Thu Feb 18 2016 - 08:09:26 EST


On Thu, Feb 18, 2016 at 10:21:48AM +0100, Oliver Neukum wrote:
> On Thu, 2016-02-18 at 10:47 +0200, Heikki Krogerus wrote:
>
> Hi,
>
> > The modes that can actually be selected have to be supported by both
> > the connector and the partner, and this is where I'm putting the ball
> > on the userspace at the moment. I'm not offering a list of
> > "possible_alternate_modes" where I list the combination, but instead
> > expect the userspace to be figure out that on it's own.
> >
> > Do you think we should add "possible_alternate_modes" file?
>
> No, what do we answer to the DFP if we recieve "Discover SVIDs"?
> I don't think that we always should answer with all we physically
> can. If, for example, the hardware could do Thunderbolt, but the OS
> is not prepared to handle it, we shouldn't offer it. So this is
> a policy decision to be made in user space. Hence we need
> an API to tell it to the kernel.

OK. Makes sense.

> > P.S. That reminds me, here's my current draft for the
> > Documentation/ABI/. Could you take a look?
>
> OK
>
> Here are my comments:
>
> What: /sys/class/type-c/usbcN/connected
>
> Connection status of the USB Type-C connector usbcN. "yes" when
> connected, otherwise "no".
>
> Unnecessarily wordy. 0 and 1 would do

That works for me.

> What: /sys/class/type-c/usbcN/current_data_role
>
> Again, 0 and 1 would do

I disagree with this one. What would 0 mean and what would 1? It would
require us to make an agreement about the "index" of the role, which
creates a small risk of somebody getting it wrong, but for what
purpose?

Why couldn't it be human readable "host" or "device" so there is never
no confusion about it.

> What: /sys/class/type-c/usbcN/partner_alternate_modes
>
> You should say in which number base the values are given.
>
> What: /sys/class/type-c/usbcN/partner_type
>
> That could be combined with "connected"

Hmm, so in practice getting rid of "connected" completely.. I guess
it's OK.

> What: /sys/class/type-c/usbcN/supported_data_roles
>
> A connector can be both. How is that expressed?

"host, device".

> What: /sys/class/type-c/usbcN/supported_power_roles
>
> Again, what if it can do both?

"source, sink".

So these last two are now listing the values that can be entered to
the current_data_role and current_power_role.


Thanks,

--
heikki