aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mediatek/patches-4.14/0136-mtd-mtk-nor-add-suspend-resume-support.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mediatek/patches-4.14/0136-mtd-mtk-nor-add-suspend-resume-support.patch')
-rw-r--r--target/linux/mediatek/patches-4.14/0136-mtd-mtk-nor-add-suspend-resume-support.patch128
1 files changed, 0 insertions, 128 deletions
diff --git a/target/linux/mediatek/patches-4.14/0136-mtd-mtk-nor-add-suspend-resume-support.patch b/target/linux/mediatek/patches-4.14/0136-mtd-mtk-nor-add-suspend-resume-support.patch
deleted file mode 100644
index 8bfba8953d..0000000000
--- a/target/linux/mediatek/patches-4.14/0136-mtd-mtk-nor-add-suspend-resume-support.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-From 8947f8cd407a55db816cd03fc03b59096210978e Mon Sep 17 00:00:00 2001
-From: Guochun Mao <guochun.mao@mediatek.com>
-Date: Thu, 21 Sep 2017 20:45:06 +0800
-Subject: [PATCH 136/224] mtd: mtk-nor: add suspend/resume support
-
-Abstract functions of clock setting, to avoid duplicated code,
-these functions been used in new feature.
-Implement suspend/resume functions.
-
-Signed-off-by: Guochun Mao <guochun.mao@mediatek.com>
-Signed-off-by: Cyrille Pitchen <cyrille.pitchen@wedev4u.fr>
----
- drivers/mtd/spi-nor/mtk-quadspi.c | 70 ++++++++++++++++++++++++++++++++-------
- 1 file changed, 58 insertions(+), 12 deletions(-)
-
---- a/drivers/mtd/spi-nor/mtk-quadspi.c
-+++ b/drivers/mtd/spi-nor/mtk-quadspi.c
-@@ -404,6 +404,29 @@ static int mt8173_nor_write_reg(struct s
- return ret;
- }
-
-+static void mt8173_nor_disable_clk(struct mt8173_nor *mt8173_nor)
-+{
-+ clk_disable_unprepare(mt8173_nor->spi_clk);
-+ clk_disable_unprepare(mt8173_nor->nor_clk);
-+}
-+
-+static int mt8173_nor_enable_clk(struct mt8173_nor *mt8173_nor)
-+{
-+ int ret;
-+
-+ ret = clk_prepare_enable(mt8173_nor->spi_clk);
-+ if (ret)
-+ return ret;
-+
-+ ret = clk_prepare_enable(mt8173_nor->nor_clk);
-+ if (ret) {
-+ clk_disable_unprepare(mt8173_nor->spi_clk);
-+ return ret;
-+ }
-+
-+ return 0;
-+}
-+
- static int mtk_nor_init(struct mt8173_nor *mt8173_nor,
- struct device_node *flash_node)
- {
-@@ -468,15 +491,11 @@ static int mtk_nor_drv_probe(struct plat
- return PTR_ERR(mt8173_nor->nor_clk);
-
- mt8173_nor->dev = &pdev->dev;
-- ret = clk_prepare_enable(mt8173_nor->spi_clk);
-+
-+ ret = mt8173_nor_enable_clk(mt8173_nor);
- if (ret)
- return ret;
-
-- ret = clk_prepare_enable(mt8173_nor->nor_clk);
-- if (ret) {
-- clk_disable_unprepare(mt8173_nor->spi_clk);
-- return ret;
-- }
- /* only support one attached flash */
- flash_np = of_get_next_available_child(pdev->dev.of_node, NULL);
- if (!flash_np) {
-@@ -487,10 +506,9 @@ static int mtk_nor_drv_probe(struct plat
- ret = mtk_nor_init(mt8173_nor, flash_np);
-
- nor_free:
-- if (ret) {
-- clk_disable_unprepare(mt8173_nor->spi_clk);
-- clk_disable_unprepare(mt8173_nor->nor_clk);
-- }
-+ if (ret)
-+ mt8173_nor_disable_clk(mt8173_nor);
-+
- return ret;
- }
-
-@@ -498,11 +516,38 @@ static int mtk_nor_drv_remove(struct pla
- {
- struct mt8173_nor *mt8173_nor = platform_get_drvdata(pdev);
-
-- clk_disable_unprepare(mt8173_nor->spi_clk);
-- clk_disable_unprepare(mt8173_nor->nor_clk);
-+ mt8173_nor_disable_clk(mt8173_nor);
-+
-+ return 0;
-+}
-+
-+#ifdef CONFIG_PM_SLEEP
-+static int mtk_nor_suspend(struct device *dev)
-+{
-+ struct mt8173_nor *mt8173_nor = dev_get_drvdata(dev);
-+
-+ mt8173_nor_disable_clk(mt8173_nor);
-+
- return 0;
- }
-
-+static int mtk_nor_resume(struct device *dev)
-+{
-+ struct mt8173_nor *mt8173_nor = dev_get_drvdata(dev);
-+
-+ return mt8173_nor_enable_clk(mt8173_nor);
-+}
-+
-+static const struct dev_pm_ops mtk_nor_dev_pm_ops = {
-+ .suspend = mtk_nor_suspend,
-+ .resume = mtk_nor_resume,
-+};
-+
-+#define MTK_NOR_DEV_PM_OPS (&mtk_nor_dev_pm_ops)
-+#else
-+#define MTK_NOR_DEV_PM_OPS NULL
-+#endif
-+
- static const struct of_device_id mtk_nor_of_ids[] = {
- { .compatible = "mediatek,mt8173-nor"},
- { /* sentinel */ }
-@@ -514,6 +559,7 @@ static struct platform_driver mtk_nor_dr
- .remove = mtk_nor_drv_remove,
- .driver = {
- .name = "mtk-nor",
-+ .pm = MTK_NOR_DEV_PM_OPS,
- .of_match_table = mtk_nor_of_ids,
- },
- };