Commit ad5e085c authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Thierry Reding
Browse files

pwm: Drop irrelevant error path from pwmchip_remove()



Since the PWM core uses device links (commit b2c200e3 ("pwm: Add
consumer device link")) each consumer driver that requested the PWMs is
already gone. If they called pwm_put() (as they should) the
PWMF_REQUESTED bit is not set. If they failed (which is a bug) the
PWMF_REQUESTED bit might still be set, but the driver that cared is
gone, so nothing bad happens if the PWM chip goes away even if the
PWMF_REQUESTED is still present.

So the check can be dropped.

With this change pwmchip_remove() returns always 0, so lowlevel drivers
don't need to check the return code any more. Once all drivers dropped
this check this function can be changed to return void.

Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: default avatarThierry Reding <thierry.reding@gmail.com>
parent 66a03c4f
Loading
Loading
Loading
Loading
+2 −14
Original line number Diff line number Diff line
@@ -306,22 +306,10 @@ EXPORT_SYMBOL_GPL(pwmchip_add);
 */
int pwmchip_remove(struct pwm_chip *chip)
{
	unsigned int i;
	int ret = 0;

	pwmchip_sysfs_unexport(chip);

	mutex_lock(&pwm_lock);

	for (i = 0; i < chip->npwm; i++) {
		struct pwm_device *pwm = &chip->pwms[i];

		if (test_bit(PWMF_REQUESTED, &pwm->flags)) {
			ret = -EBUSY;
			goto out;
		}
	}

	list_del_init(&chip->list);

	if (IS_ENABLED(CONFIG_OF))
@@ -329,9 +317,9 @@ int pwmchip_remove(struct pwm_chip *chip)

	free_pwms(chip);

out:
	mutex_unlock(&pwm_lock);
	return ret;

	return 0;
}
EXPORT_SYMBOL_GPL(pwmchip_remove);