Patch "mtd: brcmnand: Fix v7.1 register offsets" has been added to the 4.5-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
mtd: brcmnand: Fix v7.1 register offsets
to the 4.5-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mtd-brcmnand-fix-v7.1-register-offsets.patch
and it can be found in the queue-4.5 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
d267aefc54a28efc5bda7f009598dc83b5f98734Mon Sep 17 00:00:00 2001
From: Florian Fainelli <[email protected]>
Date: Wed, 24 Feb 2016 16:07:23 -0800
Subject: mtd: brcmnand: Fix v7.1 register offsets
From: Florian Fainelli <[email protected]>
commit d267aefc54a28efc5bda7f009598dc83b5f98734 upstream.
The BRCMNAND controller revision 7.1 is almost 100% compatible with the previous v6.0 register offset layout, except for the Correctable Error Reporting Threshold registers. Fix this by adding another table with the correct offsets for CORR_THRESHOLD and CORR_THRESHOLD_EXT.
--- drivers/mtd/nand/brcmnand/brcmnand.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-)
drivers/mtd/nand/brcmnand/brcmnand.c +33 -1
@@ -311,6 +311,36 @@ static const u16 brcmnand_regs_v60[] = { [BRCMNAND_FC_BASE] = 0x400, }; +/* BRCMNAND v7.1 */ +static const u16 brcmnand_regs_v71[] = { + [BRCMNAND_CMD_START ] =0x04 , + [BRCMNAND_CMD_EXT_ADDRESS ] =0x08 , + [BRCMNAND_CMD_ADDRESS ] =0x0c , + [BRCMNAND_INTFC_STATUS ] =0x14 , + [BRCMNAND_CS_SELECT ] =0x18 , + [BRCMNAND_CS_XOR ] =0x1c , + [BRCMNAND_LL_OP ] =0x20 , + [BRCMNAND_CS0_BASE ] =0x50 , + [BRCMNAND_CS1_BASE ] =0 , + [BRCMNAND_CORR_THRESHOLD ] =0xdc , + [BRCMNAND_CORR_THRESHOLD_EXT ] =0xe0 , + [BRCMNAND_UNCORR_COUNT ] =0xfc , + [BRCMNAND_CORR_COUNT ] =0x100 , + [BRCMNAND_CORR_EXT_ADDR ] =0x10c , + [BRCMNAND_CORR_ADDR ] =0x110 , + [BRCMNAND_UNCORR_EXT_ADDR ] =0x114 , + [BRCMNAND_UNCORR_ADDR ] =0x118 , + [BRCMNAND_SEMAPHORE ] =0x150 , + [BRCMNAND_ID ] =0x194 , + [BRCMNAND_ID_EXT ] =0x198 , + [BRCMNAND_LL_RDATA ] =0x19c , + [BRCMNAND_OOB_READ_BASE ] =0x200 , + [BRCMNAND_OOB_READ_10_BASE ] =0 , + [BRCMNAND_OOB_WRITE_BASE ] =0x280 , + [BRCMNAND_OOB_WRITE_10_BASE ] =0 , + [BRCMNAND_FC_BASE ] =0x400 , +}; +enum brcmnand_cs_reg {BRCMNAND_CS_CFG_EXT =0 ,BRCMNAND_CS_CFG ,
@@ -406,7 +436,9 @@ static int brcmnand_revision_init(struct }/* Register offsets */ -if (ctrl->nand_version >=0x0600 ) +if (ctrl->nand_version >=0x0701 ) + ctrl->reg_offsets = brcmnand_regs_v71; +else if (ctrl->nand_version >=0x0600 ) ctrl->reg_offsets = brcmnand_regs_v60;else if (ctrl->nand_version >=0x0500 ) ctrl->reg_offsets = brcmnand_regs_v50;
Patches currently in stable-queue which might be from [email protected] are
queue-4.5/pwm-brcmstb-fix-check-of-devm_ioremap_resource-return-code.patch queue-4.5/mtd-brcmnand-fix-v7.1-register-offsets.patch