1. 11 Aug, 2022 1 commit
    • Neil Armstrong's avatar
      spi: meson-spicc: add local pow2 clock ops to preserve rate between messages · 09992025
      Neil Armstrong authored
      At the end of a message, the HW gets a reset in meson_spicc_unprepare_transfer(),
      this resets the SPICC_CONREG register and notably the value set by the
      Common Clock Framework.
      
      This is problematic because:
      - the register value CCF can be different from the corresponding CCF cached rate
      - CCF is allowed to change the clock rate whenever the HW state
      
      This introduces:
      - local pow2 clock ops checking the HW state before allowing a clock operation
      - separation of legacy pow2 clock patch and new enhanced clock path
      - SPICC_CONREG datarate value is now value kepts across messages
      
      It has been checked that:
      - SPICC_CONREG datarate value is kept across messages
      - CCF is only allowed to change the SPICC_CONREG datarate value when busy
      - SPICC_CONREG datarate value is correct for each transfer
      
      This didn't appear before commit 3e0cf4d3 ("spi: meson-spicc: add a linear clock divider support")
      because we recalculated and wrote the rate for each xfer.
      
      Fixes: 3e0cf4d3 ("spi: meson-spicc: add a linear clock divider support")
      Reported-by: default avatarDa Xue <da@libre.computer>
      Signed-off-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
      Link: https://lore.kernel.org/r/20220811134445.678446-1-narmstrong@baylibre.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      09992025
  2. 05 Aug, 2022 2 commits
  3. 29 Jul, 2022 4 commits
  4. 26 Jul, 2022 2 commits
  5. 25 Jul, 2022 1 commit
  6. 22 Jul, 2022 1 commit
  7. 20 Jul, 2022 5 commits
  8. 18 Jul, 2022 3 commits
  9. 14 Jul, 2022 1 commit
  10. 13 Jul, 2022 11 commits
  11. 11 Jul, 2022 3 commits
  12. 06 Jul, 2022 6 commits