mtd: nand: brcmnand: Disable prefetch by default
Subsystems (3)
PATCH v2 1/1 mtd: nand: brcmnand: Disable prefetch by default
Brcm nand controller prefetch feature needs to be disabled by default. Enabling affects performance on random reads as well as dma reads.
Signed-off-by Kamal Dasu <[email protected]>
--- drivers/mtd/nand/brcmnand/brcmnand.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-)
drivers/mtd/nand/brcmnand/brcmnand.c +3 -10
@@ -2193,16 +2193,9 @@ static int brcmnand_setup_dev(struct brcmnand_host *host)if (ctrl->nand_version >=0x0702 ) tmp |=ACC_CONTROL_RD_ERASED ; tmp &= ~ACC_CONTROL_FAST_PGM_RDIN ; -if (ctrl->features &BRCMNAND_HAS_PREFETCH ) { -/* -* FIXME: Flash DMA + prefetch may see spurious erased-page ECC -* errors -*/ -if (has_flash_dma (ctrl)) - tmp &= ~ACC_CONTROL_PREFETCH ; -else - tmp |=ACC_CONTROL_PREFETCH ; - } +if (ctrl->features &BRCMNAND_HAS_PREFETCH ) + tmp &= ~ACC_CONTROL_PREFETCH ; +nand_writereg (ctrl, offs, tmp);return 0 ;
Signature · 1 line
2.7.4
Quoted 6 lines · On Mon, 8 Jan 2018 15:06:13 -0500 Kamal Dasu <[email protected]> wrote:
Brcm nand controller prefetch feature needs to be disabled by default. Enabling affects performance on random reads as well as dma reads.
Signed-off-by Kamal Dasu <[email protected]>
Fixes ????
Quoted 28 lines
--- drivers/mtd/nand/brcmnand/brcmnand.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-)drivers/mtd/nand/brcmnand/brcmnand.c +3
-10@@ -2193,16 +2193,9 @@ static int brcmnand_setup_dev(struct brcmnand_host *host)if (ctrl->nand_version >=0x0702 ) tmp |=ACC_CONTROL_RD_ERASED ; tmp &= ~ACC_CONTROL_FAST_PGM_RDIN ; -if (ctrl->features &BRCMNAND_HAS_PREFETCH ) { -/* -* FIXME: Flash DMA + prefetch may see spurious erased-page ECC -* errors -*/ -if (has_flash_dma (ctrl)) - tmp &= ~ACC_CONTROL_PREFETCH ; -else - tmp |=ACC_CONTROL_PREFETCH ; - } +if (ctrl->features &BRCMNAND_HAS_PREFETCH ) + tmp &= ~ACC_CONTROL_PREFETCH ; +nand_writereg (ctrl, offs, tmp);return 0 ;