From: Guenter Roeck <linux@roeck-us.net>
To: Heikki Krogerus <heikki.krogerus@linux.intel.com>
Cc: Oliver Neukum <oneukum@suse.com>,
Badhri Jagan Sridharan <badhri@google.com>,
Greg KH <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org
Subject: Re: [PATCHv12 2/3] usb: USB Type-C connector class
Date: Mon, 28 Nov 2016 12:11:43 -0800 [thread overview]
Message-ID: <20161128201143.GB10709@roeck-us.net> (raw)
In-Reply-To: <20161128142323.GA32668@kuha.fi.intel.com>
On Mon, Nov 28, 2016 at 04:23:23PM +0200, Heikki Krogerus wrote:
> On Mon, Nov 28, 2016 at 11:19:32AM +0100, Oliver Neukum wrote:
> > On Thu, 2016-11-24 at 11:57 +0200, Heikki Krogerus wrote:
> > > On Wed, Nov 23, 2016 at 09:12:04PM -0800, Guenter Roeck wrote:
> >
> > > > In our implementation, the default preferred role is determined by the
> > > > low level driver (as, in my understanding, is suggested by the standard).
> > > > This means that the ABI will report "no preferred role", unless user space
> > > > overwrites it, even though there _is_ in fact a preferred role, and the
> > > > low level driver will execute try.src or try.snk based on that role.
> > >
> > > I'm not sure which standard are you referring? Try.SNK and Try.SRC are
> > > optional mechanisms for *policy-based* role preference according to
> > > the USB Type-C spec. The policy really should always come from the
> >
The Type-C specification states (in 4.5.2.2.11):
"Note: if both Try.SRC and Try.SNK mechanisms are implemented, only one shall be
enabled by the port at any given time. Deciding which of these two mechanisms
is enabled is product design-specific."
I read into this:
- The class code can not assume that either of those mechanisms are implemented.
- "product-design specific" means that the product designer determines which of
the two mechanisms (if any) is enabled. While not explicitly stated, I would
assume this to be set either by hardware or via devicetree / ACPI, and not
from user space.
I don't mind to have user space control; all I am asking for is to have the
means for lower level code (which is the most likely entity to know about
product design) to be able to inform higher layers about its initial
preferences. We have this now, so I am happy.
> > Not all that obvious. If you are looking at it from a distro view
> > point if you know that you are booting on basically a gadget, you'll
> > be happy to take the hint. And if the hardware knows it is better
> > as a sink or source, we should take the hint.
> >
> > > user space in our case, but I don't think that rules out for example
> > > initial role preferences coming from the lower level drivers.
> >
> > Indeed. That should not be a hindrance to submission and inclusion.
> >
> > > We will need a way the OS can set the initial preference for every
> > > port. Note that once we can support that, what ever the lower level
> > > drivers request will be overridden by it. So if for example the
> > > platform has preference for an initial role, we will simply ignore it
> > > if the policy says otherwise.
> >
> > Again, not obvious in a distro. I would actually prefer a module
> > parameter that would allow us to prefer try.src, as we know how
> > to be a master.
>
> I would be happy with module parameter.
>
Personally I don't really care about a module parameter; as mentioned above,
I would expect the preference, if it needs to be selectable, to be configured
with devicetree or ACPI properties (or by a platform driver which sets a device
property).
Thanks,
Guenter
next prev parent reply other threads:[~2016-11-28 20:12 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-22 14:11 [PATCHv12 0/3] USB Type-C Connector class Heikki Krogerus
2016-11-22 14:11 ` [PATCHv12 1/3] lib/string: add sysfs_match_string helper Heikki Krogerus
2016-11-23 16:14 ` Guenter Roeck
2016-11-24 0:17 ` Guenter Roeck
2016-11-22 14:11 ` [PATCHv12 2/3] usb: USB Type-C connector class Heikki Krogerus
2016-11-23 16:27 ` Guenter Roeck
2016-11-24 0:17 ` Guenter Roeck
2016-11-24 5:12 ` Guenter Roeck
2016-11-24 9:57 ` Heikki Krogerus
2016-11-28 10:19 ` Oliver Neukum
2016-11-28 14:23 ` Heikki Krogerus
2016-11-28 20:11 ` Guenter Roeck [this message]
2016-11-29 7:40 ` Oliver Neukum
2016-11-29 12:59 ` Heikki Krogerus
2016-11-29 13:20 ` Greg KH
2016-11-29 13:48 ` Oliver Neukum
2016-11-29 14:02 ` Greg KH
2016-11-22 14:11 ` [PATCHv12 3/3] usb: typec: add driver for Intel Whiskey Cove PMIC USB Type-C PHY Heikki Krogerus
2016-11-23 16:42 ` Guenter Roeck
2016-11-23 14:55 ` [PATCHv12 0/3] USB Type-C Connector class Heikki Krogerus
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=20161128201143.GB10709@roeck-us.net \
--to=linux@roeck-us.net \
--cc=badhri@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=heikki.krogerus@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=oneukum@suse.com \
/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
Powered by JetHome