1. 29 Mar, 2015 3 commits
    • Octavian Purdila's avatar
      iio: bmc150_accel: add support for hardware fifo · 3bbec977
      Octavian Purdila authored
      We only advertise hardware fifo support if the I2C bus supports full
      I2C or smbus I2C block data reads since it is mandatory to read the
      full frame in one read (otherwise the rest of the frame is discarded).
      
      The hardware fifo is enabled only when triggers are not active because:
      
      (a) when using the any-motion trigger the user expects to see samples
      based on ROC events, but the fifo stores samples based on the sample
      frequency
      
      (b) the data-ready trigger is waking the CPU for for every sample, so
      using the hardware fifo does not have any benefit
      Signed-off-by: default avatarOctavian Purdila <octavian.purdila@intel.com>
      Reviewed-by: default avatarLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
      3bbec977
    • Octavian Purdila's avatar
      iio: add support for hardware fifo · f4f4673b
      Octavian Purdila authored
      Some devices have hardware buffers that can store a number of samples
      for later consumption. Hardware usually provides interrupts to notify
      the processor when the FIFO is full or when it has reached a certain
      watermark level. This helps with reducing the number of interrupts to
      the host processor and thus it helps decreasing the power consumption.
      
      This patch enables usage of hardware FIFOs for IIO devices in
      conjunction with software device buffers. When the hardware FIFO is
      enabled the samples are stored in the hardware FIFO. The samples are
      later flushed to the device software buffer when the number of entries
      in the hardware FIFO reaches the hardware watermark or when a flush
      operation is triggered by the user when doing a non-blocking read
      on an empty software device buffer.
      
      In order to implement hardware FIFO support the device drivers must
      implement the following new operations: setting and getting the
      hardware FIFO watermark level, flushing the hardware FIFO to the
      software device buffer. The device must also expose information about
      the hardware FIFO such it's minimum and maximum watermark and if
      necessary a list of supported watermark values. Finally, the device
      driver must activate the hardware FIFO when the device buffer is
      enabled, if the current device settings allows it.
      
      The software device buffer watermark is passed by the IIO core to the
      device driver as a hint for the hardware FIFO watermark. The device
      driver can adjust this value to allow for hardware limitations (such
      as capping it to the maximum hardware watermark or adjust it to a
      value that is supported by the hardware). It can also disable the
      hardware watermark (and implicitly the hardware FIFO) it this value is
      below the minimum hardware watermark.
      
      Since a driver may support hardware FIFO only when not in triggered
      buffer mode (due to different semantics of hardware FIFO sampling and
      triggered sampling) this patch changes the IIO core code to allow
      falling back to non-triggered buffered mode if no trigger is enabled.
      Signed-off-by: default avatarOctavian Purdila <octavian.purdila@intel.com>
      Reviewed-by: default avatarLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
      f4f4673b
    • Josselin Costanzi's avatar
      iio: add watermark logic to iio read and poll · 37d34556
      Josselin Costanzi authored
      Currently the IIO buffer blocking read only wait until at least one
      data element is available.
      This patch makes the reader sleep until enough data is collected before
      returning to userspace. This should limit the read() calls count when
      trying to get data in batches.
      
      Co-author: Yannick Bedhomme <yannick.bedhomme@mobile-devices.fr>
      Signed-off-by: default avatarJosselin Costanzi <josselin.costanzi@mobile-devices.fr>
      [rebased and remove buffer timeout]
      Signed-off-by: default avatarOctavian Purdila <octavian.purdila@intel.com>
      Reviewed-by: default avatarLars-Peter Clausen <lars@metafoo.de>
      Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
      37d34556
  2. 28 Mar, 2015 7 commits
  3. 24 Mar, 2015 28 commits
  4. 23 Mar, 2015 2 commits