From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from e06smtp11.uk.ibm.com (e06smtp11.uk.ibm.com [195.75.94.107]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id ED2281A08EE for ; Thu, 19 Mar 2015 02:47:59 +1100 (AEDT) Received: from /spool/local by e06smtp11.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Wed, 18 Mar 2015 15:47:56 -0000 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= To: lm-sensors@lm-sensors.org Subject: [PATCH 5/5] hwmon: (ibmpowernv) do not use the OPAL index for hwmon attribute names Date: Wed, 18 Mar 2015 16:47:45 +0100 Message-Id: <1426693665-10797-6-git-send-email-clg@fr.ibm.com> In-Reply-To: <1423117857-32759-1-git-send-email-clg@fr.ibm.com> References: <1423117857-32759-1-git-send-email-clg@fr.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Cc: Stewart Smith , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Jean Delvare , Neelesh Gupta , skiboot@lists.ozlabs.org, linuxppc-dev@lists.ozlabs.org, Guenter Roeck List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , The current OPAL firmware exposes the different sensors of an IBM Power system using the node names such as : sensors/amb-temp#1-data sensors/amb-temp#1-thrs cooling-fan#1-data cooling-fan#1-faulted cooling-fan#1-thrs cooling-fan#2-data ... The ibmpowernv driver, when loaded, parses these names to extract the sensor index and the sensor attribute name. Unfortunately, this scheme makes it difficult to add sensors with a different layout (specially of the same type, like temperature) as the sensor index calculated in OPAL is directly used in the hwmon sysfs interface. What this patch does is add a independent hwmon index for each sensor. The increment of the hwmon index (temp, fan, power, etc.) is kept per sensor type in the sensor_group table. The sensor_data table is used to store the association of the hwmon and OPAL indexes, as we need to have the same hwmon index for different attributes of a same sensor. Signed-off-by: Cédric Le Goater --- drivers/hwmon/ibmpowernv.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/drivers/hwmon/ibmpowernv.c b/drivers/hwmon/ibmpowernv.c index 570d2360b698..ffcebc9d8bf5 100644 --- a/drivers/hwmon/ibmpowernv.c +++ b/drivers/hwmon/ibmpowernv.c @@ -55,6 +55,7 @@ static struct sensor_group { const char *compatible; struct attribute_group group; u32 attr_count; + u32 hwmon_index; } sensor_groups[] = { {"fan", "ibm,opal-sensor-cooling-fan"}, {"temp", "ibm,opal-sensor-amb-temp"}, @@ -64,6 +65,8 @@ static struct sensor_group { struct sensor_data { u32 id; /* An opaque id of the firmware for each sensor */ + u32 hwmon_index; + u32 opal_index; enum sensors type; char name[MAX_ATTR_LEN]; struct device_attribute dev_attr; @@ -185,6 +188,19 @@ static int get_sensor_type(struct device_node *np) return MAX_SENSOR_TYPE; } +static u32 get_sensor_hwmon_index(struct sensor_data *sdata, + struct sensor_data *sdata_table, int count) +{ + int i; + + for (i = 0; i < count; i++) + if (sdata_table[i].opal_index == sdata->opal_index && + sdata_table[i].type == sdata->type) + return sdata_table[i].hwmon_index; + + return ++sensor_groups[sdata->type].hwmon_index; +} + static int populate_attr_groups(struct platform_device *pdev) { struct platform_data *pdata = platform_get_drvdata(pdev); @@ -274,8 +290,13 @@ static int create_device_attrs(struct platform_device *pdev) goto exit_put_node; } + sdata[count].opal_index = opal_index; + sdata[count].hwmon_index = + get_sensor_hwmon_index(&sdata[count], sdata, count); + snprintf(sdata[count].name, MAX_ATTR_LEN, "%s%d_%s", - sensor_groups[type].name, opal_index, attr_name); + sensor_groups[type].name, sdata[count].hwmon_index, + attr_name); sysfs_attr_init(&sdata[count].dev_attr.attr); sdata[count].dev_attr.attr.name = sdata[count].name; -- 1.7.10.4 From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Date: Wed, 18 Mar 2015 15:47:45 +0000 Subject: [lm-sensors] [PATCH 5/5] hwmon: (ibmpowernv) do not use the OPAL index for hwmon attribute names Message-Id: <1426693665-10797-6-git-send-email-clg@fr.ibm.com> List-Id: References: <1423117857-32759-1-git-send-email-clg@fr.ibm.com> In-Reply-To: <1423117857-32759-1-git-send-email-clg@fr.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: lm-sensors@lm-sensors.org Cc: Stewart Smith , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Jean Delvare , Neelesh Gupta , skiboot@lists.ozlabs.org, linuxppc-dev@lists.ozlabs.org, Guenter Roeck VGhlIGN1cnJlbnQgT1BBTCBmaXJtd2FyZSBleHBvc2VzIHRoZSBkaWZmZXJlbnQgc2Vuc29ycyBv ZiBhbiBJQk0gUG93ZXIKc3lzdGVtIHVzaW5nIHRoZSBub2RlIG5hbWVzIHN1Y2ggYXMgOgoKCXNl bnNvcnMvYW1iLXRlbXAjMS1kYXRhCglzZW5zb3JzL2FtYi10ZW1wIzEtdGhycwoJY29vbGluZy1m YW4jMS1kYXRhCgljb29saW5nLWZhbiMxLWZhdWx0ZWQKCWNvb2xpbmctZmFuIzEtdGhycwoJY29v bGluZy1mYW4jMi1kYXRhCgkuLi4KClRoZSBpYm1wb3dlcm52IGRyaXZlciwgd2hlbiBsb2FkZWQs IHBhcnNlcyB0aGVzZSBuYW1lcyB0byBleHRyYWN0IHRoZQpzZW5zb3IgaW5kZXggYW5kIHRoZSBz ZW5zb3IgYXR0cmlidXRlIG5hbWUuIFVuZm9ydHVuYXRlbHksIHRoaXMgc2NoZW1lCm1ha2VzIGl0 IGRpZmZpY3VsdCB0byBhZGQgc2Vuc29ycyB3aXRoIGEgZGlmZmVyZW50IGxheW91dCAoc3BlY2lh bGx5IG9mCnRoZSBzYW1lIHR5cGUsIGxpa2UgdGVtcGVyYXR1cmUpIGFzIHRoZSBzZW5zb3IgaW5k ZXggY2FsY3VsYXRlZCBpbiBPUEFMCmlzIGRpcmVjdGx5IHVzZWQgaW4gdGhlIGh3bW9uIHN5c2Zz IGludGVyZmFjZS4KCldoYXQgdGhpcyBwYXRjaCBkb2VzIGlzIGFkZCBhIGluZGVwZW5kZW50IGh3 bW9uIGluZGV4IGZvciBlYWNoIHNlbnNvci4KVGhlIGluY3JlbWVudCBvZiB0aGUgaHdtb24gaW5k ZXggKHRlbXAsIGZhbiwgcG93ZXIsIGV0Yy4pIGlzIGtlcHQgcGVyCnNlbnNvciB0eXBlIGluIHRo ZSBzZW5zb3JfZ3JvdXAgdGFibGUuIFRoZSBzZW5zb3JfZGF0YSB0YWJsZSBpcyB1c2VkCnRvIHN0 b3JlIHRoZSBhc3NvY2lhdGlvbiBvZiB0aGUgaHdtb24gYW5kIE9QQUwgaW5kZXhlcywgYXMgd2Ug bmVlZCB0bwpoYXZlIHRoZSBzYW1lIGh3bW9uIGluZGV4IGZvciBkaWZmZXJlbnQgYXR0cmlidXRl cyBvZiBhIHNhbWUgc2Vuc29yLgoKU2lnbmVkLW9mZi1ieTogQ8OpZHJpYyBMZSBHb2F0ZXIgPGNs Z0Bmci5pYm0uY29tPgotLS0KIGRyaXZlcnMvaHdtb24vaWJtcG93ZXJudi5jIHwgICAyMyArKysr KysrKysrKysrKysrKysrKysrLQogMSBmaWxlIGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDEg ZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL2libXBvd2VybnYuYyBiL2Ry aXZlcnMvaHdtb24vaWJtcG93ZXJudi5jCmluZGV4IDU3MGQyMzYwYjY5OC4uZmZjZWJjOWQ4YmY1 IDEwMDY0NAotLS0gYS9kcml2ZXJzL2h3bW9uL2libXBvd2VybnYuYworKysgYi9kcml2ZXJzL2h3 bW9uL2libXBvd2VybnYuYwpAQCAtNTUsNiArNTUsNyBAQCBzdGF0aWMgc3RydWN0IHNlbnNvcl9n cm91cCB7CiAJY29uc3QgY2hhciAqY29tcGF0aWJsZTsKIAlzdHJ1Y3QgYXR0cmlidXRlX2dyb3Vw IGdyb3VwOwogCXUzMiBhdHRyX2NvdW50OworCXUzMiBod21vbl9pbmRleDsKIH0gc2Vuc29yX2dy b3Vwc1tdID0gewogCXsiZmFuIiwgImlibSxvcGFsLXNlbnNvci1jb29saW5nLWZhbiJ9LAogCXsi dGVtcCIsICJpYm0sb3BhbC1zZW5zb3ItYW1iLXRlbXAifSwKQEAgLTY0LDYgKzY1LDggQEAgc3Rh dGljIHN0cnVjdCBzZW5zb3JfZ3JvdXAgewogCiBzdHJ1Y3Qgc2Vuc29yX2RhdGEgewogCXUzMiBp ZDsgLyogQW4gb3BhcXVlIGlkIG9mIHRoZSBmaXJtd2FyZSBmb3IgZWFjaCBzZW5zb3IgKi8KKwl1 MzIgaHdtb25faW5kZXg7CisJdTMyIG9wYWxfaW5kZXg7CiAJZW51bSBzZW5zb3JzIHR5cGU7CiAJ Y2hhciBuYW1lW01BWF9BVFRSX0xFTl07CiAJc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgZGV2X2F0 dHI7CkBAIC0xODUsNiArMTg4LDE5IEBAIHN0YXRpYyBpbnQgZ2V0X3NlbnNvcl90eXBlKHN0cnVj dCBkZXZpY2Vfbm9kZSAqbnApCiAJcmV0dXJuIE1BWF9TRU5TT1JfVFlQRTsKIH0KIAorc3RhdGlj IHUzMiBnZXRfc2Vuc29yX2h3bW9uX2luZGV4KHN0cnVjdCBzZW5zb3JfZGF0YSAqc2RhdGEsCisJ c3RydWN0IHNlbnNvcl9kYXRhICpzZGF0YV90YWJsZSwgaW50IGNvdW50KQoreworCWludCBpOwor CisJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspCisJCWlmIChzZGF0YV90YWJsZVtpXS5vcGFs X2luZGV4ID09IHNkYXRhLT5vcGFsX2luZGV4ICYmCisJCSAgICBzZGF0YV90YWJsZVtpXS50eXBl ID09IHNkYXRhLT50eXBlKQorCQkJcmV0dXJuIHNkYXRhX3RhYmxlW2ldLmh3bW9uX2luZGV4Owor CisJcmV0dXJuICsrc2Vuc29yX2dyb3Vwc1tzZGF0YS0+dHlwZV0uaHdtb25faW5kZXg7Cit9CisK IHN0YXRpYyBpbnQgcG9wdWxhdGVfYXR0cl9ncm91cHMoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKIHsKIAlzdHJ1Y3QgcGxhdGZvcm1fZGF0YSAqcGRhdGEgPSBwbGF0Zm9ybV9nZXRfZHJ2 ZGF0YShwZGV2KTsKQEAgLTI3NCw4ICsyOTAsMTMgQEAgc3RhdGljIGludCBjcmVhdGVfZGV2aWNl X2F0dHJzKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCQlnb3RvIGV4aXRfcHV0X25v ZGU7CiAJCX0KIAorCQlzZGF0YVtjb3VudF0ub3BhbF9pbmRleCA9IG9wYWxfaW5kZXg7CisJCXNk YXRhW2NvdW50XS5od21vbl9pbmRleCA9CisJCQlnZXRfc2Vuc29yX2h3bW9uX2luZGV4KCZzZGF0 YVtjb3VudF0sIHNkYXRhLCBjb3VudCk7CisKIAkJc25wcmludGYoc2RhdGFbY291bnRdLm5hbWUs IE1BWF9BVFRSX0xFTiwgIiVzJWRfJXMiLAotCQkJIHNlbnNvcl9ncm91cHNbdHlwZV0ubmFtZSwg b3BhbF9pbmRleCwgYXR0cl9uYW1lKTsKKwkJCSBzZW5zb3JfZ3JvdXBzW3R5cGVdLm5hbWUsIHNk YXRhW2NvdW50XS5od21vbl9pbmRleCwKKwkJCSBhdHRyX25hbWUpOwogCiAJCXN5c2ZzX2F0dHJf aW5pdCgmc2RhdGFbY291bnRdLmRldl9hdHRyLmF0dHIpOwogCQlzZGF0YVtjb3VudF0uZGV2X2F0 dHIuYXR0ci5uYW1lID0gc2RhdGFbY291bnRdLm5hbWU7Ci0tIAoxLjcuMTAuNAoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxtLXNlbnNvcnMgbWFpbGlu ZyBsaXN0CmxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKaHR0cDovL2xpc3RzLmxtLXNlbnNvcnMu b3JnL21haWxtYW4vbGlzdGluZm8vbG0tc2Vuc29ycw=