• Thomas Zimmermann's avatar
    drm/gma500: Implement client-based fbdev emulation · 8f1aaccb
    Thomas Zimmermann authored
    Implement fbdevemulation on top of struct drm_client and its helpers.
    This ad-hoc interfaces for restoring and closing fbdev emulation with
    per-client callback for hotplugging, restoring and unregistering.
    
    A single function, psb_fbdev_setup(), starts fbdev emulation after
    the DRM device has been registered. Hence, fbdev acts like a regular
    DRM client.
    
    The setup call only prepares the fbdev emulation. It then implements
    connector hotplugging. The first successful hotplug event initializes
    fbdev emulation.
    
    Unregistering depends on the hotplugging. Fully initialized emulation
    is cleaned up through drm_fb_helper_unregister_info() and fb_destroy.
    For prepared-only setups, unregistering unprepares the emulation and
    releases all resources. In both cases, fbdev emulation will be cleaned
    up.
    
    v2:
    	* declare empty setup function as 'static inline' (kernel
    	  test robot)
    Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
    Acked-by: default avatarPatrik Jakobsson <patrik.r.jakobsson@gmail.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230313151610.14367-7-tzimmermann@suse.de
    8f1aaccb
framebuffer.c 5.71 KB