STREAM_FFIFO

The stream FFIFO device driver is designed to read/write hardware with streaming data that has hard real-time requirements such as audio streaming data from either I2S sources/sinks or DAC/ADC devices.

FFIFO stands for framed fifo. The driver assumes the underlying device reads/write data in a circular fashion and provides events for transfers and half transfers. In this case the frame count, should be set to two.

The stream FFIFO supports blocking reads/write. A write() will block until there is space in the buffer to write another frame. A read() will block until data is available. The frames must be handled before that hardware finishes the next frame, otherwise overrun/underrun conditions will occur.

Details

define STREAM_FFIFO_VERSION

define STREAM_FFIFO_IOC_IDENT_CHAR

define I_STREAM_FFIFO_GETVERSION

define I_STREAM_FFIFO_GETINFO

define I_STREAM_FFIFO_SETATTR

define I_STREAM_FFIFO_SETACTION

enum @28
  • STREAM_FFIFO_FLAG_START Start streaming
  • STREAM_FFIFO_FLAG_STOP Stop streaming
  • STREAM_FFIFO_FLAG_FLUSH Flush all stream data

struct::stream_ffifo_attr_t

u32 o_flags

Use with STREAM_FFIFO_FLAG_START or STREAM_FFIFO_FLAG_STOP

ffifo_attr_t tx

ffifo_attr_t rx

struct::stream_ffifo_channel_info_t

ffifo_info_t ffifo

u32 access_count

s32 error

struct::stream_ffifo_info_t

stream_ffifo_channel_info_t rx

stream_ffifo_channel_info_t tx

X

Thanks for Coming!

Subscribe to news and updates