aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/i2c/busses/i2c-qup.c12
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
688fail_runtime:
689 pm_runtime_disable(qup->dev);
690 pm_runtime_set_suspended(qup->dev);
687fail: 691fail:
688 qup_i2c_disable_clocks(qup); 692 qup_i2c_disable_clocks(qup);
689 return ret; 693 return ret;