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: Erwan Yvin <erwan.yvin@stericsson.com> Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (minor fixes)
64 lines
1.7 KiB
Plaintext
64 lines
1.7 KiB
Plaintext
#
|
|
# CAIF physical drivers
|
|
#
|
|
|
|
comment "CAIF transport drivers"
|
|
|
|
config CAIF_TTY
|
|
tristate "CAIF TTY transport driver"
|
|
depends on CAIF && TTY
|
|
default n
|
|
---help---
|
|
The CAIF TTY transport driver is a Line Discipline (ldisc)
|
|
identified as N_CAIF. When this ldisc is opened from user space
|
|
it will redirect the TTY's traffic into the CAIF stack.
|
|
|
|
config CAIF_SPI_SLAVE
|
|
tristate "CAIF SPI transport driver for slave interface"
|
|
depends on CAIF && HAS_DMA
|
|
default n
|
|
---help---
|
|
The CAIF Link layer SPI Protocol driver for Slave SPI interface.
|
|
This driver implements a platform driver to accommodate for a
|
|
platform specific SPI device. A sample CAIF SPI Platform device is
|
|
provided in Documentation/networking/caif/spi_porting.txt
|
|
|
|
config CAIF_SPI_SYNC
|
|
bool "Next command and length in start of frame"
|
|
depends on CAIF_SPI_SLAVE
|
|
default n
|
|
---help---
|
|
Putting the next command and length in the start of the frame can
|
|
help to synchronize to the next transfer in case of over or under-runs.
|
|
This option also needs to be enabled on the modem.
|
|
|
|
config CAIF_SHM
|
|
tristate "CAIF shared memory protocol driver"
|
|
depends on CAIF && U5500_MBOX
|
|
default n
|
|
---help---
|
|
The CAIF shared memory protocol driver for the STE UX5500 platform.
|
|
|
|
config CAIF_HSI
|
|
tristate "CAIF HSI transport driver"
|
|
depends on CAIF
|
|
default n
|
|
---help---
|
|
The caif low level driver for CAIF over HSI.
|
|
Be aware that if you enable this then you also need to
|
|
enable a low-level HSI driver.
|
|
|
|
config CAIF_VIRTIO
|
|
tristate "CAIF virtio transport driver"
|
|
depends on CAIF
|
|
select VHOST_RING
|
|
select VIRTIO
|
|
select GENERIC_ALLOCATOR
|
|
default n
|
|
---help---
|
|
The caif driver for CAIF over Virtio.
|
|
|
|
if CAIF_VIRTIO
|
|
source "drivers/vhost/Kconfig"
|
|
endif
|