On 06/20/2017 09:15 AM, Shilpasri G Bhat wrote: > > > 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 <clg@xxxxxxxx> >>> >>> 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 <clg@xxxxxxxx> >>> Tested-by: Shilpasri G Bhat <shilpa.bhat@xxxxxxxxxxxxxxxxxx> >> >> Did you test on a Tuleta (IBM Power) system ? > > I have tested this patch on P9 FSP and Firestone. OK. I just gave it a try on a Tuleta, P8 FSP, IBM Power system Looks good. Thanks, C. > >> >> 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; >>> } >>> >>> >> > -- To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html