Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750993AbdFTHPV (ORCPT ); Tue, 20 Jun 2017 03:15:21 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:51180 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751104AbdFTHPT (ORCPT ); Tue, 20 Jun 2017 03:15:19 -0400 Subject: Re: [PATCH V2 1/2] hwmon: (ibmpowernv) introduce a legacy_compatibles array To: =?UTF-8?Q?C=c3=a9dric_Le_Goater?= , linux@roeck-us.net, stewart@linux.vnet.ibm.com References: <1497935293-31618-1-git-send-email-shilpa.bhat@linux.vnet.ibm.com> <1497935293-31618-2-git-send-email-shilpa.bhat@linux.vnet.ibm.com> <3b82267d-c647-d523-12d8-496378ab240b@kaod.org> Cc: jdelvare@suse.com, benh@kernel.crashing.org, paulus@samba.org, mpe@ellerman.id.au, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, svaidy@linux.vnet.ibm.com, ego@linux.vnet.ibm.com, linux-hwmon@vger.kernel.org From: Shilpasri G Bhat Date: Tue, 20 Jun 2017 12:45:00 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.7.0 MIME-Version: 1.0 In-Reply-To: <3b82267d-c647-d523-12d8-496378ab240b@kaod.org> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-TM-AS-MML: disable x-cbid: 17062007-0012-0000-0000-00000249CA9B X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 17062007-0013-0000-0000-000007624EE4 Message-Id: <5cc575c8-246c-9559-e990-348b13e9ddd3@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2017-06-20_04:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1703280000 definitions=main-1706200132 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2485 Lines: 81 On 06/20/2017 11:36 AM, Cédric Le Goater wrote: > On 06/20/2017 07:08 AM, Shilpasri G Bhat wrote: >> From: Cédric Le Goater >> >> Today, the type of a PowerNV sensor system is determined with the >> "compatible" property for legacy Firmwares and with the "sensor-type" >> for newer ones. The same array of strings is used for both to do the >> matching and this raises some issue to introduce new sensor types. >> >> Let's introduce two different arrays (legacy and current) to make >> things easier for new sensor types. >> >> Signed-off-by: Cédric Le Goater >> Tested-by: Shilpasri G Bhat > > Did you test on a Tuleta (IBM Power) system ? I have tested this patch on P9 FSP and Firestone. > > Thanks, > > C. > >> --- >> drivers/hwmon/ibmpowernv.c | 26 ++++++++++++++++++-------- >> 1 file changed, 18 insertions(+), 8 deletions(-) >> >> diff --git a/drivers/hwmon/ibmpowernv.c b/drivers/hwmon/ibmpowernv.c >> index 862b832..6d8909c 100644 >> --- a/drivers/hwmon/ibmpowernv.c >> +++ b/drivers/hwmon/ibmpowernv.c >> @@ -55,17 +55,27 @@ enum sensors { >> >> #define INVALID_INDEX (-1U) >> >> +/* >> + * 'compatible' string properties for sensor types as defined in old >> + * PowerNV firmware (skiboot). These are ordered as 'enum sensors'. >> + */ >> +static const char * const legacy_compatibles[] = { >> + "ibm,opal-sensor-cooling-fan", >> + "ibm,opal-sensor-amb-temp", >> + "ibm,opal-sensor-power-supply", >> + "ibm,opal-sensor-power" >> +}; >> + >> static struct sensor_group { >> - const char *name; >> - const char *compatible; >> + const char *name; /* matches property 'sensor-type' */ >> struct attribute_group group; >> u32 attr_count; >> u32 hwmon_index; >> } sensor_groups[] = { >> - {"fan", "ibm,opal-sensor-cooling-fan"}, >> - {"temp", "ibm,opal-sensor-amb-temp"}, >> - {"in", "ibm,opal-sensor-power-supply"}, >> - {"power", "ibm,opal-sensor-power"} >> + { "fan" }, >> + { "temp" }, >> + { "in" }, >> + { "power" } >> }; >> >> struct sensor_data { >> @@ -239,8 +249,8 @@ static int get_sensor_type(struct device_node *np) >> enum sensors type; >> const char *str; >> >> - for (type = 0; type < MAX_SENSOR_TYPE; type++) { >> - if (of_device_is_compatible(np, sensor_groups[type].compatible)) >> + for (type = 0; type < ARRAY_SIZE(legacy_compatibles); type++) { >> + if (of_device_is_compatible(np, legacy_compatibles[type])) >> return type; >> } >> >> >