sfc: Clean up waits for flash/EEPROM operations
Make falcon_spi_wait() ignore the write timer - it is only relevant to write commands, it only works for the device that contains VPD, and it might not be initialised properly at all. Rename falcon_spi_fast_wait() to falcon_spi_wait_write(), reflecting its use, and make it wait up to 10 ms (not 1 ms) since buffered writes to EEPROM may take this long to complete. Make both wait functions sleep instead of busy-waiting. Replace wait for command completion at top of falcon_spi_cmd() with a single poll; no command should be running when the function starts. Correct some comments. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1ab00629f0
commit
be4ea89c8d
3 changed files with 39 additions and 23 deletions
|
@ -69,7 +69,7 @@ struct efx_spi_device {
|
|||
|
||||
int falcon_spi_cmd(const struct efx_spi_device *spi, unsigned int command,
|
||||
int address, const void* in, void *out, size_t len);
|
||||
int falcon_spi_fast_wait(const struct efx_spi_device *spi);
|
||||
int falcon_spi_wait_write(const struct efx_spi_device *spi);
|
||||
int falcon_spi_read(const struct efx_spi_device *spi, loff_t start,
|
||||
size_t len, size_t *retlen, u8 *buffer);
|
||||
int falcon_spi_write(const struct efx_spi_device *spi, loff_t start,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue