1. 02 Aug, 2018 2 commits
  2. 01 Aug, 2018 4 commits
  3. 31 Jul, 2018 1 commit
  4. 30 Jul, 2018 4 commits
  5. 26 Jul, 2018 1 commit
  6. 24 Jul, 2018 6 commits
  7. 18 Jul, 2018 3 commits
  8. 17 Jul, 2018 2 commits
  9. 02 Jul, 2018 1 commit
    • Krzysztof Kozlowski's avatar
      spi: spi-fsl-dspi: Fix imprecise abort on VF500 during probe · d8ffee2f
      Krzysztof Kozlowski authored
      Registers of DSPI should not be accessed before enabling its clock.  On
      Toradex Colibri VF50 on Iris carrier board this could be seen during
      bootup as imprecise abort:
      
          Unhandled fault: imprecise external abort (0x1c06) at 0x00000000
          Internal error: : 1c06 [#1] ARM
          Modules linked in:
          CPU: 0 PID: 1 Comm: swapper Not tainted 4.14.39-dirty #97
          Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree)
          Backtrace:
          [<804166a8>] (regmap_write) from [<80466b5c>] (dspi_probe+0x1f0/0x8dc)
          [<8046696c>] (dspi_probe) from [<8040107c>] (platform_drv_probe+0x54/0xb8)
          [<80401028>] (platform_drv_probe) from [<803ff53c>] (driver_probe_device+0x280/0x2f8)
          [<803ff2bc>] (driver_probe_device) from [<803ff674>] (__driver_attach+0xc0/0xc4)
          [<803ff5b4>] (__driver_attach) from [<803fd818>] (bus_for_each_dev+0x70/0xa4)
          [<803fd7a8>] (bus_for_each_dev) from [<803fee74>] (driver_attach+0x24/0x28)
          [<803fee50>] (driver_attach) from [<803fe980>] (bus_add_driver+0x1a0/0x218)
          [<803fe7e0>] (bus_add_driver) from [<803fffe8>] (driver_register+0x80/0x100)
          [<803fff68>] (driver_register) from [<80400fdc>] (__platform_driver_register+0x48/0x50)
          [<80400f94>] (__platform_driver_register) from [<8091cf7c>] (fsl_dspi_driver_init+0x1c/0x20)
          [<8091cf60>] (fsl_dspi_driver_init) from [<8010195c>] (do_one_initcall+0x4c/0x174)
          [<80101910>] (do_one_initcall) from [<80900e8c>] (kernel_init_freeable+0x144/0x1d8)
          [<80900d48>] (kernel_init_freeable) from [<805ff6a8>] (kernel_init+0x10/0x114)
          [<805ff698>] (kernel_init) from [<80107be8>] (ret_from_fork+0x14/0x2c)
      
      Cc: <stable@vger.kernel.org>
      Fixes: 5ee67b58 ("spi: dspi: clear SPI_SR before enable interrupt")
      Signed-off-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      d8ffee2f
  10. 28 Jun, 2018 1 commit
  11. 21 Jun, 2018 1 commit
  12. 20 Jun, 2018 13 commits
  13. 19 Jun, 2018 1 commit
    • Jan Kundrát's avatar
      spi: orion: fix CS GPIO handling again · fb9acf5f
      Jan Kundrát authored
      The code did not de-assert any CS GPIOs before probing slaves. This
      means that several CS signals could be active at once, garbling the
      communication. Whether this was actually a problem depended on the type
      of the SPI device attached (so my "spidev" for userspace access worked
      correctly because its probe was effectively a no-op), and on the state
      of the GPIO pins at SoC's boot.
      
      The code was already iterating through all DT children of the SPI
      controller, so this change re-uses that loop for CS GPIO setup as well.
      This means that this might change the number of the HW CS signal which
      is picked for all GPIO CS devices. Previously, the lowest one was used,
      but we now use the first one from the DT.
      
      With this move of the code, we can also finally initialize each GPIO CS
      lane before registering the SPI controller (which in turn probes for
      slaves).
      
      I tried to fix this in 54424862 already, but that only did it half
      way by registering the GPIOs properly. That patch failed to set their
      logic signals early enough, though.
      Signed-off-by: default avatarJan Kundrát <jan.kundrat@cesnet.cz>
      Signed-off-by: default avatarMark Brown <broonie@kernel.org>
      fb9acf5f