Re: [PATCH v2 08/17] drm/i915: Set mode_changed for audio in intel_modeset_pipe_config()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Op 18-05-15 om 17:36 schreef Daniel Vetter:
> On Wed, May 13, 2015 at 10:23:38PM +0200, Maarten Lankhorst wrote:
>> From: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@xxxxxxxxx>
>>
>> A follow up patch will make intel_modeset_compute_config() deal with
>> multiple crtcs, so move crtc specific stuff into the lower level crtc
>> specific function.
>>
>> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@xxxxxxxxxxxxxxx>
>> ---
>>  drivers/gpu/drm/i915/intel_display.c | 51 ++++++++++++++++++++----------------
>>  1 file changed, 28 insertions(+), 23 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
>> index 583c9105cf49..ec548cbb06ee 100644
>> --- a/drivers/gpu/drm/i915/intel_display.c
>> +++ b/drivers/gpu/drm/i915/intel_display.c
>> @@ -427,6 +427,12 @@ static void vlv_clock(int refclk, intel_clock_t *clock)
>>  	clock->dot = DIV_ROUND_CLOSEST(clock->vco, clock->p);
>>  }
>>  
>> +static bool
>> +needs_modeset(struct drm_crtc_state *state)
>> +{
>> +	return state->mode_changed || state->active_changed;
>> +}
>> +
>>  /**
>>   * Returns whether any output on the specified pipe is of the specified type
>>   */
>> @@ -11387,6 +11393,15 @@ intel_modeset_pipe_config(struct drm_crtc *crtc,
>>  		return -EINVAL;
>>  	}
>>  
>> +	/*
>> +	 * XXX: Add all connectors to make the crtc state match the encoders.
>> +	 */
>> +	if (!needs_modeset(&pipe_config->base)) {
>> +		ret = drm_atomic_add_affected_connectors(state, crtc);
>> +		if (ret)
>> +			return ret;
>> +	}
> Comment aside: Eventually we need to invert this check and use
> intel_pipe_config_compare with a special mode to a) not scream into dmesg
> b) ignore any changes we can fixup without a full modeset (i.e. pfit). And
> then use that to decide whether we need a modeset or not for the crtc.
> We still rely upon our internal set_mode functions to at least in some
> cases do an unconditional modeset on the passed-in crtc for property
> updates. But once converted to atomic we need to be more intelligent,
> especially since userspace expects no-op changes to get filtered out. So
> unconditionally doing a modeset wont cut it either (with the current code
> all the set_prop hooks have such checks hand-rolled).
Yeah, but for now I can't get that to work properly until everything looks more atomic first.

~Maarten
_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/intel-gfx





[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux