Message ID | 1444461874-2841-1-git-send-email-wsa@the-dreams.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
W dniu 10.10.2015 o 16:24, Wolfram Sang pisze: > From: Wolfram Sang <wsa+renesas@sang-engineering.com> > > 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. While here, move drvdata, too. > > Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> > --- > > Changes since v2: don't call runtime pm on adaper if it wasn't registered > > Thanks to Krzysztof for testing! > > drivers/i2c/busses/i2c-s3c2410.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) Works good. Error path seems to be working fine as well. Tested on Odroid-XU3 Lite, on top of next-20151009. Tested-by: Krzysztof Kozlowski <k.kozlowski@samsung.com> Best regards, Krzysztof
On 10/10/15 16:24, Wolfram Sang wrote: > From: Wolfram Sang <wsa+renesas@sang-engineering.com> > > 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. While here, move drvdata, too. > > Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Looks good to me, Acked-by: Kukjin Kim <kgene@kernel.org> Thanks, Kukjin > --- > > Changes since v2: don't call runtime pm on adaper if it wasn't registered > > Thanks to Krzysztof for testing! > > drivers/i2c/busses/i2c-s3c2410.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-)
On Sat, Oct 10, 2015 at 08:24:23AM +0100, Wolfram Sang wrote: > From: Wolfram Sang <wsa+renesas@sang-engineering.com> > > 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. While here, move drvdata, too. > > Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Applied to for-current, thanks!
diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c index 50bfd8cef5f224..5df819610d5280 100644 --- a/drivers/i2c/busses/i2c-s3c2410.c +++ b/drivers/i2c/busses/i2c-s3c2410.c @@ -1243,17 +1243,19 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev) i2c->adap.nr = i2c->pdata->bus_num; i2c->adap.dev.of_node = pdev->dev.of_node; + platform_set_drvdata(pdev, i2c); + + pm_runtime_enable(&pdev->dev); + ret = i2c_add_numbered_adapter(&i2c->adap); if (ret < 0) { dev_err(&pdev->dev, "failed to add bus to i2c core\n"); + pm_runtime_disable(&pdev->dev); s3c24xx_i2c_deregister_cpufreq(i2c); clk_unprepare(i2c->clk); return ret; } - platform_set_drvdata(pdev, i2c); - - pm_runtime_enable(&pdev->dev); pm_runtime_enable(&i2c->adap.dev); dev_info(&pdev->dev, "%s: S3C I2C adapter\n", dev_name(&i2c->adap.dev));