1. 21 Jul, 2020 1 commit
    • Serge Semin's avatar
      spi: dw-dma: Fix Tx DMA channel working too fast · affe93dd
      Serge Semin authored
      It turns out having a Rx DMA channel serviced with higher priority than
      a Tx DMA channel is not enough to provide a well balanced DMA-based SPI
      transfer interface. There might still be moments when the Tx DMA channel
      is occasionally handled faster than the Rx DMA channel. That in its turn
      will eventually cause the SPI Rx FIFO overflow if SPI bus speed is high
      enough to fill the SPI Rx FIFO in before it's cleared by the Rx DMA
      channel. That's why having the DMA-based SPI Tx interface too optimized
      is the errors prone, so the commit 0b2b6651 ("spi: dw: Use DMA max
      burst to set the request thresholds") though being perfectly normal from
      the standard functionality point of view implicitly introduced the problem
      described above. In order to fix that the Tx DMA activity is intentionally
      slowed down by limiting the SPI Tx FIFO depth with a value twice bigger
      than the Tx burst length calculated earlier by the
      dw_spi_dma_maxburst_init() method.
      
      Fixes: 0b2b6651 ("spi: dw: Use DMA max burst to set the request thresholds")
      Signed-off-by: default avatarSerge Semin <Sergey.Semin@baikalelectronics.ru>
      Reviewed-by: default avatarAndy Shevchenko <andy.shevchenko@gmail.com>
      Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
      Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
      Cc: Feng Tang <feng.tang@intel.com>
      Link: https://lore.kernel.org/r/20200721203951.2159-1-Sergey.Semin@baikalelectronics.ruSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      affe93dd
  2. 06 Jul, 2020 1 commit
  3. 01 Jul, 2020 1 commit
  4. 25 Jun, 2020 1 commit
  5. 22 Jun, 2020 4 commits
  6. 18 Jun, 2020 2 commits
  7. 17 Jun, 2020 1 commit
  8. 15 Jun, 2020 1 commit
  9. 11 Jun, 2020 3 commits
    • Krzysztof Kozlowski's avatar
      spi: spi-fsl-dspi: Free DMA memory with matching function · 03fe7aaf
      Krzysztof Kozlowski authored
      Driver allocates DMA memory with dma_alloc_coherent() but frees it with
      dma_unmap_single().
      
      This causes DMA warning during system shutdown (with DMA debugging) on
      Toradex Colibri VF50 module:
      
          WARNING: CPU: 0 PID: 1 at ../kernel/dma/debug.c:1036 check_unmap+0x3fc/0xb04
          DMA-API: fsl-edma 40098000.dma-controller: device driver frees DMA memory with wrong function
            [device address=0x0000000087040000] [size=8 bytes] [mapped as coherent] [unmapped as single]
          Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree)
            (unwind_backtrace) from [<8010bb34>] (show_stack+0x10/0x14)
            (show_stack) from [<8011ced8>] (__warn+0xf0/0x108)
            (__warn) from [<8011cf64>] (warn_slowpath_fmt+0x74/0xb8)
            (warn_slowpath_fmt) from [<8017d170>] (check_unmap+0x3fc/0xb04)
            (check_unmap) from [<8017d900>] (debug_dma_unmap_page+0x88/0x90)
            (debug_dma_unmap_page) from [<80601d68>] (dspi_release_dma+0x88/0x110)
            (dspi_release_dma) from [<80601e4c>] (dspi_shutdown+0x5c/0x80)
            (dspi_shutdown) from [<805845f8>] (device_shutdown+0x17c/0x220)
            (device_shutdown) from [<80143ef8>] (kernel_restart+0xc/0x50)
            (kernel_restart) from [<801441cc>] (__do_sys_reboot+0x18c/0x210)
            (__do_sys_reboot) from [<80100060>] (ret_fast_syscall+0x0/0x28)
          DMA-API: Mapped at:
           dma_alloc_attrs+0xa4/0x130
           dspi_probe+0x568/0x7b4
           platform_drv_probe+0x6c/0xa4
           really_probe+0x208/0x348
           driver_probe_device+0x5c/0xb4
      
      Fixes: 90ba3703 ("spi: spi-fsl-dspi: Add DMA support for Vybrid")
      Signed-off-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
      Acked-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
      Cc: <stable@vger.kernel.org>
      Link: https://lore.kernel.org/r/1591803717-11218-1-git-send-email-krzk@kernel.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      03fe7aaf
    • Qing Zhang's avatar
      spi: tools: Add macro definitions to fix build errors · 7bb64402
      Qing Zhang authored
      Add SPI_TX_OCTAL and SPI_RX_OCTAL to fix the following build errors:
      
      CC       spidev_test.o
      spidev_test.c: In function ‘transfer’:
      spidev_test.c:131:13: error: ‘SPI_TX_OCTAL’ undeclared (first use in this function)
        if (mode & SPI_TX_OCTAL)
                   ^
      spidev_test.c:131:13: note: each undeclared identifier is reported only once for each function it appears in
      spidev_test.c:137:13: error: ‘SPI_RX_OCTAL’ undeclared (first use in this function)
        if (mode & SPI_RX_OCTAL)
                   ^
      spidev_test.c: In function ‘parse_opts’:
      spidev_test.c:290:12: error: ‘SPI_TX_OCTAL’ undeclared (first use in this function)
          mode |= SPI_TX_OCTAL;
                  ^
      spidev_test.c:308:12: error: ‘SPI_RX_OCTAL’ undeclared (first use in this function)
          mode |= SPI_RX_OCTAL;
                  ^
        LD       spidev_test-in.o
      ld: cannot find spidev_test.o: No such file or directory
      
      Additionally, maybe SPI_CS_WORD and SPI_3WIRE_HIZ will be used in the future,
      so add them too.
      
      Fixes: 896fa735 ("spi: spidev_test: Add support for Octal mode data transfers")
      Signed-off-by: default avatarQing Zhang <zhangqing@loongson.cn>
      Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Link: https://lore.kernel.org/r/1591880212-13479-2-git-send-email-zhangqing@loongson.cnSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      7bb64402
    • Qing Zhang's avatar
      spi: tools: Make default_tx/rx and input_tx static · bd207791
      Qing Zhang authored
      Fix the following sparse warning:
      
      ./spidev_test.c:50:9: warning: symbol 'default_tx' was not declared. Should it be static?
      ./spidev_test.c:59:9: warning: symbol 'default_rx' was not declared. Should it be static?
      ./spidev_test.c:60:6: warning: symbol 'input_tx' was not declared. Should it be static?
      Signed-off-by: default avatarQing Zhang <zhangqing@loongson.cn>
      Link: https://lore.kernel.org/r/1591880212-13479-1-git-send-email-zhangqing@loongson.cnSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      bd207791
  10. 10 Jun, 2020 1 commit
  11. 09 Jun, 2020 1 commit
  12. 08 Jun, 2020 1 commit
  13. 02 Jun, 2020 1 commit
  14. 29 May, 2020 21 commits