Hi Thomas,
On Fri, Sep 25, 2020 at 05:01:23PM +0200, Thomas Zimmermann wrote:
ARRAY_SIZE(simplekms_formats),
simplekms_format_modifiers,
connector);
- if (ret)
return ret;
- drm_mode_config_reset(dev);
This breaks fastboot. I think ideally we'd have the state represent everything is on, and allocate an fb + buffer with the current contents of the framebuffer. Since we can allocate an fb that matches this shouldn't be a problem, just a raw memcpy_fromio should do the job.
I'm trying to wrap my head around how the fastboot setup is implemented.
Apparently, i915's fbdev code goes through the existing pipeline state and fills the fb_info structure with compatible settings.
Where is the initial pipeline state created? If I write reset handlers that initialize the pipeline to the simple-framebuffer's fixed state, whould that be sufficient? A later stage could then do the equivalent of intel_fbdev_init_bios().
The simple-kms helpers don't seem to support custom reset handlers or atomic-state callbacks. I guess that would require and update as well?
You probably want to read the following :)
https://lore.kernel.org/dri-devel/CAKMK7uHtqHy_oz4W7F+hmp9iqp7W5Ra8CxPvJ=9Bw...
It's been on my todo-list since, but I never got to work on it :/
Maxime