[PATCH V6 4/4] MTD: pxa3xx_nand: enhance suspend and resume routine

Daniel Mack zonque at gmail.com
Tue Jul 12 13:35:30 EDT 2011


On Tue, Jul 12, 2011 at 5:56 PM, Igor Grinberg <grinberg at compulab.co.il> wrote:
> On 07/12/11 15:02, Daniel Mack wrote:
>
>> On Tue, Jul 12, 2011 at 1:39 PM, Daniel Mack <zonque at gmail.com> wrote:
>>> On Tue, Jul 12, 2011 at 12:28 PM, Lei Wen <leiwen at marvell.com> wrote:
>>>> This patch add protection on the suspend&resume path to prevent
>>>> some unexpected behavior, like interrupt occur at the very second
>>>> of resume back and it don't follow normal command path, which lead
>>>> to bug.
>>>>
>>>> Signed-off-by: Lei Wen <leiwen at marvell.com>
>>>> ---
>>>>  drivers/mtd/nand/pxa3xx_nand.c |   28 ++++++++++++++++++++++++++++
>>>>  1 files changed, 28 insertions(+), 0 deletions(-)
>>>>
>>> [...]
>>>
>>>> @@ -1267,6 +1283,18 @@ static int pxa3xx_nand_resume(struct platform_device *pdev)
>>>>        info->cs = 0xff;
>>>>        clk_enable(info->clk);
>>>>
>>>> +       /*
>>>> +        * As the spec, the NDSR would be updated to 0x1800 when
>>>> +        * do the nand_clk disable/enable.
>>>> +        * To prevent it damage state machine of the driver, clear
>>>> +        * all status before resume
>>>> +        */
>>>> +       nand_writel(nand, NDSR, NDSR_MASK);
>>> This doesn't build:
>>>
>>>  CC      drivers/mtd/nand/pxa3xx_nand.o
>>> drivers/mtd/nand/pxa3xx_nand.c: In function 'pxa3xx_nand_resume':
>>> drivers/mtd/nand/pxa3xx_nand.c:1292: error: 'nand' undeclared (first
>>> use in this function)
>>> drivers/mtd/nand/pxa3xx_nand.c:1292: error: (Each undeclared
>>> identifier is reported only once
>>> drivers/mtd/nand/pxa3xx_nand.c:1292: error: for each function it appears in.)
>>> drivers/mtd/nand/pxa3xx_nand.c:1294: error: 'mtd' undeclared (first
>>> use in this function)
>>> make[3]: *** [drivers/mtd/nand/pxa3xx_nand.o] Error 1
>>>
>>> I guess this was not even compile tested? Anyway, I did a trivial
>>> fix-up and will test.
>> Also, with this (fixed) patch applied, the system doesn't resume at
>> all. No messages, it simply doesn't come back.
>
> I was skeptic about the clock being disabled in Lei's patch,
> as I observed system hangs if that clock was disabled back then in 2.6.31,
> but wanted to give it a try, because things has changed since then.
>
> Now I see, that Lei already sent v7 without clock toggling...

Yes, we debugged this quickly via Jabber, and without the clock
disable, things work fine for me again.

Daniel



More information about the linux-arm-kernel mailing list