[PATCH 3/3] hwmon: (oxp-sensors) Refactor init() and remove probe()

From: Joaquín Ignacio Aramendía
Date: Mon Jul 17 2023 - 08:41:49 EST


Since the driver is not hotpluggable the probe() funtion is not used
more than once.

Move all attribute registration logic to the init() function.
---
drivers/hwmon/oxp-sensors.c | 33 ++++++++++++++++-----------------
1 file changed, 16 insertions(+), 17 deletions(-)

diff --git a/drivers/hwmon/oxp-sensors.c b/drivers/hwmon/oxp-sensors.c
index c70d9355eeba..39de49c8a392 100644
--- a/drivers/hwmon/oxp-sensors.c
+++ b/drivers/hwmon/oxp-sensors.c
@@ -431,32 +431,20 @@ static const struct hwmon_chip_info oxp_ec_chip_info = {
.info = oxp_platform_sensors,
};

-/* Initialization logic */
-static int oxp_platform_probe(struct platform_device *pdev)
-{
- const struct dmi_system_id *dmi_entry;
- struct device *dev = &pdev->dev;
- struct device *hwdev;
-
- hwdev = devm_hwmon_device_register_with_info(dev, "oxpec", NULL,
- &oxp_ec_chip_info, NULL);
-
- return PTR_ERR_OR_ZERO(hwdev);
-}
-
static struct platform_driver oxp_platform_driver = {
.driver = {
.name = "oxp-platform",
.dev_groups = oxp_ec_groups,
},
- .probe = oxp_platform_probe,
};

static struct platform_device *oxp_platform_device;

+/* Initialization logic */
static int __init oxp_platform_init(void)
{
const struct dmi_system_id *dmi_entry;
+ struct device *hwdev;

/*
* Have to check for AMD processor here because DMI strings are the
@@ -472,10 +460,21 @@ static int __init oxp_platform_init(void)
board = (enum oxp_board)(unsigned long)dmi_entry->driver_data;

oxp_platform_device =
- platform_create_bundle(&oxp_platform_driver,
- oxp_platform_probe, NULL, 0, NULL, 0);
+ platform_create_bundle(&oxp_platform_driver, NULL, NULL, 0,
+ NULL, 0);
+ if (IS_ERR(oxp_platform_device))
+ return PTR_ERR(oxp_platform_device);

- return PTR_ERR_OR_ZERO(oxp_platform_device);
+ hwdev = devm_hwmon_device_register_with_info(&oxp_platform_device->dev,
+ "oxpec", NULL,
+ &oxp_ec_chip_info, NULL);
+ if (IS_ERR(hwdev)) {
+ platform_device_unregister(oxp_platform_device);
+ platform_driver_unregister(&oxp_platform_driver);
+ return PTR_ERR(hwdev);
+ }
+
+ return 0;
}

static void __exit oxp_platform_exit(void)
--
2.41.0