Skip to content
Snippets Groups Projects
Forked from Reform / reform-boundary-uboot
Source project has a limited visibility.
  • Przemyslaw Marczak's avatar
    56b34bc6
    mmc: sdhci: Avoid commands errors by simple timeout adaptation. · 56b34bc6
    Przemyslaw Marczak authored
    
    Old command timeout value was too small and it caused I/O errors which
    led to uncompleted read/write/erase operations and filesystem errors.
    Timeout adaptation fixes this issue.
    
    Changes in sdhci_send_command() function:
    - change timeout variable to static
    - increase default command timeout to 100 ms
    - add definition of max command timeout value,
      which can be redefined in each board config file
    - wait for card ready state for max defined time
      if it doesn't exceed defined maximum or return COMM_ERR
    
    Once successfully increased timeout value will be used in next function
    call. This fix was tested on Goni, Trats, Trats2 boards by testing UMS
    on MMC storage.
    
    Changes v2:
    - move global variable cmd_timeout into function sdhci_send_command()
    - change condition "==" to ">=" when comparing time with timeout
    - print information about timeout increasing and card busy timeout
    
    Signed-off-by: default avatarPrzemyslaw Marczak <p.marczak@samsung.com>
    Cc: Pantelis Antoniou <panto@antoniou-consulting.com>
    56b34bc6
    History
    mmc: sdhci: Avoid commands errors by simple timeout adaptation.
    Przemyslaw Marczak authored
    
    Old command timeout value was too small and it caused I/O errors which
    led to uncompleted read/write/erase operations and filesystem errors.
    Timeout adaptation fixes this issue.
    
    Changes in sdhci_send_command() function:
    - change timeout variable to static
    - increase default command timeout to 100 ms
    - add definition of max command timeout value,
      which can be redefined in each board config file
    - wait for card ready state for max defined time
      if it doesn't exceed defined maximum or return COMM_ERR
    
    Once successfully increased timeout value will be used in next function
    call. This fix was tested on Goni, Trats, Trats2 boards by testing UMS
    on MMC storage.
    
    Changes v2:
    - move global variable cmd_timeout into function sdhci_send_command()
    - change condition "==" to ">=" when comparing time with timeout
    - print information about timeout increasing and card busy timeout
    
    Signed-off-by: default avatarPrzemyslaw Marczak <p.marczak@samsung.com>
    Cc: Pantelis Antoniou <panto@antoniou-consulting.com>