Re: [PATCH] usb: typec: Defer checking of valid power role swap to low level drivers

From: Badhri Jagan Sridharan
Date: Thu May 18 2017 - 17:13:12 EST


Not Sure whether my previous response was sent properly.
So re-sending.

On Thu, May 18, 2017 at 2:08 PM, Badhri Jagan Sridharan
<badhri@xxxxxxxxxx> wrote:
> On Thu, May 18, 2017 at 9:51 AM, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
>> On Thu, May 18, 2017 at 11:13:51AM +0200, Oliver Neukum wrote:
>>> Am Mittwoch, den 17.05.2017, 02:36 -0700 schrieb Guenter Roeck:
>>> > On 05/17/2017 12:34 AM, Oliver Neukum wrote:
>>> > >
>>> > > Am Mittwoch, den 17.05.2017, 00:32 -0700 schrieb Badhri Jagan
>>> > > Sridharan:
>>> > >
>>> > > Hi,
>>> > >
>>> > > >
>>> > > > "Two independent set of mechanisms are defined to allow a USB Type-C
>>> > > > DRP to functionally swap power and data roles. When USB PD is
>>> > > > supported, power and data role swapping is performed as a subsequent
>>> > > > step following the initial connection process. For non-PD implementations,
>>> > > > power/data role swapping can optionally be dealt with as part of the initial
>>> > > > connection process."
>>> > >
>>> > > Well, as I read it, without PD once a connection is established, you
>>> > > are stuck with your role. So it seems to me that blocking a later
>>> > > attempt to change it makes sense.
>>> > >
>>> >
>>> > That seems to be a harsh and not very user friendly reading of the specification.
>>> >
>>> > I would argue that the user doesn't care if the partner supports PD or not
>>> > when selecting a role, and I would prefer to provide an implementation which is
>>> > as user friendly as possible.
>>>
>>> Data role, no question, you are right.
>>> Power role is a different question. A switch of power role with PD should
>>> not lead to a disconnect. Any other method might. So equating them does
>>> not look like a good idea.
>>>
>>
>> Not really sure I can follow. If a partner does not support PD, there is no
>> real distinction between data role and power role, or am I missing something ?
>>
>> Are you saying that, if a partner does not support PD, user space should
>> request a data role swap instead, and that this would be acceptable for you ?
>>
>> I don't really understand the difference - a data role swap doesn't cause
>> a disconnect either if the partner supports PD, and it would still result
>> in a disconnect/reconnect sequence if the partner does not support PD -
>> but if it works for you, fine with me.
>>
>> Badhri, would that work for us ?

Yes Geunter that should work as well. Requesting non-pd role swap either
through current_power_role or current_data_role is virtually the same.

>
> Yes Geunter that should work as well. Requesting non-pd role swap either through
> current_power_role or current_data_role is virtually the same.
>
>>
>> Thanks,
>> Guenter