Received: by 10.223.185.116 with SMTP id b49csp3776633wrg; Mon, 19 Feb 2018 05:55:34 -0800 (PST) X-Google-Smtp-Source: AH8x225BMe+W097KwbwNhEeNVf28Ey5ZFmvyDkAwP290lFSB9KXpJWE9GvYVbvgf+LJCINRIoWse X-Received: by 10.167.131.135 with SMTP id u7mr5549092pfm.50.1519048534547; Mon, 19 Feb 2018 05:55:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519048534; cv=none; d=google.com; s=arc-20160816; b=BPQC+vmxnmzUxAdHprFTxuwDL/UxNKQIUWlXFR8Tiwi266oyfZdpkreRyclxAEf5fq fy0EKqqrgSwajiSFLNg1X3+QeAUeaoPBuMA8SxuVPf4DqAj9222GKJAnwQtv9FhMCetY WmqmBL4hXxcDJrZ1dguklCkaKAsSFJDeI2mDvVfhOhAtiiK7xUCoA5h7sDhXc9yTPUYm G/XMUr9rpF0ojlx3E55LSL57Ydu5MmwLKpiRyYKjXqFmJGo3dYE2IwoRcrD7oBR8mmxc 1JDglNdaVHAExRPAX1ksANtjd7PrdQas9L4YoPgQ7OWZudKwyP+d+zn7EC+1KtMEYROG CvKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:references :in-reply-to:subject:cc:to:from:arc-authentication-results; bh=F0ROk0aculNfIz3H5BRGl0ujYLji/5+aJpyL3eb1gXg=; b=l1G+IByjFKBgu/mrP325qXLfkv21rpkCKMUDdKIJzbOBkzX2teBHVjWO0Z88QSBuiX 9m/2sqkp48k46uDPDNct6qZLYG7lDe1WNCCHOMQJdU94evrym8hZEJxpNIKpbWqkL3Wi ffpKVSx9/0w4ZVjkBlcb+TptJlqHi9Hnq8vWipRgNDfeEVYXopV2li2ndk9tEE03hsmc rI/a27rLBFnBJ8Z8Lo3dW3/T/Y+zq3FiJqp6ZFC4n19Po3nUdfwuZYe0N30tsDG1WxNj TqBvitU0B/zVpBHe3qWJBCFaDm3DQU4CQGhEVIYKm0TOVcsG7IMyXt4wiKw8VLF4JRuF f/Rw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id s124si3817184pgc.403.2018.02.19.05.55.19; Mon, 19 Feb 2018 05:55:34 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752857AbeBSNyl (ORCPT + 99 others); Mon, 19 Feb 2018 08:54:41 -0500 Received: from mga04.intel.com ([192.55.52.120]:42124 "EHLO mga04.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752666AbeBSNyk (ORCPT ); Mon, 19 Feb 2018 08:54:40 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 19 Feb 2018 05:54:35 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,535,1511856000"; d="scan'208";a="29115765" Received: from pipin.fi.intel.com (HELO localhost) ([10.237.68.37]) by orsmga003.jf.intel.com with ESMTP; 19 Feb 2018 05:54:32 -0800 From: Felipe Balbi To: Richard Leitner , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Cc: gregkh@linuxfoundation.org, stern@rowland.harvard.edu, linux@roeck-us.net, mathias.nyman@linux.intel.com, johan@kernel.org, ekorenevsky@gmail.com, peter.chen@nxp.com, drake@endlessm.com, joe@perches.com, Richard Leitner Subject: Re: [PATCH] usb: core: introduce per-port over-current counters In-Reply-To: <20180219120107.20434-1-dev@g0hl1n.net> References: <20180219120107.20434-1-dev@g0hl1n.net> Date: Mon, 19 Feb 2018 15:53:59 +0200 Message-ID: <874lmdgk5k.fsf@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Richard Leitner writes: > From: Richard Leitner > > For some userspace applications information on the number of > over-current conditions at specific USB hub ports is relevant. Therefore > introduce a oc_counter in the usb port struct which is exported via > sysfs. relevant how? What can the application do with that knowledge? > Signed-off-by: Richard Leitner > --- > Tested on an i.MX6DL based board. > --- > drivers/usb/core/hub.c | 4 +++- > drivers/usb/core/hub.h | 1 + > drivers/usb/core/port.c | 10 ++++++++++ > 3 files changed, 14 insertions(+), 1 deletion(-) > > diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c > index c5c1f6cf3228..448fba1e1827 100644 > --- a/drivers/usb/core/hub.c > +++ b/drivers/usb/core/hub.c > @@ -5104,8 +5104,10 @@ static void port_event(struct usb_hub *hub, int port1) > > if (portchange & USB_PORT_STAT_C_OVERCURRENT) { > u16 status = 0, unused; > + port_dev->oc_count++; > > - dev_dbg(&port_dev->dev, "over-current change\n"); > + dev_dbg(&port_dev->dev, "over-current change #%u\n", > + port_dev->oc_count); > usb_clear_port_feature(hdev, port1, > USB_PORT_FEAT_C_OVER_CURRENT); > msleep(100); /* Cool down */ > diff --git a/drivers/usb/core/hub.h b/drivers/usb/core/hub.h > index 2a700ccc868c..b5cf567bf9e2 100644 > --- a/drivers/usb/core/hub.h > +++ b/drivers/usb/core/hub.h > @@ -100,6 +100,7 @@ struct usb_port { > unsigned int is_superspeed:1; > unsigned int usb3_lpm_u1_permit:1; > unsigned int usb3_lpm_u2_permit:1; > + unsigned int oc_count; > }; > > #define to_usb_port(_dev) \ > diff --git a/drivers/usb/core/port.c b/drivers/usb/core/port.c > index 1a01e9ad3804..0bfe410eb8a7 100644 > --- a/drivers/usb/core/port.c > +++ b/drivers/usb/core/port.c > @@ -41,6 +41,15 @@ static ssize_t connect_type_show(struct device *dev, > } > static DEVICE_ATTR_RO(connect_type); > > +static ssize_t oc_count_show(struct device *dev, struct device_attribute *attr, > + char *buf) > +{ > + struct usb_port *port_dev = to_usb_port(dev); > + > + return sprintf(buf, "%u\n", port_dev->oc_count); > +} > +static DEVICE_ATTR_RO(oc_count); I would actually spell this out human readable: over_current_count -- balbi