Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754638AbcDDNNw (ORCPT ); Mon, 4 Apr 2016 09:13:52 -0400 Received: from mga14.intel.com ([192.55.52.115]:48085 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751747AbcDDNNu (ORCPT ); Mon, 4 Apr 2016 09:13:50 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.24,440,1455004800"; d="scan'208";a="951248826" From: "Tirdea, Irina" To: Andy Shevchenko , "Rafael J. Wysocki" , Len Brown , Mika Westerberg , Linus Walleij , "linux-gpio@vger.kernel.org" , "linux-acpi@vger.kernel.org" CC: Rob Herring , Heikki Krogerus , "Purdila, Octavian" , "Ciocan, Cristina" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: RE: [RFC PATCH 3/4] pinctrl: Add ACPI support Thread-Topic: [RFC PATCH 3/4] pinctrl: Add ACPI support Thread-Index: AQHRi0MEm7PLepk5wkOrmyL5EM9p4p91GlcAgAS1ktA= Date: Mon, 4 Apr 2016 13:13:43 +0000 Deferred-Delivery: Mon, 4 Apr 2016 13:13:00 +0000 Message-ID: <1F3AC3675D538145B1661F571FE1805F2F22D7C2@irsmsx105.ger.corp.intel.com> References: <1459424685-26965-1-git-send-email-irina.tirdea@intel.com> <1459424685-26965-4-git-send-email-irina.tirdea@intel.com> <1459520074.5907.205.camel@linux.intel.com> In-Reply-To: <1459520074.5907.205.camel@linux.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiYjA3NGNkNDItZjlkZi00NDRhLTgzNjktYTAzNDk5YjY0YWRlIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE1LjkuNi42IiwiVHJ1c3RlZExhYmVsSGFzaCI6ImVGWnRtT1VMdTNqS0l4TzdsNzRlM01UWnQ2STRDdzRFNU1MYkwrcVwvRWNjPSJ9 x-ctpclassification: CTP_IC x-originating-ip: [163.33.239.182] Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id u34DDvP8019258 Content-Length: 3050 Lines: 105 > -----Original Message----- > From: Andy Shevchenko [mailto:andriy.shevchenko@linux.intel.com] > Sent: 01 April, 2016 17:15 > To: Tirdea, Irina; Rafael J. Wysocki; Len Brown; Mika Westerberg; Linus Walleij; linux-gpio@vger.kernel.org; linux- > acpi@vger.kernel.org > Cc: Rob Herring; Heikki Krogerus; Purdila, Octavian; Ciocan, Cristina; devicetree@vger.kernel.org; linux-kernel@vger.kernel.org > Subject: Re: [RFC PATCH 3/4] pinctrl: Add ACPI support > > On Thu, 2016-03-31 at 14:44 +0300, Irina Tirdea wrote: > > Add ACPI support for pin controller properties. These are > > based on ACPI _DSD properties and follow the device tree > > model based on states and node configurations. The states > > are defined as _DSD properties and configuration nodes > > are defined using the _DSD Hierarchical Properties Extension. > > > > A configuration node supports the generic device tree properties. > > > > The implementation is based on device tree code from devicetree.c. > > > > Patch is good to me, though few minor comments below. > > > +/** > > + * struct pinctrl_acpi_map - mapping table chunk parsed from ACPI > > + * @node: list node for struct pinctrl's @fw_maps field > > + * @pctldev: the pin controller that allocated this struct, and will > > free it > > > + * @maps: the mapping table entries > > We have @map and @num_maps. Right, I'll add num_maps description. > > > + */ > > +struct pinctrl_acpi_map { > > + struct list_head node; > > + struct pinctrl_dev *pctldev; > > + struct pinctrl_map *map; > > + unsigned num_maps; > > +}; > > + > > > > > +static int acpi_remember_or_free_map(struct pinctrl *p, const char > > *statename, > > +      struct pinctrl_dev *pctldev, > > +      struct pinctrl_map *map, > > unsigned num_maps) > > +{ > > + struct pinctrl_acpi_map *acpi_map; > > + struct list_head *acpi_maps; > > > > + unsigned int i; > > Just unsigned i to be in align with unsigned num_maps. > OK. > > + > > + /* Initialize common mapping table entry fields */ > > + for (i = 0; i < num_maps; i++) { > > + map[i].dev_name = dev_name(p->dev); > > + map[i].name = statename; > > + if (pctldev) > > + map[i].ctrl_dev_name = dev_name(pctldev- > > >dev); > > + } > > > > +int pinctrl_acpi_to_map(struct pinctrl *p) > > +{ > > + const union acpi_object *prop, *statenames, *configs; > > + unsigned int state, nstates, nconfigs, config; > > + char *statename, *propname, *configname; > > + struct fwnode_handle *fw_prop; > > + struct acpi_device *adev; > > + int ret; > > + > > + /* We may store pointers to property names within the node > > */ > > + adev = acpi_bus_get_acpi_device(ACPI_HANDLE(p->dev)); > > + if (!adev) > > + return -ENODEV; > > + > > > + /* Only allow named states (device must have prop 'pinctrl- > > names') */ > > Does it fit one line? > It has 77 characters, so it should fit one line. > > +err_free_map: > > Perhaps err_free_maps? > OK. > > + pinctrl_acpi_free_maps(p); > > + return ret; > > -- > Andy Shevchenko > Intel Finland Oy