1. 19 8月, 2016 1 次提交
  2. 25 7月, 2016 8 次提交
  3. 21 7月, 2016 1 次提交
    • B
      spi: rockchip: limit transfers to (64K - 1) bytes · 5185a81c
      Brian Norris 提交于
      The Rockchip SPI controller's length register only supports 16-bits,
      yielding a maximum length of 64KiB (the CTRLR1 register holds "length -
      1"). Trying to transfer more than that (e.g., with a large SPI flash
      read) will cause the driver to hang.
      
      Now, it seems that while theoretically we should be able to program
      CTRLR1 with 0xffff, and get a 64KiB transfer, but that also seems to
      cause the core to choke, so stick with a maximum of 64K - 1 bytes --
      i.e., 0xffff.
      Signed-off-by: NBrian Norris <briannorris@chromium.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      5185a81c
  4. 15 7月, 2016 7 次提交
  5. 12 7月, 2016 3 次提交
    • L
      spi: st-ssc4: Remove 'no clocking' hack · cf4b5ceb
      Lee Jones 提交于
      Due to the newly upstreamed 'critical clocks' API we can now
      safely handle clocking in the SPI and I2C drivers without fear
      of catastrophically crippling the running platform.
      Signed-off-by: NLee Jones <lee.jones@linaro.org>
      cf4b5ceb
    • B
      spi: spi-sh: Remove deprecated create_singlethread_workqueue · 38e09920
      Bhaktipriya Shridhar 提交于
      The workqueue has a single workitem(&ss->ws) and hence doesn't require
      ordering. Also, it is not being used on a memory reclaim path. Hence, the
      singlethreaded workqueue has been replaced with the use of system_wq.
      
      System workqueues have been able to handle high level of concurrency
      for a long time now and hence it's not required to have a singlethreaded
      workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
      created with create_singlethread_workqueue(), system_wq allows multiple
      work items to overlap executions even on the same CPU; however, a
      per-cpu workqueue doesn't have any CPU locality or global ordering
      guarantee unless the target CPU is explicitly specified and thus the
      increase of local concurrency shouldn't make any difference.
      
      Work item has been flushed in spi_sh_remove() to ensure that
      there are no pending tasks while disconnecting the driver.
      Signed-off-by: NBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      38e09920
    • B
      spi: spi-topcliff-pch: Remove deprecated create_singlethread_workqueue · 0d357739
      Bhaktipriya Shridhar 提交于
      The workqueue "wk" serves as a queue for carrying out execution
      of requests. It has a single work item(&drv_data->work) and hence doesn't
      require ordering. Also, it is not being used on a memory reclaim path.
      Hence, the singlethreaded workqueue has been replaced with the use of
      system_wq.
      
      System workqueues have been able to handle high level of concurrency
      for a long time now and hence it's not required to have a singlethreaded
      workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
      created with create_singlethread_workqueue(), system_wq allows multiple
      work items to overlap executions even on the same CPU; however, a
      per-cpu workqueue doesn't have any CPU locality or global ordering
      guarantee unless the target CPU is explicitly specified and thus the
      increase of local concurrency shouldn't make any difference.
      
      Work item has been flushed in pch_spi_free_resources() to ensure that
      there are no pending tasks while disconnecting the driver.
      
      Also dropped the label 'err_return' since it's not being used anymore.
      Signed-off-by: NBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      0d357739
  6. 09 7月, 2016 1 次提交
    • O
      spi / ACPI: add support for ACPI reconfigure notifications · 7f24467f
      Octavian Purdila 提交于
      This patch adds supports for SPI device enumeration and removal via
      ACPI reconfiguration notifications that are send as a result of an
      ACPI table load or unload operation.
      
      The code is very similar with the device tree reconfiguration code
      with only small differences in the way we test and set the enumerated
      state of the device:
      
       * the equivalent of device tree's OF_POPULATED flag is the
         flags.visited field in the ACPI device and the following wrappers
         are used to manipulate it: acpi_device_enumerated(),
         acpi_device_set_enumerated() and acpi_device_clear_enumerated()
      
       * the device tree code checks of status of the OF_POPULATED flag to
         avoid trying to create duplicate Linux devices in two places: once
         when the controller is probed, and once when the reconfigure event
         is received; in the ACPI code the check is performed only once when
         the ACPI namespace is searched because this code path is invoked in
         both of the two mentioned cases
      
      The rest of the enumeration handling is similar with device tree: when
      the Linux device is unregistered the ACPI device is marked as not
      enumerated; also, when a device remove notification is received we
      check that the device is in the enumerated state before continuing
      with the removal of the Linux device.
      Signed-off-by: NOctavian Purdila <octavian.purdila@intel.com>
      Reviewed-by: NMika Westerberg <mika.westerberg@linux.intel.com>
      Acked-by: NMark Brown <broonie@kernel.org>
      Signed-off-by: NRafael J. Wysocki <rafael.j.wysocki@intel.com>
      7f24467f
  7. 08 7月, 2016 2 次提交
    • F
      spi: omap2-mcspi: Use the SPI framework to handle DMA mapping · 0ba1870f
      Franklin S Cooper Jr 提交于
      Currently, the driver handles mapping buffers to be used by the DMA.
      However, there are times that the current mapping implementation will
      fail for certain buffers. Fortunately, the SPI framework can detect
      and map buffers so its usable by the DMA.
      
      Update the driver to utilize the SPI framework for buffer
      mapping instead. Also incorporate hooks that the framework uses to
      determine if the DMA can or can not be used.
      
      This will result in the original omap2_mcspi_transfer_one function being
      deleted and omap2_mcspi_work_one being renamed to
      omap2_mcspi_transfer_one. Previously transfer_one was only responsible
      for mapping and work_one handled the transfer. But now only transferring
      needs to be handled by the driver.
      Signed-off-by: NFranklin S Cooper Jr <fcooper@ti.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      0ba1870f
    • F
      spi: omap2-mcspi: Select SPI_SPLIT · 2b32e987
      Franklin S Cooper Jr 提交于
      The function sg_split will be used by spi-omap2-mcspi to handle a SoC
      workaround in the SPI driver. Therefore, select SG_SPLIT so this function
      is available to the driver.
      Signed-off-by: NFranklin S Cooper Jr <fcooper@ti.com>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      2b32e987
  8. 07 7月, 2016 4 次提交
  9. 05 7月, 2016 1 次提交
  10. 04 7月, 2016 7 次提交
  11. 03 7月, 2016 4 次提交
    • B
      spi: spi-bfin-sport: Remove deprecated create_singlethread_workqueue · eac9837f
      Bhaktipriya Shridhar 提交于
      The workqueue "workqueue" serves as a driver message queue.
      It has a single work item(&drv_data->pump_messages) and hence doesn't
      require ordering. Also, it is not being used on a memory reclaim path.
      Hence, the singlethreaded workqueue has been replaced with the use of
      system_wq.
      
      System workqueues have been able to handle high level of concurrency
      for a long time now and hence it's not required to have a singlethreaded
      workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
      created with create_singlethread_workqueue(), system_wq allows multiple
      work items to overlap executions even on the same CPU; however, a
      per-cpu workqueue doesn't have any CPU locality or global ordering
      guarantee unless the target CPU is explicitly specified and thus the
      increase of local concurrency shouldn't make any difference.
      
      Work item has been flushed in bfin_sport_spi_destroy_queue() to ensure
      that there are no pending tasks while disconnecting the driver.
      Signed-off-by: NBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Acked-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      eac9837f
    • B
      spi: spi-mpc52xx-psc: Remove deprecated create_singlethread_workqueue · ac96b737
      Bhaktipriya Shridhar 提交于
      The workqueue "workqueue" has a single work item(&mps->work)
      doesn't require ordering. Also, it is not being used on a memory reclaim
      path. Hence, the singlethreaded workqueue has been replaced with the use
      of system_wq.
      
      System workqueues have been able to handle high level of concurrency
      for a long time now and hence it's not required to have a singlethreaded
      workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
      created with create_singlethread_workqueue(), system_wq allows multiple
      work items to overlap executions even on the same CPU; however, a
      per-cpu workqueue doesn't have any CPU locality or global ordering
      guarantee unless the target CPU is explicitly specified and thus the
      increase of local concurrency shouldn't make any difference.
      
      Work item has been flushed in mpc52xx_psc_spi_of_remove() to ensure that
      nothing is pending while disconnecting the driver.
      Signed-off-by: NBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Acked-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      ac96b737
    • B
      spi: spi-txx9: Remove deprecated create_singlethread_workqueue · b43afff7
      Bhaktipriya Shridhar 提交于
      The workqueue "workqueue" has a single work item(&c->work) and hence
      doesn't require ordering. Also, it is not being used on a memory reclaim
      path. Hence, the singlethreaded workqueue has been replaced with the use of
      system_wq.
      
      System workqueues have been able to handle high level of concurrency
      for a long time now and hence it's not required to have a singlethreaded
      workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
      created with create_singlethread_workqueue(), system_wq allows multiple
      work items to overlap executions even on the same CPU; however, a
      per-cpu workqueue doesn't have any CPU locality or global ordering
      guarantee unless the target CPU is explicitly specified and thus the
      increase of local concurrency shouldn't make any difference.
      
      Work item has been flushed in txx9spi_remove() to ensure that
      nothing is pending while disconnecting the driver.
      Signed-off-by: NBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Acked-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      b43afff7
    • B
      spi: spi-bfin5xx: Remove deprecated create_singlethread_workqueue · 9b96f070
      Bhaktipriya Shridhar 提交于
      The workqueue "workqueue" serves as a driver message queue.
      It has a single work item(&drv_data->pump_messages) and hence doesn't
      require ordering. Also, it is not being used on a memory reclaim path.
      Hence, the singlethreaded workqueue has been replaced with the use of
      system_wq.
      
      System workqueues have been able to handle high level of concurrency
      for a long time now and hence it's not required to have a singlethreaded
      workqueue just to gain concurrency. Unlike a dedicated per-cpu workqueue
      created with create_singlethread_workqueue(), system_wq allows multiple
      work items to overlap executions even on the same CPU; however, a
      per-cpu workqueue doesn't have any CPU locality or global ordering
      guarantee unless the target CPU is explicitly specified and thus the
      increase of local concurrency shouldn't make any difference.
      
      Work item has been flushed in bfin_spi_destroy_queue() to ensure that there
      are no pending tasks while disconnecting the driver.
      Signed-off-by: NBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Acked-by: NTejun Heo <tj@kernel.org>
      Signed-off-by: NMark Brown <broonie@kernel.org>
      9b96f070
  12. 30 6月, 2016 1 次提交