From 3bce071a301f44ffd08bada9b2e8238b625f8f8c Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski Date: Mon, 26 Oct 2020 11:53:52 +0100 Subject: [PATCH] hwmon: (pmbus) shrink code and remove pmbus_do_remove() The only action currently performed in pmbus_do_remove() is removing the debugfs hierarchy. We can schedule a devm action at probe time and remove pmbus_do_remove() entirely from all pmbus drivers. Signed-off-by: Bartosz Golaszewski Link: https://lore.kernel.org/r/20201026105352.20359-1-brgl@bgdev.pl [groeck: Removed references to pmbus_do_remove from documentation] Signed-off-by: Guenter Roeck --- Documentation/hwmon/pmbus-core.rst | 6 ------ Documentation/hwmon/pmbus.rst | 6 ------ drivers/hwmon/pmbus/adm1266.c | 1 - drivers/hwmon/pmbus/adm1275.c | 1 - drivers/hwmon/pmbus/bel-pfe.c | 1 - drivers/hwmon/pmbus/ibm-cffps.c | 1 - drivers/hwmon/pmbus/inspur-ipsps.c | 1 - drivers/hwmon/pmbus/ir35221.c | 1 - drivers/hwmon/pmbus/ir38064.c | 1 - drivers/hwmon/pmbus/irps5401.c | 1 - drivers/hwmon/pmbus/isl68137.c | 1 - drivers/hwmon/pmbus/lm25066.c | 1 - drivers/hwmon/pmbus/ltc2978.c | 1 - drivers/hwmon/pmbus/ltc3815.c | 1 - drivers/hwmon/pmbus/max16064.c | 1 - drivers/hwmon/pmbus/max16601.c | 1 - drivers/hwmon/pmbus/max20730.c | 1 - drivers/hwmon/pmbus/max20751.c | 1 - drivers/hwmon/pmbus/max31785.c | 1 - drivers/hwmon/pmbus/max34440.c | 1 - drivers/hwmon/pmbus/max8688.c | 1 - drivers/hwmon/pmbus/mp2975.c | 1 - drivers/hwmon/pmbus/pmbus.c | 1 - drivers/hwmon/pmbus/pmbus.h | 1 - drivers/hwmon/pmbus/pmbus_core.c | 20 +++++++++----------- drivers/hwmon/pmbus/pxe1610.c | 1 - drivers/hwmon/pmbus/tps40422.c | 1 - drivers/hwmon/pmbus/tps53679.c | 1 - drivers/hwmon/pmbus/ucd9000.c | 1 - drivers/hwmon/pmbus/ucd9200.c | 1 - drivers/hwmon/pmbus/xdpe12284.c | 1 - drivers/hwmon/pmbus/zl6100.c | 1 - 32 files changed, 9 insertions(+), 52 deletions(-) diff --git a/Documentation/hwmon/pmbus-core.rst b/Documentation/hwmon/pmbus-core.rst index e22c4f6808bc85..73e23ab42cc3ae 100644 --- a/Documentation/hwmon/pmbus-core.rst +++ b/Documentation/hwmon/pmbus-core.rst @@ -277,12 +277,6 @@ with the pointer to struct pmbus_driver_info as additional argument. Calls identify function if supported. Must only be called from device probe function. -:: - - void pmbus_do_remove(struct i2c_client *client); - -Execute driver remove function. Similar to standard driver remove function. - :: const struct pmbus_driver_info diff --git a/Documentation/hwmon/pmbus.rst b/Documentation/hwmon/pmbus.rst index fb3ad67dedc12a..c44f14115413db 100644 --- a/Documentation/hwmon/pmbus.rst +++ b/Documentation/hwmon/pmbus.rst @@ -148,11 +148,6 @@ Emerson DS1200 power modules might look as follows:: return pmbus_do_probe(client, &ds1200_info); } - static int ds1200_remove(struct i2c_client *client) - { - return pmbus_do_remove(client); - } - static const struct i2c_device_id ds1200_id[] = { {"ds1200", 0}, {} @@ -166,7 +161,6 @@ Emerson DS1200 power modules might look as follows:: .name = "ds1200", }, .probe_new = ds1200_probe, - .remove = ds1200_remove, .id_table = ds1200_id, }; diff --git a/drivers/hwmon/pmbus/adm1266.c b/drivers/hwmon/pmbus/adm1266.c index c7b373ba92f211..4d2e4ddcfbfdd9 100644 --- a/drivers/hwmon/pmbus/adm1266.c +++ b/drivers/hwmon/pmbus/adm1266.c @@ -502,7 +502,6 @@ static struct i2c_driver adm1266_driver = { .of_match_table = adm1266_of_match, }, .probe_new = adm1266_probe, - .remove = pmbus_do_remove, .id_table = adm1266_id, }; diff --git a/drivers/hwmon/pmbus/adm1275.c b/drivers/hwmon/pmbus/adm1275.c index e7997f37b2666f..38a6515b07634f 100644 --- a/drivers/hwmon/pmbus/adm1275.c +++ b/drivers/hwmon/pmbus/adm1275.c @@ -797,7 +797,6 @@ static struct i2c_driver adm1275_driver = { .name = "adm1275", }, .probe_new = adm1275_probe, - .remove = pmbus_do_remove, .id_table = adm1275_id, }; diff --git a/drivers/hwmon/pmbus/bel-pfe.c b/drivers/hwmon/pmbus/bel-pfe.c index 2c5b853d6c7fc3..aed7542d7ce542 100644 --- a/drivers/hwmon/pmbus/bel-pfe.c +++ b/drivers/hwmon/pmbus/bel-pfe.c @@ -121,7 +121,6 @@ static struct i2c_driver pfe_pmbus_driver = { .name = "bel-pfe", }, .probe_new = pfe_pmbus_probe, - .remove = pmbus_do_remove, .id_table = pfe_device_id, }; diff --git a/drivers/hwmon/pmbus/ibm-cffps.c b/drivers/hwmon/pmbus/ibm-cffps.c index 2fb7540ee952b5..d6bbbb223871b3 100644 --- a/drivers/hwmon/pmbus/ibm-cffps.c +++ b/drivers/hwmon/pmbus/ibm-cffps.c @@ -617,7 +617,6 @@ static struct i2c_driver ibm_cffps_driver = { .of_match_table = ibm_cffps_of_match, }, .probe_new = ibm_cffps_probe, - .remove = pmbus_do_remove, .id_table = ibm_cffps_id, }; diff --git a/drivers/hwmon/pmbus/inspur-ipsps.c b/drivers/hwmon/pmbus/inspur-ipsps.c index be493182174deb..88c5865c4d6f8d 100644 --- a/drivers/hwmon/pmbus/inspur-ipsps.c +++ b/drivers/hwmon/pmbus/inspur-ipsps.c @@ -216,7 +216,6 @@ static struct i2c_driver ipsps_driver = { .of_match_table = of_match_ptr(ipsps_of_match), }, .probe_new = ipsps_probe, - .remove = pmbus_do_remove, .id_table = ipsps_id, }; diff --git a/drivers/hwmon/pmbus/ir35221.c b/drivers/hwmon/pmbus/ir35221.c index 5fadb1def49fbf..3aebeb1443fdf7 100644 --- a/drivers/hwmon/pmbus/ir35221.c +++ b/drivers/hwmon/pmbus/ir35221.c @@ -137,7 +137,6 @@ static struct i2c_driver ir35221_driver = { .name = "ir35221", }, .probe_new = ir35221_probe, - .remove = pmbus_do_remove, .id_table = ir35221_id, }; diff --git a/drivers/hwmon/pmbus/ir38064.c b/drivers/hwmon/pmbus/ir38064.c index 9ac563ce7dd8ab..46f17c4b48733e 100644 --- a/drivers/hwmon/pmbus/ir38064.c +++ b/drivers/hwmon/pmbus/ir38064.c @@ -53,7 +53,6 @@ static struct i2c_driver ir38064_driver = { .name = "ir38064", }, .probe_new = ir38064_probe, - .remove = pmbus_do_remove, .id_table = ir38064_id, }; diff --git a/drivers/hwmon/pmbus/irps5401.c b/drivers/hwmon/pmbus/irps5401.c index 44aeafcbd56cbd..93ef6d64a33ae0 100644 --- a/drivers/hwmon/pmbus/irps5401.c +++ b/drivers/hwmon/pmbus/irps5401.c @@ -55,7 +55,6 @@ static struct i2c_driver irps5401_driver = { .name = "irps5401", }, .probe_new = irps5401_probe, - .remove = pmbus_do_remove, .id_table = irps5401_id, }; diff --git a/drivers/hwmon/pmbus/isl68137.c b/drivers/hwmon/pmbus/isl68137.c index 7cad76e07f701b..2bee930d390021 100644 --- a/drivers/hwmon/pmbus/isl68137.c +++ b/drivers/hwmon/pmbus/isl68137.c @@ -324,7 +324,6 @@ static struct i2c_driver isl68137_driver = { .name = "isl68137", }, .probe_new = isl68137_probe, - .remove = pmbus_do_remove, .id_table = raa_dmpvr_id, }; diff --git a/drivers/hwmon/pmbus/lm25066.c b/drivers/hwmon/pmbus/lm25066.c index 429172a42902c8..c75a6bf3964112 100644 --- a/drivers/hwmon/pmbus/lm25066.c +++ b/drivers/hwmon/pmbus/lm25066.c @@ -508,7 +508,6 @@ static struct i2c_driver lm25066_driver = { .name = "lm25066", }, .probe_new = lm25066_probe, - .remove = pmbus_do_remove, .id_table = lm25066_id, }; diff --git a/drivers/hwmon/pmbus/ltc2978.c b/drivers/hwmon/pmbus/ltc2978.c index 9a024cf70145fe..7e53fa95b92dbb 100644 --- a/drivers/hwmon/pmbus/ltc2978.c +++ b/drivers/hwmon/pmbus/ltc2978.c @@ -875,7 +875,6 @@ static struct i2c_driver ltc2978_driver = { .of_match_table = of_match_ptr(ltc2978_of_match), }, .probe_new = ltc2978_probe, - .remove = pmbus_do_remove, .id_table = ltc2978_id, }; diff --git a/drivers/hwmon/pmbus/ltc3815.c b/drivers/hwmon/pmbus/ltc3815.c index 8328fb367ad67e..e45e14d26c9a35 100644 --- a/drivers/hwmon/pmbus/ltc3815.c +++ b/drivers/hwmon/pmbus/ltc3815.c @@ -200,7 +200,6 @@ static struct i2c_driver ltc3815_driver = { .name = "ltc3815", }, .probe_new = ltc3815_probe, - .remove = pmbus_do_remove, .id_table = ltc3815_id, }; diff --git a/drivers/hwmon/pmbus/max16064.c b/drivers/hwmon/pmbus/max16064.c index 26e7f5ef9d7f28..d79add99083ee8 100644 --- a/drivers/hwmon/pmbus/max16064.c +++ b/drivers/hwmon/pmbus/max16064.c @@ -103,7 +103,6 @@ static struct i2c_driver max16064_driver = { .name = "max16064", }, .probe_new = max16064_probe, - .remove = pmbus_do_remove, .id_table = max16064_id, }; diff --git a/drivers/hwmon/pmbus/max16601.c b/drivers/hwmon/pmbus/max16601.c index 71bb74e27a5c8f..a960b86e72d239 100644 --- a/drivers/hwmon/pmbus/max16601.c +++ b/drivers/hwmon/pmbus/max16601.c @@ -302,7 +302,6 @@ static struct i2c_driver max16601_driver = { .name = "max16601", }, .probe_new = max16601_probe, - .remove = pmbus_do_remove, .id_table = max16601_id, }; diff --git a/drivers/hwmon/pmbus/max20730.c b/drivers/hwmon/pmbus/max20730.c index 00fea16acab477..9dd3dd79bc182d 100644 --- a/drivers/hwmon/pmbus/max20730.c +++ b/drivers/hwmon/pmbus/max20730.c @@ -777,7 +777,6 @@ static struct i2c_driver max20730_driver = { .of_match_table = max20730_of_match, }, .probe_new = max20730_probe, - .remove = pmbus_do_remove, .id_table = max20730_id, }; diff --git a/drivers/hwmon/pmbus/max20751.c b/drivers/hwmon/pmbus/max20751.c index 921e92d82aec89..9d42f82fdd997d 100644 --- a/drivers/hwmon/pmbus/max20751.c +++ b/drivers/hwmon/pmbus/max20751.c @@ -43,7 +43,6 @@ static struct i2c_driver max20751_driver = { .name = "max20751", }, .probe_new = max20751_probe, - .remove = pmbus_do_remove, .id_table = max20751_id, }; diff --git a/drivers/hwmon/pmbus/max31785.c b/drivers/hwmon/pmbus/max31785.c index 839b957bc03e71..e5a9f4019cd50d 100644 --- a/drivers/hwmon/pmbus/max31785.c +++ b/drivers/hwmon/pmbus/max31785.c @@ -390,7 +390,6 @@ static struct i2c_driver max31785_driver = { .of_match_table = max31785_of_match, }, .probe_new = max31785_probe, - .remove = pmbus_do_remove, .id_table = max31785_id, }; diff --git a/drivers/hwmon/pmbus/max34440.c b/drivers/hwmon/pmbus/max34440.c index f4cb196aaaf314..dad66b3c011683 100644 --- a/drivers/hwmon/pmbus/max34440.c +++ b/drivers/hwmon/pmbus/max34440.c @@ -521,7 +521,6 @@ static struct i2c_driver max34440_driver = { .name = "max34440", }, .probe_new = max34440_probe, - .remove = pmbus_do_remove, .id_table = max34440_id, }; diff --git a/drivers/hwmon/pmbus/max8688.c b/drivers/hwmon/pmbus/max8688.c index 4b2239a6afd378..329dc851fc5908 100644 --- a/drivers/hwmon/pmbus/max8688.c +++ b/drivers/hwmon/pmbus/max8688.c @@ -183,7 +183,6 @@ static struct i2c_driver max8688_driver = { .name = "max8688", }, .probe_new = max8688_probe, - .remove = pmbus_do_remove, .id_table = max8688_id, }; diff --git a/drivers/hwmon/pmbus/mp2975.c b/drivers/hwmon/pmbus/mp2975.c index 1c3e2a9453b125..60fbdb37133260 100644 --- a/drivers/hwmon/pmbus/mp2975.c +++ b/drivers/hwmon/pmbus/mp2975.c @@ -758,7 +758,6 @@ static struct i2c_driver mp2975_driver = { .of_match_table = of_match_ptr(mp2975_of_match), }, .probe_new = mp2975_probe, - .remove = pmbus_do_remove, .id_table = mp2975_id, }; diff --git a/drivers/hwmon/pmbus/pmbus.c b/drivers/hwmon/pmbus/pmbus.c index 20f1af9165c2d9..a1b4260e75b2ce 100644 --- a/drivers/hwmon/pmbus/pmbus.c +++ b/drivers/hwmon/pmbus/pmbus.c @@ -238,7 +238,6 @@ static struct i2c_driver pmbus_driver = { .name = "pmbus", }, .probe_new = pmbus_probe, - .remove = pmbus_do_remove, .id_table = pmbus_id, }; diff --git a/drivers/hwmon/pmbus/pmbus.h b/drivers/hwmon/pmbus/pmbus.h index 88a5df2633fb25..4c30ec89f5bf82 100644 --- a/drivers/hwmon/pmbus/pmbus.h +++ b/drivers/hwmon/pmbus/pmbus.h @@ -490,7 +490,6 @@ void pmbus_clear_faults(struct i2c_client *client); bool pmbus_check_byte_register(struct i2c_client *client, int page, int reg); bool pmbus_check_word_register(struct i2c_client *client, int page, int reg); int pmbus_do_probe(struct i2c_client *client, struct pmbus_driver_info *info); -int pmbus_do_remove(struct i2c_client *client); const struct pmbus_driver_info *pmbus_get_driver_info(struct i2c_client *client); int pmbus_get_fan_rate_device(struct i2c_client *client, int page, int id, diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c index b0e2820a2d578f..192442b3b7a287 100644 --- a/drivers/hwmon/pmbus/pmbus_core.c +++ b/drivers/hwmon/pmbus/pmbus_core.c @@ -2395,6 +2395,13 @@ static int pmbus_debugfs_set_pec(void *data, u64 val) DEFINE_DEBUGFS_ATTRIBUTE(pmbus_debugfs_ops_pec, pmbus_debugfs_get_pec, pmbus_debugfs_set_pec, "%llu\n"); +static void pmbus_remove_debugfs(void *data) +{ + struct dentry *entry = data; + + debugfs_remove_recursive(entry); +} + static int pmbus_init_debugfs(struct i2c_client *client, struct pmbus_data *data) { @@ -2530,7 +2537,8 @@ static int pmbus_init_debugfs(struct i2c_client *client, } } - return 0; + return devm_add_action_or_reset(data->dev, + pmbus_remove_debugfs, data->debugfs); } #else static int pmbus_init_debugfs(struct i2c_client *client, @@ -2617,16 +2625,6 @@ int pmbus_do_probe(struct i2c_client *client, struct pmbus_driver_info *info) } EXPORT_SYMBOL_GPL(pmbus_do_probe); -int pmbus_do_remove(struct i2c_client *client) -{ - struct pmbus_data *data = i2c_get_clientdata(client); - - debugfs_remove_recursive(data->debugfs); - - return 0; -} -EXPORT_SYMBOL_GPL(pmbus_do_remove); - struct dentry *pmbus_get_debugfs_dir(struct i2c_client *client) { struct pmbus_data *data = i2c_get_clientdata(client); diff --git a/drivers/hwmon/pmbus/pxe1610.c b/drivers/hwmon/pmbus/pxe1610.c index fa5c5dd29b7ae0..da27ce34ee3fd0 100644 --- a/drivers/hwmon/pmbus/pxe1610.c +++ b/drivers/hwmon/pmbus/pxe1610.c @@ -131,7 +131,6 @@ static struct i2c_driver pxe1610_driver = { .name = "pxe1610", }, .probe_new = pxe1610_probe, - .remove = pmbus_do_remove, .id_table = pxe1610_id, }; diff --git a/drivers/hwmon/pmbus/tps40422.c b/drivers/hwmon/pmbus/tps40422.c index edbdfa809d51d7..f7f00ab6f46c68 100644 --- a/drivers/hwmon/pmbus/tps40422.c +++ b/drivers/hwmon/pmbus/tps40422.c @@ -43,7 +43,6 @@ static struct i2c_driver tps40422_driver = { .name = "tps40422", }, .probe_new = tps40422_probe, - .remove = pmbus_do_remove, .id_table = tps40422_id, }; diff --git a/drivers/hwmon/pmbus/tps53679.c b/drivers/hwmon/pmbus/tps53679.c index db2bdf2a1f023a..ba838fa311c3aa 100644 --- a/drivers/hwmon/pmbus/tps53679.c +++ b/drivers/hwmon/pmbus/tps53679.c @@ -251,7 +251,6 @@ static struct i2c_driver tps53679_driver = { .of_match_table = of_match_ptr(tps53679_of_match), }, .probe_new = tps53679_probe, - .remove = pmbus_do_remove, .id_table = tps53679_id, }; diff --git a/drivers/hwmon/pmbus/ucd9000.c b/drivers/hwmon/pmbus/ucd9000.c index f8017993e2b4dd..a15e6fe3e425a3 100644 --- a/drivers/hwmon/pmbus/ucd9000.c +++ b/drivers/hwmon/pmbus/ucd9000.c @@ -621,7 +621,6 @@ static struct i2c_driver ucd9000_driver = { .of_match_table = of_match_ptr(ucd9000_of_match), }, .probe_new = ucd9000_probe, - .remove = pmbus_do_remove, .id_table = ucd9000_id, }; diff --git a/drivers/hwmon/pmbus/ucd9200.c b/drivers/hwmon/pmbus/ucd9200.c index e111e25e1619a3..47cc7ca9d32998 100644 --- a/drivers/hwmon/pmbus/ucd9200.c +++ b/drivers/hwmon/pmbus/ucd9200.c @@ -201,7 +201,6 @@ static struct i2c_driver ucd9200_driver = { .of_match_table = of_match_ptr(ucd9200_of_match), }, .probe_new = ucd9200_probe, - .remove = pmbus_do_remove, .id_table = ucd9200_id, }; diff --git a/drivers/hwmon/pmbus/xdpe12284.c b/drivers/hwmon/pmbus/xdpe12284.c index c95ac934fde416..f8bc0f41cd5fae 100644 --- a/drivers/hwmon/pmbus/xdpe12284.c +++ b/drivers/hwmon/pmbus/xdpe12284.c @@ -160,7 +160,6 @@ static struct i2c_driver xdpe122_driver = { .of_match_table = of_match_ptr(xdpe122_of_match), }, .probe_new = xdpe122_probe, - .remove = pmbus_do_remove, .id_table = xdpe122_id, }; diff --git a/drivers/hwmon/pmbus/zl6100.c b/drivers/hwmon/pmbus/zl6100.c index e8bda340482be8..69120ca7aaa861 100644 --- a/drivers/hwmon/pmbus/zl6100.c +++ b/drivers/hwmon/pmbus/zl6100.c @@ -396,7 +396,6 @@ static struct i2c_driver zl6100_driver = { .name = "zl6100", }, .probe_new = zl6100_probe, - .remove = pmbus_do_remove, .id_table = zl6100_id, };