diff --git a/drivers/input/keyboard/asus-ec-keys.c b/drivers/input/keyboard/asus-ec-keys.c index 1dcae59c5c67d..22cdaa3d655d2 100644 --- a/drivers/input/keyboard/asus-ec-keys.c +++ b/drivers/input/keyboard/asus-ec-keys.c @@ -1,7 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later /* * ASUS Transformer Pad - multimedia keys - * */ #include diff --git a/drivers/input/serio/asus-ec-kbc.c b/drivers/input/serio/asus-ec-kbc.c index 5e9db8c520838..5fd5f65470cd3 100644 --- a/drivers/input/serio/asus-ec-kbc.c +++ b/drivers/input/serio/asus-ec-kbc.c @@ -4,7 +4,6 @@ * * This looks suspiciously similar to i8042, but wrapped in * I2C/SMBus packets. - * */ #include diff --git a/drivers/leds/leds-asus-ec.c b/drivers/leds/leds-asus-ec.c index 7095a8573b27c..9db87c78331f4 100644 --- a/drivers/leds/leds-asus-ec.c +++ b/drivers/leds/leds-asus-ec.c @@ -71,7 +71,7 @@ static int asusec_led_probe(struct platform_device *pdev) ret = devm_led_classdev_register(&pdev->dev, amber_led); if (ret) return dev_err_probe(&pdev->dev, ret, - "can't register AMBER LED\n"); + "failed to register amber LED\n"); green_led = devm_kzalloc(&pdev->dev, sizeof(*green_led), GFP_KERNEL); if (!green_led) @@ -89,7 +89,7 @@ static int asusec_led_probe(struct platform_device *pdev) ret = devm_led_classdev_register(&pdev->dev, green_led); if (ret) return dev_err_probe(&pdev->dev, ret, - "can't register GREEN LED\n"); + "failed to register green LED\n"); return 0; } diff --git a/drivers/misc/asus-dockram.c b/drivers/misc/asus-dockram.c index 9a86202fc25f1..ca8b3d69783c2 100644 --- a/drivers/misc/asus-dockram.c +++ b/drivers/misc/asus-dockram.c @@ -1,7 +1,6 @@ // SPDX-License-Identifier: GPL-2.0-or-later /* * ASUS EC: DockRAM - * */ #include @@ -189,7 +188,7 @@ static ssize_t control_reg_show(struct device *dev, if (ret < 0) return ret; - return snprintf(buf, PAGE_SIZE, "%016llx\n", val); + return sysfs_emit(buf, "%016llx\n", val); } static ssize_t control_reg_store(struct device *dev, diff --git a/drivers/power/supply/asus-ec-battery.c b/drivers/power/supply/asus-ec-battery.c index 5da68ace72b3e..ec5157651feba 100644 --- a/drivers/power/supply/asus-ec-battery.c +++ b/drivers/power/supply/asus-ec-battery.c @@ -1,9 +1,9 @@ // SPDX-License-Identifier: GPL-2.0-or-later /* * ASUS EC driver - battery monitoring - * */ +#include #include #include #include @@ -260,6 +260,7 @@ static int asusec_battery_probe(struct platform_device *pdev) struct asusec_battery_data *priv; struct asusec_platform_data *pdata = dev_get_platdata(&pdev->dev); struct power_supply_config cfg = {}; + int ret; priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); if (!priv) @@ -292,22 +293,17 @@ static int asusec_battery_probe(struct platform_device *pdev) dev_warn(&pdev->dev, "No monitored battery, some properties will be missing\n"); - INIT_DELAYED_WORK(&priv->poll_work, asusec_battery_poll_work); + ret = devm_delayed_work_autocancel(&pdev->dev, &priv->poll_work, + asusec_battery_poll_work); + if (ret) + return ret; + schedule_delayed_work(&priv->poll_work, msecs_to_jiffies(ASUSEC_BATTERY_DATA_FRESH_MSEC)); return 0; } -static int asusec_battery_remove(struct platform_device *pdev) -{ - struct asusec_battery_data *priv = dev_get_drvdata(&pdev->dev); - - cancel_delayed_work_sync(&priv->poll_work); - - return 0; -} - static int __maybe_unused asusec_battery_suspend(struct device *dev) { struct asusec_battery_data *priv = dev_get_drvdata(dev); @@ -336,7 +332,6 @@ static struct platform_driver asusec_battery_driver = { .pm = &asusec_battery_pm_ops, }, .probe = asusec_battery_probe, - .remove = asusec_battery_remove, }; module_platform_driver(asusec_battery_driver); diff --git a/drivers/power/supply/asus-ec-charger.c b/drivers/power/supply/asus-ec-charger.c index 9e1e0509e7bb9..01420379511ba 100644 --- a/drivers/power/supply/asus-ec-charger.c +++ b/drivers/power/supply/asus-ec-charger.c @@ -1,10 +1,10 @@ // SPDX-License-Identifier: GPL-2.0-or-later /* * ASUS EC driver - charging monitoring - * */ #include +#include #include #include #include @@ -130,6 +130,7 @@ static int asusec_charger_probe(struct platform_device *pdev) struct asusec_charger_data *priv; struct asusec_platform_data *pdata = dev_get_platdata(&pdev->dev); struct power_supply_config cfg = {}; + int ret; priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); if (!priv) @@ -164,22 +165,17 @@ static int asusec_charger_probe(struct platform_device *pdev) return dev_err_probe(&pdev->dev, PTR_ERR(priv->charger), "Failed to register power supply\n"); - INIT_DELAYED_WORK(&priv->poll_work, asusec_charger_poll_work); + ret = devm_delayed_work_autocancel(&pdev->dev, &priv->poll_work, + asusec_charger_poll_work); + if (ret) + return ret; + schedule_delayed_work(&priv->poll_work, msecs_to_jiffies(ASUSEC_CHARGER_DELAY_MSEC)); return 0; } -static int asusec_charger_remove(struct platform_device *pdev) -{ - struct asusec_charger_data *priv = dev_get_drvdata(&pdev->dev); - - cancel_delayed_work_sync(&priv->poll_work); - - return 0; -} - static int __maybe_unused asusec_charger_suspend(struct device *dev) { struct asusec_charger_data *priv = dev_get_drvdata(dev); @@ -208,7 +204,6 @@ static struct platform_driver asusec_charger_driver = { .pm = &asusec_charger_pm_ops, }, .probe = asusec_charger_probe, - .remove = asusec_charger_remove, }; module_platform_driver(asusec_charger_driver); diff --git a/drivers/power/supply/chagall-battery.c b/drivers/power/supply/chagall-battery.c index 73e9018fb33d8..fc817a2238850 100644 --- a/drivers/power/supply/chagall-battery.c +++ b/drivers/power/supply/chagall-battery.c @@ -4,6 +4,7 @@ */ #include +#include #include #include #include @@ -318,11 +319,12 @@ static int chagall_battery_probe(struct i2c_client *client) cg->battery = devm_power_supply_register(&client->dev, &chagall_battery_desc, &cfg); if (IS_ERR(cg->battery)) - return PTR_ERR(cg->battery); + return dev_err_probe(&client->dev, PTR_ERR(cg->battery), + "failed to register power supply\n"); if (power_supply_get_battery_info(cg->battery, &cg->batt_info)) dev_warn(&client->dev, - "No monitored battery, some properties will be missing\n"); + "no monitored battery, some properties will be missing\n"); cg->amber_led.name = "power::amber"; cg->amber_led.max_brightness = 1; @@ -332,7 +334,7 @@ static int chagall_battery_probe(struct i2c_client *client) ret = devm_led_classdev_register(&client->dev, &cg->amber_led); if (ret) return dev_err_probe(&client->dev, ret, - "can't register AMBER LED\n"); + "failed to register amber LED\n"); cg->white_led.name = "power::white"; cg->white_led.max_brightness = 1; @@ -342,27 +344,22 @@ static int chagall_battery_probe(struct i2c_client *client) ret = devm_led_classdev_register(&client->dev, &cg->white_led); if (ret) return dev_err_probe(&client->dev, ret, - "can't register WHITE LED\n"); + "failed to register white LED\n"); led_set_brightness(&cg->amber_led, LED_OFF); led_set_brightness(&cg->white_led, LED_OFF); - INIT_DELAYED_WORK(&cg->poll_work, chagall_battery_poll_work); + ret = devm_delayed_work_autocancel(&client->dev, &cg->poll_work, + chagall_battery_poll_work); + if (ret) + return ret; + schedule_delayed_work(&cg->poll_work, msecs_to_jiffies(CHAGALL_BATTERY_DATA_REFRESH)); return 0; } -static int chagall_battery_remove(struct i2c_client *client) -{ - struct chagall_battery_data *cg = i2c_get_clientdata(client); - - cancel_delayed_work_sync(&cg->poll_work); - - return 0; -} - static int __maybe_unused chagall_battery_suspend(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); @@ -400,7 +397,6 @@ static struct i2c_driver chagall_battery_driver = { .of_match_table = chagall_match, }, .probe_new = chagall_battery_probe, - .remove = chagall_battery_remove, }; module_i2c_driver(chagall_battery_driver);