• Bernie Thompson's avatar
    Staging: udlfb: Support for fbdev mmap clients (defio) · 3e8f3d6f
    Bernie Thompson authored
    Add support for fbdev mmap clients who don't send damage ioctls
    
    Because DisplayLink devices are out on the other end of usb, their
    "framebuffer" is just normal system memory. So memory mapped writes
    don't automatically trigger anything. So up to this point, standard
    fbdev clients who rely on mmap() will get an unchanging screen.
    
    This patch makes udlfb a client of Jaya Kumar's defio framework - which sets
    up page fault triggers, and those faults are accumulated and sent to udlfb
    on a defferred basis, to process as damage notifications for the framebuffer.
    
    Because this involves more overhead than a notification directly from
    the application (e.g. just passing on X DAMAGE extension notifications),
    a sysfs attribute is provided by udlfb to control defio support.
    
    /sys/class/graphics/fb*/use_defio - writing a "0" to this file before
    calling mmap() causes defio to not be initialized - instead udlfb
    will rely on getting damage notifications directly through the damage ioctl.
    
    There are unsolved rendering problems with defio (horizontal dead regions
    on framebuffer, that accumulate over time) which still needs a fix.
    Signed-off-by: default avatarBernie Thompson <bernie@plugable.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
    3e8f3d6f
udlfb.c 41.7 KB