On Tue, Oct 08, 2013 at 10:35:34PM +0200, Wolfram Sang wrote: > Subsystems like pinctrl and gpio rightfully make use of deferred probing at > core level. Now, deferred drivers won't be retried if they don't have a .probe > function specified in the driver struct. Fix this driver to have that, so the > devices it supports won't get lost in a deferred probe. > > Signed-off-by: Wolfram Sang <wsa@xxxxxxxxxxxxx> > Cc: kernel@xxxxxxxxxxxxxx Acked-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> Thanks Uwe > --- > drivers/i2c/busses/i2c-imx.c | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c > index ccf4665..1d7efa3 100644 > --- a/drivers/i2c/busses/i2c-imx.c > +++ b/drivers/i2c/busses/i2c-imx.c > @@ -365,7 +365,7 @@ static void i2c_imx_stop(struct imx_i2c_struct *i2c_imx) > clk_disable_unprepare(i2c_imx->clk); > } > > -static void __init i2c_imx_set_clk(struct imx_i2c_struct *i2c_imx, > +static void i2c_imx_set_clk(struct imx_i2c_struct *i2c_imx, > unsigned int rate) > { > struct imx_i2c_clk_pair *i2c_clk_div = i2c_imx->hwdata->clk_div; > @@ -589,7 +589,7 @@ static struct i2c_algorithm i2c_imx_algo = { > .functionality = i2c_imx_func, > }; > > -static int __init i2c_imx_probe(struct platform_device *pdev) > +static int i2c_imx_probe(struct platform_device *pdev) > { > const struct of_device_id *of_id = of_match_device(i2c_imx_dt_ids, > &pdev->dev); > @@ -697,7 +697,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev) > return 0; /* Return OK */ > } > > -static int __exit i2c_imx_remove(struct platform_device *pdev) > +static int i2c_imx_remove(struct platform_device *pdev) > { > struct imx_i2c_struct *i2c_imx = platform_get_drvdata(pdev); > > @@ -715,7 +715,8 @@ static int __exit i2c_imx_remove(struct platform_device *pdev) > } > > static struct platform_driver i2c_imx_driver = { > - .remove = __exit_p(i2c_imx_remove), > + .probe = i2c_imx_probe, > + .remove = i2c_imx_remove, > .driver = { > .name = DRIVER_NAME, > .owner = THIS_MODULE, > @@ -726,7 +727,7 @@ static struct platform_driver i2c_imx_driver = { > > static int __init i2c_adap_imx_init(void) > { > - return platform_driver_probe(&i2c_imx_driver, i2c_imx_probe); > + return platform_driver_register(&i2c_imx_driver); > } > subsys_initcall(i2c_adap_imx_init); > > -- > 1.8.4.rc3 > > -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html