diff options
author | Dave Airlie <airlied@redhat.com> | 2018-07-18 15:46:24 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2018-07-18 15:46:30 -0400 |
commit | 539c475dadc430bd0f1601902fcacc1e55ffe85a (patch) | |
tree | 6dc3e9ca56165cb46baa84febcb885ed52452cf2 /drivers/gpu/drm/i915/intel_sprite.c | |
parent | 0c2fd59ae315e28f8868edf80df21a502f933fec (diff) | |
parent | 82edc7e8b8c06151bdc653935bc13b83e2f0fcfa (diff) |
Merge tag 'drm-intel-next-2018-07-09' of git://anongit.freedesktop.org/drm/drm-intel into drm-next
Higlights here goes to many PSR fixes and improvements; to the Ice lake work with
power well support and begin of DSI support addition. Also there were many improvements
on execlists and interrupts for minimal latency on command submission; and many fixes
on selftests, mostly caught by our CI.
General driver:
- Clean-up on aux irq (Lucas)
- Mark expected switch fall-through for dealing with static analysis tools (Gustavo)
Gem:
- Different fixes for GuC (Chris, Anusha, Michal)
- Avoid self-relocation BIAS if no relocation (Chris)
- Improve debugging cases in on EINVAL return and vma allocation (Chris)
- Fixes and improvements on context destroying and freeing (Chris)
- Wait for engines to idle before retiring (Chris)
- Many improvements on execlists and interrupts for minimal latency on command submission (Chris)
- Many fixes in selftests, specially on cases highlighted on CI (Chris)
- Other fixes and improvements around GGTT (Chris)
- Prevent background reaping of active objects (Chris)
Display:
- Parallel modeset cleanup to fix driver reset (Chris)
- Get AUX power domain for DP main link (Imre)
- Clean-up on PSR unused func pointers (Rodrigo)
- Many PSR/PSR2 fixes and improvements (DK, Jose, Tarun)
- Add a PSR1 live status (Vathsala)
- Replace old drm_*_{un/reference} with put,get functions (Thomas)
- FBC fixes (Maarten)
- Abstract and document the usage of picking macros (Jani)
- Remove unnecessary check for unsupported modifiers for NV12. (DK)
- Interrupt fixes for display (Ville)
- Clean up on sdvo code (Ville)
- Clean up on current DSI code (Jani)
- Remove support for legacy debugfs crc interface (Maarten)
- Simplify get_encoder_power_domains (Imre)
Icelake:
- MG PLL fixes (Imre)
- Add hw workaround for alpha blending (Vandita)
- Add power well support (Imre)
- Add Interrupt Support (Anusha)
- Start to add support for DSI on Ice Lake (Madhav)
Signed-off-by: Dave Airlie <airlied@redhat.com>
# gpg: Signature made Tue 10 Jul 2018 08:41:37 AM AEST
# gpg: using RSA key FA625F640EEB13CA
# gpg: Good signature from "Rodrigo Vivi <rodrigo.vivi@intel.com>"
# gpg: aka "Rodrigo Vivi <rodrigo.vivi@gmail.com>"
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg: There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 6D20 7068 EEDD 6509 1C2C E2A3 FA62 5F64 0EEB 13CA
Link: https://patchwork.freedesktop.org/patch/msgid/20180710234349.GA16562@intel.com
Diffstat (limited to 'drivers/gpu/drm/i915/intel_sprite.c')
-rw-r--r-- | drivers/gpu/drm/i915/intel_sprite.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/intel_sprite.c b/drivers/gpu/drm/i915/intel_sprite.c index 344c0e709b19..4990d6e84ddf 100644 --- a/drivers/gpu/drm/i915/intel_sprite.c +++ b/drivers/gpu/drm/i915/intel_sprite.c | |||
@@ -107,13 +107,21 @@ void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state) | |||
107 | VBLANK_EVASION_TIME_US); | 107 | VBLANK_EVASION_TIME_US); |
108 | max = vblank_start - 1; | 108 | max = vblank_start - 1; |
109 | 109 | ||
110 | local_irq_disable(); | ||
111 | |||
112 | if (min <= 0 || max <= 0) | 110 | if (min <= 0 || max <= 0) |
113 | return; | 111 | goto irq_disable; |
114 | 112 | ||
115 | if (WARN_ON(drm_crtc_vblank_get(&crtc->base))) | 113 | if (WARN_ON(drm_crtc_vblank_get(&crtc->base))) |
116 | return; | 114 | goto irq_disable; |
115 | |||
116 | /* | ||
117 | * Wait for psr to idle out after enabling the VBL interrupts | ||
118 | * VBL interrupts will start the PSR exit and prevent a PSR | ||
119 | * re-entry as well. | ||
120 | */ | ||
121 | if (CAN_PSR(dev_priv) && intel_psr_wait_for_idle(dev_priv)) | ||
122 | DRM_ERROR("PSR idle timed out, atomic update may fail\n"); | ||
123 | |||
124 | local_irq_disable(); | ||
117 | 125 | ||
118 | crtc->debug.min_vbl = min; | 126 | crtc->debug.min_vbl = min; |
119 | crtc->debug.max_vbl = max; | 127 | crtc->debug.max_vbl = max; |
@@ -171,6 +179,10 @@ void intel_pipe_update_start(const struct intel_crtc_state *new_crtc_state) | |||
171 | crtc->debug.start_vbl_count = intel_crtc_get_vblank_counter(crtc); | 179 | crtc->debug.start_vbl_count = intel_crtc_get_vblank_counter(crtc); |
172 | 180 | ||
173 | trace_i915_pipe_update_vblank_evaded(crtc); | 181 | trace_i915_pipe_update_vblank_evaded(crtc); |
182 | return; | ||
183 | |||
184 | irq_disable: | ||
185 | local_irq_disable(); | ||
174 | } | 186 | } |
175 | 187 | ||
176 | /** | 188 | /** |