Commit cce59c22 authored by Prahlad V's avatar Prahlad V Committed by Mark Brown

spi: ti-qspi: revise ti_qspi_probe() failure flow

call spi_master_put() in case of failures after spi_alloc_master().
call pm_runtime_disable() in case of failures after pm_runtime_enable().
Signed-off-by: default avatarPrahlad V <prahlad.eee@gmail.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent fafd6794
...@@ -652,7 +652,8 @@ static int ti_qspi_probe(struct platform_device *pdev) ...@@ -652,7 +652,8 @@ static int ti_qspi_probe(struct platform_device *pdev)
r = platform_get_resource(pdev, IORESOURCE_MEM, 0); r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
if (r == NULL) { if (r == NULL) {
dev_err(&pdev->dev, "missing platform data\n"); dev_err(&pdev->dev, "missing platform data\n");
return -ENODEV; ret = -ENODEV;
goto free_master;
} }
} }
...@@ -669,7 +670,8 @@ static int ti_qspi_probe(struct platform_device *pdev) ...@@ -669,7 +670,8 @@ static int ti_qspi_probe(struct platform_device *pdev)
irq = platform_get_irq(pdev, 0); irq = platform_get_irq(pdev, 0);
if (irq < 0) { if (irq < 0) {
dev_err(&pdev->dev, "no irq resource?\n"); dev_err(&pdev->dev, "no irq resource?\n");
return irq; ret = irq;
goto free_master;
} }
mutex_init(&qspi->list_lock); mutex_init(&qspi->list_lock);
...@@ -685,15 +687,17 @@ static int ti_qspi_probe(struct platform_device *pdev) ...@@ -685,15 +687,17 @@ static int ti_qspi_probe(struct platform_device *pdev)
qspi->ctrl_base = qspi->ctrl_base =
syscon_regmap_lookup_by_phandle(np, syscon_regmap_lookup_by_phandle(np,
"syscon-chipselects"); "syscon-chipselects");
if (IS_ERR(qspi->ctrl_base)) if (IS_ERR(qspi->ctrl_base)) {
return PTR_ERR(qspi->ctrl_base); ret = PTR_ERR(qspi->ctrl_base);
goto free_master;
}
ret = of_property_read_u32_index(np, ret = of_property_read_u32_index(np,
"syscon-chipselects", "syscon-chipselects",
1, &qspi->ctrl_reg); 1, &qspi->ctrl_reg);
if (ret) { if (ret) {
dev_err(&pdev->dev, dev_err(&pdev->dev,
"couldn't get ctrl_mod reg index\n"); "couldn't get ctrl_mod reg index\n");
return ret; goto free_master;
} }
} }
...@@ -742,6 +746,7 @@ static int ti_qspi_probe(struct platform_device *pdev) ...@@ -742,6 +746,7 @@ static int ti_qspi_probe(struct platform_device *pdev)
if (!ret) if (!ret)
return 0; return 0;
pm_runtime_disable(&pdev->dev);
free_master: free_master:
spi_master_put(master); spi_master_put(master);
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment