[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