Commit 44e3ad88 authored by Akinobu Mita's avatar Akinobu Mita Committed by Guenter Roeck
Browse files

hwmon: Reduce indentation level in __hwmon_device_register()



Reduce indentation level in __hwmon_device_register() by preparing a
helper function.

This just improves code readability.  No functional change.

Cc: Jean Delvare <jdelvare@suse.com>
Cc: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarAkinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
parent 5a56a39b
Loading
Loading
Loading
Loading
+42 −26
Original line number Diff line number Diff line
@@ -179,8 +179,40 @@ static int hwmon_thermal_add_sensor(struct device *dev, int index)

	return 0;
}

static int hwmon_thermal_register_sensors(struct device *dev)
{
	struct hwmon_device *hwdev = to_hwmon_device(dev);
	const struct hwmon_chip_info *chip = hwdev->chip;
	const struct hwmon_channel_info **info = chip->info;
	void *drvdata = dev_get_drvdata(dev);
	int i;

	for (i = 1; info[i]; i++) {
		int j;

		if (info[i]->type != hwmon_temp)
			continue;

		for (j = 0; info[i]->config[j]; j++) {
			int err;

			if (!(info[i]->config[j] & HWMON_T_INPUT) ||
			    !chip->ops->is_visible(drvdata, hwmon_temp,
						   hwmon_temp_input, j))
				continue;

			err = hwmon_thermal_add_sensor(dev, j);
			if (err)
				return err;
		}
	}

	return 0;
}

#else
static int hwmon_thermal_add_sensor(struct device *dev, int index)
static int hwmon_thermal_register_sensors(struct device *dev)
{
	return 0;
}
@@ -596,7 +628,7 @@ __hwmon_device_register(struct device *dev, const char *name, void *drvdata,
{
	struct hwmon_device *hwdev;
	struct device *hdev;
	int i, j, err, id;
	int i, err, id;

	/* Complain about invalid characters in hwmon name attribute */
	if (name && (!strlen(name) || strpbrk(name, "-* \t\n")))
@@ -664,32 +696,16 @@ __hwmon_device_register(struct device *dev, const char *name, void *drvdata,
	if (dev && dev->of_node && chip && chip->ops->read &&
	    chip->info[0]->type == hwmon_chip &&
	    (chip->info[0]->config[0] & HWMON_C_REGISTER_TZ)) {
		const struct hwmon_channel_info **info = chip->info;

		for (i = 1; info[i]; i++) {
			if (info[i]->type != hwmon_temp)
				continue;

			for (j = 0; info[i]->config[j]; j++) {
				if (!chip->ops->is_visible(drvdata, hwmon_temp,
							   hwmon_temp_input, j))
					continue;
				if (info[i]->config[j] & HWMON_T_INPUT) {
					err = hwmon_thermal_add_sensor(hdev, j);
		err = hwmon_thermal_register_sensors(hdev);
		if (err) {
			device_unregister(hdev);
			/*
						 * Don't worry about hwdev;
						 * hwmon_dev_release(), called
						 * from device_unregister(),
						 * will free it.
			 * Don't worry about hwdev; hwmon_dev_release(), called
			 * from device_unregister(), will free it.
			 */
			goto ida_remove;
		}
	}
			}
		}
	}

	return hdev;