diff options
| author | Tom Rini <trini@konsulko.com> | 2021-03-29 17:53:19 -0400 | 
|---|---|---|
| committer | Tom Rini <trini@konsulko.com> | 2021-03-29 18:00:21 -0400 | 
| commit | 1057b1be75386e3513dca392d8258e01e5cccc01 (patch) | |
| tree | a1cbdc677c070064177e1d9defeb1fb4ab30ad6e /drivers/mtd | |
| parent | 4906238191b90be7aec2269ba8cd6aeb161cd312 (diff) | |
| parent | d8eafb16c85bc3b5d85d7ba8ebb1438cc0ae168f (diff) | |
Merge tag 'v2021.04-rc5' into next
Prepare v2021.04-rc5
Diffstat (limited to 'drivers/mtd')
| -rw-r--r-- | drivers/mtd/nand/raw/fsl_ifc_nand.c | 17 | 
1 files changed, 10 insertions, 7 deletions
| diff --git a/drivers/mtd/nand/raw/fsl_ifc_nand.c b/drivers/mtd/nand/raw/fsl_ifc_nand.c index cf20238782c..e5ff937872e 100644 --- a/drivers/mtd/nand/raw/fsl_ifc_nand.c +++ b/drivers/mtd/nand/raw/fsl_ifc_nand.c @@ -411,9 +411,16 @@ static void fsl_ifc_cmdfunc(struct mtd_info *mtd, unsigned int command,  	/* READID must read all possible bytes while CEB is active */  	case NAND_CMD_READID:  	case NAND_CMD_PARAM: { +		/* +		 * For READID, read 8 bytes that are currently used. +		 * For PARAM, read all 3 copies of 256-bytes pages. +		 */ +		int len = 8;  		int timing = IFC_FIR_OP_RB; -		if (command == NAND_CMD_PARAM) +		if (command == NAND_CMD_PARAM) {  			timing = IFC_FIR_OP_RBCD; +			len = 256 * 3; +		}  		ifc_out32(&ifc->ifc_nand.nand_fir0,  			  (IFC_FIR_OP_CW0 << IFC_NAND_FIR0_OP0_SHIFT) | @@ -423,12 +430,8 @@ static void fsl_ifc_cmdfunc(struct mtd_info *mtd, unsigned int command,  			  command << IFC_NAND_FCR0_CMD0_SHIFT);  		ifc_out32(&ifc->ifc_nand.row3, column); -		/* -		 * although currently it's 8 bytes for READID, we always read -		 * the maximum 256 bytes(for PARAM) -		 */ -		ifc_out32(&ifc->ifc_nand.nand_fbcr, 256); -		ctrl->read_bytes = 256; +		ifc_out32(&ifc->ifc_nand.nand_fbcr, len); +		ctrl->read_bytes = len;  		set_addr(mtd, 0, 0, 0);  		fsl_ifc_run_command(mtd); | 
