* [Patch V2] i2c: imx: init bus recovery info before adding i2c adapter
@ 2015-12-09 3:08 Gao Pan
2015-12-09 7:00 ` Uwe Kleine-König
2015-12-09 10:16 ` Wolfram Sang
0 siblings, 2 replies; 3+ messages in thread
From: Gao Pan @ 2015-12-09 3:08 UTC (permalink / raw)
To: wsa, u.kleine-koenig; +Cc: linux-i2c, B20596, b38611, b54642, kernel, r49496
During driver probe, i2c_imx_init_recovery_info() must come before
i2c_add_numbered_adapter(), because the get/set_scl() functions
are assigned in i2c_register_adapter() under the conditon that bus
recover_info are initialized. Otherwise, get/set_scl() function
pointers never get assigned.
In such case, when i2c_generic_gpio_recovery() is used for bus recovery,
there will be kernel crash because bri->set_scl is NULL.
The solution to this bug is moving i2c_imx_init_recovery_info() before
i2c_register_adapter().
Signed-off-by: Gao Pan <b54642@freescale.com>
Signed-off-by: Fugang Duan <B38611@freescale.com>
---
V2:
-base on the latest commit id(856ed208dd69d03c00670db5c235d253af443440)
drivers/i2c/busses/i2c-imx.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
index 9bb0b05..d4d8536 100644
--- a/drivers/i2c/busses/i2c-imx.c
+++ b/drivers/i2c/busses/i2c-imx.c
@@ -1119,6 +1119,8 @@ static int i2c_imx_probe(struct platform_device *pdev)
i2c_imx, IMX_I2C_I2CR);
imx_i2c_write_reg(i2c_imx->hwdata->i2sr_clr_opcode, i2c_imx, IMX_I2C_I2SR);
+ i2c_imx_init_recovery_info(i2c_imx, pdev);
+
/* Add I2C adapter */
ret = i2c_add_numbered_adapter(&i2c_imx->adapter);
if (ret < 0) {
@@ -1126,8 +1128,6 @@ static int i2c_imx_probe(struct platform_device *pdev)
goto clk_disable;
}
- i2c_imx_init_recovery_info(i2c_imx, pdev);
-
/* Set up platform driver data */
platform_set_drvdata(pdev, i2c_imx);
clk_disable_unprepare(i2c_imx->clk);
--
1.9.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [Patch V2] i2c: imx: init bus recovery info before adding i2c adapter
2015-12-09 3:08 [Patch V2] i2c: imx: init bus recovery info before adding i2c adapter Gao Pan
@ 2015-12-09 7:00 ` Uwe Kleine-König
2015-12-09 10:16 ` Wolfram Sang
1 sibling, 0 replies; 3+ messages in thread
From: Uwe Kleine-König @ 2015-12-09 7:00 UTC (permalink / raw)
To: Gao Pan; +Cc: wsa, B20596, b38611, r49496, linux-i2c, kernel
Hello,
On Wed, Dec 09, 2015 at 11:08:22AM +0800, Gao Pan wrote:
> During driver probe, i2c_imx_init_recovery_info() must come before
> i2c_add_numbered_adapter(), because the get/set_scl() functions
> are assigned in i2c_register_adapter() under the conditon that bus
> recover_info are initialized. Otherwise, get/set_scl() function
> pointers never get assigned.
>
> In such case, when i2c_generic_gpio_recovery() is used for bus recovery,
> there will be kernel crash because bri->set_scl is NULL.
>
> The solution to this bug is moving i2c_imx_init_recovery_info() before
> i2c_register_adapter().
>
> Signed-off-by: Gao Pan <b54642@freescale.com>
> Signed-off-by: Fugang Duan <B38611@freescale.com>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
I wonder why your S-o-b line isn't below Fugang Duan's. These lines are
supposed to show the order of people that touched the patch. So usually
the Author is the first person to sign off and the person who sends the
patch is the last.
Best regards
Uwe
--
Pengutronix e.K. | Uwe Kleine-König |
Industrial Linux Solutions | http://www.pengutronix.de/ |
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [Patch V2] i2c: imx: init bus recovery info before adding i2c adapter
2015-12-09 3:08 [Patch V2] i2c: imx: init bus recovery info before adding i2c adapter Gao Pan
2015-12-09 7:00 ` Uwe Kleine-König
@ 2015-12-09 10:16 ` Wolfram Sang
1 sibling, 0 replies; 3+ messages in thread
From: Wolfram Sang @ 2015-12-09 10:16 UTC (permalink / raw)
To: Gao Pan; +Cc: u.kleine-koenig, linux-i2c, B20596, b38611, kernel, r49496
[-- Attachment #1: Type: text/plain, Size: 752 bytes --]
On Wed, Dec 09, 2015 at 11:08:22AM +0800, Gao Pan wrote:
> During driver probe, i2c_imx_init_recovery_info() must come before
> i2c_add_numbered_adapter(), because the get/set_scl() functions
> are assigned in i2c_register_adapter() under the conditon that bus
> recover_info are initialized. Otherwise, get/set_scl() function
> pointers never get assigned.
>
> In such case, when i2c_generic_gpio_recovery() is used for bus recovery,
> there will be kernel crash because bri->set_scl is NULL.
>
> The solution to this bug is moving i2c_imx_init_recovery_info() before
> i2c_register_adapter().
>
> Signed-off-by: Gao Pan <b54642@freescale.com>
> Signed-off-by: Fugang Duan <B38611@freescale.com>
Applied to for-current, thanks!
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-12-09 10:16 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-12-09 3:08 [Patch V2] i2c: imx: init bus recovery info before adding i2c adapter Gao Pan
2015-12-09 7:00 ` Uwe Kleine-König
2015-12-09 10:16 ` Wolfram Sang
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).