From: Heikki Krogerus <heikki.krogerus@linux.intel.com>
To: Guenter Roeck <linux@roeck-us.net>, Oliver Neukum <oneukum@suse.com>
Cc: Greg KH <gregkh@linuxfoundation.org>,
Mathias Nyman <mathias.nyman@linux.intel.com>,
Felipe Balbi <felipe.balbi@linux.intel.com>,
Rajaram R <rajaram.officemail@gmail.com>,
Andy Shevchenko <andy.shevchenko@gmail.com>,
linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org
Subject: Re: [RFC PATCHv2] usb: USB Type-C Connector Class
Date: Wed, 25 May 2016 17:04:29 +0300 [thread overview]
Message-ID: <20160525140429.GE27570@kuha.fi.intel.com> (raw)
In-Reply-To: <5745A6F2.6000406@roeck-us.net>
On Wed, May 25, 2016 at 06:21:54AM -0700, Guenter Roeck wrote:
> On 05/25/2016 04:51 AM, Heikki Krogerus wrote:
> > On Tue, May 24, 2016 at 12:28:26PM -0700, Guenter Roeck wrote:
> > > On Thu, May 19, 2016 at 03:44:54PM +0300, Heikki Krogerus wrote:
> > > > The purpose of this class is to provide unified interface for user
> > > > space to get the status and basic information about USB Type-C
> > > > Connectors in the system, control data role swapping, and when USB PD
> > > > is available, also power role swapping and Alternate Modes.
> > > >
> > > > Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
> > >
> > > [ ... ]
> > >
> > > > +
> > > > +static void typec_remove_partner(struct typec_port *port)
> > > > +{
> > > > + sysfs_remove_link(&port->dev.kobj, "partner");
> > > > + typec_unregister_altmodes(port->partner->alt_modes);
> > >
> > > This only unregisters alternate modes registered through typec_add_partner(),
> > > but not alternate modes registered separately. Or is the calling code expected
> > > to set port->partner->alt_modes when calling typec_register_altmodes()
> > > directly ?
> >
> > The altmodes for the partner are not meant to be registered
> > separately. With the partners and also cable plugs the class is in
> > control of registering and unregistering of the altmode devices after
> > typec_connect() is called.
> >
> > The idea was that only the ports will register the alternate modes
> > they support separately, but I think we have to change that too. So I
> > don't think we'll export the typec_un/register_altmodes() at all.
> >
> > We will have to prevent any drivers from being bound to the port
> > alternate mode devices when we add the alternate mode bus, and I had
> > some idea where by making the port drivers themselves in charge of
> > registering the port alternate modes, we could prevent it easily. But
> > it's probable easier to just handle those in the class driver as well.
> >
>
> Alternate mode discovery is an orthogonal process to the connection
> state machine, and may take a while to complete. Are you saying
> that the call to typec_connect() should be delayed until after
> alternate mode discovery completes or times out ?
>
> So far I call typec_connect() in SRC.Ready and SNK.Ready, and
> typec_register_altmodes() after mode discovery is complete.
> It is also orthogonal, meaning it is only called if and when alternate
> mode discovery completes, and the alternate mode discovery state machine
> is separate to the port state machine.
>
> No problem for me to change that, just making sure that the registration
> delay is understood and accepted.
I'm not against leaving the responsibility of registering the alternate
modes to the drivers. I'm a little bit worried about relying then on
the drivers to also handle the unregistering accordingly, but I can
live with that. But we just shouldn't share the responsibility of
un/registering them between the class and the drivers, so the driver
should then handle the registration always.
Oliver, what do you think?
Thanks,
--
heikki
next prev parent reply other threads:[~2016-05-25 14:06 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-19 12:44 Heikki Krogerus
2016-05-19 14:47 ` Oliver Neukum
2016-05-20 11:24 ` Heikki Krogerus
2016-05-20 13:37 ` Oliver Neukum
2016-05-21 5:51 ` Guenter Roeck
2016-05-21 6:43 ` Oliver Neukum
2016-05-22 15:54 ` Guenter Roeck
2016-05-23 5:34 ` Oliver Neukum
2016-05-23 13:27 ` Guenter Roeck
2016-05-23 13:58 ` Oliver Neukum
2016-05-23 14:43 ` Guenter Roeck
2016-05-23 15:55 ` Oliver Neukum
2016-05-23 16:52 ` Guenter Roeck
2016-05-24 10:08 ` Heikki Krogerus
2016-05-24 10:18 ` Oliver Neukum
2016-05-24 11:04 ` Heikki Krogerus
2016-05-19 14:48 ` Oliver Neukum
2016-05-19 15:43 ` Greg KH
2016-05-20 10:58 ` Heikki Krogerus
2016-05-19 17:53 ` Guenter Roeck
2016-05-20 10:47 ` Heikki Krogerus
2016-05-20 17:02 ` Guenter Roeck
2016-05-23 9:23 ` Heikki Krogerus
2016-05-20 14:19 ` Oliver Neukum
2016-05-23 9:57 ` Heikki Krogerus
2016-05-23 11:25 ` Oliver Neukum
2016-05-23 17:09 ` Guenter Roeck
2016-05-24 9:06 ` Oliver Neukum
2016-05-24 9:32 ` Heikki Krogerus
2016-05-24 12:51 ` Oliver Neukum
2016-05-25 11:28 ` Heikki Krogerus
2016-05-25 15:19 ` Guenter Roeck
2016-05-27 7:30 ` Heikki Krogerus
2016-05-24 13:42 ` Guenter Roeck
2016-05-25 11:30 ` Heikki Krogerus
2016-05-25 13:12 ` Guenter Roeck
2016-05-24 19:28 ` Guenter Roeck
2016-05-25 11:51 ` Heikki Krogerus
2016-05-25 13:21 ` Guenter Roeck
2016-05-25 14:04 ` Heikki Krogerus [this message]
2016-05-25 14:20 ` Oliver Neukum
2016-05-25 14:59 ` Guenter Roeck
2016-05-27 7:29 ` Heikki Krogerus
2016-05-25 18:35 ` [RFC PATCH] usb: typec: Various API updates and fixes Guenter Roeck
2016-05-27 7:55 ` Heikki Krogerus
2016-05-27 14:06 ` Guenter Roeck
2016-05-30 12:48 ` Heikki Krogerus
2016-05-30 13:19 ` [RFC PATCHv2] usb: USB Type-C Connector Class Heikki Krogerus
2016-05-30 13:59 ` Oliver Neukum
2016-05-31 8:31 ` Heikki Krogerus
2016-05-31 8:48 ` Oliver Neukum
2016-05-31 12:09 ` Heikki Krogerus
2016-05-31 12:43 ` Heikki Krogerus
2016-05-31 17:20 ` Guenter Roeck
2016-06-01 8:23 ` Heikki Krogerus
2016-06-01 8:31 ` Oliver Neukum
2016-06-01 9:04 ` Oliver Neukum
2016-06-01 13:34 ` Guenter Roeck
2016-06-02 6:24 ` Oliver Neukum
2016-06-02 6:37 ` Guenter Roeck
2016-06-02 7:43 ` Oliver Neukum
2016-05-31 17:14 ` Guenter Roeck
2016-06-01 9:26 ` Oliver Neukum
2016-06-01 23:29 ` Guenter Roeck
2016-06-02 6:30 ` Oliver Neukum
2016-06-02 8:27 ` Heikki Krogerus
2016-06-02 10:18 ` Heikki Krogerus
2016-06-02 16:12 ` Guenter Roeck
2016-06-03 13:21 ` Heikki Krogerus
2016-06-03 13:51 ` Guenter Roeck
2016-06-03 15:17 ` Heikki Krogerus
2016-06-03 18:39 ` Guenter Roeck
2016-06-06 13:28 ` Heikki Krogerus
2016-06-06 13:35 ` Oliver Neukum
2016-06-07 8:23 ` Heikki Krogerus
2016-06-07 16:57 ` Guenter Roeck
2016-06-02 8:02 ` Heikki Krogerus
2016-06-03 20:20 ` Pavel Machek
2016-06-06 13:45 ` Heikki Krogerus
2016-06-06 14:41 ` Greg KH
2016-06-07 8:25 ` Heikki Krogerus
2016-06-06 16:02 ` Guenter Roeck
2016-06-10 14:34 ` [RFC PATCHv3] " Heikki Krogerus
2016-06-11 7:05 ` Oliver Neukum
2016-06-11 18:03 ` Guenter Roeck
2016-06-13 7:49 ` Heikki Krogerus
2016-06-13 7:48 ` Heikki Krogerus
2016-06-21 13:08 ` [RFC PATCHv2] " Oliver Neukum
2016-06-21 13:24 ` Guenter Roeck
2016-06-21 19:43 ` Oliver Neukum
2016-06-21 21:37 ` Guenter Roeck
2016-06-21 13:58 ` Heikki Krogerus
2016-06-21 20:43 ` Oliver Neukum
2016-06-22 9:31 ` Heikki Krogerus
2016-06-22 10:08 ` Oliver Neukum
2016-06-22 11:19 ` Heikki Krogerus
2016-08-07 21:37 ` Pavel Machek
2016-08-08 8:52 ` Oliver Neukum
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=20160525140429.GE27570@kuha.fi.intel.com \
--to=heikki.krogerus@linux.intel.com \
--cc=andy.shevchenko@gmail.com \
--cc=felipe.balbi@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=mathias.nyman@linux.intel.com \
--cc=oneukum@suse.com \
--cc=rajaram.officemail@gmail.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