zephyr/drivers
Erwan Gouriou a3de3df5dc drivers/uart: stm32: Fix pm_constraint handling
Introduce new logic to set/release pm_constraint during serial TX
transactions.

First change is to introduce an internal flag and utility functions
to control the set/release constraint balancing per uart device.
This way, whatever the mix of transactions or API calls, we
ensure a single uart device can only do 1 or 0 to the PM state
constraint. Constraint can't then be set more than once, released w/o
having been set or released more than it was set.

The last part of the change reworks the triggers for constraints
set/release operations.
In order not to disturb driver operations, if irq driven mode or PM is
enabled, don't enable TC interrupt handling by default.
Instead, map the pm_constraint setting to the way TC flag is handled
in normal mode of operations (irq driven or async).
As a consequence, in irq driven mode, pm_constraint is set/released on
tx_enable/tx_disable api calls, which gives API user full control
on transaction protection vs low power operations.
Finally, we emulate the same behavior on TX poll transaction, by
enabling TC irq at the start of a stream and disabling TC irq once
stream is completed. This is controlled with a dedicated device flag.


Signed-off-by: Erwan Gouriou <erwan.gouriou@linaro.org>
2021-09-21 10:47:56 -04:00
..
adc drivers: adc: stm32 disable the ADC before setting the Oversampling 2021-09-18 09:02:31 -04:00
audio drivers: audio: dmic: Add support for nRF PDM peripherals 2021-09-03 09:34:06 -04:00
bbram drivers: bbram: Add it8xxx2 BBRAM driver implementation 2021-08-30 11:35:23 -04:00
bluetooth bluetooth: remove Kconfig options CONFIG_BT_*_ON_DEV_NAME 2021-08-25 18:05:17 -04:00
cache cache: Introduce external cache controller system support 2021-05-08 07:00:33 +02:00
can drivers: can: mcux_flexcan: fix irq connect 2021-09-02 06:46:10 -04:00
clock_control drivers: clock control stm32wb has MSI clock range to set 2021-09-07 11:31:56 -04:00
console drivers: remove Kconfig option CONFIG_UART_CONSOLE_ON_DEV_NAME 2021-08-23 18:53:47 -04:00
counter esp32s2: drivers: counter: add support 2021-09-06 10:02:57 -04:00
crypto drivers/crypto: stm32: add support for socs with AES IP 2021-07-23 16:25:27 -04:00
dac drivers: Add Atmel SAM DAC (DACC) driver 2021-08-26 16:46:16 -04:00
debug tracing: fix conflict with RTT locking 2021-05-25 07:36:38 -05:00
disk drivers: disk: Fix USDHC driver to return 0 on success 2021-09-17 08:12:22 -04:00
display drivers: display: ssd1306: add missing error handling 2021-09-02 06:42:31 -04:00
dma drivers: dma: dma_sam0: change sam0 DMA to higher priority init. 2021-09-19 19:31:25 -04:00
ec_host_cmd_periph
edac drivers: edac: build as static library 2021-08-17 06:06:03 -04:00
eeprom eeprom: at2x: convert to _dt_spec 2021-08-09 19:50:53 -04:00
entropy soc: arm: nxp_imx: rt: Configure settings for TRNG IP 2021-08-06 20:29:59 -04:00
espi emul: espi: Add ACPI Shared Memory functions 2021-08-26 13:14:05 -04:00
ethernet drivers: eth: mcux: Fix PTP clock init priority dependency 2021-09-17 10:56:35 +02:00
flash Bluetooth: Controller: Propagate ticks_drift in the ticker callback 2021-09-17 14:30:07 +02:00
fpga drivers: fpga controller: add shell support 2021-09-03 09:54:00 -04:00
gpio drivers/gpio: stm32: Fix for stm32u5 support 2021-09-01 10:30:38 -04:00
hwinfo drivers: hwinfo: build as static library 2021-08-17 06:06:03 -04:00
i2c drivers: i2c_nrfx_twim: Add handling of buffers located in flash 2021-09-21 13:44:06 +02:00
i2s drivers: i2s: Update MCUX Kconfig 2021-09-01 14:39:03 -04:00
ieee802154 drivers: ieee802154: reverse ack data ext addr string 2021-08-31 12:09:39 +02:00
interrupt_controller drivers: gicv3: set SPI's affinity when it is enabled 2021-09-07 11:31:22 -04:00
ipm drivers: ipm: set IPM_STM32_HSEM default from the device tree 2021-08-30 09:33:32 -04:00
kscan drivers: ht16k33: convert keyscan driver from gpio API to kscan API 2021-06-18 11:22:40 +02:00
led drivers: led: build as static library 2021-08-17 06:06:03 -04:00
led_strip dts: fix 'colorway' compatibles 2021-08-17 17:51:57 -04:00
lora drivers: lora: sx12xx: fix atomic include 2021-08-20 11:32:45 -04:00
mdio drivers: mdio: add shell 2021-08-27 11:43:48 -04:00
memc drivers: memc: build as static library 2021-08-17 06:06:03 -04:00
misc
modem modem: hl7800: fix PSM 2021-09-20 12:24:40 -04:00
net drivers: modem: gsm_ppp: Use DTS 2021-08-31 17:33:34 -04:00
neural_net
pcie pcie: shell: Print more MSI-X information 2021-09-03 10:09:05 -04:00
peci
pinmux drivers: pinmux: stm32: fix remap equality check 2021-09-07 07:56:21 -04:00
pm_cpu_ops drivers: pm_cpu_ops: build as static library 2021-08-17 06:06:03 -04:00
ps2 drivers: PS/2: npcx: Replace device_get_binding with DEVICE_DT_GET 2021-07-02 15:41:28 -04:00
ptp_clock drivers: ptp_clock: build as static library 2021-08-17 06:06:03 -04:00
pwm pwm: it8xxx2: use new DT pinctrl accessors 2021-08-25 18:09:00 -04:00
regulator drivers: regulator: remove usage of device_pm_control_nop 2021-04-28 16:43:29 -04:00
sensor drivers: sensors: sht3xd: allow multiple instances 2021-09-08 09:49:34 -04:00
serial drivers/uart: stm32: Fix pm_constraint handling 2021-09-21 10:47:56 -04:00
spi drivers: spi: stm32: Fix forever lock when configure failed 2021-09-20 10:17:56 -04:00
syscon drivers: sys_con: build as static library 2021-08-17 06:06:03 -04:00
timer drivers: timer: Fix RISC-V machine timer count drift due integer math 2021-09-20 19:50:40 -04:00
usb usb: usb_dc_mcux: use K_HEAP_DEFINE_NOCACHE() 2021-08-31 16:29:11 -04:00
video drivers: video: ov2640: add driver for ov2640 image sensor 2021-08-17 09:18:38 -04:00
virtualization drivers/ivshmem: MSI API change was not applied in this drivers 2021-09-15 13:42:22 +03:00
watchdog drivers: watchdog: fix missing stm32 LOG_LEVEL macro 2021-09-10 10:57:57 -04:00
wifi drivers: wifi: build as static library 2021-08-17 06:06:03 -04:00
CMakeLists.txt drivers: fpga controller: add fpga api 2021-09-03 09:54:00 -04:00
Kconfig drivers: fpga controller: add fpga api 2021-09-03 09:54:00 -04:00