File tree Expand file tree Collapse file tree 3 files changed +17
-13
lines changed Expand file tree Collapse file tree 3 files changed +17
-13
lines changed Original file line number Diff line number Diff line change @@ -2923,15 +2923,10 @@ static void spi_nor_init_default_params(struct spi_nor *nor)
2923
2923
params -> page_size = info -> page_size ?: SPI_NOR_DEFAULT_PAGE_SIZE ;
2924
2924
params -> n_banks = info -> n_banks ?: SPI_NOR_DEFAULT_N_BANKS ;
2925
2925
2926
- if (!( info -> flags & SPI_NOR_NO_FR )) {
2927
- /* Default to Fast Read for DT and non-DT platform devices. */
2926
+ /* Default to Fast Read for non-DT and enable it if requested by DT. */
2927
+ if (! np || of_property_read_bool ( np , "m25p,fast-read" ))
2928
2928
params -> hwcaps .mask |= SNOR_HWCAPS_READ_FAST ;
2929
2929
2930
- /* Mask out Fast Read if not requested at DT instantiation. */
2931
- if (np && !of_property_read_bool (np , "m25p,fast-read" ))
2932
- params -> hwcaps .mask &= ~SNOR_HWCAPS_READ_FAST ;
2933
- }
2934
-
2935
2930
/* (Fast) Read settings. */
2936
2931
params -> hwcaps .mask |= SNOR_HWCAPS_READ ;
2937
2932
spi_nor_set_read_settings (& params -> reads [SNOR_CMD_READ ],
Original file line number Diff line number Diff line change @@ -470,7 +470,6 @@ struct spi_nor_id {
470
470
* Usually these will power-up in a write-protected
471
471
* state.
472
472
* SPI_NOR_NO_ERASE: no erase command needed.
473
- * SPI_NOR_NO_FR: can't do fastread.
474
473
* SPI_NOR_QUAD_PP: flash supports Quad Input Page Program.
475
474
* SPI_NOR_RWW: flash supports reads while write.
476
475
*
@@ -519,7 +518,6 @@ struct flash_info {
519
518
#define SPI_NOR_BP3_SR_BIT6 BIT(4)
520
519
#define SPI_NOR_SWP_IS_VOLATILE BIT(5)
521
520
#define SPI_NOR_NO_ERASE BIT(6)
522
- #define SPI_NOR_NO_FR BIT(7)
523
521
#define SPI_NOR_QUAD_PP BIT(8)
524
522
#define SPI_NOR_RWW BIT(9)
525
523
Original file line number Diff line number Diff line change @@ -14,28 +14,39 @@ static const struct flash_info everspin_nor_parts[] = {
14
14
.size = SZ_16K ,
15
15
.sector_size = SZ_16K ,
16
16
.addr_nbytes = 2 ,
17
- .flags = SPI_NOR_NO_ERASE | SPI_NOR_NO_FR ,
17
+ .flags = SPI_NOR_NO_ERASE ,
18
18
}, {
19
19
.name = "mr25h256" ,
20
20
.size = SZ_32K ,
21
21
.sector_size = SZ_32K ,
22
22
.addr_nbytes = 2 ,
23
- .flags = SPI_NOR_NO_ERASE | SPI_NOR_NO_FR ,
23
+ .flags = SPI_NOR_NO_ERASE ,
24
24
}, {
25
25
.name = "mr25h10" ,
26
26
.size = SZ_128K ,
27
27
.sector_size = SZ_128K ,
28
- .flags = SPI_NOR_NO_ERASE | SPI_NOR_NO_FR ,
28
+ .flags = SPI_NOR_NO_ERASE ,
29
29
}, {
30
30
.name = "mr25h40" ,
31
31
.size = SZ_512K ,
32
32
.sector_size = SZ_512K ,
33
- .flags = SPI_NOR_NO_ERASE | SPI_NOR_NO_FR ,
33
+ .flags = SPI_NOR_NO_ERASE ,
34
34
}
35
35
};
36
36
37
+ static void everspin_nor_default_init (struct spi_nor * nor )
38
+ {
39
+ /* Everspin FRAMs don't support the fast read opcode. */
40
+ nor -> params -> hwcaps .mask &= ~SNOR_HWCAPS_READ_FAST ;
41
+ }
42
+
43
+ static const struct spi_nor_fixups everspin_nor_fixups = {
44
+ .default_init = everspin_nor_default_init ,
45
+ };
46
+
37
47
const struct spi_nor_manufacturer spi_nor_everspin = {
38
48
.name = "everspin" ,
39
49
.parts = everspin_nor_parts ,
40
50
.nparts = ARRAY_SIZE (everspin_nor_parts ),
51
+ .fixups = & everspin_nor_fixups ,
41
52
};
You can’t perform that action at this time.
0 commit comments