From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752554AbcHQNxY (ORCPT ); Wed, 17 Aug 2016 09:53:24 -0400 Received: from mga11.intel.com ([192.55.52.93]:46088 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750896AbcHQNxW (ORCPT ); Wed, 17 Aug 2016 09:53:22 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.28,529,1464678000"; d="scan'208";a="866947914" Date: Wed, 17 Aug 2016 16:53:18 +0300 From: Heikki Krogerus To: Frans Klaver Cc: Greg KH , Guenter Roeck , Oliver Neukum , Felipe Balbi , "linux-kernel@vger.kernel.org" , "linux-usb@vger.kernel.org" Subject: Re: [PATCH v5 1/2] usb: USB Type-C connector class Message-ID: <20160817135318.GT9927@kuha.fi.intel.com> References: <1471430081-12860-1-git-send-email-heikki.krogerus@linux.intel.com> <1471430081-12860-2-git-send-email-heikki.krogerus@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.6.2 (2016-07-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, On Wed, Aug 17, 2016 at 03:14:03PM +0200, Frans Klaver wrote: > On Wed, Aug 17, 2016 at 12:34 PM, Heikki Krogerus > > +static const char * const typec_partner_types[] = { > > + [TYPEC_PARTNER_USB] = "USB", > > + [TYPEC_PARTNER_CHARGER] = "Charger", > > + [TYPEC_PARTNER_ALTMODE] = "Alternate Mode", > > + [TYPEC_PARTNER_ACCESSORY] = "Accessory", > > +}; > > + > > +static ssize_t partner_type_show(struct device *dev, > > + struct device_attribute *attr, char *buf) > > +{ > > + struct typec_partner *partner = container_of(dev, struct typec_partner, > > + dev); > > + > > + return sprintf(buf, "%s\n", typec_partner_types[partner->type]); > > +} > > + > > +static struct device_attribute dev_attr_partner_type = { > > + .attr = { > > + .name = "type", > > + .mode = S_IRUGO, > > + }, > > + .show = partner_type_show, > > +}; > > Why not use DEVICE_ATTR_RO() for this? Because I don't want to tie the attribute names to the function names in this case. There are other *type* attributes being created in the driver, so type_show() is not good, and we can't name the attribute "partner_type". The attribute will be placed in group named "partner". > > + > > +static ssize_t > > +partner_accessory_mode_show(struct device *dev, struct device_attribute *attr, > > + char *buf) > > +{ > > + struct typec_partner *partner = container_of(dev, struct typec_partner, > > + dev); > > + > > + return sprintf(buf, "%s\n", typec_accessory_modes[partner->accessory]); > > +} > > + > > +static struct device_attribute dev_attr_partner_accessory = { > > + .attr = { > > + .name = "accessory", > > + .mode = S_IRUGO, > > + }, > > + .show = partner_accessory_mode_show, > > +}; > > And this Ditto. Thanks, -- heikki