[Intel-gfx] [PATCH v3 19/20] drm/i915: always disable irqs in intel_pipe_update_start
Maarten Lankhorst
maarten.lankhorst at linux.intel.com
Tue Jul 14 23:38:16 PDT 2015
Op 13-07-15 om 19:16 schreef Daniel Stone:
> Hi,
>
> On 13 July 2015 at 15:30, Maarten Lankhorst
> <maarten.lankhorst at linux.intel.com> wrote:
>> @@ -13649,9 +13647,7 @@ static void intel_begin_crtc_commit(struct drm_crtc *crtc)
>>
>> /* Perform vblank evasion around commit operation */
>> if (crtc->state->active)
>> - intel_crtc->atomic.evade =
>> - intel_pipe_update_start(intel_crtc,
>> - &intel_crtc->atomic.start_vbl_count);
>> + intel_pipe_update_start(intel_crtc, &intel_crtc->atomic.start_vbl_count);
>>
>> if (!needs_modeset(crtc->state) && INTEL_INFO(dev)->gen >= 9)
>> skl_detach_scalers(intel_crtc);
>> @@ -13663,9 +13659,8 @@ static void intel_finish_crtc_commit(struct drm_crtc *crtc)
>> struct drm_i915_private *dev_priv = dev->dev_private;
>> struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
>>
>> - if (intel_crtc->atomic.evade)
>> - intel_pipe_update_end(intel_crtc,
>> - intel_crtc->atomic.start_vbl_count);
> Can we get rid of the 'evade' member in the struct now?
>
> Cheers,
> Daniel
What about merging with the below commit?
------>8-----
drm/i915: remove start_vbl_count from intel_crtc_atomic_commit
This is not precalculated, and should just be part of the crtc struct.
Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
---
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 39729592d1b6..ede652867596 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -13647,7 +13647,7 @@ static void intel_begin_crtc_commit(struct drm_crtc *crtc)
/* Perform vblank evasion around commit operation */
if (crtc->state->active)
- intel_pipe_update_start(intel_crtc, &intel_crtc->atomic.start_vbl_count);
+ intel_pipe_update_start(intel_crtc, &intel_crtc->start_vbl_count);
if (!needs_modeset(crtc->state) && INTEL_INFO(dev)->gen >= 9)
skl_detach_scalers(intel_crtc);
@@ -13658,7 +13658,7 @@ static void intel_finish_crtc_commit(struct drm_crtc *crtc)
struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
if (crtc->state->active)
- intel_pipe_update_end(intel_crtc, intel_crtc->atomic.start_vbl_count);
+ intel_pipe_update_end(intel_crtc, intel_crtc->start_vbl_count);
}
/**
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index 250ee28baff9..0fcfa7f179c4 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -488,10 +488,6 @@ struct skl_pipe_wm {
* and thus can't be run with interrupts disabled.
*/
struct intel_crtc_atomic_commit {
- /* vblank evasion */
- bool evade;
- unsigned start_vbl_count;
-
/* Sleepable operations to perform before commit */
bool wait_for_flips;
bool disable_fbc;
@@ -559,6 +555,7 @@ struct intel_crtc {
int scanline_offset;
+ unsigned start_vbl_count;
struct intel_crtc_atomic_commit atomic;
/* scalers available on this crtc */
More information about the Intel-gfx
mailing list