Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752582AbdCFBZJ (ORCPT ); Sun, 5 Mar 2017 20:25:09 -0500 Received: from mail-pf0-f194.google.com ([209.85.192.194]:34098 "EHLO mail-pf0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752398AbdCFBZH (ORCPT ); Sun, 5 Mar 2017 20:25:07 -0500 Date: Mon, 6 Mar 2017 09:24:51 +0800 From: Peter Chen To: Guenter Roeck Cc: Heikki Krogerus , Greg KH , Felipe Balbi , Oliver Neukum , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Roger Quadros , Jun Li Subject: Re: [PATCH v17 2/3] usb: USB Type-C connector class Message-ID: <20170306012451.GB23305@b29397-desktop> References: <20170221142405.76299-1-heikki.krogerus@linux.intel.com> <20170221142405.76299-3-heikki.krogerus@linux.intel.com> <20170303033529.GA18650@b29397-desktop> <20170303045246.GB18650@b29397-desktop> <992c2c82-d266-ca06-8e9a-b755fa358de4@roeck-us.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <992c2c82-d266-ca06-8e9a-b755fa358de4@roeck-us.net> User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2423 Lines: 75 On Fri, Mar 03, 2017 at 06:36:50AM -0800, Guenter Roeck wrote: > On 03/02/2017 08:52 PM, Peter Chen wrote: > >On Thu, Mar 02, 2017 at 08:29:07PM -0800, Guenter Roeck wrote: > >>On 03/02/2017 07:35 PM, Peter Chen wrote: > >>>On Tue, Feb 21, 2017 at 05:24:04PM +0300, Heikki Krogerus wrote: > >>>>+/* --------------------------------------- */ > >>>>+/* Driver callbacks to report role updates */ > >>>>+ > >>>>+/** > >>>>+ * typec_set_data_role - Report data role change > >>>>+ * @port: The USB Type-C Port where the role was changed > >>>>+ * @role: The new data role > >>>>+ * > >>>>+ * This routine is used by the port drivers to report data role changes. > >>>>+ */ > >>>>+void typec_set_data_role(struct typec_port *port, enum typec_data_role role) > >>>>+{ > >>>>+ if (port->data_role == role) > >>>>+ return; > >>>>+ > >>>>+ port->data_role = role; > >>>>+ sysfs_notify(&port->dev.kobj, NULL, "data_role"); > >>>>+ kobject_uevent(&port->dev.kobj, KOBJ_CHANGE); > >>>>+} > >>>>+EXPORT_SYMBOL_GPL(typec_set_data_role); > >>>>+ > >>> > >>>Hi Keikki, > >>> > >>>Have you tested this interface with real dual-role controller/board? > >> > >>If it helps, my primary test system is a HP Chromebook 13 G1. > >> > >>>What interface you use when you receive this event to handle > >>>dual-role switch? I am wonder if a common dual-role class is > >>>needed, then we can have a common user utility. > >> > >>I don't really understand "What interface you use when you receive > >>this event". Can you explain ? > >> > > > >I mean "How to trigger kernel USB controller driver do role switch?" > > > > I think this should be handled by the lower level driver. I am wide open > to other ideas, though. > Would you show me how it works at your test system if it is not a private thing? > >>> > >>>Eg, if "data_role" has changed, the udev can echo "data_role" to > >>>/sys/class/usb-dual-role/role > >>> > >>That sounds like a kernel event delivered to user space via udev or > >>sysfs notification and returned back into the kernel through a sysfs > >>attribute. Do I understand that correctly ? > >> > > > >Yes. > > > > That doesn't sound like a good idea to me, and I don't see a technical reason > to require it. > I don't like it either, but current kernel has no ability to handle it except you use hardware signal like extcon-gpio or controller id as input pin to SoC handle this event. -- Best Regards, Peter Chen