From 2da5f80109360a09277920ba6dd8ebb01e27c8e0 Mon Sep 17 00:00:00 2001 From: Laxman Dewangan Date: Mon, 3 Feb 2014 17:51:56 +0530 Subject: i2c: tegra: call adapter lock in shutdown callback Call the adapter shutdown to cancel any further i2c transfer from shutdown callback. This will be require to stop any transfer on bus after shutdown happen. Bug 1443347 Change-Id: I4bf7de911c76b1c0032f1d82ffd956a099351cd8 Signed-off-by: Laxman Dewangan Reviewed-on: http://git-master/r/362874 (cherry picked from commit 2376afbfd638fbe37d61158154dc8ba85a099b31) Signed-off-by: Laxman Dewangan Change-Id: I72437b5b53e14926fa1652c5df34ab7efa93f46a Reviewed-on: http://git-master/r/363716 --- drivers/i2c/busses/i2c-tegra.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'drivers/i2c') diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c index 40dc68fcb678..7db71537c2cf 100644 --- a/drivers/i2c/busses/i2c-tegra.c +++ b/drivers/i2c/busses/i2c-tegra.c @@ -1607,7 +1607,11 @@ static void tegra_i2c_shutdown(struct platform_device *pdev) { struct tegra_i2c_dev *i2c_dev = platform_get_drvdata(pdev); - i2c_dev->is_shutdown = true; + if (i2c_dev->bit_banging_xfer_after_shutdown) { + dev_info(i2c_dev->dev, "Bus is shutdown down..\n"); + i2c_shutdown_adapter(&i2c_dev->adapter); + i2c_dev->is_shutdown = true; + } } #ifdef CONFIG_PM_SLEEP -- cgit v1.2.3