• Gerd Hoffmann's avatar
    drm/cirrus: rewrite and modernize driver. · ab3e023b
    Gerd Hoffmann authored
    Time to kill some bad sample code people are copying from ;)
    
    This is a complete rewrite of the cirrus driver.  The cirrus_mode_set()
    function is pretty much the only function which is carried over largely
    unmodified.  Everything else is upside down.
    
    It is a single monster patch.  But given that it does some pretty
    fundamental changes to the drivers workflow and also reduces the code
    size by roughly 70% I think it'll still be alot easier to review than a
    longish baby-step patch series.
    
    Changes summary:
     - Given the small amout of video memory (4 MB) the cirrus device has
       the rewritten driver doesn't try to manage buffers there.  Instead
       it will blit (memcpy) the active framebuffer to video memory.
     - All gem objects are stored in main memory and are manged using the
       new shmem helpers.  ttm is out.
     - It supports RG16, RG24 and XR24 formats.  XR24 gets converted to RG24
       or RG16 at blit time if needed, to avoid the pitch becoming larger
       than what the cirrus hardware can handle.
     - The simple display pipeline is used.
     - The generic fbdev emulation is used.
     - It's a atomic driver now.
     - It runs wayland.
    Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
    Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Reviewed-by: default avatarSam Ravnborg <sam@ravnborg.org>
    Acked-by: default avatarNoralf Trønnes <noralf@tronnes.org>
    Link: http://patchwork.freedesktop.org/patch/msgid/20190405095219.9231-6-kraxel@redhat.com
    ab3e023b
Kconfig 717 Bytes