1. 17 7月, 2020 2 次提交
    • T
      spi: atmel-quadspi: Use optimezed memcpy_fromio()/memcpy_toio() · b780c3f3
      Tudor Ambarus 提交于
      Optimezed mem*io operations are defined for LE platforms, use them.
      
      The ARM and !ARCH_EBSA110 dependencies for COMPILE_TEST were added
      only for the _memcpy_fromio()/_memcpy_toio() functions. Drop these
      dependencies.
      
      Tested unaligned accesses on both sama5d2 and sam9x60 QSPI controllers
      using SPI NOR flashes, everything works ok. The following performance
      improvement can be seen when running mtd_speedtest:
      
      sama5d2_xplained (mx25l25635e)
      - before:
      	mtd_speedtest: eraseblock write speed is 983 KiB/s
      	mtd_speedtest: eraseblock read speed is 6150 KiB/s
      - after:
      	mtd_speedtest: eraseblock write speed is 1055 KiB/s
      	mtd_speedtest: eraseblock read speed is 20144 KiB/s
      
      sam9x60ek (sst26vf064b)
      - before:
      	mtd_speedtest: eraseblock write speed is 4770 KiB/s
      	mtd_speedtest: eraseblock read speed is 8062 KiB/s
      - after:
      	mtd_speedtest: eraseblock write speed is 4524 KiB/s
      	mtd_speedtest: eraseblock read speed is 21186 KiB/s
      Signed-off-by: NTudor Ambarus <tudor.ambarus@microchip.com>
      Link: https://lore.kernel.org/r/20200716043139.565734-1-tudor.ambarus@microchip.comSigned-off-by: NMark Brown <broonie@kernel.org>
      b780c3f3
    • M
      spi: Only defer to thread for cleanup when needed · e1268597
      Mark Brown 提交于
      Currently we always defer idling of controllers to the SPI thread, the goal
      being to ensure that we're doing teardown that's not suitable for atomic
      context in an appropriate context and to try to batch up more expensive
      teardown operations when the system is under higher load, allowing more
      work to be started before the SPI thread is scheduled. However when the
      controller does not require any substantial work to idle there is no need
      to do this, we can instead save the context switch and immediately mark
      the controller as idle. This is particularly useful for systems where there
      is frequent but not constant activity.
      Signed-off-by: NMark Brown <broonie@kernel.org>
      Link: https://lore.kernel.org/r/20200715163610.9475-1-broonie@kernel.orgSigned-off-by: NMark Brown <broonie@kernel.org>
      e1268597
  2. 15 7月, 2020 6 次提交
  3. 14 7月, 2020 1 次提交
    • L
      spi: imx/fsl-lpspi: Convert to GPIO descriptors · 8cdcd8ae
      Linus Walleij 提交于
      This converts the two Freescale i.MX SPI drivers
      Freescale i.MX (CONFIG_SPI_IMX) and Freescale i.MX LPSPI
      (CONFIG_SPI_FSL_LPSPI) to use GPIO descriptors handled in
      the SPI core for GPIO chip selects whether defined in
      the device tree or a board file.
      
      The reason why both are converted at the same time is
      that they were both using the same platform data and
      platform device population helpers when using
      board files intertwining the code so this gives a cleaner
      cut.
      
      The platform device creation was passing a platform data
      container from each boardfile down to the driver using
      struct spi_imx_master from <linux/platform_data/spi-imx.h>,
      but this was only conveying the number of chipselects and
      an int * array of the chipselect GPIO numbers.
      
      The imx27 and imx31 platforms had code passing the
      now-unused platform data when creating the platform devices,
      this has been repurposed to pass around GPIO descriptor
      tables. The platform data struct that was just passing an
      array of integers and number of chip selects for the GPIO
      lines has been removed.
      
      The number of chipselects used to be passed from the board
      file, because this number also limits the number of native
      chipselects that the platform can use. To deal with this we
      just augment the i.MX (CONFIG_SPI_IMX) driver to support 3
      chipselects if the platform does not define "num-cs" as a
      device property (such as from the device tree). This covers
      all the legacy boards as these use <= 3 native chip selects
      (or GPIO lines, and in that case the number of chip selects
      is determined by the core from the number of available
      GPIO lines). Any new boards should use device tree, so
      this is a reasonable simplification to cover all old
      boards.
      
      The LPSPI driver never assigned the number of chipselects
      and thus always fall back to the core default of 1 chip
      select if no GPIOs are defined in the device tree.
      
      The Freescale i.MX driver was already partly utilizing
      the SPI core to obtain the GPIO numbers from the device tree,
      so this completes the transtion to let the core handle all
      of it.
      
      All board files and the core i.MX boardfile registration
      code is augmented to account for these changes.
      
      This has been compile-tested with the imx_v4_v5_defconfig
      and the imx_v6_v7_defconfig.
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Acked-by: NShawn Guo <shawnguo@kernel.org>
      Cc: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Cc: Robin Gong <yibin.gong@nxp.com>
      Cc: Trent Piepho <tpiepho@impinj.com>
      Cc: Clark Wang <xiaoning.wang@nxp.com>
      Cc: Shawn Guo <shawnguo@kernel.org>
      Cc: Sascha Hauer <s.hauer@pengutronix.de>
      Cc: Pengutronix Kernel Team <kernel@pengutronix.de>
      Cc: Fabio Estevam <festevam@gmail.com>
      Cc: NXP Linux Team <linux-imx@nxp.com>
      Link: https://lore.kernel.org/r/20200625200252.207614-1-linus.walleij@linaro.orgSigned-off-by: NMark Brown <broonie@kernel.org>
      8cdcd8ae
  4. 10 7月, 2020 3 次提交
  5. 07 7月, 2020 11 次提交
  6. 06 7月, 2020 1 次提交
  7. 02 7月, 2020 9 次提交
  8. 01 7月, 2020 1 次提交
  9. 30 6月, 2020 2 次提交
  10. 25 6月, 2020 1 次提交
  11. 24 6月, 2020 2 次提交
  12. 23 6月, 2020 1 次提交