Skip to content
  1. Jul 20, 2021
  2. Jul 19, 2021
    • Marek Vasut's avatar
      spi: cadence: Correct initialisation of runtime PM again · 56912da7
      Marek Vasut authored
      The original implementation of RPM handling in probe() was mostly
      correct, except it failed to call pm_runtime_get_*() to activate the
      hardware. The subsequent fix, 734882a8 ("spi: cadence: Correct
      initialisation of runtime PM"), breaks the implementation further,
      to the point where the system using this hard IP on ZynqMP hangs on
      boot, because it accesses hardware which is gated off.
      
      Undo 734882a8 ("spi: cadence: Correct initialisation of runtime
      PM") and instead add missing pm_runtime_get_noresume() and move the
      RPM disabling all the way to the end of probe(). That makes ZynqMP
      not hang on boot yet again.
      
      Fixes: 734882a8
      
       ("spi: cadence: Correct initialisation of runtime PM")
      Signed-off-by: default avatarMarek Vasut <marex@denx.de>
      Cc: Charles Keepax <ckeepax@opensource.cirrus.com>
      Cc: Mark Brown <broonie@kernel.org>
      Link: https://lore.kernel.org/r/20210716182133.218640-1-marex@denx.de
      
      
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      56912da7
  3. Jul 17, 2021
    • Apurva Nandan's avatar
      spi: cadence-quadspi: Disable Auto-HW polling · 9cb2ff11
      Apurva Nandan authored
      
      
      cadence-quadspi has a builtin Auto-HW polling funtionality using which
      it keep tracks of completion of write operations. When Auto-HW polling
      is enabled, it automatically initiates status register read operation,
      until the flash clears its busy bit.
      
      cadence-quadspi controller doesn't allow an address phase when
      auto-polling the busy bit on the status register. Unlike SPI NOR
      flashes, SPI NAND flashes do require the address of status register
      when polling the busy bit using the read register operation. As
      Auto-HW polling is enabled by default, cadence-quadspi returns a
      timeout for every write operation after an indefinite amount of
      polling on SPI NAND flashes.
      
      Disable Auto-HW polling completely as the spi-nor core, spinand core,
      etc. take care of polling the busy bit on their own.
      
      Signed-off-by: default avatarApurva Nandan <a-nandan@ti.com>
      Link: https://lore.kernel.org/r/20210713125743.1540-2-a-nandan@ti.com
      
      
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      9cb2ff11
  4. Jul 16, 2021
  5. Jul 14, 2021
  6. Jul 12, 2021
  7. Jul 08, 2021
  8. Jul 07, 2021
  9. Jun 30, 2021
  10. Jun 25, 2021
  11. Jun 23, 2021
  12. Jun 22, 2021
  13. Jun 17, 2021
  14. Jun 15, 2021
  15. Jun 14, 2021
  16. Jun 09, 2021
  17. Jun 07, 2021
  18. Jun 04, 2021
    • Patrice Chotard's avatar
      spi: stm32-qspi: Fix W=1 build warning · 6829222b
      Patrice Chotard authored
      
      
      Fix the following compilation warning using W=1 build:
      arm-linux-gnueabi-ld: drivers/spi/spi-stm32-qspi.o: in function `stm32_qspi_poll_status':
      
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Signed-off-by: default avatarPatrice Chotard <patrice.chotard@foss.st.com>
      Link: https://lore.kernel.org/r/20210604075009.25914-1-patrice.chotard@foss.st.com
      
      
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      6829222b
    • Mark Brown's avatar
      Merge series "MTD: spinand: Add spi_mem_poll_status() support" from <patrice.chotard@foss.st.com> · 627bad89
      Mark Brown authored
      Patrice Chotard <patrice.chotard@foss.st.com>:
      
      From: Patrice Chotard <patrice.chotard@foss.st.com>
      
      This series adds support for the spi_mem_poll_status() spinand
      interface.
      Some QSPI controllers allows to poll automatically memory
      status during operations (erase, read or write). This allows to
      offload the CPU for this task.
      STM32 QSPI is supporting this feature, driver update are also
      part of this series.
      
      Changes in v5:
        - Update spi_mem_read_status() description.
        - Update poll_status() description API by indicating that data buffer is
          filled with last status value.
        - Update timeout parameter by timeout_ms in spi_mem_poll_status() prototype.
        - Remove parenthesys arount -EINVAL in spi_mem_poll_status().
        - Add missing spi_mem_supports_op() call in stm32_qspi_poll_status().
        - Add Boris Reviewed-by for patch 1 and 2.
      
      Changes in v4:
        - Remove init_completion() from spi_mem_probe() added in v2.
        - Add missing static for spi_mem_read_status().
        - Check if operation in spi_mem_poll_status() is a READ.
        - Update patch 2 commit message.
        - Add comment which explains how delays has been calculated.
        - Rename SPINAND_STATUS_TIMEOUT_MS to SPINAND_WAITRDY_TIMEOUT_MS.
      
      Chnages in v3:
        - Add spi_mem_read_status() which allows to read 8 or 16 bits status.
        - Add initial_delay_us and polling_delay_us parameters to spi_mem_poll_status().
          and also to poll_status() callback.
        - Move spi_mem_supports_op() in SW-based polling case.
        - Add delay before invoquing read_poll_timeout().
        - Remove the reinit/wait_for_completion() added in v2.
        - Add initial_delay_us and polling_delay_us parameters to spinand_wait().
        - Add SPINAND_READ/WRITE/ERASE/RESET_INITIAL_DELAY_US and
          SPINAND_READ/WRITE/ERASE/RESET_POLL_DELAY_US defines.
        - Remove spi_mem_finalize_op() API added in v2.
      
      Changes in v2:
        - Indicates the spi_mem_poll_status() timeout unit
        - Use 2-byte wide status register
        - Add spi_mem_supports_op() call in spi_mem_poll_status()
        - Add completion management in spi_mem_poll_status()
        - Add offload/non-offload case management in spi_mem_poll_status()
        - Optimize the non-offload case by using read_poll_timeout()
        - mask and match stm32_qspi_poll_status()'s parameters are 2-byte wide
        - Make usage of new spi_mem_finalize_op() API in
          stm32_qspi_wait_poll_status()
      
      Patrice Chotard (3):
        spi: spi-mem: add automatic poll status functions
        mtd: spinand: use the spi-mem poll status APIs
        spi: stm32-qspi: add automatic poll status feature
      
       drivers/mtd/nand/spi/core.c  | 45 +++++++++++++------
       drivers/spi/spi-mem.c        | 86 ++++++++++++++++++++++++++++++++++++
       drivers/spi/spi-stm32-qspi.c | 86 ++++++++++++++++++++++++++++++++----
       include/linux/mtd/spinand.h  | 22 +++++++++
       include/linux/spi/spi-mem.h  | 16 +++++++
       5 files changed, 234 insertions(+), 21 deletions(-)
      
      base-commit: 6efb943b
      
      --
      2.17.1
      
      _______________________________________________
      linux-arm-kernel mailing list
      linux-arm-kernel@lists.infradead.org
      http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
      627bad89
  19. Jun 03, 2021