| .. | .. |
|---|
| 576 | 576 | struct sprd_i2c *i2c_dev = platform_get_drvdata(pdev); |
|---|
| 577 | 577 | int ret; |
|---|
| 578 | 578 | |
|---|
| 579 | | - ret = pm_runtime_resume_and_get(i2c_dev->dev); |
|---|
| 579 | + ret = pm_runtime_get_sync(i2c_dev->dev); |
|---|
| 580 | 580 | if (ret < 0) |
|---|
| 581 | | - return ret; |
|---|
| 581 | + dev_err(&pdev->dev, "Failed to resume device (%pe)\n", ERR_PTR(ret)); |
|---|
| 582 | 582 | |
|---|
| 583 | 583 | i2c_del_adapter(&i2c_dev->adap); |
|---|
| 584 | | - clk_disable_unprepare(i2c_dev->clk); |
|---|
| 584 | + |
|---|
| 585 | + if (ret >= 0) |
|---|
| 586 | + clk_disable_unprepare(i2c_dev->clk); |
|---|
| 585 | 587 | |
|---|
| 586 | 588 | pm_runtime_put_noidle(i2c_dev->dev); |
|---|
| 587 | 589 | pm_runtime_disable(i2c_dev->dev); |
|---|