mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 18:13:41 +02:00
mtd: rawnand: denali: remove hard-coded DENALI_DEFAULT_OOB_SKIP_BYTES
As commit 0d55c668b2 (mtd: rawnand: denali: set SPARE_AREA_SKIP_BYTES
register to 8 if unset") says, there were three solutions discussed:
[1] Add a DT property to specify the skipped bytes in OOB
[2] Associate the preferred value with compatible
[3] Hard-code the default value in the driver
At that time, [3] was chosen because I did not have enough information
about the other platforms than UniPhier.
That commit also says "The preferred value may vary by platform. If so,
please trade up to a different solution." My intention was to replace
[3] with [2], not keep both [2] and [3].
Now that we have switched to [2] for SOCFPGA's SPARE_AREA_SKIP_BYTES=2,
[3] should be removed. This should be OK because denali_pci.c just
gets back to the original behavior.
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
This commit is contained in:
parent
711fafc287
commit
a3b839e4e0
|
|
@ -21,7 +21,6 @@
|
|||
#include "denali.h"
|
||||
|
||||
#define DENALI_NAND_NAME "denali-nand"
|
||||
#define DENALI_DEFAULT_OOB_SKIP_BYTES 8
|
||||
|
||||
/* for Indexed Addressing */
|
||||
#define DENALI_INDEXED_CTRL 0x00
|
||||
|
|
@ -1302,22 +1301,16 @@ int denali_init(struct denali_controller *denali)
|
|||
|
||||
/*
|
||||
* Set how many bytes should be skipped before writing data in OOB.
|
||||
* If a non-zero value has already been configured, update it in HW.
|
||||
* If a non-zero value has already been set (by firmware or something),
|
||||
* just use it. Otherwise, set the driver's default.
|
||||
* If a platform requests a non-zero value, set it to the register.
|
||||
* Otherwise, read the value out, expecting it has already been set up
|
||||
* by firmware.
|
||||
*/
|
||||
if (denali->oob_skip_bytes) {
|
||||
if (denali->oob_skip_bytes)
|
||||
iowrite32(denali->oob_skip_bytes,
|
||||
denali->reg + SPARE_AREA_SKIP_BYTES);
|
||||
} else {
|
||||
denali->oob_skip_bytes =
|
||||
ioread32(denali->reg + SPARE_AREA_SKIP_BYTES);
|
||||
if (!denali->oob_skip_bytes) {
|
||||
denali->oob_skip_bytes = DENALI_DEFAULT_OOB_SKIP_BYTES;
|
||||
iowrite32(denali->oob_skip_bytes,
|
||||
denali->reg + SPARE_AREA_SKIP_BYTES);
|
||||
}
|
||||
}
|
||||
else
|
||||
denali->oob_skip_bytes = ioread32(denali->reg +
|
||||
SPARE_AREA_SKIP_BYTES);
|
||||
|
||||
iowrite32(0, denali->reg + TRANSFER_SPARE_REG);
|
||||
iowrite32(GENMASK(denali->nbanks - 1, 0), denali->reg + RB_PIN_ENABLED);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user