From: Nicholas Mc Guire <der.herr@hofr.at>
To: Han Xu <b45815@freescale.com>
Cc: shijie.huang@arm.com, dwmw2@infradead.org,
computersforpeace@gmail.com, boris.brezillon@free-electrons.com,
fabio.estevam@freescale.com, hofrat@osadl.org,
linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org,
vinod.koul@intel.com, dan.j.williams@intel.com,
dmaengine@vger.kernel.org
Subject: Re: [PATCH v3 1/6] mtd: nand: gpmi: add gpmi dsm supend/resume support
Date: Sat, 29 Aug 2015 11:17:40 +0200 [thread overview]
Message-ID: <20150829091740.GC5594@opentech.at> (raw)
In-Reply-To: <1440790365-28072-2-git-send-email-b45815@freescale.com>
On Fri, 28 Aug 2015, Han Xu wrote:
> From: Huang Shijie <b32955@freescale.com>
>
> i.MX6SX supports deep sleep mode(DSM) that may turn off GPMI/BCH power
> during suspend, add gpmi nand suspend/resume function to release DMA
> channel in suspend function and re-init GPMI/BCH controller during
> resume function.
>
Just a question regarding gpmi_pm_resume() errror reporting
Is there a reason that the retrun value of gpmi_extra_init() is not checked ?
gpmi_extra_init() can retrun -ENOMEM or -EINVAL via return enable_edo_mode(),
while the -EINVAL would produce a dev_err message, -ENOMEM does not so maybe
this also wants to include a if(ret) {...} ? - something like the below
> Although it is not necessary to restore GPMI/BCH registers value for
> i.MX6QDL, the code doesn't distinguish different platforms to keep the
> code simple.
>
> Signed-off-by: Huang Shijie <b32955@freescale.com>
> Signed-off-by: Han Xu <han.xu@freescale.com>
> ---
> drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 45 +++++++++++++++++++++++++++++++++-
> 1 file changed, 44 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> index 1b8f350..dfd0ba1 100644
> --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
> @@ -1,7 +1,7 @@
> /*
> * Freescale GPMI NAND Flash Driver
> *
> - * Copyright (C) 2010-2011 Freescale Semiconductor, Inc.
> + * Copyright (C) 2010-2015 Freescale Semiconductor, Inc.
> * Copyright (C) 2008 Embedded Alley Solutions, Inc.
> *
> * This program is free software; you can redistribute it and/or modify
> @@ -2036,9 +2036,52 @@ static int gpmi_nand_remove(struct platform_device *pdev)
> return 0;
> }
>
> +static int gpmi_pm_suspend(struct device *dev)
> +{
> + struct gpmi_nand_data *this = dev_get_drvdata(dev);
> +
> + release_dma_channels(this);
> + return 0;
> +}
> +
> +static int gpmi_pm_resume(struct device *dev)
> +{
> + struct gpmi_nand_data *this = dev_get_drvdata(dev);
> + int ret;
> +
> + ret = acquire_dma_channels(this);
> + if (ret < 0)
> + return ret;
> +
> + /* re-init the GPMI registers */
> + this->flags &= ~GPMI_TIMING_INIT_OK;
> + ret = gpmi_init(this);
> + if (ret) {
> + dev_err(this->dev, "Error setting GPMI : %d\n", ret);
> + return ret;
> + }
> +
> + /* re-init the BCH registers */
> + ret = bch_set_geometry(this);
> + if (ret) {
> + dev_err(this->dev, "Error setting BCH : %d\n", ret);
> + return ret;
> + }
> +
> + /* re-init others */
> + gpmi_extra_init(this);
report failure of enable_edo_mode() ?
if (ret) {
dev_err(this->dev, "Error enabling EDO mode : %d\n", ret);
return ret;
}
> +
> + return 0;
> +}
> +
> +static const struct dev_pm_ops gpmi_pm_ops = {
> + SET_SYSTEM_SLEEP_PM_OPS(gpmi_pm_suspend, gpmi_pm_resume)
> +};
> +
> static struct platform_driver gpmi_nand_driver = {
> .driver = {
> .name = "gpmi-nand",
> + .pm = &gpmi_pm_ops,
> .of_match_table = gpmi_nand_id_table,
> },
> .probe = gpmi_nand_probe,
> --
> 1.9.1
>
next prev parent reply other threads:[~2015-08-29 9:18 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-28 19:32 [PATCH v3 0/6] mtd: nand: gpmi: gpmi-nand DSM and bitflip support Han Xu
2015-08-28 19:32 ` [PATCH v3 1/6] mtd: nand: gpmi: add gpmi dsm supend/resume support Han Xu
2015-08-29 9:17 ` Nicholas Mc Guire [this message]
2015-09-01 8:11 ` Huang Shijie
2015-08-28 19:32 ` [PATCH v3 2/6] dmaengine: mxs: support i.MX7D and deep sleep mode Han Xu
2015-09-21 17:02 ` Vinod Koul
2015-10-20 15:52 ` Han Xu
2015-08-28 19:32 ` [PATCH v3 3/6] mtd: nand: gpmi: may use minimum required ecc for 744 oobsize NAND Han Xu
2015-08-28 19:32 ` [PATCH v3 4/6] mtd: nand: gpmi: add GPMI NAND support for i.MX7D Han Xu
2015-08-29 9:48 ` Nicholas Mc Guire
2015-08-28 19:32 ` [PATCH v3 5/6] mtd: nand: gpmi: correct bitflip for erased NAND page Han Xu
2015-08-28 19:32 ` [PATCH v3 6/6] mtd: nand: gpmi: support NAND on i.MX6UL Han Xu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150829091740.GC5594@opentech.at \
--to=der.herr@hofr.at \
--cc=b45815@freescale.com \
--cc=boris.brezillon@free-electrons.com \
--cc=computersforpeace@gmail.com \
--cc=dan.j.williams@intel.com \
--cc=dmaengine@vger.kernel.org \
--cc=dwmw2@infradead.org \
--cc=fabio.estevam@freescale.com \
--cc=hofrat@osadl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=shijie.huang@arm.com \
--cc=vinod.koul@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.