drm/fb-helper: Add fb_deferred_io support
authorNoralf Trønnes <noralf@tronnes.org>
Thu, 28 Apr 2016 15:18:33 +0000 (17:18 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Mon, 2 May 2016 14:22:03 +0000 (16:22 +0200)
commiteaa434defaca1781fb2932c685289b610aeb8b4b
tree718167fd30355f4366b6224320044d35f19da92c
parent2b5e8e579be4ce3b576e419b3eb2bc06d8f41389
drm/fb-helper: Add fb_deferred_io support

This adds deferred io support to drm_fb_helper.
The fbdev framebuffer changes are flushed using the callback
(struct drm_framebuffer *)->funcs->dirty() by a dedicated worker
ensuring that it always runs in process context.

For those wondering why we need to be able to handle atomic calling
contexts: Both panic paths and cursor code and fbcon blanking can run
from atomic. See

commit bcb39af4486be07e896fc374a2336bad3104ae0a
Author: Dave Airlie <airlied@redhat.com>
Date:   Thu Feb 7 11:19:15 2013 +1000

    drm/udl: make usage as a console safer

for where this was originally discovered.

Signed-off-by: Noralf Trønnes <noralf@tronnes.org>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
[danvet: Augment commit message with why we need to handle atomic
contexts.]
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: http://patchwork.freedesktop.org/patch/msgid/1461856717-6476-4-git-send-email-noralf@tronnes.org
drivers/gpu/drm/Kconfig
drivers/gpu/drm/drm_fb_helper.c
include/drm/drm_fb_helper.h