[Intel-gfx] [PATCH v2 16/27] drm/i915: move detaching scalers to begin_crtc_commit, v2.
Maarten Lankhorst
maarten.lankhorst at linux.intel.com
Wed Jun 10 20:47:51 PDT 2015
Op 11-06-15 om 03:36 schreef Matt Roper:
> On Thu, Jun 04, 2015 at 02:47:46PM +0200, Maarten Lankhorst wrote:
>> This is probably intended to be be done during vblank evasion.
>>
>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst at linux.intel.com>
>> ---
>> drivers/gpu/drm/i915/intel_atomic.c | 3 ---
>> drivers/gpu/drm/i915/intel_display.c | 8 ++++----
>> drivers/gpu/drm/i915/intel_drv.h | 1 -
>> 3 files changed, 4 insertions(+), 8 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_atomic.c b/drivers/gpu/drm/i915/intel_atomic.c
>> index 7ca225194b7c..8447a1fef332 100644
>> --- a/drivers/gpu/drm/i915/intel_atomic.c
>> +++ b/drivers/gpu/drm/i915/intel_atomic.c
>> @@ -144,9 +144,6 @@ int intel_atomic_commit(struct drm_device *dev,
>> for_each_crtc_in_state(state, crtc, crtc_state, i) {
>> to_intel_crtc(crtc)->config = to_intel_crtc_state(crtc->state);
>>
>> - if (INTEL_INFO(dev)->gen >= 9)
>> - skl_detach_scalers(to_intel_crtc(crtc));
>> -
>> drm_atomic_helper_commit_planes_on_crtc(crtc_state);
>> }
>>
>> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
>> index f5f074524603..2ba3d6abbd0c 100644
>> --- a/drivers/gpu/drm/i915/intel_display.c
>> +++ b/drivers/gpu/drm/i915/intel_display.c
>> @@ -2911,16 +2911,13 @@ unsigned long intel_plane_obj_offset(struct intel_plane *intel_plane,
>> /*
>> * This function detaches (aka. unbinds) unused scalers in hardware
>> */
>> -void skl_detach_scalers(struct intel_crtc *intel_crtc)
>> +static void skl_detach_scalers(struct intel_crtc *intel_crtc)
>> {
>> struct drm_device *dev;
>> struct drm_i915_private *dev_priv;
>> struct intel_crtc_scaler_state *scaler_state;
>> int i;
>>
>> - if (!intel_crtc || !intel_crtc->config)
>> - return;
>> -
>> dev = intel_crtc->base.dev;
>> dev_priv = dev->dev_private;
>> scaler_state = &intel_crtc->config->scaler_state;
>> @@ -13505,6 +13502,9 @@ static void intel_begin_crtc_commit(struct drm_crtc *crtc)
>> intel_crtc->atomic.evade =
>> 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);
> I'm not sure I follow where the !needs_modeset test comes from. Do
> these get blown away somewhere else in the modeset sequence that I'm
> overlooking? Detaching scalers here when we are doing a modeset
> wouldn't cause actual problems would it?
No it won't cause direct problems, just unneeded since modeset disable would already disable scalers.
~Maarten
More information about the Intel-gfx
mailing list