diff options
| -rw-r--r-- | drivers/i2c/busses/i2c-qup.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/drivers/i2c/busses/i2c-qup.c b/drivers/i2c/busses/i2c-qup.c index 3a4d64e1dfb1..092d89bd3224 100644 --- a/drivers/i2c/busses/i2c-qup.c +++ b/drivers/i2c/busses/i2c-qup.c | |||
| @@ -674,16 +674,20 @@ static int qup_i2c_probe(struct platform_device *pdev) | |||
| 674 | qup->adap.dev.of_node = pdev->dev.of_node; | 674 | qup->adap.dev.of_node = pdev->dev.of_node; |
| 675 | strlcpy(qup->adap.name, "QUP I2C adapter", sizeof(qup->adap.name)); | 675 | strlcpy(qup->adap.name, "QUP I2C adapter", sizeof(qup->adap.name)); |
| 676 | 676 | ||
| 677 | ret = i2c_add_adapter(&qup->adap); | ||
| 678 | if (ret) | ||
| 679 | goto fail; | ||
| 680 | |||
| 681 | pm_runtime_set_autosuspend_delay(qup->dev, MSEC_PER_SEC); | 677 | pm_runtime_set_autosuspend_delay(qup->dev, MSEC_PER_SEC); |
| 682 | pm_runtime_use_autosuspend(qup->dev); | 678 | pm_runtime_use_autosuspend(qup->dev); |
| 683 | pm_runtime_set_active(qup->dev); | 679 | pm_runtime_set_active(qup->dev); |
| 684 | pm_runtime_enable(qup->dev); | 680 | pm_runtime_enable(qup->dev); |
| 681 | |||
| 682 | ret = i2c_add_adapter(&qup->adap); | ||
| 683 | if (ret) | ||
| 684 | goto fail_runtime; | ||
| 685 | |||
| 685 | return 0; | 686 | return 0; |
| 686 | 687 | ||
| 688 | fail_runtime: | ||
| 689 | pm_runtime_disable(qup->dev); | ||
| 690 | pm_runtime_set_suspended(qup->dev); | ||
| 687 | fail: | 691 | fail: |
| 688 | qup_i2c_disable_clocks(qup); | 692 | qup_i2c_disable_clocks(qup); |
| 689 | return ret; | 693 | return ret; |
