Skip to content

Commit 0bbb363

Browse files
committed
spi: mt65xx: Convert to platform remove callback
Merge series from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>: Hello, compared to (implicit) v1 sent in March with Message-Id: <20230309094704.2568531-1-u.kleine-koenig@pengutronix.de>, I reworked patch 1 on feedback by AngeloGioacchino Del Regno. Patches 2 and 3 got his Reviewed-by. Best regards Uwe Uwe Kleine-König (3): spi: mt65xx: Properly handle failures in .remove() spi: mt65xx: Convert to platform remove callback returning void spi: mt65xx: Don't disguise a "return 0" as "return ret" drivers/spi/spi-mt65xx.c | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) base-commit: ac9a786 -- 2.39.2
2 parents 0178f1e + 6f089e9 commit 0bbb363

1 file changed

Lines changed: 17 additions & 13 deletions

File tree

drivers/spi/spi-mt65xx.c

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1270,27 +1270,31 @@ static int mtk_spi_probe(struct platform_device *pdev)
12701270
return 0;
12711271
}
12721272

1273-
static int mtk_spi_remove(struct platform_device *pdev)
1273+
static void mtk_spi_remove(struct platform_device *pdev)
12741274
{
12751275
struct spi_master *master = platform_get_drvdata(pdev);
12761276
struct mtk_spi *mdata = spi_master_get_devdata(master);
12771277
int ret;
12781278

1279-
ret = pm_runtime_resume_and_get(&pdev->dev);
1280-
if (ret < 0)
1281-
return ret;
1282-
1283-
mtk_spi_reset(mdata);
1279+
ret = pm_runtime_get_sync(&pdev->dev);
1280+
if (ret < 0) {
1281+
dev_warn(&pdev->dev, "Failed to resume hardware (%pe)\n", ERR_PTR(ret));
1282+
} else {
1283+
/*
1284+
* If pm runtime resume failed, clks are disabled and
1285+
* unprepared. So don't access the hardware and skip clk
1286+
* unpreparing.
1287+
*/
1288+
mtk_spi_reset(mdata);
12841289

1285-
if (mdata->dev_comp->no_need_unprepare) {
1286-
clk_unprepare(mdata->spi_clk);
1287-
clk_unprepare(mdata->spi_hclk);
1290+
if (mdata->dev_comp->no_need_unprepare) {
1291+
clk_unprepare(mdata->spi_clk);
1292+
clk_unprepare(mdata->spi_hclk);
1293+
}
12881294
}
12891295

12901296
pm_runtime_put_noidle(&pdev->dev);
12911297
pm_runtime_disable(&pdev->dev);
1292-
1293-
return 0;
12941298
}
12951299

12961300
#ifdef CONFIG_PM_SLEEP
@@ -1309,7 +1313,7 @@ static int mtk_spi_suspend(struct device *dev)
13091313
clk_disable_unprepare(mdata->spi_hclk);
13101314
}
13111315

1312-
return ret;
1316+
return 0;
13131317
}
13141318

13151319
static int mtk_spi_resume(struct device *dev)
@@ -1410,7 +1414,7 @@ static struct platform_driver mtk_spi_driver = {
14101414
.of_match_table = mtk_spi_of_match,
14111415
},
14121416
.probe = mtk_spi_probe,
1413-
.remove = mtk_spi_remove,
1417+
.remove_new = mtk_spi_remove,
14141418
};
14151419

14161420
module_platform_driver(mtk_spi_driver);

0 commit comments

Comments
 (0)