1. 20 3月, 2013 1 次提交
    • E
      caif_virtio: Introduce caif over virtio · 0d2e1a29
      Erwan Yvin 提交于
      Add the CAIF Virtio shared memory driver for talking
      to a modem.
      
      This CAIF Link layer communicates to the modem over
      shared memory. It is implemented as a virtio_driver.
      The underlying virtio device is managed by the remoteproc
      framework. The Virtio queue is used for transmitting data
      to the modem, and the new vringh is used for receiving data.
      
      Genalloc is used for managing the shared memory used for TX
      data. The default dma-alloc-coherent allocator can only
      allocate whole pages, and this wastes too much shared memory.
      
      Flow control is implemented by stopping the TX-queues if the
      virtio queues go full or we run out of memory. Queued are
      reopened when queues are below the watermark.
      
      NAPI is used in RX path, and a dedicated tasklet is used
      for releasing TX buffers.
      Signed-off-by: NErwan Yvin <erwan.yvin@stericsson.com>
      Acked-by: NDavid S. Miller <davem@davemloft.net>
      Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (minor fixes)
      0d2e1a29