Commit 55827f4a authored by Doug Anderson's avatar Doug Anderson Committed by Wolfram Sang
Browse files

i2c: Remove unneeded xxx_set_drvdata(..., NULL) calls



There is simply no reason to be manually setting the private driver
data to NULL in the remove/fail to probe cases.  This is just extra
cruft code that can be removed.

A few notes:
* Nothing relies on drvdata being set to NULL.
* The __device_release_driver() function eventually calls
  dev_set_drvdata(dev, NULL) anyway, so there's no need to do it
  twice.
* I verified that there were no cases where xxx_get_drvdata() was
  being called in these drivers and checking for / relying on the NULL
  return value.

This could be cleaned up kernel-wide but for now just take the baby
step and remove from the i2c subsystem.

Reported-by: default avatarWolfram Sang <wsa@the-dreams.de>
Reported-by: default avatarStephen Warren <swarren@wwwdotorg.org>
Signed-off-by: default avatarDoug Anderson <dianders@chromium.org>
Reviewed-by: default avatarJean Delvare <khali@linux-fr.org>
Acked-by: default avatarPeter Korsgaard <jacmet@sunsite.dk>
Reviewed-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: default avatarMarek Vasut <marex@denx.de>
Signed-off-by: default avatarWolfram Sang <wolfram@the-dreams.de>
parent 0a6d2246
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -376,7 +376,6 @@ static int i2c_au1550_remove(struct platform_device *pdev)
{
	struct i2c_au1550_data *priv = platform_get_drvdata(pdev);

	platform_set_drvdata(pdev, NULL);
	i2c_del_adapter(&priv->adap);
	i2c_au1550_disable(priv);
	iounmap(priv->psc_base);
+0 −2
Original line number Diff line number Diff line
@@ -724,8 +724,6 @@ static int i2c_bfin_twi_remove(struct platform_device *pdev)
{
	struct bfin_twi_iface *iface = platform_get_drvdata(pdev);

	platform_set_drvdata(pdev, NULL);

	i2c_del_adapter(&(iface->adap));
	free_irq(iface->irq, iface);
	peripheral_free_list((unsigned short *)pdev->dev.platform_data);
+0 −2
Original line number Diff line number Diff line
@@ -682,7 +682,6 @@ static int cpm_i2c_probe(struct platform_device *ofdev)
out_shut:
	cpm_i2c_shutdown(cpm);
out_free:
	dev_set_drvdata(&ofdev->dev, NULL);
	kfree(cpm);

	return result;
@@ -696,7 +695,6 @@ static int cpm_i2c_remove(struct platform_device *ofdev)

	cpm_i2c_shutdown(cpm);

	dev_set_drvdata(&ofdev->dev, NULL);
	kfree(cpm);

	return 0;
+0 −2
Original line number Diff line number Diff line
@@ -755,7 +755,6 @@ err_mem_ioremap:
	clk_put(dev->clk);
	dev->clk = NULL;
err_free_mem:
	platform_set_drvdata(pdev, NULL);
	put_device(&pdev->dev);
	kfree(dev);
err_release_region:
@@ -771,7 +770,6 @@ static int davinci_i2c_remove(struct platform_device *pdev)

	i2c_davinci_cpufreq_deregister(dev);

	platform_set_drvdata(pdev, NULL);
	i2c_del_adapter(&dev->adapter);
	put_device(&pdev->dev);

+0 −2
Original line number Diff line number Diff line
@@ -319,7 +319,6 @@ err_free_irq:
	free_irq(pdev->irq, dev);
err_iounmap:
	iounmap(dev->base);
	pci_set_drvdata(pdev, NULL);
	put_device(&pdev->dev);
	kfree(dev);
err_release_region:
@@ -336,7 +335,6 @@ static void i2c_dw_pci_remove(struct pci_dev *pdev)
	pm_runtime_forbid(&pdev->dev);
	pm_runtime_get_noresume(&pdev->dev);

	pci_set_drvdata(pdev, NULL);
	i2c_del_adapter(&dev->adapter);
	put_device(&pdev->dev);

Loading