1. 15 Jun, 2020 1 commit
  2. 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
  3. 10 Jun, 2020 1 commit
  4. 09 Jun, 2020 1 commit
  5. 08 Jun, 2020 1 commit
  6. 02 Jun, 2020 1 commit
  7. 29 May, 2020 25 commits
  8. 28 May, 2020 5 commits
    • Mark Brown's avatar
      Merge series "add ecspi ERR009165 for i.mx6/7 soc family" from Robin Gong <yibin.gong@nxp.com>: · b7d73cb6
      Mark Brown authored
      There is ecspi ERR009165 on i.mx6/7 soc family, which cause FIFO
      transfer to be send twice in DMA mode. Please get more information from:
      https://www.nxp.com/docs/en/errata/IMX6DQCE.pdf. The workaround is adding
      new sdma ram script which works in XCH  mode as PIO inside sdma instead
      of SMC mode, meanwhile, 'TX_THRESHOLD' should be 0. The issue should be
      exist on all legacy i.mx6/7 soc family before i.mx6ul.
      NXP fix this design issue from i.mx6ul, so newer chips including i.mx6ul/
      6ull/6sll do not need this workaroud anymore. All other i.mx6/7/8 chips
      still need this workaroud. This patch set add new 'fsl,imx6ul-ecspi'
      for ecspi driver and 'ecspi_fixed' in sdma driver to choose if need errata
      or not.
      The first two reverted patches should be the same issue, though, it
      seems 'fixed' by changing to other shp script. Hope Sean or Sascha could
      have the chance to test this patch set if could fix their issues.
      Besides, enable sdma support for i.mx8mm/8mq and fix ecspi1 not work
      on i.mx8mm because the event id is zero.
      
      PS:
         Please get sdma firmware from below linux-firmware and copy it to your
      local rootfs /lib/firmware/imx/sdma.
      https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/imx/sdma
      
      v2:
        1.Add commit log for reverted patches.
        2.Add comment for 'ecspi_fixed' in sdma driver.
        3.Add 'fsl,imx6sll-ecspi' compatible instead of 'fsl,imx6ul-ecspi'
          rather than remove.
      v3:
        1.Confirm with design team make sure ERR009165 fixed on i.mx6ul/i.mx6ull
          /i.mx6sll, not fixed on i.mx8m/8mm and other i.mx6/7 legacy chips.
          Correct dts related dts patch in v2.
        2.Clean eratta information in binding doc and new 'tx_glitch_fixed' flag
          in spi-imx driver to state ERR009165 fixed or not.
        3.Enlarge burst size to fifo size for tx since tx_wml set to 0 in the
          errata workaroud, thus improve performance as possible.
      v4:
        1.Add Ack tag from Mark and Vinod
        2.Remove checking 'event_id1' zero as 'event_id0'.
      v5:
        1.Add the last patch for compatible with the current uart driver which
          using rom script, so both uart ram script and rom script supported
          in latest firmware, by default uart rom script used. UART driver
          will be broken without this patch.
      v6:
        1.Resend after rebase the latest next branch.
        2.Remove below No.13~No.15 patches of v5 because they were mergered.
        	ARM: dts: imx6ul: add dma support on ecspi
        	ARM: dts: imx6sll: correct sdma compatible
        	arm64: defconfig: Enable SDMA on i.mx8mq/8mm
        3.Revert "dmaengine: imx-sdma: fix context cache" since
          'context_loaded' removed.
      v7:
        1.Put the last patch 13/13 'Revert "dmaengine: imx-sdma: fix context
          cache"' to the ahead of 03/13 'Revert "dmaengine: imx-sdma: refine
          to load context only once" so that no building waring during comes out
          during bisect.
        2.Address Sascha's comments, including eliminating any i.mx6sx in this
          series, adding new 'is_imx6ul_ecspi()' instead imx in imx51 and taking
          care SMC bit for PIO.
        3.Add back missing 'Reviewed-by' tag on 08/15(v5):09/13(v7)
         'spi: imx: add new i.mx6ul compatible name in binding doc'
      v8:
        1.remove 0003-Revert-dmaengine-imx-sdma-fix-context-cache.patch and merge
          it into 04/13 of v7
        2.add 0005-spi-imx-fallback-to-PIO-if-dma-setup-failure.patch for no any
          ecspi function broken even if sdma firmware not updated.
        3.merge 'tx.dst_maxburst' changes in the two continous patches into one
          patch to avoid confusion.
        4.fix typo 'duplicated'.
      
      Robin Gong (13):
        Revert "ARM: dts: imx6q: Use correct SDMA script for SPI5 core"
        Revert "ARM: dts: imx6: Use correct SDMA script for SPI cores"
        Revert "dmaengine: imx-sdma: refine to load context only once"
        dmaengine: imx-sdma: remove duplicated sdma_load_context
        spi: imx: fallback to PIO if dma setup failure
        dmaengine: imx-sdma: add mcu_2_ecspi script
        spi: imx: fix ERR009165
        spi: imx: remove ERR009165 workaround on i.mx6ul
        spi: imx: add new i.mx6ul compatible name in binding doc
        dmaengine: imx-sdma: remove ERR009165 on i.mx6ul
        dma: imx-sdma: add i.mx6ul compatible name
        dmaengine: imx-sdma: fix ecspi1 rx dma not work on i.mx8mm
        dmaengine: imx-sdma: add uart rom script
      
       .../devicetree/bindings/dma/fsl-imx-sdma.txt       |  1 +
       .../devicetree/bindings/spi/fsl-imx-cspi.txt       |  1 +
       arch/arm/boot/dts/imx6q.dtsi                       |  2 +-
       arch/arm/boot/dts/imx6qdl.dtsi                     |  8 +-
       drivers/dma/imx-sdma.c                             | 67 ++++++++++------
       drivers/spi/spi-imx.c                              | 92 +++++++++++++++++++---
       include/linux/platform_data/dma-imx-sdma.h         |  8 +-
       7 files changed, 135 insertions(+), 44 deletions(-)
      
      --
      2.7.4
      
      _______________________________________________
      linux-arm-kernel mailing list
      linux-arm-kernel@lists.infradead.org
      http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
      b7d73cb6
    • Dinghao Liu's avatar
      spi: tegra20-sflash: Fix runtime PM imbalance on error · 117858bd
      Dinghao Liu authored
      pm_runtime_get_sync() increments the runtime PM usage counter even
      when it returns an error code. Thus a pairing decrement is needed on
      the error handling path to keep the counter balanced.
      Signed-off-by: default avatarDinghao Liu <dinghao.liu@zju.edu.cn>
      Link: https://lore.kernel.org/r/20200523124758.28604-1-dinghao.liu@zju.edu.cnSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      117858bd
    • Dinghao Liu's avatar
      spi: tegra20-slink: Fix runtime PM imbalance on error · faedcc17
      Dinghao Liu authored
      pm_runtime_get_sync() increments the runtime PM usage counter even
      when it returns an error code. Thus a pairing decrement is needed on
      the error handling path to keep the counter balanced.
      Signed-off-by: default avatarDinghao Liu <dinghao.liu@zju.edu.cn>
      Link: https://lore.kernel.org/r/20200523122909.25247-1-dinghao.liu@zju.edu.cnSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      faedcc17
    • Dinghao Liu's avatar
      spi: tegra114: Fix runtime PM imbalance on error · cddc36f3
      Dinghao Liu authored
      pm_runtime_get_sync() increments the runtime PM usage counter even
      when it returns an error code. Thus a pairing decrement is needed on
      the error handling path to keep the counter balanced.
      Signed-off-by: default avatarDinghao Liu <dinghao.liu@zju.edu.cn>
      Link: https://lore.kernel.org/r/20200523125704.30300-1-dinghao.liu@zju.edu.cnSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      cddc36f3
    • Robin Gong's avatar
      spi: imx: fallback to PIO if dma setup failure · bcd8e776
      Robin Gong authored
      Fallback to PIO in case dma setup failed. For example, sdma firmware not
      updated but ERR009165 workaroud added in kernel.
      Signed-off-by: default avatarRobin Gong <yibin.gong@nxp.com>
      Acked-by: default avatarSascha Hauer <s.hauer@pengutronix.de>
      Link: https://lore.kernel.org/r/1590006865-20900-6-git-send-email-yibin.gong@nxp.comSigned-off-by: default avatarMark Brown <broonie@kernel.org>
      bcd8e776
  9. 26 May, 2020 2 commits