* [PATCH] mxc_nand: fix PM [not found] <1274942000-3580-2-git-send-email-eric@eukrea.com> @ 2010-05-27 17:55 ` Eric Bénard 2010-06-14 7:07 ` Eric Bénard 2010-06-14 8:43 ` Uwe Kleine-König 0 siblings, 2 replies; 5+ messages in thread From: Eric Bénard @ 2010-05-27 17:55 UTC (permalink / raw) Cc: s.hauer, linux-mtd, linux-arm-kernel * when resuming, we get the following log : nand_resume called for a chip which is not in suspended state * this happens because mtd->suspend and mtd->resume are already called from the mtd layer, thus they were called a second time in mxc_nand so mtd complains when trying to resume for the second time * the fix is to remove these call and thus remove the supend and resume functions of mxc_nand Signed-off-by: Eric Bénard <eric@eukrea.com> Cc: s.hauer@pengutronix.de Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mtd@lists.infradead.org --- drivers/mtd/nand/mxc_nand.c | 44 +------------------------------------------ 1 files changed, 1 insertions(+), 43 deletions(-) diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c index 314e2bf..217b247 100644 --- a/drivers/mtd/nand/mxc_nand.c +++ b/drivers/mtd/nand/mxc_nand.c @@ -892,53 +892,11 @@ static int __devexit mxcnd_remove(struct platform_device *pdev) return 0; } -#ifdef CONFIG_PM -static int mxcnd_suspend(struct platform_device *pdev, pm_message_t state) -{ - struct mtd_info *mtd = platform_get_drvdata(pdev); - struct nand_chip *nand_chip = mtd->priv; - struct mxc_nand_host *host = nand_chip->priv; - int ret = 0; - - DEBUG(MTD_DEBUG_LEVEL0, "MXC_ND : NAND suspend\n"); - - ret = mtd->suspend(mtd); - - /* - * nand_suspend locks the device for exclusive access, so - * the clock must already be off. - */ - BUG_ON(!ret && host->clk_act); - - return ret; -} - -static int mxcnd_resume(struct platform_device *pdev) -{ - struct mtd_info *mtd = platform_get_drvdata(pdev); - struct nand_chip *nand_chip = mtd->priv; - struct mxc_nand_host *host = nand_chip->priv; - int ret = 0; - - DEBUG(MTD_DEBUG_LEVEL0, "MXC_ND : NAND resume\n"); - - mtd->resume(mtd); - - return ret; -} - -#else -# define mxcnd_suspend NULL -# define mxcnd_resume NULL -#endif /* CONFIG_PM */ - static struct platform_driver mxcnd_driver = { .driver = { .name = DRIVER_NAME, - }, + }, .remove = __devexit_p(mxcnd_remove), - .suspend = mxcnd_suspend, - .resume = mxcnd_resume, }; static int __init mxc_nd_init(void) -- 1.6.3.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] mxc_nand: fix PM 2010-05-27 17:55 ` [PATCH] mxc_nand: fix PM Eric Bénard @ 2010-06-14 7:07 ` Eric Bénard 2010-06-29 6:41 ` Artem Bityutskiy 2010-07-01 3:47 ` Artem Bityutskiy 2010-06-14 8:43 ` Uwe Kleine-König 1 sibling, 2 replies; 5+ messages in thread From: Eric Bénard @ 2010-06-14 7:07 UTC (permalink / raw) To: linux-mtd; +Cc: s.hauer, linux-arm-kernel, Uwe Kleine-König Hi Sascha, Le 27/05/2010 19:55, Eric Bénard a écrit : > * when resuming, we get the following log : > nand_resume called for a chip which is not in suspended state > * this happens because mtd->suspend and mtd->resume are already > called from the mtd layer, thus they were called a second time > in mxc_nand so mtd complains when trying to resume for the > second time > * the fix is to remove these call and thus remove the supend and > resume functions of mxc_nand > any news concerning this patch ? Eric > Signed-off-by: Eric Bénard<eric@eukrea.com> > Cc: s.hauer@pengutronix.de > Cc: linux-arm-kernel@lists.infradead.org > Cc: linux-mtd@lists.infradead.org > --- > drivers/mtd/nand/mxc_nand.c | 44 +------------------------------------------ > 1 files changed, 1 insertions(+), 43 deletions(-) > > diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c > index 314e2bf..217b247 100644 > --- a/drivers/mtd/nand/mxc_nand.c > +++ b/drivers/mtd/nand/mxc_nand.c > @@ -892,53 +892,11 @@ static int __devexit mxcnd_remove(struct platform_device *pdev) > return 0; > } > > -#ifdef CONFIG_PM > -static int mxcnd_suspend(struct platform_device *pdev, pm_message_t state) > -{ > - struct mtd_info *mtd = platform_get_drvdata(pdev); > - struct nand_chip *nand_chip = mtd->priv; > - struct mxc_nand_host *host = nand_chip->priv; > - int ret = 0; > - > - DEBUG(MTD_DEBUG_LEVEL0, "MXC_ND : NAND suspend\n"); > - > - ret = mtd->suspend(mtd); > - > - /* > - * nand_suspend locks the device for exclusive access, so > - * the clock must already be off. > - */ > - BUG_ON(!ret&& host->clk_act); > - > - return ret; > -} > - > -static int mxcnd_resume(struct platform_device *pdev) > -{ > - struct mtd_info *mtd = platform_get_drvdata(pdev); > - struct nand_chip *nand_chip = mtd->priv; > - struct mxc_nand_host *host = nand_chip->priv; > - int ret = 0; > - > - DEBUG(MTD_DEBUG_LEVEL0, "MXC_ND : NAND resume\n"); > - > - mtd->resume(mtd); > - > - return ret; > -} > - > -#else > -# define mxcnd_suspend NULL > -# define mxcnd_resume NULL > -#endif /* CONFIG_PM */ > - > static struct platform_driver mxcnd_driver = { > .driver = { > .name = DRIVER_NAME, > - }, > + }, > .remove = __devexit_p(mxcnd_remove), > - .suspend = mxcnd_suspend, > - .resume = mxcnd_resume, > }; > > static int __init mxc_nd_init(void) ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] mxc_nand: fix PM 2010-06-14 7:07 ` Eric Bénard @ 2010-06-29 6:41 ` Artem Bityutskiy 2010-07-01 3:47 ` Artem Bityutskiy 1 sibling, 0 replies; 5+ messages in thread From: Artem Bityutskiy @ 2010-06-29 6:41 UTC (permalink / raw) To: Eric Bénard Cc: s.hauer, linux-mtd, linux-arm-kernel, Uwe Kleine-König On Mon, 2010-06-14 at 09:07 +0200, Eric Bénard wrote: > Hi Sascha, > > Le 27/05/2010 19:55, Eric Bénard a écrit : > > * when resuming, we get the following log : > > nand_resume called for a chip which is not in suspended state > > * this happens because mtd->suspend and mtd->resume are already > > called from the mtd layer, thus they were called a second time > > in mxc_nand so mtd complains when trying to resume for the > > second time > > * the fix is to remove these call and thus remove the supend and > > resume functions of mxc_nand > > > any news concerning this patch ? > Pushed to l2-mtd-2.6.git / dunno -- Best Regards, Artem Bityutskiy (Артём Битюцкий) ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] mxc_nand: fix PM 2010-06-14 7:07 ` Eric Bénard 2010-06-29 6:41 ` Artem Bityutskiy @ 2010-07-01 3:47 ` Artem Bityutskiy 1 sibling, 0 replies; 5+ messages in thread From: Artem Bityutskiy @ 2010-07-01 3:47 UTC (permalink / raw) To: Eric Bénard Cc: s.hauer, linux-mtd, linux-arm-kernel, Uwe Kleine-König On Mon, 2010-06-14 at 09:07 +0200, Eric Bénard wrote: > Hi Sascha, > > Le 27/05/2010 19:55, Eric Bénard a écrit : > > * when resuming, we get the following log : > > nand_resume called for a chip which is not in suspended state > > * this happens because mtd->suspend and mtd->resume are already > > called from the mtd layer, thus they were called a second time > > in mxc_nand so mtd complains when trying to resume for the > > second time > > * the fix is to remove these call and thus remove the supend and > > resume functions of mxc_nand > > > any news concerning this patch ? Pushed to l2-mtd-2.6.git / dunno -- Best Regards, Artem Bityutskiy (Артём Битюцкий) ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] mxc_nand: fix PM 2010-05-27 17:55 ` [PATCH] mxc_nand: fix PM Eric Bénard 2010-06-14 7:07 ` Eric Bénard @ 2010-06-14 8:43 ` Uwe Kleine-König 1 sibling, 0 replies; 5+ messages in thread From: Uwe Kleine-König @ 2010-06-14 8:43 UTC (permalink / raw) To: Eric Bénard; +Cc: s.hauer, linux-mtd, linux-arm-kernel Hello Eric, On Thu, May 27, 2010 at 07:55:19PM +0200, Eric Bénard wrote: > * when resuming, we get the following log : > nand_resume called for a chip which is not in suspended state > * this happens because mtd->suspend and mtd->resume are already > called from the mtd layer, thus they were called a second time > in mxc_nand so mtd complains when trying to resume for the > second time > * the fix is to remove these call and thus remove the supend and > resume functions of mxc_nand the commit log looks IMHO ugly. Better make it (including Subject): mtd/mxc_nand: don't call mtd->{suspend,resume} explicitly The mtd layer is responsible to call mtd->{suspend,resume}. Doing it again in the driver is wrong and results in a warning: nand_resume called for a chip which is not in suspended state at resume time. Removing the calls from the resume and suspend functions makes them empty allowing them to be deleted completely. Signed-off-by: Eric Bénard <eric@eukrea.com> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Cc: Sascha Hauer <s.hauer@pengutronix.de> Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mtd@lists.infradead.org Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-07-01 3:47 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <1274942000-3580-2-git-send-email-eric@eukrea.com>
2010-05-27 17:55 ` [PATCH] mxc_nand: fix PM Eric Bénard
2010-06-14 7:07 ` Eric Bénard
2010-06-29 6:41 ` Artem Bityutskiy
2010-07-01 3:47 ` Artem Bityutskiy
2010-06-14 8:43 ` Uwe Kleine-König
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).