aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i2c/busses/i2c-designware-platdrv.c
diff options
context:
space:
mode:
authorWolfram Sang <wsa+renesas@sang-engineering.com>2015-10-09 10:39:24 +0100
committerWolfram Sang <wsa@the-dreams.de>2015-10-15 14:28:07 +0200
commit36d48fb5766aee9717e429f772046696b215282d (patch)
tree9e819539400de956dcf1deb58e94bbdb0de3ece8 /drivers/i2c/busses/i2c-designware-platdrv.c
parenti2c: s3c2410: enable RuntimePM before registering to the core (diff)
downloadlinux-dev-36d48fb5766aee9717e429f772046696b215282d.tar.xz
linux-dev-36d48fb5766aee9717e429f772046696b215282d.zip
i2c: designware-platdrv: enable RuntimePM before registering to the core
The core may register clients attached to this master which may use funtionality from the master. So, RuntimePM must be enabled before, otherwise this will fail. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> Cc: stable@kernel.org
Diffstat (limited to '')
-rw-r--r--drivers/i2c/busses/i2c-designware-platdrv.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index 3dd2de31a2f8..73d58415bbc1 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
+++ b/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -253,12 +253,6 @@ static int dw_i2c_probe(struct platform_device *pdev)
adap->dev.parent = &pdev->dev;
adap->dev.of_node = pdev->dev.of_node;
- r = i2c_add_numbered_adapter(adap);
- if (r) {
- dev_err(&pdev->dev, "failure adding adapter\n");
- return r;
- }
-
if (dev->pm_runtime_disabled) {
pm_runtime_forbid(&pdev->dev);
} else {
@@ -268,6 +262,13 @@ static int dw_i2c_probe(struct platform_device *pdev)
pm_runtime_enable(&pdev->dev);
}
+ r = i2c_add_numbered_adapter(adap);
+ if (r) {
+ dev_err(&pdev->dev, "failure adding adapter\n");
+ pm_runtime_disable(&pdev->dev);
+ return r;
+ }
+
return 0;
}