From: "Cédric Le Goater" <clg@fr.ibm.com> To: lm-sensors@lm-sensors.org Cc: "Stewart Smith" <stewart@linux.vnet.ibm.com>, "Cédric Le Goater" <clg@fr.ibm.com>, "Jean Delvare" <jdelvare@suse.de>, "Neelesh Gupta" <neelegup@linux.vnet.ibm.com>, skiboot@lists.ozlabs.org, linuxppc-dev@lists.ozlabs.org, "Guenter Roeck" <linux@roeck-us.net> 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 [thread overview] Message-ID: <1426693665-10797-6-git-send-email-clg@fr.ibm.com> (raw) In-Reply-To: <1423117857-32759-1-git-send-email-clg@fr.ibm.com> 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 <clg@fr.ibm.com> --- 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
WARNING: multiple messages have this Message-ID (diff)
From: "Cédric Le Goater" <clg@fr.ibm.com> To: lm-sensors@lm-sensors.org Cc: "Stewart Smith" <stewart@linux.vnet.ibm.com>, "Cédric Le Goater" <clg@fr.ibm.com>, "Jean Delvare" <jdelvare@suse.de>, "Neelesh Gupta" <neelegup@linux.vnet.ibm.com>, skiboot@lists.ozlabs.org, linuxppc-dev@lists.ozlabs.org, "Guenter Roeck" <linux@roeck-us.net> Subject: [lm-sensors] [PATCH 5/5] hwmon: (ibmpowernv) do not use the OPAL index for hwmon attribute names Date: Wed, 18 Mar 2015 15:47:45 +0000 [thread overview] Message-ID: <1426693665-10797-6-git-send-email-clg@fr.ibm.com> (raw) In-Reply-To: <1423117857-32759-1-git-send-email-clg@fr.ibm.com> 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=
next prev parent reply other threads:[~2015-03-18 15:47 UTC|newest] Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <1423117857-32759-1-git-send-email-clg@fr.ibm.com> 2015-02-20 15:07 ` [RFC PATCH 0/3] hwmon: (ibmpowernv) add DTS support Cédric Le Goater 2015-02-20 15:07 ` [lm-sensors] " Cédric Le Goater 2015-02-20 16:52 ` Guenter Roeck 2015-02-20 16:52 ` [lm-sensors] " Guenter Roeck 2015-02-20 20:15 ` Cedric Le Goater 2015-02-20 20:15 ` [lm-sensors] " Cedric Le Goater 2015-02-20 23:52 ` Guenter Roeck 2015-02-20 23:52 ` [lm-sensors] " Guenter Roeck 2015-02-21 7:14 ` Cedric Le Goater 2015-02-21 7:14 ` [lm-sensors] " Cedric Le Goater 2015-02-21 11:03 ` Guenter Roeck 2015-02-21 11:03 ` [lm-sensors] " Guenter Roeck 2015-02-23 10:54 ` Cedric Le Goater 2015-02-23 10:54 ` [lm-sensors] " Cedric Le Goater 2015-02-20 15:07 ` [RFC PATCH 1/3] powerpc/powernv: Check OPAL sensor calls exist Cédric Le Goater 2015-02-20 15:07 ` [lm-sensors] " Cédric Le Goater 2015-02-20 16:53 ` Guenter Roeck 2015-02-20 16:53 ` [lm-sensors] " Guenter Roeck 2015-02-20 20:18 ` Cedric Le Goater 2015-02-20 20:18 ` [lm-sensors] " Cedric Le Goater 2015-02-24 4:54 ` Michael Ellerman 2015-02-24 4:54 ` [lm-sensors] " Michael Ellerman 2015-02-25 17:28 ` Cedric Le Goater 2015-02-25 17:28 ` [lm-sensors] " Cedric Le Goater 2015-02-20 15:07 ` [RFC PATCH 2/3] powerpc/powernv: handle OPAL_SUCCESS return in opal_sensor_read Cédric Le Goater 2015-02-20 15:07 ` [lm-sensors] " Cédric Le Goater 2015-02-20 15:07 ` [RFC PATCH 3/3] hwmon: (ibmpowernv) add DTS support Cédric Le Goater 2015-02-20 15:07 ` [lm-sensors] " Cédric Le Goater 2015-03-18 15:47 ` [PATCH 0/5] hwmon: (ibmpowernv) remove dependency on OPAL index Cédric Le Goater 2015-03-18 15:47 ` [lm-sensors] " Cédric Le Goater 2015-03-19 4:05 ` Guenter Roeck 2015-03-19 4:05 ` [lm-sensors] " Guenter Roeck 2015-03-18 15:47 ` [PATCH 1/5] hwmon: (ibmpowernv) replace AMBIENT_TEMP by TEMP Cédric Le Goater 2015-03-18 15:47 ` [lm-sensors] " Cédric Le Goater 2015-03-18 15:47 ` [PATCH 2/5] hwmon: (ibmpowernv) add a get_sensor_type() routine Cédric Le Goater 2015-03-18 15:47 ` [lm-sensors] " Cédric Le Goater 2015-03-18 15:47 ` [PATCH 3/5] hwmon: (ibmpowernv) add a convert_opal_attr_name() routine Cédric Le Goater 2015-03-18 15:47 ` [lm-sensors] " Cédric Le Goater 2015-03-19 3:58 ` Guenter Roeck 2015-03-19 3:58 ` [lm-sensors] " Guenter Roeck 2015-03-18 15:47 ` [PATCH 4/5] hwmon: (ibmpowernv) change create_hwmon_attr_name() prototype Cédric Le Goater 2015-03-18 15:47 ` [lm-sensors] " Cédric Le Goater 2015-03-19 4:02 ` Guenter Roeck 2015-03-19 4:02 ` [lm-sensors] " Guenter Roeck 2015-03-18 15:47 ` Cédric Le Goater [this message] 2015-03-18 15:47 ` [lm-sensors] [PATCH 5/5] hwmon: (ibmpowernv) do not use the OPAL index for hwmon attribute names Cédric Le Goater 2015-03-19 17:44 ` [PATCH v2 0/5] hwmon: (ibmpowernv) remove dependency on OPAL index Cédric Le Goater 2015-03-19 17:44 ` [lm-sensors] " Cédric Le Goater 2015-03-20 15:26 ` Guenter Roeck 2015-03-20 15:26 ` [lm-sensors] " Guenter Roeck 2015-03-20 16:52 ` Cedric Le Goater 2015-03-20 16:52 ` [lm-sensors] " Cedric Le Goater 2015-04-01 10:15 ` [PATCH 0/4] hwmon: (ibmpowernv) add DTS support Cédric Le Goater 2015-04-01 10:15 ` [lm-sensors] " Cédric Le Goater 2015-04-01 10:15 ` [PATCH 1/4] hwmon: (ibmpowernv) add a helper routine create_hwmon_attr Cédric Le Goater 2015-04-01 10:15 ` [lm-sensors] " Cédric Le Goater 2015-04-01 10:15 ` [PATCH 2/4] hwmon: (ibmpowernv) add support for the new device tree Cédric Le Goater 2015-04-01 10:15 ` [lm-sensors] " Cédric Le Goater 2015-04-01 10:15 ` [PATCH 3/4] hwmon: (ibmpowernv) add a label attribute Cédric Le Goater 2015-04-01 10:15 ` [lm-sensors] " Cédric Le Goater 2015-04-01 10:15 ` [PATCH 4/4] hwmon: (ibmpowernv) pretty print labels Cédric Le Goater 2015-04-01 10:15 ` [lm-sensors] " Cédric Le Goater 2015-04-03 15:49 ` Guenter Roeck 2015-04-03 15:49 ` [lm-sensors] " Guenter Roeck 2015-04-07 14:42 ` Cedric Le Goater 2015-04-07 14:42 ` [lm-sensors] " Cedric Le Goater 2015-04-07 14:45 ` Cédric Le Goater 2015-04-07 14:45 ` [lm-sensors] " Cédric Le Goater 2015-04-07 16:44 ` Guenter Roeck 2015-04-07 16:44 ` [lm-sensors] " Guenter Roeck 2015-04-07 18:03 ` Cedric Le Goater 2015-04-07 18:03 ` [lm-sensors] " Cedric Le Goater 2015-04-07 19:22 ` Guenter Roeck 2015-04-07 19:22 ` [lm-sensors] " Guenter Roeck 2015-04-08 6:57 ` Cedric Le Goater 2015-04-08 6:57 ` [lm-sensors] " Cedric Le Goater 2015-04-07 20:22 ` [Skiboot] " Benjamin Herrenschmidt 2015-04-07 20:22 ` [lm-sensors] " Benjamin Herrenschmidt 2015-03-19 17:44 ` [PATCH v2 1/5] hwmon: (ibmpowernv) replace AMBIENT_TEMP by TEMP Cédric Le Goater 2015-03-19 17:44 ` [lm-sensors] " Cédric Le Goater 2015-03-19 17:44 ` [PATCH v2 2/5] hwmon: (ibmpowernv) add a get_sensor_type() routine Cédric Le Goater 2015-03-19 17:44 ` [lm-sensors] " Cédric Le Goater 2015-03-19 17:44 ` [PATCH v2 3/5] hwmon: (ibmpowernv) add a convert_opal_attr_name() routine Cédric Le Goater 2015-03-19 17:44 ` [lm-sensors] " Cédric Le Goater 2015-03-19 17:44 ` [PATCH v2 4/5] hwmon: (ibmpowernv) change create_hwmon_attr_name() prototype Cédric Le Goater 2015-03-19 17:44 ` [lm-sensors] " Cédric Le Goater 2015-03-20 8:06 ` Cedric Le Goater 2015-03-20 8:06 ` [lm-sensors] " Cedric Le Goater 2015-03-20 15:27 ` Guenter Roeck 2015-03-20 15:27 ` [lm-sensors] " Guenter Roeck 2015-03-19 17:44 ` [PATCH v2 5/5] hwmon: (ibmpowernv) do not use the OPAL index for hwmon attribute names Cédric Le Goater 2015-03-19 17:44 ` [lm-sensors] " Cédric Le Goater 2015-04-08 15:20 [PATCH 2/4] hwmon: (ibmpowernv) add support for the new device tree Guenter Roeck 2015-04-08 15:20 ` [lm-sensors] " Guenter Roeck 2015-04-08 16:06 ` Cedric Le Goater 2015-04-08 16:06 ` [lm-sensors] " Cedric Le Goater
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1426693665-10797-6-git-send-email-clg@fr.ibm.com \ --to=clg@fr.ibm.com \ --cc=jdelvare@suse.de \ --cc=linux@roeck-us.net \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=lm-sensors@lm-sensors.org \ --cc=neelegup@linux.vnet.ibm.com \ --cc=skiboot@lists.ozlabs.org \ --cc=stewart@linux.vnet.ibm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.