All of
 help / color / mirror / Atom feed
From: Heikki Krogerus <>
To: Mats Karrman <>
Cc: Hans de Goede <>,
	Guenter Roeck <>,
	Greg Kroah-Hartman <>,
	Rob Herring <>,
Subject: [RFC,1/7] usb: typec: Generalize mux mode names
Date: Wed, 9 May 2018 15:49:43 +0300	[thread overview]
Message-ID: <> (raw)

On Tue, May 08, 2018 at 09:10:13PM +0200, Mats Karrman wrote:
> Hi,
> On 05/08/2018 04:25 PM, Heikki Krogerus wrote:
> > Hi,
> >
> > On Mon, May 07, 2018 at 11:19:40PM +0200, Mats Karrman wrote:
> >>>> Even so, when the mux driver "set" function is called, it will just get the
> >>>> mode argument but since the mode (TYPEC_STATE_...) is overlapping for different
> >>>> AMs if I understand your proposal correctly, the mux also needs to know what AM
> >>>> is active.
> >>>> Does this imply that the mux set function signature need to change?
> >>> My plan was actually to propose we get rid of the current mux handling
> >>> (just leave the orientation switch) in favour of the notifications I'm
> >>> introducing with the type-c bus for the alternate modes. The current
> >>> mux handling is definitely not enough, and does not work in every
> >>> scenario, like also you pointed out.
> >> So, the mux need to subscribe to each svid:mode pair it is interested in using 
> >> typec_altmode_register_notifier() and then use those callbacks to switch the correct
> >> signals to the connector. And a driver for an off-the-shelf mux device could have
> >> the translation between svid:mode pairs and mux device specific control specified by
> >> of/acpi properties. Right?
> > Yes. That is the plan. Would it work for you?
> I think so. I'll give it a go. When about do you think you'll post the next version
> of your RFC? Or do you have an updated series available somewhere public?

I'll try to put together and post the next version tomorrow.

My original plan was actually to use just the notifications with the
muxes, but one thing to consider with the notifications is that in
practice we have to increment the ref count for the alt mode devices
when ever something registers a notifier.

To me that does not feel ideal. The dependency should go the other way
around in case of the muxes. That is why I liked the separate API and
handling for the muxes felt better, as it will do just that. The mux
is then a "service" that the port driver can as for, and if it gets a
handle to a mux, the mux will have its ref count incremented.

So I think fixing the mux API would perhaps be better after all.


             reply	other threads:[~2018-05-09 12:49 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-09 12:49 Heikki Krogerus [this message]
  -- strict thread matches above, loose matches on Subject: below --
2018-05-21 13:04 [RFC,1/7] usb: typec: Generalize mux mode names Heikki Krogerus
2018-05-18  5:26 Mats Karrman
2018-05-17 11:50 Heikki Krogerus
2018-05-16 21:11 Mats Karrman
2018-05-16 11:43 Heikki Krogerus
2018-05-15 21:24 Mats Karrman
2018-05-15  7:30 Heikki Krogerus
2018-05-11 19:28 Mats Karrman
2018-05-08 19:10 Mats Karrman
2018-05-08 14:25 Heikki Krogerus
2018-05-07 21:19 Mats Karrman
2018-05-07 13:39 Heikki Krogerus
2018-05-04 16:57 Mats Karrman
2018-05-04 14:56 Heikki Krogerus
2018-05-02 13:13 Mats Karrman
2018-05-02  8:25 Heikki Krogerus
2018-05-02  8:23 Heikki Krogerus
2018-05-01 22:21 Mats Karrman

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:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \ \ \ \ \ \ \ \ \

* 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.