dma_transfer_in_progress boolean variable has been added for tracking of dma2d current state (transferring/idle). The variable is set after dma2d successful transfer start and cleared inside the dma2d_wait() function after the dma2d transfer has finished.
dma2d_wait() function has been refactored from HAL based busy waiting variant to a priodical polling of dma2d status flags (TC, TE, CE) and sleep/wake concept using the dma2d to wake MCU when such event occurs.
WFE (Wait For Event) instruction is used for MCU sleep entry. The "SCB.SCR.SEVONPEND" bit is used to enable MCU wake-up with NVIC disabled IRQs.
[no changelog]
Removing the "KERNEL_MODE" guards as the whole file is guarded. Removing the dma2d_wait() function call as it's called twice in the near location.
[no changelog]
before: you could call `show_properties` either with a string or with a
list of properties
* if you would call it with a string it would use `ConfirmValue`
* if you would call it with a list of properties, it would use
`ShowInfoParams` to show multiple properties
after:
* if you call it with a list of properties that only has one property
it defaults to the same behaviour as the case when you call it with a
single string
[no changelog]
In order to lower the power consumption in standard operation mode, the goal is to regulate the display refresh rate based on the current needs (animations - 60Hz, static images - 30 Hz).
- Introduction of the on-the-fly refresh rate change functionality (interrupt based).
Configuration optimizations' investigations:
- Since the display visible dimensions are 520x380 and the display controller doesn't support this resolution directly, the closest variant 520x480 is used with 50px offset. Changing the resolution used to 520x430 and shortening the HACT region by 50px effectivly increasing the blanking period.
- Using RGB565 DSI color format, changing pixel clock to 15.5 MHz, changing HFP to 20 to maintain the 60 Hz refresh rate for the new pixel clock.
- DSI lane byte clock vs LTDC pixel clock ratio (max, min) tests.
- Etc. - different configuration profiles have been tested and TS7 input power consumption measured.
Formalizing the code to official one:
- adding preprocessor definitions to panels' configuration header files
- adding ifdefs to display_driver and display_fb source files to integrate the refresh rate scaling code based on panel's used
- the refresh rate change is to be performed to high one as soon as new image is to be shown, and to the low one after a timeout expires
[no changelog]
The arguments' passed to the HAL_DSI_LongWrite() function calls were corrected. Since the code is used in "KERNEL_MODE" => adding the respective preprocessor directives.
[no changelog]
A bug in pwm_data[] buffer clear check has been found and fixed. The pwm_data[][1] array element is used when the respective buffer is used for setting of new pulses' value to TPS61062 IC.
[no changelog]
- introduce a type rather than carrying a tuple around
- this should make working with notifs easier in the future as we can
add fields to the struct
- export the NotificationLevel to uPy
[no changelog]
add prodtest cli commands to read and set the reversible configuration of the sensors (0x08)
also add a command to read the whole configurations to get a better clarity of what is set and what is not set
[no changelog]
- re-bump to 2.10.1 because the previous cherry-picked commit changed it
to the version of the release branch
- this was caused because we changed the version while the release
process was already underway
[no changelog]
- security fix forces us to bump FIX_VERSION
- semantically, it means bumping VERSION_MINOR
- also modify CHANGELOGs from 2.9.7 to 2.10.0
[no changelog]
(cherry picked from commit 25b05677ca)