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

Commit 72fa818e authored by Wolfram Sang's avatar Wolfram Sang
Browse files

i2c: rely on driver core when sanitizing devices



Commit 0998d063 (device-core: Ensure drvdata = NULL when no driver
is bound) modified the driver core to always clear .driver and .drvdata
on remove or probe error. No need for the I2C core to do it.

Reported-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Reported-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
parent 21d0b7c0
Loading
Loading
Loading
Loading
+4 −9
Original line number Diff line number Diff line
@@ -256,10 +256,9 @@ static int i2c_device_probe(struct device *dev)

	acpi_dev_pm_attach(&client->dev, true);
	status = driver->probe(client, i2c_match_id(driver->id_table, client));
	if (status) {
		i2c_set_clientdata(client, NULL);
	if (status)
		acpi_dev_pm_detach(&client->dev, true);
	}

	return status;
}

@@ -267,7 +266,7 @@ static int i2c_device_remove(struct device *dev)
{
	struct i2c_client	*client = i2c_verify_client(dev);
	struct i2c_driver	*driver;
	int			status;
	int status = 0;

	if (!client || !dev->driver)
		return 0;
@@ -276,12 +275,8 @@ static int i2c_device_remove(struct device *dev)
	if (driver->remove) {
		dev_dbg(dev, "remove\n");
		status = driver->remove(client);
	} else {
		dev->driver = NULL;
		status = 0;
	}
	if (status == 0)
		i2c_set_clientdata(client, NULL);

	acpi_dev_pm_detach(&client->dev, true);
	return status;
}