diff options
Diffstat (limited to 'drivers/spi/spi-qcom-qspi.c')
| -rw-r--r-- | drivers/spi/spi-qcom-qspi.c | 18 | 
1 files changed, 5 insertions, 13 deletions
| diff --git a/drivers/spi/spi-qcom-qspi.c b/drivers/spi/spi-qcom-qspi.c index 1dbcc410cd35..c334dfec4117 100644 --- a/drivers/spi/spi-qcom-qspi.c +++ b/drivers/spi/spi-qcom-qspi.c @@ -142,7 +142,6 @@ struct qcom_qspi {  	struct clk_bulk_data *clks;  	struct qspi_xfer xfer;  	struct icc_path *icc_path_cpu_to_qspi; -	struct opp_table *opp_table;  	unsigned long last_speed;  	/* Lock to protect data accessed by IRQs */  	spinlock_t lock; @@ -530,14 +529,14 @@ static int qcom_qspi_probe(struct platform_device *pdev)  	master->handle_err = qcom_qspi_handle_err;  	master->auto_runtime_pm = true; -	ctrl->opp_table = dev_pm_opp_set_clkname(&pdev->dev, "core"); -	if (IS_ERR(ctrl->opp_table)) -		return PTR_ERR(ctrl->opp_table); +	ret = devm_pm_opp_set_clkname(&pdev->dev, "core"); +	if (ret) +		return ret;  	/* OPP table is optional */ -	ret = dev_pm_opp_of_add_table(&pdev->dev); +	ret = devm_pm_opp_of_add_table(&pdev->dev);  	if (ret && ret != -ENODEV) {  		dev_err(&pdev->dev, "invalid OPP table in device tree\n"); -		goto exit_probe_put_clkname; +		return ret;  	}  	pm_runtime_use_autosuspend(dev); @@ -549,10 +548,6 @@ static int qcom_qspi_probe(struct platform_device *pdev)  		return 0;  	pm_runtime_disable(dev); -	dev_pm_opp_of_remove_table(&pdev->dev); - -exit_probe_put_clkname: -	dev_pm_opp_put_clkname(ctrl->opp_table);  	return ret;  } @@ -560,14 +555,11 @@ exit_probe_put_clkname:  static int qcom_qspi_remove(struct platform_device *pdev)  {  	struct spi_master *master = platform_get_drvdata(pdev); -	struct qcom_qspi *ctrl = spi_master_get_devdata(master);  	/* Unregister _before_ disabling pm_runtime() so we stop transfers */  	spi_unregister_master(master);  	pm_runtime_disable(&pdev->dev); -	dev_pm_opp_of_remove_table(&pdev->dev); -	dev_pm_opp_put_clkname(ctrl->opp_table);  	return 0;  } | 
