On Fri, 2017-07-28 at 01:16 +0900, Masahiro Yamada wrote: > Several drivers call to_platform_device() to get platform_device > and pass it to platform_get_drvdata(). In platform_get_drvdata(), > the platform_device is converted back to struct device again. > > Use dev_get_drvdata() to avoid platform_device/device dance. > I think it should be split on per driver basis. In any case, Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> (for DesignWare only) > drivers/i2c/busses/i2c-designware-platdrv.c | 6 ++---- > diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c > b/drivers/i2c/busses/i2c-designware-platdrv.c > index 2ea6d0d25a01..abe1eca8d689 100644 > --- a/drivers/i2c/busses/i2c-designware-platdrv.c > +++ b/drivers/i2c/busses/i2c-designware-platdrv.c > @@ -428,8 +428,7 @@ static void dw_i2c_plat_complete(struct device > *dev) > #ifdef CONFIG_PM > static int dw_i2c_plat_suspend(struct device *dev) > { > - struct platform_device *pdev = to_platform_device(dev); > - struct dw_i2c_dev *i_dev = platform_get_drvdata(pdev); > + struct dw_i2c_dev *i_dev = dev_get_drvdata(dev); > > i_dev->disable(i_dev); > i2c_dw_plat_prepare_clk(i_dev, false); > @@ -439,8 +438,7 @@ static int dw_i2c_plat_suspend(struct device *dev) > > static int dw_i2c_plat_resume(struct device *dev) > { > - struct platform_device *pdev = to_platform_device(dev); > - struct dw_i2c_dev *i_dev = platform_get_drvdata(pdev); > + struct dw_i2c_dev *i_dev = dev_get_drvdata(dev); > > i2c_dw_plat_prepare_clk(i_dev, true); > i_dev->init(i_dev); > -- Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> Intel Finland Oy