1. 17 Dec, 2018 1 commit
  2. 15 Dec, 2018 1 commit
    • Miquel Raynal's avatar
      mtd: rawnand: marvell: prevent timeouts on a loaded machine · cafb56dd
      Miquel Raynal authored
      marvell_nfc_wait_op() waits for completion during 'timeout_ms'
      milliseconds before throwing an error. While the logic is fine, the
      value of 'timeout_ms' is given by the core and actually correspond to
      the maximum time the NAND chip will take to complete the
      operation. Assuming there is no overhead in the propagation of the
      interrupt signal to the the NAND controller (through the Ready/Busy
      line), this delay does not take into account the latency of the
      operating system. For instance, for a page write, the delay given by
      the core is rounded up to 1ms. Hence, when the machine is over loaded,
      there is chances that this timeout will be reached.
      
      There are two ways to solve this issue that are not incompatible:
      1/ Enlarge the timeout value (if so, how much?).
      2/ Check after the waiting method if we did not miss any interrupt
      because of the OS latency (an interrupt is still pending). In this
      case, we assume the operation exited successfully.
      
      We choose the second approach that is a must in all cases, with the
      possibility to also modify the timeout value to be, e.g. at least 1
      second in all cases.
      
      Fixes: 02f26ecf ("mtd: nand: add reworked Marvell NAND controller driver")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
      Reviewed-by: default avatarBoris Brezillon <boris.brezillon@bootlin.com>
      cafb56dd
  3. 14 Dec, 2018 2 commits
  4. 07 Dec, 2018 36 commits