12345678910111213141516171819202122232425262728 |
- --- a/drivers/mtd/nand/nand_base.c
- +++ b/drivers/mtd/nand/nand_base.c
- @@ -4262,8 +4262,13 @@ static bool find_full_id_nand(struct mtd
- chip->ecc_strength_ds = NAND_ECC_STRENGTH(type);
- chip->ecc_step_ds = NAND_ECC_STEP(type);
-
- - mode = type->onfi_timing_mode_default;
- - chip->sdr_timings = onfi_async_timing_mode_to_sdr_timings(mode);
- + if (type->custom_sdr_timing) {
- + chip->sdr_timings = type->custom_sdr_timing;
- + } else {
- + mode = type->onfi_timing_mode_default;
- + chip->sdr_timings =
- + onfi_async_timing_mode_to_sdr_timings(mode);
- + }
-
- *busw = type->options & NAND_BUSWIDTH_16;
-
- --- a/include/linux/mtd/nand.h
- +++ b/include/linux/mtd/nand.h
- @@ -988,6 +988,7 @@ struct nand_flash_dev {
- uint16_t step_ds;
- } ecc;
- int onfi_timing_mode_default;
- + const struct nand_sdr_timings *custom_sdr_timing;
- };
-
- /**
|