Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91940bb4 authored by Cédric Le Goater's avatar Cédric Le Goater Committed by Jacek Anaszewski
Browse files

leds: pca955x: use devm_led_classdev_register



This lets us remove the loop doing the cleanup in case of failure and
also the remove handler of the i2c_driver.

Signed-off-by: default avatarCédric Le Goater <clg@kaod.org>
Acked-by: default avatarPavel Machek <pavel@ucw.cz>
Signed-off-by: default avatarJacek Anaszewski <jacek.anaszewski@gmail.com>
parent ed1f4b96
Loading
Loading
Loading
Loading
+4 −22
Original line number Diff line number Diff line
@@ -410,10 +410,10 @@ static int pca955x_probe(struct i2c_client *client,
		pca955x_led->led_cdev.name = pca955x_led->name;
		pca955x_led->led_cdev.brightness_set_blocking = pca955x_led_set;

		err = led_classdev_register(&client->dev,
		err = devm_led_classdev_register(&client->dev,
						 &pca955x_led->led_cdev);
		if (err < 0)
			goto exit;
		if (err)
			return err;
	}

	/* Turn off LEDs */
@@ -431,23 +431,6 @@ static int pca955x_probe(struct i2c_client *client,
	pca955x_write_psc(client, 1, 0);

	return 0;

exit:
	while (i--)
		led_classdev_unregister(&pca955x->leds[i].led_cdev);

	return err;
}

static int pca955x_remove(struct i2c_client *client)
{
	struct pca955x *pca955x = i2c_get_clientdata(client);
	int i;

	for (i = 0; i < pca955x->chipdef->bits; i++)
		led_classdev_unregister(&pca955x->leds[i].led_cdev);

	return 0;
}

static struct i2c_driver pca955x_driver = {
@@ -457,7 +440,6 @@ static struct i2c_driver pca955x_driver = {
		.of_match_table = of_match_ptr(of_pca955x_match),
	},
	.probe	= pca955x_probe,
	.remove	= pca955x_remove,
	.id_table = pca955x_id,
};