From: Henrique de Moraes Holschuh <hmh-N3TV7GIv+o9fyO9Q7EP/yw@public.gmane.org>
To: Stanislav Fomichev <kernel-klOrIKU+5EClnMjI0IkVqw@public.gmane.org>
Cc: dvhart-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org,
platform-driver-x86-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
andy-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org,
ibm-acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Subject: Re: [PATCH] platform/x86: thinkpad_acpi: Fix warning about deprecated hwmon_device_register
Date: Tue, 20 Jun 2017 02:16:33 -0300 [thread overview]
Message-ID: <20170620051633.GB15974@khazad-dum.debian.net> (raw)
In-Reply-To: <20170620030208.15997-1-kernel-klOrIKU+5EClnMjI0IkVqw@public.gmane.org>
On Mon, 19 Jun 2017, Stanislav Fomichev wrote:
> Use hwmon_device_register_with_groups instead of deprecated
> hwmon_device_register and fix a dmesg warning.
>
> This patch however changes the userspace API.
> hwmon_device_register_with_groups takes `hwmon' name as an argument and creates
> a name file in the `hwmon' device, not in the `platform_device'. This
> allows us to remove custom `name' device attribute, but in order to make
> lm-sensors happy we also have to move fans and thermal attributes to the
> `hwmon' device.
Can you clarify that with a ls -l of the "before" and "after"?
Also, does it change anything visible to lmsensors users (such as the
sensor/adapter name or address)? If so, please post a "before" and
"after"...
> Even though this patch changes userspace API, it's still compatible with
> the lm-sensors. Starting with lm-sensors 3.0 (circa 2007), it looks at both
> hwmon and the backing device for the name and other attributes.
I am not sure this is OK or not, it *is* an userspace ABI break. I am
not really opposed to it, as long as it is done properly. Let's see
what our subsystem maintainers think of it.
That said: the patch is still incomplete, because this driver has
documentation that also needs to be updated...
Please update Documentation/laptops/thinkpad-acpi.txt with the changes
to the thinkpad_hwmon sensor interfaces. Search for "hwmon" on that
text, that should locate everything.
Also, please bump "#define TPACPI_SYSFS_VERSION 0x020700" to 0x020800 in
drivers/platform/x86/thinkpad_acpi.c, and update the interface changelog
table at the end of Documentation/laptops/thinkpad-acpi.txt.
(that assumes the change is not a major ABI break, please reply with
that "ls -l" I asked above: we might need to bump that
TPACPI_SYSFS_VERSION to 0x030000, instead...)
> Signed-off-by: Stanislav Fomichev <kernel-klOrIKU+5EClnMjI0IkVqw@public.gmane.org>
> ---
> drivers/platform/x86/thinkpad_acpi.c | 36 ++++++++++--------------------------
> 1 file changed, 10 insertions(+), 26 deletions(-)
>
> diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
> index 7b6cb0c69b02..0e0a1616f273 100644
> --- a/drivers/platform/x86/thinkpad_acpi.c
> +++ b/drivers/platform/x86/thinkpad_acpi.c
> @@ -6401,7 +6401,7 @@ static int __init thermal_init(struct ibm_init_struct *iibm)
>
> switch (thermal_read_mode) {
> case TPACPI_THERMAL_TPEC_16:
> - res = sysfs_create_group(&tpacpi_sensors_pdev->dev.kobj,
> + res = sysfs_create_group(&tpacpi_hwmon->kobj,
> &thermal_temp_input16_group);
> if (res)
> return res;
> @@ -6409,7 +6409,7 @@ static int __init thermal_init(struct ibm_init_struct *iibm)
> case TPACPI_THERMAL_TPEC_8:
> case TPACPI_THERMAL_ACPI_TMP07:
> case TPACPI_THERMAL_ACPI_UPDT:
> - res = sysfs_create_group(&tpacpi_sensors_pdev->dev.kobj,
> + res = sysfs_create_group(&tpacpi_hwmon->kobj,
> &thermal_temp_input8_group);
> if (res)
> return res;
> @@ -6426,13 +6426,13 @@ static void thermal_exit(void)
> {
> switch (thermal_read_mode) {
> case TPACPI_THERMAL_TPEC_16:
> - sysfs_remove_group(&tpacpi_sensors_pdev->dev.kobj,
> + sysfs_remove_group(&tpacpi_hwmon->kobj,
> &thermal_temp_input16_group);
> break;
> case TPACPI_THERMAL_TPEC_8:
> case TPACPI_THERMAL_ACPI_TMP07:
> case TPACPI_THERMAL_ACPI_UPDT:
> - sysfs_remove_group(&tpacpi_sensors_pdev->dev.kobj,
> + sysfs_remove_group(&tpacpi_hwmon->kobj,
> &thermal_temp_input8_group);
> break;
> case TPACPI_THERMAL_NONE:
> @@ -8773,7 +8773,7 @@ static int __init fan_init(struct ibm_init_struct *iibm)
> fan_attributes[ARRAY_SIZE(fan_attributes)-2] =
> &dev_attr_fan2_input.attr;
> }
> - rc = sysfs_create_group(&tpacpi_sensors_pdev->dev.kobj,
> + rc = sysfs_create_group(&tpacpi_hwmon->kobj,
> &fan_attr_group);
> if (rc < 0)
> return rc;
> @@ -8781,7 +8781,7 @@ static int __init fan_init(struct ibm_init_struct *iibm)
> rc = driver_create_file(&tpacpi_hwmon_pdriver.driver,
> &driver_attr_fan_watchdog);
> if (rc < 0) {
> - sysfs_remove_group(&tpacpi_sensors_pdev->dev.kobj,
> + sysfs_remove_group(&tpacpi_hwmon->kobj,
> &fan_attr_group);
> return rc;
> }
> @@ -8796,7 +8796,7 @@ static void fan_exit(void)
> "cancelling any pending fan watchdog tasks\n");
>
> /* FIXME: can we really do this unconditionally? */
> - sysfs_remove_group(&tpacpi_sensors_pdev->dev.kobj, &fan_attr_group);
> + sysfs_remove_group(&tpacpi_hwmon->kobj, &fan_attr_group);
> driver_remove_file(&tpacpi_hwmon_pdriver.driver,
> &driver_attr_fan_watchdog);
>
> @@ -9229,16 +9229,6 @@ static void hotkey_driver_event(const unsigned int scancode)
> tpacpi_driver_event(TP_HKEY_EV_HOTKEY_BASE + scancode);
> }
>
> -/* sysfs name ---------------------------------------------------------- */
> -static ssize_t thinkpad_acpi_pdev_name_show(struct device *dev,
> - struct device_attribute *attr,
> - char *buf)
> -{
> - return snprintf(buf, PAGE_SIZE, "%s\n", TPACPI_NAME);
> -}
> -
> -static DEVICE_ATTR(name, S_IRUGO, thinkpad_acpi_pdev_name_show, NULL);
> -
> /* --------------------------------------------------------------------- */
>
> /* /proc support */
> @@ -9782,8 +9772,6 @@ static void thinkpad_acpi_module_exit(void)
> if (tpacpi_hwmon)
> hwmon_device_unregister(tpacpi_hwmon);
>
> - if (tp_features.sensors_pdev_attrs_registered)
> - device_remove_file(&tpacpi_sensors_pdev->dev, &dev_attr_name);
> if (tpacpi_sensors_pdev)
> platform_device_unregister(tpacpi_sensors_pdev);
> if (tpacpi_pdev)
> @@ -9904,14 +9892,10 @@ static int __init thinkpad_acpi_module_init(void)
> thinkpad_acpi_module_exit();
> return ret;
> }
> - ret = device_create_file(&tpacpi_sensors_pdev->dev, &dev_attr_name);
> - if (ret) {
> - pr_err("unable to create sysfs hwmon device attributes\n");
> - thinkpad_acpi_module_exit();
> - return ret;
> - }
> tp_features.sensors_pdev_attrs_registered = 1;
> - tpacpi_hwmon = hwmon_device_register(&tpacpi_sensors_pdev->dev);
> + tpacpi_hwmon = hwmon_device_register_with_groups(
> + &tpacpi_sensors_pdev->dev, TPACPI_NAME, NULL, NULL);
> +
> if (IS_ERR(tpacpi_hwmon)) {
> ret = PTR_ERR(tpacpi_hwmon);
> tpacpi_hwmon = NULL;
--
Henrique Holschuh
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
next prev parent reply other threads:[~2017-06-20 5:16 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-20 3:02 [PATCH] platform/x86: thinkpad_acpi: Fix warning about deprecated hwmon_device_register Stanislav Fomichev
[not found] ` <20170620030208.15997-1-kernel-klOrIKU+5EClnMjI0IkVqw@public.gmane.org>
2017-06-20 5:16 ` Henrique de Moraes Holschuh [this message]
2017-06-21 3:45 ` [PATCH v2] " Stanislav Fomichev
2017-07-01 6:02 ` Stanislav Fomichev
2017-08-18 23:01 ` Darren Hart
2017-08-31 16:54 ` [ibm-acpi-devel] " Henrique de Moraes Holschuh
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=20170620051633.GB15974@khazad-dum.debian.net \
--to=hmh-n3tv7giv+o9fyo9q7ep/yw@public.gmane.org \
--cc=andy-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=dvhart-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=ibm-acpi-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
--cc=kernel-klOrIKU+5EClnMjI0IkVqw@public.gmane.org \
--cc=platform-driver-x86-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox