All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@intel.com>
To: Lyude Paul <lyude@redhat.com>,
	imre.deak@intel.com, Harry Wentland <harry.wentland@amd.com>,
	Alex Deucher <alexander.deucher@amd.com>,
	Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: stable@vger.kernel.org, intel-gfx@lists.freedesktop.org,
	dri-devel@lists.freedesktop.org,
	"Ville Syrjälä" <ville.syrjala@linux.intel.com>,
	"Ben Skeggs" <bskeggs@redhat.com>,
	"Wayne Lin" <Wayne.Lin@amd.com>,
	"Karol Herbst" <kherbst@redhat.com>,
	"Thomas Zimmermann" <tzimmermann@suse.de>
Subject: Re: [Cc: drm-misc folks] Re: [Intel-gfx] [CI 1/4] drm/i915/dp_mst: Add the MST topology state for modesetted CRTCs
Date: Fri, 10 Feb 2023 12:47:51 +0200	[thread overview]
Message-ID: <87bkm1x0dk.fsf@intel.com> (raw)
In-Reply-To: <0b5a4e81dc98f9c28d77f0f53741712d1c7c3c09.camel@redhat.com>

On Thu, 09 Feb 2023, Lyude Paul <lyude@redhat.com> wrote:
> On Tue, 2023-02-07 at 14:59 +0200, Imre Deak wrote:
>> Hi all,
>> 
>> On Mon, Feb 06, 2023 at 01:48:53PM +0200, Imre Deak wrote:
>> > Add the MST topology for a CRTC to the atomic state if the driver
>> > needs to force a modeset on the CRTC after the encoder compute config
>> > functions are called.
>> > 
>> > Later the MST encoder's disable hook also adds the state, but that isn't
>> > guaranteed to work (since in that hook getting the state may fail, which
>> > can't be handled there). This should fix that, while a later patch fixes
>> > the use of the MST state in the disable hook.
>> > 
>> > v2: Add missing forward struct declartions, caught by hdrtest.
>> > v3: Factor out intel_dp_mst_add_topology_state_for_connector() used
>> >     later in the patchset.
>> > 
>> > Cc: Lyude Paul <lyude@redhat.com>
>> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> > Cc: stable@vger.kernel.org # 6.1
>> > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> # v2
>> > Reviewed-by: Lyude Paul <lyude@redhat.com>
>> > Signed-off-by: Imre Deak <imre.deak@intel.com>
>> 
>> Is it ok to merge these 4 patches (also at [1]), via the i915 tree?
>> 
>> If so could it be also acked from the AMD and Nouveau side?
>
> Whichever branch works best for y'all is fine by me, if it's via i915's tree I
> guess we might need to back-merge drm-misc at some point so I can write up
> equivalent fixes for nouveau as well.
>
> (Added Thomas Zimmermann to Cc)

I suggest merging the series via drm-misc-next-fixes branch, to get them
to Linus' tree in the upcoming merge window. They all apply cleanly
there. The drivers can backmerge them from drm-next in the mean time, or
wait for v6.3-rc1.

Daniel acked this (well, any -next-fixes branch) on IRC yesterday,
obviously ack from me too.

I take the above as Lyude's ack for nouveau.

Harry, Wayne, do you agree with this, ack for merging the AMD part via
drm-misc-next-fixes? (Alex suggested to get your input.)


BR,
Jani.


>
>> 
>> [1] https://patchwork.freedesktop.org/series/113703/
>> 
>> > ---
>> >  drivers/gpu/drm/i915/display/intel_display.c |  4 ++
>> >  drivers/gpu/drm/i915/display/intel_dp_mst.c  | 61 ++++++++++++++++++++
>> >  drivers/gpu/drm/i915/display/intel_dp_mst.h  |  4 ++
>> >  3 files changed, 69 insertions(+)
>> > 
>> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
>> > index 166662ade593c..38106cf63b3b9 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_display.c
>> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
>> > @@ -5936,6 +5936,10 @@ int intel_modeset_all_pipes(struct intel_atomic_state *state,
>> >  		if (ret)
>> >  			return ret;
>> >  
>> > +		ret = intel_dp_mst_add_topology_state_for_crtc(state, crtc);
>> > +		if (ret)
>> > +			return ret;
>> > +
>> >  		ret = intel_atomic_add_affected_planes(state, crtc);
>> >  		if (ret)
>> >  			return ret;
>> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> > index 8b0e4defa3f10..f3cb12dcfe0a7 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> > @@ -1223,3 +1223,64 @@ bool intel_dp_mst_is_slave_trans(const struct intel_crtc_state *crtc_state)
>> >  	return crtc_state->mst_master_transcoder != INVALID_TRANSCODER &&
>> >  	       crtc_state->mst_master_transcoder != crtc_state->cpu_transcoder;
>> >  }
>> > +
>> > +/**
>> > + * intel_dp_mst_add_topology_state_for_connector - add MST topology state for a connector
>> > + * @state: atomic state
>> > + * @connector: connector to add the state for
>> > + * @crtc: the CRTC @connector is attached to
>> > + *
>> > + * Add the MST topology state for @connector to @state.
>> > + *
>> > + * Returns 0 on success, negative error code on failure.
>> > + */
>> > +static int
>> > +intel_dp_mst_add_topology_state_for_connector(struct intel_atomic_state *state,
>> > +					      struct intel_connector *connector,
>> > +					      struct intel_crtc *crtc)
>> > +{
>> > +	struct drm_dp_mst_topology_state *mst_state;
>> > +
>> > +	if (!connector->mst_port)
>> > +		return 0;
>> > +
>> > +	mst_state = drm_atomic_get_mst_topology_state(&state->base,
>> > +						      &connector->mst_port->mst_mgr);
>> > +	if (IS_ERR(mst_state))
>> > +		return PTR_ERR(mst_state);
>> > +
>> > +	mst_state->pending_crtc_mask |= drm_crtc_mask(&crtc->base);
>> > +
>> > +	return 0;
>> > +}
>> > +
>> > +/**
>> > + * intel_dp_mst_add_topology_state_for_crtc - add MST topology state for a CRTC
>> > + * @state: atomic state
>> > + * @crtc: CRTC to add the state for
>> > + *
>> > + * Add the MST topology state for @crtc to @state.
>> > + *
>> > + * Returns 0 on success, negative error code on failure.
>> > + */
>> > +int intel_dp_mst_add_topology_state_for_crtc(struct intel_atomic_state *state,
>> > +					     struct intel_crtc *crtc)
>> > +{
>> > +	struct drm_connector *_connector;
>> > +	struct drm_connector_state *conn_state;
>> > +	int i;
>> > +
>> > +	for_each_new_connector_in_state(&state->base, _connector, conn_state, i) {
>> > +		struct intel_connector *connector = to_intel_connector(_connector);
>> > +		int ret;
>> > +
>> > +		if (conn_state->crtc != &crtc->base)
>> > +			continue;
>> > +
>> > +		ret = intel_dp_mst_add_topology_state_for_connector(state, connector, crtc);
>> > +		if (ret)
>> > +			return ret;
>> > +	}
>> > +
>> > +	return 0;
>> > +}
>> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.h b/drivers/gpu/drm/i915/display/intel_dp_mst.h
>> > index f7301de6cdfb3..f1815bb722672 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.h
>> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.h
>> > @@ -8,6 +8,8 @@
>> >  
>> >  #include <linux/types.h>
>> >  
>> > +struct intel_atomic_state;
>> > +struct intel_crtc;
>> >  struct intel_crtc_state;
>> >  struct intel_digital_port;
>> >  struct intel_dp;
>> > @@ -18,5 +20,7 @@ int intel_dp_mst_encoder_active_links(struct intel_digital_port *dig_port);
>> >  bool intel_dp_mst_is_master_trans(const struct intel_crtc_state *crtc_state);
>> >  bool intel_dp_mst_is_slave_trans(const struct intel_crtc_state *crtc_state);
>> >  bool intel_dp_mst_source_support(struct intel_dp *intel_dp);
>> > +int intel_dp_mst_add_topology_state_for_crtc(struct intel_atomic_state *state,
>> > +					     struct intel_crtc *crtc);
>> >  
>> >  #endif /* __INTEL_DP_MST_H__ */
>> > -- 
>> > 2.37.1
>> > 
>> 

-- 
Jani Nikula, Intel Open Source Graphics Center

WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@intel.com>
To: Lyude Paul <lyude@redhat.com>,
	imre.deak@intel.com, Harry Wentland <harry.wentland@amd.com>,
	Alex Deucher <alexander.deucher@amd.com>,
	Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Karol Herbst <kherbst@redhat.com>,
	intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	stable@vger.kernel.org, Thomas Zimmermann <tzimmermann@suse.de>,
	Wayne Lin <Wayne.Lin@amd.com>, Ben Skeggs <bskeggs@redhat.com>
Subject: Re: [Cc: drm-misc folks] Re: [Intel-gfx] [CI 1/4] drm/i915/dp_mst: Add the MST topology state for modesetted CRTCs
Date: Fri, 10 Feb 2023 12:47:51 +0200	[thread overview]
Message-ID: <87bkm1x0dk.fsf@intel.com> (raw)
In-Reply-To: <0b5a4e81dc98f9c28d77f0f53741712d1c7c3c09.camel@redhat.com>

On Thu, 09 Feb 2023, Lyude Paul <lyude@redhat.com> wrote:
> On Tue, 2023-02-07 at 14:59 +0200, Imre Deak wrote:
>> Hi all,
>> 
>> On Mon, Feb 06, 2023 at 01:48:53PM +0200, Imre Deak wrote:
>> > Add the MST topology for a CRTC to the atomic state if the driver
>> > needs to force a modeset on the CRTC after the encoder compute config
>> > functions are called.
>> > 
>> > Later the MST encoder's disable hook also adds the state, but that isn't
>> > guaranteed to work (since in that hook getting the state may fail, which
>> > can't be handled there). This should fix that, while a later patch fixes
>> > the use of the MST state in the disable hook.
>> > 
>> > v2: Add missing forward struct declartions, caught by hdrtest.
>> > v3: Factor out intel_dp_mst_add_topology_state_for_connector() used
>> >     later in the patchset.
>> > 
>> > Cc: Lyude Paul <lyude@redhat.com>
>> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> > Cc: stable@vger.kernel.org # 6.1
>> > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> # v2
>> > Reviewed-by: Lyude Paul <lyude@redhat.com>
>> > Signed-off-by: Imre Deak <imre.deak@intel.com>
>> 
>> Is it ok to merge these 4 patches (also at [1]), via the i915 tree?
>> 
>> If so could it be also acked from the AMD and Nouveau side?
>
> Whichever branch works best for y'all is fine by me, if it's via i915's tree I
> guess we might need to back-merge drm-misc at some point so I can write up
> equivalent fixes for nouveau as well.
>
> (Added Thomas Zimmermann to Cc)

I suggest merging the series via drm-misc-next-fixes branch, to get them
to Linus' tree in the upcoming merge window. They all apply cleanly
there. The drivers can backmerge them from drm-next in the mean time, or
wait for v6.3-rc1.

Daniel acked this (well, any -next-fixes branch) on IRC yesterday,
obviously ack from me too.

I take the above as Lyude's ack for nouveau.

Harry, Wayne, do you agree with this, ack for merging the AMD part via
drm-misc-next-fixes? (Alex suggested to get your input.)


BR,
Jani.


>
>> 
>> [1] https://patchwork.freedesktop.org/series/113703/
>> 
>> > ---
>> >  drivers/gpu/drm/i915/display/intel_display.c |  4 ++
>> >  drivers/gpu/drm/i915/display/intel_dp_mst.c  | 61 ++++++++++++++++++++
>> >  drivers/gpu/drm/i915/display/intel_dp_mst.h  |  4 ++
>> >  3 files changed, 69 insertions(+)
>> > 
>> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
>> > index 166662ade593c..38106cf63b3b9 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_display.c
>> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
>> > @@ -5936,6 +5936,10 @@ int intel_modeset_all_pipes(struct intel_atomic_state *state,
>> >  		if (ret)
>> >  			return ret;
>> >  
>> > +		ret = intel_dp_mst_add_topology_state_for_crtc(state, crtc);
>> > +		if (ret)
>> > +			return ret;
>> > +
>> >  		ret = intel_atomic_add_affected_planes(state, crtc);
>> >  		if (ret)
>> >  			return ret;
>> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> > index 8b0e4defa3f10..f3cb12dcfe0a7 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> > @@ -1223,3 +1223,64 @@ bool intel_dp_mst_is_slave_trans(const struct intel_crtc_state *crtc_state)
>> >  	return crtc_state->mst_master_transcoder != INVALID_TRANSCODER &&
>> >  	       crtc_state->mst_master_transcoder != crtc_state->cpu_transcoder;
>> >  }
>> > +
>> > +/**
>> > + * intel_dp_mst_add_topology_state_for_connector - add MST topology state for a connector
>> > + * @state: atomic state
>> > + * @connector: connector to add the state for
>> > + * @crtc: the CRTC @connector is attached to
>> > + *
>> > + * Add the MST topology state for @connector to @state.
>> > + *
>> > + * Returns 0 on success, negative error code on failure.
>> > + */
>> > +static int
>> > +intel_dp_mst_add_topology_state_for_connector(struct intel_atomic_state *state,
>> > +					      struct intel_connector *connector,
>> > +					      struct intel_crtc *crtc)
>> > +{
>> > +	struct drm_dp_mst_topology_state *mst_state;
>> > +
>> > +	if (!connector->mst_port)
>> > +		return 0;
>> > +
>> > +	mst_state = drm_atomic_get_mst_topology_state(&state->base,
>> > +						      &connector->mst_port->mst_mgr);
>> > +	if (IS_ERR(mst_state))
>> > +		return PTR_ERR(mst_state);
>> > +
>> > +	mst_state->pending_crtc_mask |= drm_crtc_mask(&crtc->base);
>> > +
>> > +	return 0;
>> > +}
>> > +
>> > +/**
>> > + * intel_dp_mst_add_topology_state_for_crtc - add MST topology state for a CRTC
>> > + * @state: atomic state
>> > + * @crtc: CRTC to add the state for
>> > + *
>> > + * Add the MST topology state for @crtc to @state.
>> > + *
>> > + * Returns 0 on success, negative error code on failure.
>> > + */
>> > +int intel_dp_mst_add_topology_state_for_crtc(struct intel_atomic_state *state,
>> > +					     struct intel_crtc *crtc)
>> > +{
>> > +	struct drm_connector *_connector;
>> > +	struct drm_connector_state *conn_state;
>> > +	int i;
>> > +
>> > +	for_each_new_connector_in_state(&state->base, _connector, conn_state, i) {
>> > +		struct intel_connector *connector = to_intel_connector(_connector);
>> > +		int ret;
>> > +
>> > +		if (conn_state->crtc != &crtc->base)
>> > +			continue;
>> > +
>> > +		ret = intel_dp_mst_add_topology_state_for_connector(state, connector, crtc);
>> > +		if (ret)
>> > +			return ret;
>> > +	}
>> > +
>> > +	return 0;
>> > +}
>> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.h b/drivers/gpu/drm/i915/display/intel_dp_mst.h
>> > index f7301de6cdfb3..f1815bb722672 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.h
>> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.h
>> > @@ -8,6 +8,8 @@
>> >  
>> >  #include <linux/types.h>
>> >  
>> > +struct intel_atomic_state;
>> > +struct intel_crtc;
>> >  struct intel_crtc_state;
>> >  struct intel_digital_port;
>> >  struct intel_dp;
>> > @@ -18,5 +20,7 @@ int intel_dp_mst_encoder_active_links(struct intel_digital_port *dig_port);
>> >  bool intel_dp_mst_is_master_trans(const struct intel_crtc_state *crtc_state);
>> >  bool intel_dp_mst_is_slave_trans(const struct intel_crtc_state *crtc_state);
>> >  bool intel_dp_mst_source_support(struct intel_dp *intel_dp);
>> > +int intel_dp_mst_add_topology_state_for_crtc(struct intel_atomic_state *state,
>> > +					     struct intel_crtc *crtc);
>> >  
>> >  #endif /* __INTEL_DP_MST_H__ */
>> > -- 
>> > 2.37.1
>> > 
>> 

-- 
Jani Nikula, Intel Open Source Graphics Center

WARNING: multiple messages have this Message-ID (diff)
From: Jani Nikula <jani.nikula@intel.com>
To: Lyude Paul <lyude@redhat.com>,
	imre.deak@intel.com, Harry Wentland <harry.wentland@amd.com>,
	Alex Deucher <alexander.deucher@amd.com>,
	Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Karol Herbst <kherbst@redhat.com>,
	intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org,
	stable@vger.kernel.org, Thomas Zimmermann <tzimmermann@suse.de>,
	Wayne Lin <Wayne.Lin@amd.com>, Ben Skeggs <bskeggs@redhat.com>
Subject: Re: [Intel-gfx] [Cc: drm-misc folks] Re: [CI 1/4] drm/i915/dp_mst: Add the MST topology state for modesetted CRTCs
Date: Fri, 10 Feb 2023 12:47:51 +0200	[thread overview]
Message-ID: <87bkm1x0dk.fsf@intel.com> (raw)
In-Reply-To: <0b5a4e81dc98f9c28d77f0f53741712d1c7c3c09.camel@redhat.com>

On Thu, 09 Feb 2023, Lyude Paul <lyude@redhat.com> wrote:
> On Tue, 2023-02-07 at 14:59 +0200, Imre Deak wrote:
>> Hi all,
>> 
>> On Mon, Feb 06, 2023 at 01:48:53PM +0200, Imre Deak wrote:
>> > Add the MST topology for a CRTC to the atomic state if the driver
>> > needs to force a modeset on the CRTC after the encoder compute config
>> > functions are called.
>> > 
>> > Later the MST encoder's disable hook also adds the state, but that isn't
>> > guaranteed to work (since in that hook getting the state may fail, which
>> > can't be handled there). This should fix that, while a later patch fixes
>> > the use of the MST state in the disable hook.
>> > 
>> > v2: Add missing forward struct declartions, caught by hdrtest.
>> > v3: Factor out intel_dp_mst_add_topology_state_for_connector() used
>> >     later in the patchset.
>> > 
>> > Cc: Lyude Paul <lyude@redhat.com>
>> > Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
>> > Cc: stable@vger.kernel.org # 6.1
>> > Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com> # v2
>> > Reviewed-by: Lyude Paul <lyude@redhat.com>
>> > Signed-off-by: Imre Deak <imre.deak@intel.com>
>> 
>> Is it ok to merge these 4 patches (also at [1]), via the i915 tree?
>> 
>> If so could it be also acked from the AMD and Nouveau side?
>
> Whichever branch works best for y'all is fine by me, if it's via i915's tree I
> guess we might need to back-merge drm-misc at some point so I can write up
> equivalent fixes for nouveau as well.
>
> (Added Thomas Zimmermann to Cc)

I suggest merging the series via drm-misc-next-fixes branch, to get them
to Linus' tree in the upcoming merge window. They all apply cleanly
there. The drivers can backmerge them from drm-next in the mean time, or
wait for v6.3-rc1.

Daniel acked this (well, any -next-fixes branch) on IRC yesterday,
obviously ack from me too.

I take the above as Lyude's ack for nouveau.

Harry, Wayne, do you agree with this, ack for merging the AMD part via
drm-misc-next-fixes? (Alex suggested to get your input.)


BR,
Jani.


>
>> 
>> [1] https://patchwork.freedesktop.org/series/113703/
>> 
>> > ---
>> >  drivers/gpu/drm/i915/display/intel_display.c |  4 ++
>> >  drivers/gpu/drm/i915/display/intel_dp_mst.c  | 61 ++++++++++++++++++++
>> >  drivers/gpu/drm/i915/display/intel_dp_mst.h  |  4 ++
>> >  3 files changed, 69 insertions(+)
>> > 
>> > diff --git a/drivers/gpu/drm/i915/display/intel_display.c b/drivers/gpu/drm/i915/display/intel_display.c
>> > index 166662ade593c..38106cf63b3b9 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_display.c
>> > +++ b/drivers/gpu/drm/i915/display/intel_display.c
>> > @@ -5936,6 +5936,10 @@ int intel_modeset_all_pipes(struct intel_atomic_state *state,
>> >  		if (ret)
>> >  			return ret;
>> >  
>> > +		ret = intel_dp_mst_add_topology_state_for_crtc(state, crtc);
>> > +		if (ret)
>> > +			return ret;
>> > +
>> >  		ret = intel_atomic_add_affected_planes(state, crtc);
>> >  		if (ret)
>> >  			return ret;
>> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> > index 8b0e4defa3f10..f3cb12dcfe0a7 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
>> > @@ -1223,3 +1223,64 @@ bool intel_dp_mst_is_slave_trans(const struct intel_crtc_state *crtc_state)
>> >  	return crtc_state->mst_master_transcoder != INVALID_TRANSCODER &&
>> >  	       crtc_state->mst_master_transcoder != crtc_state->cpu_transcoder;
>> >  }
>> > +
>> > +/**
>> > + * intel_dp_mst_add_topology_state_for_connector - add MST topology state for a connector
>> > + * @state: atomic state
>> > + * @connector: connector to add the state for
>> > + * @crtc: the CRTC @connector is attached to
>> > + *
>> > + * Add the MST topology state for @connector to @state.
>> > + *
>> > + * Returns 0 on success, negative error code on failure.
>> > + */
>> > +static int
>> > +intel_dp_mst_add_topology_state_for_connector(struct intel_atomic_state *state,
>> > +					      struct intel_connector *connector,
>> > +					      struct intel_crtc *crtc)
>> > +{
>> > +	struct drm_dp_mst_topology_state *mst_state;
>> > +
>> > +	if (!connector->mst_port)
>> > +		return 0;
>> > +
>> > +	mst_state = drm_atomic_get_mst_topology_state(&state->base,
>> > +						      &connector->mst_port->mst_mgr);
>> > +	if (IS_ERR(mst_state))
>> > +		return PTR_ERR(mst_state);
>> > +
>> > +	mst_state->pending_crtc_mask |= drm_crtc_mask(&crtc->base);
>> > +
>> > +	return 0;
>> > +}
>> > +
>> > +/**
>> > + * intel_dp_mst_add_topology_state_for_crtc - add MST topology state for a CRTC
>> > + * @state: atomic state
>> > + * @crtc: CRTC to add the state for
>> > + *
>> > + * Add the MST topology state for @crtc to @state.
>> > + *
>> > + * Returns 0 on success, negative error code on failure.
>> > + */
>> > +int intel_dp_mst_add_topology_state_for_crtc(struct intel_atomic_state *state,
>> > +					     struct intel_crtc *crtc)
>> > +{
>> > +	struct drm_connector *_connector;
>> > +	struct drm_connector_state *conn_state;
>> > +	int i;
>> > +
>> > +	for_each_new_connector_in_state(&state->base, _connector, conn_state, i) {
>> > +		struct intel_connector *connector = to_intel_connector(_connector);
>> > +		int ret;
>> > +
>> > +		if (conn_state->crtc != &crtc->base)
>> > +			continue;
>> > +
>> > +		ret = intel_dp_mst_add_topology_state_for_connector(state, connector, crtc);
>> > +		if (ret)
>> > +			return ret;
>> > +	}
>> > +
>> > +	return 0;
>> > +}
>> > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.h b/drivers/gpu/drm/i915/display/intel_dp_mst.h
>> > index f7301de6cdfb3..f1815bb722672 100644
>> > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.h
>> > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.h
>> > @@ -8,6 +8,8 @@
>> >  
>> >  #include <linux/types.h>
>> >  
>> > +struct intel_atomic_state;
>> > +struct intel_crtc;
>> >  struct intel_crtc_state;
>> >  struct intel_digital_port;
>> >  struct intel_dp;
>> > @@ -18,5 +20,7 @@ int intel_dp_mst_encoder_active_links(struct intel_digital_port *dig_port);
>> >  bool intel_dp_mst_is_master_trans(const struct intel_crtc_state *crtc_state);
>> >  bool intel_dp_mst_is_slave_trans(const struct intel_crtc_state *crtc_state);
>> >  bool intel_dp_mst_source_support(struct intel_dp *intel_dp);
>> > +int intel_dp_mst_add_topology_state_for_crtc(struct intel_atomic_state *state,
>> > +					     struct intel_crtc *crtc);
>> >  
>> >  #endif /* __INTEL_DP_MST_H__ */
>> > -- 
>> > 2.37.1
>> > 
>> 

-- 
Jani Nikula, Intel Open Source Graphics Center

  reply	other threads:[~2023-02-10 10:48 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-02-06 11:48 [Intel-gfx] [CI 1/4] drm/i915/dp_mst: Add the MST topology state for modesetted CRTCs Imre Deak
2023-02-06 11:48 ` Imre Deak
2023-02-06 11:48 ` [Intel-gfx] [CI 2/4] drm/display/dp_mst: Handle old/new payload states in drm_dp_remove_payload() Imre Deak
2023-02-06 11:48   ` Imre Deak
2023-02-06 11:48   ` Imre Deak
2023-02-06 11:48 ` [Intel-gfx] [CI 3/4] drm/display/dp_mst: Add drm_atomic_get_old_mst_topology_state() Imre Deak
2023-02-06 11:48   ` Imre Deak
2023-02-06 11:48   ` Imre Deak
2023-02-06 11:48 ` [Intel-gfx] [CI 4/4] drm/i915/dp_mst: Fix payload removal during output disabling Imre Deak
2023-02-06 11:48   ` Imre Deak
2023-02-06 15:50 ` [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [CI,1/4] drm/i915/dp_mst: Add the MST topology state for modesetted CRTCs Patchwork
2023-02-06 21:22 ` [Intel-gfx] ✓ Fi.CI.IGT: " Patchwork
2023-02-07 12:59 ` [Intel-gfx] [CI 1/4] " Imre Deak
2023-02-07 12:59   ` Imre Deak
2023-02-09 21:58   ` [Cc: drm-misc folks] " Lyude Paul
2023-02-09 21:58     ` [Intel-gfx] [Cc: drm-misc folks] " Lyude Paul
2023-02-09 21:58     ` [Cc: drm-misc folks] Re: [Intel-gfx] " Lyude Paul
2023-02-10 10:47     ` Jani Nikula [this message]
2023-02-10 10:47       ` [Intel-gfx] [Cc: drm-misc folks] " Jani Nikula
2023-02-10 10:47       ` [Cc: drm-misc folks] Re: [Intel-gfx] " Jani Nikula
2023-02-13 10:41       ` Lin, Wayne
2023-02-13 10:41         ` [Intel-gfx] [Cc: drm-misc folks] " Lin, Wayne
2023-02-13 10:41         ` [Cc: drm-misc folks] Re: [Intel-gfx] " Lin, Wayne
2023-02-14 11:00         ` Imre Deak
2023-02-14 11:00           ` [Intel-gfx] [Cc: drm-misc folks] " Imre Deak
2023-02-14 11:00           ` [Cc: drm-misc folks] Re: [Intel-gfx] " Imre Deak

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87bkm1x0dk.fsf@intel.com \
    --to=jani.nikula@intel.com \
    --cc=Wayne.Lin@amd.com \
    --cc=alexander.deucher@amd.com \
    --cc=bskeggs@redhat.com \
    --cc=daniel.vetter@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=harry.wentland@amd.com \
    --cc=imre.deak@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=kherbst@redhat.com \
    --cc=lyude@redhat.com \
    --cc=stable@vger.kernel.org \
    --cc=tzimmermann@suse.de \
    --cc=ville.syrjala@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.