Commit ed5c2f5f authored by Uwe Kleine-König's avatar Uwe Kleine-König Committed by Wolfram Sang
Browse files

i2c: Make remove callback return void



The value returned by an i2c driver's remove function is mostly ignored.
(Only an error message is printed if the value is non-zero that the
error is ignored.)

So change the prototype of the remove function to return no value. This
way driver authors are not tempted to assume that passing an error to
the upper layer is a good idea. All drivers are adapted accordingly.
There is no intended change of behaviour, all callbacks were prepared to
return 0 before.

Reviewed-by: default avatarPeter Senna Tschudin <peter.senna@gmail.com>
Reviewed-by: default avatarJeremy Kerr <jk@codeconstruct.com.au>
Reviewed-by: default avatarBenjamin Mugnier <benjamin.mugnier@foss.st.com>
Reviewed-by: default avatarJavier Martinez Canillas <javierm@redhat.com>
Reviewed-by: default avatarCrt Mori <cmo@melexis.com>
Reviewed-by: default avatarHeikki Krogerus <heikki.krogerus@linux.intel.com>
Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Marek Behún <kabel@kernel.org> # for leds-turris-omnia
Acked-by: default avatarAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Petr Machata <petrm@nvidia.com> # for mlxsw
Reviewed-by: Maximilian Luz <luzmaximilian@gmail.com> # for surface3_power
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> # for bmc150-accel-i2c + kxcjk-1013
Reviewed-by: Hans Verkuil <hverkuil-cisco@xs4all.nl> # for media/* + staging/media/*
Acked-by: Miguel Ojeda <ojeda@kernel.org> # for auxdisplay/ht16k33 + auxdisplay/lcd2s
Reviewed-by: Luca Ceresoli <luca.ceresoli@bootlin.com> # for versaclock5
Reviewed-by: Ajay Gupta <ajayg@nvidia.com> # for ucsi_ccg
Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> # for iio
Acked-by: Peter Rosin <peda@axentia.se> # for i2c-mux-*, max9860
Acked-by: Adrien Grassein <adrien.grassein@gmail.com> # for lontium-lt8912b
Reviewed-by: Jean Delvare <jdelvare@suse.de> # for hwmon, i2c-core and i2c/muxes
Acked-by: Corey Minyard <cminyard@mvista.com> # for IPMI
Reviewed-by: default avatarVladimir Oltean <olteanv@gmail.com>
Acked-by: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
Acked-by: Sebastian Reichel <sebastian.reichel@collabora.com> # for drivers/power
Acked-by: default avatarKrzysztof Hałasa <khalasa@piap.pl>
Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
parent 6a8f359c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -156,7 +156,7 @@ those devices, and a remove() method to unbind.
::

	static int foo_probe(struct i2c_client *client);
	static int foo_remove(struct i2c_client *client);
	static void foo_remove(struct i2c_client *client);

Remember that the i2c_driver does not create those client handles.  The
handle may be used during foo_probe().  If foo_probe() reports success
+1 −2
Original line number Diff line number Diff line
@@ -178,7 +178,7 @@ static int mcu_probe(struct i2c_client *client)
	return ret;
}

static int mcu_remove(struct i2c_client *client)
static void mcu_remove(struct i2c_client *client)
{
	struct mcu *mcu = i2c_get_clientdata(client);

@@ -193,7 +193,6 @@ static int mcu_remove(struct i2c_client *client)

	mcu_gpiochip_remove(mcu);
	kfree(mcu);
	return 0;
}

static const struct i2c_device_id mcu_ids[] = {
+1 −3
Original line number Diff line number Diff line
@@ -775,7 +775,7 @@ static int ht16k33_probe(struct i2c_client *client)
	return err;
}

static int ht16k33_remove(struct i2c_client *client)
static void ht16k33_remove(struct i2c_client *client)
{
	struct ht16k33_priv *priv = i2c_get_clientdata(client);
	struct ht16k33_fbdev *fbdev = &priv->fbdev;
@@ -796,8 +796,6 @@ static int ht16k33_remove(struct i2c_client *client)
		device_remove_file(&client->dev, &dev_attr_map_seg14);
		break;
	}

	return 0;
}

static const struct i2c_device_id ht16k33_i2c_match[] = {
+1 −2
Original line number Diff line number Diff line
@@ -340,13 +340,12 @@ static int lcd2s_i2c_probe(struct i2c_client *i2c)
	return err;
}

static int lcd2s_i2c_remove(struct i2c_client *i2c)
static void lcd2s_i2c_remove(struct i2c_client *i2c)
{
	struct lcd2s_data *lcd2s = i2c_get_clientdata(i2c);

	charlcd_unregister(lcd2s->charlcd);
	charlcd_free(lcd2s->charlcd);
	return 0;
}

static const struct i2c_device_id lcd2s_i2c_id[] = {
+1 −3
Original line number Diff line number Diff line
@@ -341,14 +341,12 @@ static int ipmb_probe(struct i2c_client *client)
	return 0;
}

static int ipmb_remove(struct i2c_client *client)
static void ipmb_remove(struct i2c_client *client)
{
	struct ipmb_dev *ipmb_dev = i2c_get_clientdata(client);

	i2c_slave_unregister(client);
	misc_deregister(&ipmb_dev->miscdev);

	return 0;
}

static const struct i2c_device_id ipmb_id[] = {
Loading