mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 17:30:02 +00:00
![Erwan Yvin](/assets/img/avatar_default.png)
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)
18 lines
454 B
Makefile
18 lines
454 B
Makefile
ccflags-$(CONFIG_CAIF_DEBUG) := -DDEBUG
|
|
|
|
# Serial interface
|
|
obj-$(CONFIG_CAIF_TTY) += caif_serial.o
|
|
|
|
# SPI slave physical interfaces module
|
|
cfspi_slave-objs := caif_spi.o caif_spi_slave.o
|
|
obj-$(CONFIG_CAIF_SPI_SLAVE) += cfspi_slave.o
|
|
|
|
# Shared memory
|
|
caif_shm-objs := caif_shmcore.o caif_shm_u5500.o
|
|
obj-$(CONFIG_CAIF_SHM) += caif_shm.o
|
|
|
|
# HSI interface
|
|
obj-$(CONFIG_CAIF_HSI) += caif_hsi.o
|
|
|
|
# Virtio interface
|
|
obj-$(CONFIG_CAIF_VIRTIO) += caif_virtio.o
|