Hello
My system:
* Qt5 application
* AM335X processor SDK 1.0 Linux
* Custom board very similar to beaglebone black, 800x480 display in 24bit raster or RGB565 LIDD mode (with SSD1963).
LCDC hardware usually works in raster mode with the Qt application. It uses tilcdc DRM driver included in SDK.
The main issue is that when the system goes to standby we need to keep the display on with a fixed image, but raster mode can't be used because power consumption is too high (>1W).
We are considering two scenarios:
Scenario 1:
Just before suspending, to switch from raster to LIDD mode and send the last image to an external display driver, this hardware driver will keep the image on screen while the system is suspended.
I'm trying to modify tilcdc DRM driver (linux-3.14.43+gitAUTOINC+875c69b2c3-g875c69b\drivers\gpu\drm\tilcdc) to switch from raster to LIDD mode and send the last image to external driver. I do it inside "tilcdc_pm_suspend" function, but I need HELP to:
* get the last image sent to screen in raster mode. It can be read from /dev/fb0 in user space but I need it in "tilcdc_pm_suspend" function.
* convert this image to RGB565. I could convert it easily by hand but maybe DRM driver is able to return an array on this format.
Scenario 2:
The display will be allways controlled by LCDC in LIDD mode through an extenal display driver, raster mode is never used. I made a fbdev driver for this system, it is working fine but my Qt5 application is not able to run because EGL is not supported by this fbdev driver. tilcdc DRM driver does support EGL but does not support LIDD mode.
I think on just getting the image from virtual framebuffer and sending it to the external display driver in LIDD mode. My fbdev driver does the hardware data transfer using DMA copy and DMA interrupt, but I have no experience with DRM drivers.
* How could tilcdc DRM driver be modified to support LIDD mode in that way?
Thank you in advance