[PATCH v4 0/1] drm: Support framebuffer panning

From: Maxime Ripard
Date: Tue Feb 28 2017 - 10:38:37 EST


Hi,

This is a respin of the previous serie called "Support fast framebuffer
panning for i.MX6" made by Stefan 6 monthes ago. The imx6 bits have been
removed, and the comments that were made at that time fixed (hopefully).

Let me know what you think,
Maxime

Changes from v3:
- Dropped the overallocation patch that has been applied
- Change authorship of the second patch as suggested by Stefan, the
original author
- Only consider the first CRTC and ignore the ioctl argument

Changes from v2:
- Renamed the CONFIG_DRM_CMA_FBDEV_BUFFER_NUM to
CONFIG_DRM_FBDEV_OVERALLOC, and changed it for a percentage
- Moved the overallocation code into the core fbdev helpers to not rely
on CMA anymore
- Changed the locks taken by drm_fb_helper_ioctl to the mode_config mutex
intead of calling drm_modeset_lock_all
- Don't test against drm_crtc's enabled anymore, but rely on the error
code of drm_crtc_vblank_get instead
- Defined drm_fb_helper_ioctl when DRM_FBDEV_EMULATION is not set in
order to fix a compilation error
- Don't wait for all CRTC's vblank but only the one given in the ioctl
argument

Changes from v1:
- Added drm_fb_helper_ioctl to DRM_FB_HELPER_DEFAULT_OPS
- Expanded a bit the kerneldoc for drm_fb_helper_ioctl
- Added some locking to drm_fb_helper_ioctl
- Checked that the framebuffer is indeed attached before allowing ioctl
- Added a module parameter to specify the number of framebuffers to
allocate

Initial cover letter: Support fast framebuffer panning for i.MX6

im currently working on supporting double/tripple buffering for the
framebuffer emulation on the i.MX6. While working on it I noticed that the
mainline kernel does not support some features in the generic drm
framebuffer emulation for framebuffer panning and vsync synchronisation.
They are needed for simple framebuffer applications and some OpenGL
libraries using double buffering with FBIOPUT_VSCREENINFO,
FBIO_WAITFORVSYNC and FBIOPAN_DISPLAY.

Maxime Ripard (1):
drm/fb-helper: implement ioctl FBIO_WAITFORVSYNC

drivers/gpu/drm/drm_fb_helper.c | 68 ++++++++++++++++++++++++++++++++++-
include/drm/drm_fb_helper.h | 12 +++++-
2 files changed, 79 insertions(+), 1 deletion(-)

base-commit: 075ffb50cc16ab055b5d47b30163401bb356ab51
--
git-series 0.8.11