Re: [PATCH] mtd: nand: raw: brcmnand: When oops in progress use pio and interrupt polling

From: Richard Weinberger
Date: Mon May 06 2019 - 12:02:09 EST

On Wed, May 1, 2019 at 7:52 PM Kamal Dasu <kdasu.kdev@xxxxxxxxx> wrote:
> If mtd_oops is in progress switch to polling for nand command completion
> interrupts and use PIO mode wihtout DMA so that the mtd_oops buffer can
> be completely written in the assinged nand partition. This is needed in
> cases where the panic does not happen on cpu0 and there is only one online
> CPU and the panic is not on cpu0.

This optimization is highly specific to your hardware and AFAIK cannot
be applied
in general to brcmnand.

So the problem you see is that depending on the oops you can no longer use dma
or interrupts in the driver?

How about adding a new flag to panic_nand_write() which tells the nand
driver that
this is a panic write?
That way you can fall back to pio and polling mode without checking cpu numbers
and oops_in_progress.