zephyr/drivers/modem
Marcin Niestroj 05eb9644dc modem: iface_uart: improve RX flow with HW flow control
So far all received bytes over UART where blindly drained and pushed to
ring_buf. This approach is okay for UART devices without configured HW
flow control, as it basically decouples data processing from ISR handler
and gives more time before data overrun. However when HW flow control
is enabled, such behavior somehow suppresses UART flow control
advantage, because data can overrun when pushing to ring_buf.

Allow drivers utilizing modem_context framework to pass information
about whether HW flow control is enabled or not. If it is enabled, then
read data from UART FIFO to the point when RX ring_buf is totally filled
and follow such situation by disabling RX interrupt. Incoming data will
be paused on HW level, so there is lots of time for RX thread to process
ring_buf content. Reenable RX interrupts after all data in ring_buf is
processed, so that number of context switches is kept at minimum level.

Signed-off-by: Marcin Niestroj <m.niestroj@grinn-global.com>
2020-10-05 17:04:52 +03:00
..
CMakeLists.txt drivers: modem: add Sierra Wireless HL7800 Modem Driver 2020-08-31 10:46:33 +02:00
gsm_ppp.c modem: iface_uart: use ring_buf_{claim,finish} API 2020-10-05 17:04:52 +03:00
hl7800.c drivers: modem: hl7800: fix dts binding 2020-09-16 14:21:41 -05:00
Kconfig drivers: modem: add Sierra Wireless HL7800 Modem Driver 2020-08-31 10:46:33 +02:00
Kconfig.gsm net: ppp: Convert PPP driver to use normal UART APIs 2020-04-17 10:15:54 +03:00
Kconfig.hl7800 drivers: modem: hl7800: do not require DEVICE_POWER_MANAGEMENT 2020-09-16 14:21:41 -05:00
Kconfig.ublox-sara-r4 drivers: modem: ublox-sara-r4: automatic setting of APN 2020-05-07 23:36:10 -05:00
Kconfig.wncm14a2a kconfig: Clean up header comments and make them consistent 2019-11-04 17:31:27 -05:00
modem_cmd_handler.c drivers: modem: Add debug log for matching direct cmds 2020-10-02 11:35:47 +02:00
modem_cmd_handler.h zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
modem_context.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
modem_context.h device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
modem_iface_uart.c modem: iface_uart: improve RX flow with HW flow control 2020-10-05 17:04:52 +03:00
modem_iface_uart.h modem: iface_uart: improve RX flow with HW flow control 2020-10-05 17:04:52 +03:00
modem_pin.c zephyr: replace zephyr integer types with C99 types 2020-06-08 08:23:57 -05:00
modem_receiver.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
modem_receiver.h device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
modem_shell.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00
modem_socket.c drivers: modem: use zsock_ variants of socket API 2020-06-10 09:27:51 +03:00
modem_socket.h drivers: modem: use zsock_ variants of socket API 2020-06-10 09:27:51 +03:00
ublox-sara-r4.c modem: iface_uart: use ring_buf_{claim,finish} API 2020-10-05 17:04:52 +03:00
wncm14a2a.c device: Const-ify all device driver instance pointers 2020-09-02 13:48:13 +02:00