The change is wanted to postpone initialization of busses on CCI controller by cci_init() and cci_reset() till adapters are registered, the later is needed for adding I2C bus devices and get correspondent vbus regulators. Signed-off-by: Vladimir Zapolskiy <vladimir.zapolskiy@xxxxxxxxxx> --- drivers/i2c/busses/i2c-qcom-cci.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/drivers/i2c/busses/i2c-qcom-cci.c b/drivers/i2c/busses/i2c-qcom-cci.c index cf54f1cb4c57..eebf9603d3d1 100644 --- a/drivers/i2c/busses/i2c-qcom-cci.c +++ b/drivers/i2c/busses/i2c-qcom-cci.c @@ -630,14 +630,6 @@ static int cci_probe(struct platform_device *pdev) val = readl(cci->base + CCI_HW_VERSION); dev_dbg(dev, "CCI HW version = 0x%08x", val); - ret = cci_reset(cci); - if (ret < 0) - goto error; - - ret = cci_init(cci); - if (ret < 0) - goto error; - for (i = 0; i < cci->data->num_masters; i++) { if (!cci->master[i].cci) continue; @@ -649,6 +641,14 @@ static int cci_probe(struct platform_device *pdev) } } + ret = cci_reset(cci); + if (ret < 0) + goto error_i2c; + + ret = cci_init(cci); + if (ret < 0) + goto error_i2c; + pm_runtime_set_autosuspend_delay(dev, MSEC_PER_SEC); pm_runtime_use_autosuspend(dev); pm_runtime_set_active(dev); @@ -663,7 +663,6 @@ static int cci_probe(struct platform_device *pdev) of_node_put(cci->master[i].adap.dev.of_node); } } -error: disable_irq(cci->irq); disable_clocks: cci_disable_clocks(cci); -- 2.33.0