On Thu, Mar 27, 2014 at 05:44:25PM -0700, Matt Roper wrote: > Previous series revisions & explanation at [1], [2], and [3] > > This version of the patch series focuses on isolating the DRM core changes > from > individual driver changes to (hopefully) make this a bit easier to merge. New > plane and crtc initialization functions have been added to allow drivers to > migrate to the new infrastructure at their own pace; existing drivers that do > not update should continue to function as expected. The one remaining painful > patch here is patch #12, which replaces crtc->fb with crtc->primary->fb. That > patch is now auto-generated via a Coccinelle semantic patch with the rules > described in the commit message; hopefully that will make life slightly easier > for tree maintainers who want to pull it in. > > Daniel mentioned that we should try to merge the underlying infrastructure > here > without the actual userspace-facing capability bit to make sure things > continue > to run as expected without breaking; I've dropped the capability bit patch for > now, but the previous version from [4] should work on top of this patch set. > I've also dropped the i915 cursor support for the moment to keep the patch set > simple.
The usual way to expose experimental feature is to hide them by default, but have a moduel option for developers like drm.universal_planes=1. So for the next round I think you can add the capability again with that drm module option added. -Daniel > I believe the only userspace-visible changes in this series are the plane type > property (which will always return "overlay" since there's no switch to turn > on > the other plane types) and max width/height plane properties. I figured > properties were a little bit cleaner than extending GetPlane() to return > additional information, although I can change that if people feel differently. > Presumably we're still going to need a lot more properties that describe the > limits and capabilities of planes as we go forward (stride, scaling, tiling, > etc.) > > [1] http://lists.freedesktop.org/archives/dri-devel/2014-March/055855.html > [2] http://lists.freedesktop.org/archives/dri-devel/2014-March/055222.html > [3] http://lists.freedesktop.org/archives/dri-devel/2014-February/054719.html > [4] http://lists.freedesktop.org/archives/dri-devel/2014-March/055216.html > > Matt Roper (13): > drm: Add support for multiple plane types (v2) > drm/exynos: Restrict plane loops to only operate on overlay planes > (v2) > drm/i915: Restrict plane loops to only operate on overlay planes (v2) > drm/shmobile: Restrict plane loops to only operate on legacy planes > drm: Make drm_crtc_check_viewport non-static > drm: Add primary plane helpers (v2) > drm: Add drm_universal_plane_init() > drm: Add plane type property (v2) > drm: Add plane max width/height properties > drm: Add drm_crtc_init_with_planes() > drm/msm: Switch to universal plane API's > drm: Replace crtc fb with primary plane fb (v3) > drm: Remove unused drm_crtc->fb > > drivers/gpu/drm/Makefile | 3 +- > drivers/gpu/drm/armada/armada_crtc.c | 23 +- > drivers/gpu/drm/ast/ast_mode.c | 12 +- > drivers/gpu/drm/bochs/bochs_kms.c | 4 +- > drivers/gpu/drm/cirrus/cirrus_mode.c | 10 +- > drivers/gpu/drm/drm_crtc.c | 228 ++++++++++++++++---- > drivers/gpu/drm/drm_crtc_helper.c | 20 +- > drivers/gpu/drm/drm_fb_helper.c | 9 +- > drivers/gpu/drm/drm_plane_helper.c | 312 > +++++++++++++++++++++++++++ > drivers/gpu/drm/exynos/exynos_drm_crtc.c | 22 +- > drivers/gpu/drm/exynos/exynos_drm_encoder.c | 2 +- > drivers/gpu/drm/gma500/cdv_intel_display.c | 2 +- > drivers/gpu/drm/gma500/cdv_intel_dp.c | 2 +- > drivers/gpu/drm/gma500/cdv_intel_hdmi.c | 2 +- > drivers/gpu/drm/gma500/cdv_intel_lvds.c | 2 +- > drivers/gpu/drm/gma500/gma_display.c | 16 +- > drivers/gpu/drm/gma500/mdfld_dsi_output.c | 2 +- > drivers/gpu/drm/gma500/mdfld_intel_display.c | 16 +- > drivers/gpu/drm/gma500/oaktrail_crtc.c | 12 +- > drivers/gpu/drm/gma500/psb_intel_display.c | 2 +- > drivers/gpu/drm/gma500/psb_intel_lvds.c | 2 +- > drivers/gpu/drm/gma500/psb_intel_sdvo.c | 2 +- > drivers/gpu/drm/i915/i915_debugfs.c | 4 +- > drivers/gpu/drm/i915/i915_irq.c | 4 +- > drivers/gpu/drm/i915/intel_display.c | 148 +++++++------ > drivers/gpu/drm/i915/intel_dp.c | 4 +- > drivers/gpu/drm/i915/intel_fbdev.c | 6 +- > drivers/gpu/drm/i915/intel_overlay.c | 4 +- > drivers/gpu/drm/i915/intel_pm.c | 38 ++-- > drivers/gpu/drm/mgag200/mgag200_mode.c | 26 +-- > drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c | 33 +-- > drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c | 8 +- > drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c | 27 +-- > drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c | 8 +- > drivers/gpu/drm/nouveau/dispnv04/crtc.c | 20 +- > drivers/gpu/drm/nouveau/dispnv04/dfp.c | 2 +- > drivers/gpu/drm/nouveau/nouveau_display.c | 8 +- > drivers/gpu/drm/nouveau/nv50_display.c | 17 +- > drivers/gpu/drm/omapdrm/omap_crtc.c | 10 +- > drivers/gpu/drm/omapdrm/omap_fb.c | 2 +- > drivers/gpu/drm/qxl/qxl_display.c | 10 +- > drivers/gpu/drm/radeon/atombios_crtc.c | 20 +- > drivers/gpu/drm/radeon/r100.c | 4 +- > drivers/gpu/drm/radeon/radeon_connectors.c | 2 +- > drivers/gpu/drm/radeon/radeon_device.c | 2 +- > drivers/gpu/drm/radeon/radeon_display.c | 4 +- > drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 16 +- > drivers/gpu/drm/rcar-du/rcar_du_crtc.c | 10 +- > drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 16 +- > drivers/gpu/drm/tegra/dc.c | 16 +- > drivers/gpu/drm/tilcdc/tilcdc_crtc.c | 8 +- > drivers/gpu/drm/udl/udl_modeset.c | 2 +- > drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 14 +- > drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c | 8 +- > drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c | 8 +- > drivers/staging/imx-drm/ipuv3-crtc.c | 6 +- > include/drm/drm_crtc.h | 52 ++++- > include/drm/drm_plane_helper.h | 49 +++++ > 58 files changed, 940 insertions(+), 381 deletions(-) > create mode 100644 drivers/gpu/drm/drm_plane_helper.c > create mode 100644 include/drm/drm_plane_helper.h > > Cc: Intel Graphics Development <intel-gfx at lists.freedesktop.org> > -- > 1.8.5.1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx at lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch