diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2019-08-19 13:24:23 +0300 |
---|---|---|
committer | Wolfram Sang <wsa@the-dreams.de> | 2019-08-29 23:10:01 +0300 |
commit | 71dc297ca9ab6311e7d39fc53811fd871d51854f (patch) | |
tree | c8c2931085b5c3b19eefb23c7de31b5f3dd2903d /drivers/i2c | |
parent | f9bf7a899412b5f8c96b084343bde4168dc12efa (diff) | |
download | linux-71dc297ca9ab6311e7d39fc53811fd871d51854f.tar.xz |
i2c: designware: assert reset when error happen at ->probe()
The commit c62ebb3d5f0d ("i2c: designware: Add support for an interface clock")
introduced an optional clock while missed correct error handling.
assert reset line back if error happen at ->probe().
Fixes: c62ebb3d5f0d ("i2c: designware: Add support for an interface clock")
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Jarkko Nikula <jarkko.nikula@linux.intel.com>
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Diffstat (limited to 'drivers/i2c')
-rw-r--r-- | drivers/i2c/busses/i2c-designware-platdrv.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c index ddfb81872906..4624ef8fbae8 100644 --- a/drivers/i2c/busses/i2c-designware-platdrv.c +++ b/drivers/i2c/busses/i2c-designware-platdrv.c @@ -346,8 +346,10 @@ static int dw_i2c_plat_probe(struct platform_device *pdev) /* Optional interface clock */ dev->pclk = devm_clk_get_optional(&pdev->dev, "pclk"); - if (IS_ERR(dev->pclk)) - return PTR_ERR(dev->pclk); + if (IS_ERR(dev->pclk)) { + ret = PTR_ERR(dev->pclk); + goto exit_reset; + } dev->clk = devm_clk_get(&pdev->dev, NULL); if (!i2c_dw_prepare_clk(dev, true)) { |