Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935602AbcKNUq5 (ORCPT ); Mon, 14 Nov 2016 15:46:57 -0500 Received: from bh-25.webhostbox.net ([208.91.199.152]:43516 "EHLO bh-25.webhostbox.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933353AbcKNUqy (ORCPT ); Mon, 14 Nov 2016 15:46:54 -0500 Date: Mon, 14 Nov 2016 12:46:50 -0800 From: Guenter Roeck To: Heikki Krogerus Cc: Greg KH , Oliver Neukum , Felipe Balbi , Bin Gao , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org Subject: Re: [PATHCv10 1/2] usb: USB Type-C connector class Message-ID: <20161114204650.GB17677@roeck-us.net> References: <20160919111657.22127-1-heikki.krogerus@linux.intel.com> <20160919111657.22127-2-heikki.krogerus@linux.intel.com> <20161114095148.GA10306@kroah.com> <20161114123235.GD22706@kuha.fi.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20161114123235.GD22706@kuha.fi.intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Authenticated_sender: guenter@roeck-us.net X-OutGoing-Spam-Status: No, score=-1.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - bh-25.webhostbox.net X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - roeck-us.net X-Get-Message-Sender-Via: bh-25.webhostbox.net: authenticated_id: guenter@roeck-us.net X-Authenticated-Sender: bh-25.webhostbox.net: guenter@roeck-us.net X-Source: X-Source-Args: X-Source-Dir: Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2896 Lines: 71 On Mon, Nov 14, 2016 at 02:32:35PM +0200, Heikki Krogerus wrote: > Hi Greg, > > On Mon, Nov 14, 2016 at 10:51:48AM +0100, Greg KH wrote: > > On Mon, Sep 19, 2016 at 02:16:56PM +0300, Heikki Krogerus wrote: > > > The purpose of USB Type-C connector class is to provide > > > unified interface for the user space to get the status and > > > basic information about USB Type-C connectors on a system, > > > control over data role swapping, and when the port supports > > > USB Power Delivery, also control over power role swapping > > > and Alternate Modes. > > > > > > Reviewed-by: Guenter Roeck > > > Tested-by: Guenter Roeck > > > Signed-off-by: Heikki Krogerus > > > --- > > > Documentation/ABI/testing/sysfs-class-typec | 218 ++++++ > > > Documentation/usb/typec.txt | 103 +++ > > > MAINTAINERS | 9 + > > > drivers/usb/Kconfig | 2 + > > > drivers/usb/Makefile | 2 + > > > drivers/usb/typec/Kconfig | 7 + > > > drivers/usb/typec/Makefile | 1 + > > > drivers/usb/typec/typec.c | 1075 +++++++++++++++++++++++++++ > > > include/linux/usb/typec.h | 252 +++++++ > > > 9 files changed, 1669 insertions(+) > > > create mode 100644 Documentation/ABI/testing/sysfs-class-typec > > > create mode 100644 Documentation/usb/typec.txt > > > create mode 100644 drivers/usb/typec/Kconfig > > > create mode 100644 drivers/usb/typec/Makefile > > > create mode 100644 drivers/usb/typec/typec.c > > > create mode 100644 include/linux/usb/typec.h > > [ ... ] > > > + > > > +int typec_connect(struct typec_port *port, struct typec_connection *con) > > > +{ > > > + int ret; > > > + > > > + if (!con->partner && !con->cable) > > > + return -EINVAL; > > > + > > > + port->connected = 1; > > > + port->data_role = con->data_role; > > > + port->pwr_role = con->pwr_role; > > > + port->vconn_role = con->vconn_role; > > > + port->pwr_opmode = con->pwr_opmode; > > > + > > > + kobject_uevent(&port->dev.kobj, KOBJ_CHANGE); > > > > This worries me. Who is listening for it? What will you do with it? > > Shouldn't you just poll on an attribute file instead? > > Oliver! Did you need this or can we remove it? > > I remember I removed the "connected" attribute because you did not see > any use for it at one point. I don't remember the reason exactly why? > The Android team tells me that they are currently using the udev events to track port role changes, and to detect presence of port partner. Also, there are plans to track changes on usbc*cable to differentiate between cable attach vs. device being attached on the remote end. What is the problem with using kobject_uevent() and thus presumably udev events ? Thanks, Guenter