• Thomas Zimmermann's avatar
    drm/aperture: Add infrastructure for aperture ownership · 730e7992
    Thomas Zimmermann authored
    Platform devices might operate on firmware framebuffers, such as VESA or
    EFI. Before a native driver for the graphics hardware can take over the
    device, it has to remove any platform driver that operates on the firmware
    framebuffer. Aperture helpers provide the infrastructure for platform
    drivers to acquire firmware framebuffers, and for native drivers to remove
    them later on.
    
    It works similar to the related fbdev mechanism. During initialization, the
    platform driver acquires the firmware framebuffer's I/O memory and provides
    a callback to be removed. The native driver later uses this information to
    remove any platform driver for it's framebuffer I/O memory.
    
    The aperture removal code is integrated into the existing code for removing
    conflicting framebuffers, so native drivers use it automatically.
    
    v5:
    	* fix build error introduced by rebasing v4
    	* fix typo in documentation
    v4:
    	* hide detach callback in implementation (Daniel)
    	* documentation fixes
    v3:
    	* rebase onto existing aperture infrastructure
    	* release aperture from list during detach; fix dangling apertures
    	* don't export struct drm_aperture
    	* document struct drm_aperture_funcs
    v2:
    	* rename plaform helpers to aperture helpers
    	* tie to device lifetime with devm_ functions
    	* removed unsued remove() callback
    	* rename kickout to detach
    	* make struct drm_aperture private
    	* rebase onto existing drm_aperture.h header file
    	* use MIT license only for simplicity
    	* documentation
    Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
    Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Acked-by: default avatarMaxime Ripard <maxime@cerno.tech>
    Tested-by: default avatarnerdopolis <bluescreen_avenger@verizon.net>
    Link: https://patchwork.freedesktop.org/patch/msgid/20210430105840.30515-4-tzimmermann@suse.de
    730e7992
drm_aperture.h 1.03 KB