mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2026-02-22 20:24:27 +01:00
sf: Simplify fastest read cmd code
Fastest read command code look for fastest read command
taking inputs from spi->mode_rx and flags from param table
and controller mode_rx is always been a priority.
Since mode_rx is always set from controller side this optimized
code doesn't require much and this code required exctra overhead like
1) Maintain e_rx_cmd in param table
2) Maintain mode_rx in spi_slave {}
Hence removed this code, and look for read command from normal
spi->mode from spi_slave{} and params->flags
Cc: Simon Glass <sjg@chromium.org>
Cc: Bin Meng <bmeng.cn@gmail.com>
Cc: Michal Simek <michal.simek@xilinx.com>
Cc: Siva Durga Prasad Paladugu <sivadur@xilinx.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Mugunthan V N <mugunthanvnm@ti.com>
Signed-off-by: Jagan Teki <jteki@openedev.com>
This commit is contained in:
parent
28b69f6488
commit
edd35f712e
2 changed files with 14 additions and 18 deletions
|
|
@ -46,6 +46,10 @@ enum {
|
|||
E_FSR = BIT(2),
|
||||
SST_WR = BIT(3),
|
||||
WR_QPP = BIT(4),
|
||||
RD_QUAD = BIT(5),
|
||||
RD_DUAL = BIT(6),
|
||||
RD_QUADIO = BIT(7),
|
||||
RD_DUALIO = BIT(8),
|
||||
};
|
||||
|
||||
enum spi_nor_option_flags {
|
||||
|
|
|
|||
|
|
@ -1013,15 +1013,8 @@ int spi_flash_scan(struct spi_flash *flash)
|
|||
struct spi_slave *spi = flash->spi;
|
||||
const struct spi_flash_params *params;
|
||||
u16 jedec, ext_jedec;
|
||||
u8 cmd, idcode[5];
|
||||
u8 idcode[5];
|
||||
int ret;
|
||||
static u8 spi_read_cmds_array[] = {
|
||||
CMD_READ_ARRAY_SLOW,
|
||||
CMD_READ_ARRAY_FAST,
|
||||
CMD_READ_DUAL_OUTPUT_FAST,
|
||||
CMD_READ_QUAD_OUTPUT_FAST,
|
||||
CMD_READ_DUAL_IO_FAST,
|
||||
CMD_READ_QUAD_IO_FAST };
|
||||
|
||||
/* Read the ID codes */
|
||||
ret = spi_flash_cmd(spi, CMD_READ_ID, idcode, sizeof(idcode));
|
||||
|
|
@ -1177,17 +1170,16 @@ int spi_flash_scan(struct spi_flash *flash)
|
|||
/* Now erase size becomes valid sector size */
|
||||
flash->sector_size = flash->erase_size;
|
||||
|
||||
/* Look for the fastest read cmd */
|
||||
cmd = fls(params->e_rd_cmd & spi->mode_rx);
|
||||
if (cmd) {
|
||||
cmd = spi_read_cmds_array[cmd - 1];
|
||||
flash->read_cmd = cmd;
|
||||
} else {
|
||||
/* Go for default supported read cmd */
|
||||
flash->read_cmd = CMD_READ_ARRAY_FAST;
|
||||
}
|
||||
/* Look for read commands */
|
||||
flash->read_cmd = CMD_READ_ARRAY_FAST;
|
||||
if (spi->mode_rx & SPI_RX_SLOW)
|
||||
flash->read_cmd = CMD_READ_ARRAY_SLOW;
|
||||
else if (spi->mode_rx & SPI_RX_QUAD && params->flags & RD_QUAD)
|
||||
flash->read_cmd = CMD_READ_QUAD_OUTPUT_FAST;
|
||||
else if (spi->mode_rx & SPI_RX_DUAL && params->flags & RD_DUAL)
|
||||
flash->read_cmd = CMD_READ_DUAL_OUTPUT_FAST;
|
||||
|
||||
/* Not require to look for fastest only two write cmds yet */
|
||||
/* Look for write commands */
|
||||
if (params->flags & WR_QPP && spi->mode & SPI_TX_QUAD)
|
||||
flash->write_cmd = CMD_QUAD_PAGE_PROGRAM;
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue