Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(pxp): hookup zephyr interrupts #6158

Open
wants to merge 1 commit into
base: release/v8.4
Choose a base branch
from

Conversation

faxe1008
Copy link
Contributor

Description of the feature or fix

While adding PXP support for zephyr by adding the semaphore, adding the actual interrupts was missing. It was unclear what the best place to put this is. This adds a depedency on the Zephyr symbol CONFIG_DMA_INIT_PRIORITY and the IRQ API, both of which are stable. Originally proposed via: zephyrproject-rtos/lvgl#52

Notes

@kisvegabor
Copy link
Member

cc @anaGrad @nicusorcitu

@faxe1008
Copy link
Contributor Author

faxe1008 commented May 3, 2024

@kisvegabor Just noticed while setting up a zephyr testcase for this: In order to compile we need to provide the displays dimensions as compile time constants LCD_WIDTH and LCD_HEIGHT. I assume that this what the lvgl_support.h file is for. Would it be feasable to make those Kconfig and lv_conf.h values instead? Something like LV_NXP_PXP_DISPLAY_WIDTH?

This adds attaching of the interrupt for Zephyr RTOS.
Originally submitted by @0xFarahFl.
@kisvegabor
Copy link
Member

LCD_WIDTH and LCD_HEIGHT should be the same as lv_display_get_horizontal/vertical_resolution(disp). You can get disp by using _lv_refr_get_disp_refreshing(). So I can imagine something like:

#ifndef LCD_WIDTH
#define LCD_WIDTH lv_display_get_horizontal_resolution(_lv_refr_get_disp_refreshing())
#endif

Can you check if it's really working?

@FASTSHIFT FASTSHIFT changed the title feat(pxp): Hookup zephyr interrupts feat(pxp): hookup zephyr interrupts May 12, 2024
@faxe1008
Copy link
Contributor Author

I think using the methods is not really an option since I guess those need to be compile time defined:
https://github.com/lvgl/lvgl/blob/release/v8.4/src/draw/nxp/pxp/lv_draw_pxp_blend.c#L51C13-L51C30

@nicusorcitu
Copy link
Contributor

We should remove the PXP temp buffer. It has been removed in lvgl v9, as multiple PXP steps have been disabled. In V9 the PXP will handle only the operations that can be done in a single shot.

I will speak to @cristian-stoica to remove this temp buffer on lvgl v8.4 too, it was a bad decision to add it.
Once we remove it, we no longer need those defines.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants