Commit 21962132 authored by Amit Kumar Mahapatra's avatar Amit Kumar Mahapatra Committed by Miquel Raynal

Revert "mtd: rawnand: arasan: Prevent an unsupported configuration"

This reverts commit fc9e18f9.

This patch was a work around to fix timeout issue while operating in NVDDR
mode with software ECC engine. This patch prevents the Arasan NAND driver
from operating in NVDDR mode with software ECC engine resulting in a
significant performance degradation with SW-ECC.
'commit 7499bfee ("mtd: rawnand: arasan: Update NAND bus clock instead
of system clock")' and 'commit e16eceea ("mtd: rawnand: arasan: Fix
clock rate in NV-DDR")'
fixes the timeout issue in NVDDR mode with SW-ECC so, reverting the changes
as this work around is no longer required.
Signed-off-by: default avatarAmit Kumar Mahapatra <amit.kumar-mahapatra@amd.com>
Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/20230607053936.14306-1-amit.kumar-mahapatra@amd.com
parent ef1560b6
...@@ -973,21 +973,6 @@ static int anfc_setup_interface(struct nand_chip *chip, int target, ...@@ -973,21 +973,6 @@ static int anfc_setup_interface(struct nand_chip *chip, int target,
nvddr = nand_get_nvddr_timings(conf); nvddr = nand_get_nvddr_timings(conf);
if (IS_ERR(nvddr)) if (IS_ERR(nvddr))
return PTR_ERR(nvddr); return PTR_ERR(nvddr);
/*
* The controller only supports data payload requests which are
* a multiple of 4. In practice, most data accesses are 4-byte
* aligned and this is not an issue. However, rounding up will
* simply be refused by the controller if we reached the end of
* the device *and* we are using the NV-DDR interface(!). In
* this situation, unaligned data requests ending at the device
* boundary will confuse the controller and cannot be performed.
*
* This is something that happens in nand_read_subpage() when
* selecting software ECC support and must be avoided.
*/
if (chip->ecc.engine_type == NAND_ECC_ENGINE_TYPE_SOFT)
return -ENOTSUPP;
} else { } else {
sdr = nand_get_sdr_timings(conf); sdr = nand_get_sdr_timings(conf);
if (IS_ERR(sdr)) if (IS_ERR(sdr))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment