From: Yangtao Li <tiny.win...@gmail.com>

Use resource-managed OPP API to simplify code.

Signed-off-by: Yangtao Li <tiny.win...@gmail.com>
Acked-by: Mark Brown <broo...@kernel.org>
Signed-off-by: Dmitry Osipenko <dig...@gmail.com>
---
 drivers/spi/spi-qcom-qspi.c | 18 +++++-------------
 1 file 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 @@ static int qcom_qspi_probe(struct platform_device *pdev)
 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;
 }
-- 
2.30.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to