summaryrefslogtreecommitdiff
path: root/drivers/mtd
diff options
context:
space:
mode:
authorHan Xu <han.xu@nxp.com>2018-08-09 15:54:29 -0500
committerJason Liu <jason.hui.liu@nxp.com>2019-02-12 10:33:16 +0800
commit2568de1e30c3c6b5073c2e8fabafc8c514d82146 (patch)
tree522b325ce99b3687a1252300ae38350e38c01836 /drivers/mtd
parentb749ec5387636b141cf51bd75be7d76373e19973 (diff)
MLK-18788: mtd: gpmi-nand: release HIGH_FREQ request in error path
release the HIGH_FREQ request was done in runtime suspend, disable autosuspend and disable the runtime in NAND probe error path Signed-off-by: Han Xu <han.xu@nxp.com>
Diffstat (limited to 'drivers/mtd')
-rw-r--r--drivers/mtd/nand/gpmi-nand/gpmi-nand.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
index 646a1f8d183a..f6c528895ebd 100644
--- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
@@ -2428,16 +2428,19 @@ static int gpmi_nand_probe(struct platform_device *pdev)
ret = init_hardware(this);
if (ret)
- goto exit_nfc_init;
+ goto exit_rpm;
ret = gpmi_nand_init(this);
if (ret)
- goto exit_nfc_init;
+ goto exit_rpm;
dev_info(this->dev, "driver registered.\n");
return 0;
+exit_rpm:
+ pm_runtime_dont_use_autosuspend(this->dev);
+ pm_runtime_disable(this->dev);
exit_nfc_init:
release_resources(this);
exit_acquire_resources:
@@ -2449,6 +2452,7 @@ static int gpmi_nand_remove(struct platform_device *pdev)
{
struct gpmi_nand_data *this = platform_get_drvdata(pdev);
+ release_bus_freq(BUS_FREQ_HIGH);
nand_release(nand_to_mtd(&this->nand));
gpmi_free_dma_buffer(this);
pm_runtime_disable(this->dev);