linux/drivers/gpu/drm/i915
Matt Roper 465c120c4c drm/i915: Intel-specific primary plane handling (v8)
Intel hardware allows the primary plane to be disabled independently of
the CRTC.  Provide custom primary plane handling to allow this.

v8:
 - Pin/unpin properly when clipping causes the primary plane to be
   disabled when it has previously been enabled.
 - s/drm_primary_helper_check_update/drm_plane_helper_check_update/
v7:
 - Clip primary plane to invisible when crtc is disabled since
   intel_crtc->config.pipe_src_{w,h} may be garbage otherwise.
 - Unpin old fb before pinning new one in the "just pin and
   return" case that is used when the crtc is disabled.
 - Don't treat implicit disabling of the primary plane (caused by
   clipping) the same way as explicit disabling (caused by fb=0).
   For implicit disables, we should leave the fb set and pinned,
   whereas for explicit disables we need to unpin the fb before
   primary->fb is cleared.
v6:
 - Pass rectangles to primary helper check function and get plane
   visibility back.
 - Wait for pending pageflips on primary plane update/disable.
 - Allow primary plane to be updated while the crtc is disabled (changes
   will take effect when the crtc is re-enabled if modeset passes -1
   for the fb id).
 - Drop WARN() if we try to disable the primary plane when it's
   already been disabled.  This will happen if the crtc gets disabled
   after the primary plane has already been disabled independently.
v5:
 - Use new drm_primary_helper_check_update() helper function to check
   setplane parameter validity.
 - Swap primary plane's pipe for pre-gen4 FBC (caught by Ville Syrjälä)
 - Cleanup primary plane properly on crtc init failure
v4:
 - Don't add a primary_plane field to intel_crtc; that was left over
   from a much earlier iteration of this patch series, but is no longer
   needed/used now that the DRM core primary plane support has been
   merged.
v3:
 - Provide gen-specific primary plane format lists (suggested by Daniel
   Vetter).
 - If the primary plane is already enabled, go ahead and just call the
   primary plane helper to do the update (suggested by Daniel Vetter).
 - Don't try to disable the primary plane on destruction; the DRM layer
   should have already taken care of this for us.
v2:
 - Unpin fb properly on primary plane disable
 - Provide an Intel-specific set of primary plane formats
 - Additional sanity checks on setplane (in line with the checks
   currently being done by the DRM core primary plane helper)

Reviewed-by: Chon Ming Lee <chon.ming.lee@intel.com>
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
2014-06-11 16:57:37 +02:00
..
dvo_ch7xxx.c drm/i915: Remove spurious semicolons 2014-04-09 21:54:33 +02:00
dvo_ch7017.c
dvo_ivch.c drm/i915: Remove spurious semicolons 2014-04-09 21:54:33 +02:00
dvo_ns2501.c drm/i915: Remove spurious semicolons 2014-04-09 21:54:33 +02:00
dvo_sil164.c drm/i915: Remove spurious semicolons 2014-04-09 21:54:33 +02:00
dvo_tfp410.c drm/i915: Remove spurious semicolons 2014-04-09 21:54:33 +02:00
dvo.h
i915_cmd_parser.c drm/i915: s/intel_ring_buffer/intel_engine_cs 2014-05-22 23:01:05 +02:00
i915_debugfs.c drm/i915: Drop locking around fbdev-fb in debugfs 2014-06-11 16:57:35 +02:00
i915_dma.c drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
i915_drv.c drm/i915: Don't use pipe_offset stuff for DPLL registers 2014-06-11 16:57:31 +02:00
i915_drv.h drm/i915: Don't use pipe_offset stuff for DPLL registers 2014-06-11 16:57:31 +02:00
i915_gem_context.c drm/i915: Kill private_default_ctx off 2014-05-22 23:44:44 +02:00
i915_gem_debug.c drm/i915: prefer struct drm_i915_private to drm_i915_private_t 2014-03-31 15:34:21 +02:00
i915_gem_dmabuf.c drm/i915: Introduce mapping of user pages into video memory (userptr) ioctl 2014-05-16 19:31:29 +02:00
i915_gem_evict.c drm/i915: Prevent negative relocation deltas from wrapping 2014-05-27 11:18:40 +03:00
i915_gem_execbuffer.c Merge commit '9e9a928eed8796a0a1aaed7e0b676db86ba84594' into drm-next 2014-06-05 20:28:59 +10:00
i915_gem_gtt.c Merge tag 'drm-intel-fixes-2014-06-06' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-06-06 19:07:09 +10:00
i915_gem_gtt.h drm/i915: s/i915_hw_context/intel_context 2014-05-22 23:41:17 +02:00
i915_gem_render_state.c drm/i915: s/intel_ring_buffer/intel_engine_cs 2014-05-22 23:01:05 +02:00
i915_gem_stolen.c drm/i915: restrict vt-d stolen memory workaround to pre-gen8 2014-03-31 10:45:34 +02:00
i915_gem_tiling.c drm/i915: prefer struct drm_i915_private to drm_i915_private_t 2014-03-31 15:34:21 +02:00
i915_gem_userptr.c drm/i915: Introduce mapping of user pages into video memory (userptr) ioctl 2014-05-16 19:31:29 +02:00
i915_gem.c Merge tag 'drm-intel-fixes-2014-06-06' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-06-06 19:07:09 +10:00
i915_gpu_error.c drm/i915: Split the ringbuffers from the rings (2/3) 2014-05-22 23:27:25 +02:00
i915_ioc32.c drm: Remove DRM_ARRAY_SIZE() for ARRAY_SIZE() 2014-06-10 09:36:17 +10:00
i915_irq.c drm/i915/chv: Freq(opcode) request for CHV. 2014-06-11 16:57:28 +02:00
i915_params.c drm/i915: Add debug module option for VTd validation 2014-04-03 11:23:11 +02:00
i915_reg.h drm/i915/chv: Handle video DIP registers on CHV 2014-06-11 16:57:32 +02:00
i915_suspend.c drm/i915: disable GT power saving early during system suspend 2014-05-22 21:53:27 +02:00
i915_sysfs.c drm/i915: s/i915_hw_context/intel_context 2014-05-22 23:41:17 +02:00
i915_trace_points.c
i915_trace.h drm/i915: s/intel_ring_buffer/intel_engine_cs 2014-05-22 23:01:05 +02:00
i915_ums.c drm/i915: Only restore backlight combination mode reg for ums 2014-01-24 17:22:45 +01:00
intel_acpi.c Merge branch 'acpi-dsm' 2014-01-12 23:45:52 +01:00
intel_bios.c Merge tag 'drm-intel-fixes-2014-06-06' of git://anongit.freedesktop.org/drm-intel into drm-next 2014-06-06 19:07:09 +10:00
intel_bios.h drm/i915: Detect if MIPI panel based on VBT and initialize only if present 2014-06-05 08:52:33 +02:00
intel_crt.c drm: convert crtc and connection_mutex to ww_mutex (v5) 2014-06-05 09:54:33 +10:00
intel_ddi.c drm/i915: grab the audio power domain when enabling audio on HSW+ 2014-05-22 15:06:33 +02:00
intel_display.c drm/i915: Intel-specific primary plane handling (v8) 2014-06-11 16:57:37 +02:00
intel_dp.c drm/i915/chv: Force clock buffer enables 2014-06-11 16:57:30 +02:00
intel_drv.h drm/i915: Make intel_dsi_init() return void 2014-06-11 16:57:33 +02:00
intel_dsi_cmd.c drm/i915: Send DPI command explicitely in LP mode 2014-04-09 21:54:30 +02:00
intel_dsi_cmd.h drm/i915: Send DPI command explicitely in LP mode 2014-04-09 21:54:30 +02:00
intel_dsi_panel_vbt.c drm/i915: Fix checkpatch errors 2014-06-11 16:57:33 +02:00
intel_dsi_pll.c drm/i915: Try harder to get best m, n, p values with minimal error 2013-12-11 23:52:18 +01:00
intel_dsi.c drm/i915: Make intel_dsi_init() return void 2014-06-11 16:57:33 +02:00
intel_dsi.h drm/i915: Add support for Generic MIPI panel driver 2014-06-05 08:52:32 +02:00
intel_dvo.c drm/i915: replace drm_get_connector_name() with direct name field use 2014-06-04 13:14:37 +10:00
intel_fbdev.c Merge commit '9e9a928eed8796a0a1aaed7e0b676db86ba84594' into drm-next 2014-06-05 20:28:59 +10:00
intel_hdmi.c drm/i915/chv: Force clock buffer enables 2014-06-11 16:57:30 +02:00
intel_i2c.c drm/i915: Disable dp aux irq on g4x 2014-02-07 16:40:07 +01:00
intel_lvds.c drm/i915: replace drm_get_connector_name() with direct name field use 2014-06-04 13:14:37 +10:00
intel_modes.c
intel_opregion.c drm: convert crtc and connection_mutex to ww_mutex (v5) 2014-06-05 09:54:33 +10:00
intel_overlay.c Merge commit '9e9a928eed8796a0a1aaed7e0b676db86ba84594' into drm-next 2014-06-05 20:28:59 +10:00
intel_panel.c Merge commit '9e9a928eed8796a0a1aaed7e0b676db86ba84594' into drm-next 2014-06-05 20:28:59 +10:00
intel_pm.c drm/i915/chv: Enable RPS (Turbo) for Cherryview 2014-06-11 16:57:26 +02:00
intel_renderstate_gen6.c drm/i915: add null render states for gen6, gen7 and gen8 2014-05-14 19:17:08 +02:00
intel_renderstate_gen7.c drm/i915: add null render states for gen6, gen7 and gen8 2014-05-14 19:17:08 +02:00
intel_renderstate_gen8.c drm/i915: add null render states for gen6, gen7 and gen8 2014-05-14 19:17:08 +02:00
intel_renderstate.h drm/i915: add render state initialization 2014-05-14 19:16:13 +02:00
intel_ringbuffer.c drm/i915: Don't WARN about ring idle bit on gen2 2014-06-05 08:52:41 +02:00
intel_ringbuffer.h drm/i915: s/i915_hw_context/intel_context 2014-05-22 23:41:17 +02:00
intel_sdvo_regs.h drm/i915: use __packed instead of __attribute__((packed)) 2013-12-03 18:19:49 +01:00
intel_sdvo.c drm/i915: replace drm_get_connector_name() with direct name field use 2014-06-04 13:14:37 +10:00
intel_sideband.c drm/i915: vlv/chv: fix DSI sideband register accessing 2014-05-19 17:50:14 +02:00
intel_sprite.c drm: convert crtc and connection_mutex to ww_mutex (v5) 2014-06-05 09:54:33 +10:00
intel_tv.c drm: convert crtc and connection_mutex to ww_mutex (v5) 2014-06-05 09:54:33 +10:00
intel_uncore.c drm/i915/chv: Skip gen6_gt_check_fifodbg() on CHV 2014-06-11 16:57:28 +02:00
Kconfig drm/i915: Introduce mapping of user pages into video memory (userptr) ioctl 2014-05-16 19:31:29 +02:00
Makefile drm/i915: Add support for Generic MIPI panel driver 2014-06-05 08:52:32 +02:00