Subject: linux-next: manual merge of the drm-intel tree with the drm-misc tree

From: Stephen Rothwell <[email-masked]>
Date: Wed, 18 Dec 2024 11:51:32 +1100

[Thanks, Imre for the heads up and help with the conflict resolution]

Hi all,

Today's linux-next merge of the drm-intel tree got a conflict in:

  drivers/gpu/drm/i915/display/intel_dp_mst.c

between commit:

  6fe7b1d10cbd ("drm/i915/dp_mst: Expose a connector to kernel users after it's properly initialized")

from the drm-misc tree and commits:

  529798bd786a ("drm/i915/mst: convert to struct intel_display")
  d58f65df2dcb ("drm/i915/dp_mst: Fix connector initialization in intel_dp_add_mst_connector()")
  fdb65ede8a45 ("drm/i915/mst: unify MST connector function naming to mst_connector_*")

from the drm-intel tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc drivers/gpu/drm/i915/display/intel_dp_mst.c
index 56ca571e534c,326ff20a5a49..000000000000
--- a/drivers/gpu/drm/i915/display/intel_dp_mst.c
+++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c
@@@ -1715,9 -1704,7 +1704,9 @@@ mst_topology_add_connector(struct drm_d
  	if (!intel_connector)
  		return NULL;
  
 +	connector = &intel_connector->base;
 +
- 	intel_connector->get_hw_state = intel_dp_mst_get_hw_state;
+ 	intel_connector->get_hw_state = mst_connector_get_hw_state;
  	intel_connector->sync_state = intel_dp_connector_sync_state;
  	intel_connector->mst_port = intel_dp;
  	intel_connector->port = port;
@@@ -1725,22 -1712,33 +1714,22 @@@
  
  	intel_dp_init_modeset_retry_work(intel_connector);
  
- 	ret = drm_connector_dynamic_init(&dev_priv->drm, connector, &intel_dp_mst_connector_funcs,
 -	/*
 -	 * TODO: The following drm_connector specific initialization belongs
 -	 * to DRM core, however it happens atm too late in
 -	 * drm_connector_init(). That function will also expose the connector
 -	 * to in-kernel users, so it can't be called until the connector is
 -	 * sufficiently initialized; init the device pointer used by the
 -	 * following DSC setup, until a fix moving this to DRM core.
 -	 */
 -	intel_connector->base.dev = mgr->dev;
 -
 -	intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
 -	intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
 -	intel_connector->dp.dsc_hblank_expansion_quirk =
 -		detect_dsc_hblank_expansion_quirk(intel_connector);
 -
 -	connector = &intel_connector->base;
 -	ret = drm_connector_init(display->drm, connector, &mst_connector_funcs,
 -				 DRM_MODE_CONNECTOR_DisplayPort);
++	ret = drm_connector_dynamic_init(display->drm, connector, &mst_connector_funcs,
 +					 DRM_MODE_CONNECTOR_DisplayPort, NULL);
  	if (ret) {
  		drm_dp_mst_put_port_malloc(port);
  		intel_connector_free(intel_connector);
  		return NULL;
  	}
  
 +	intel_connector->dp.dsc_decompression_aux = drm_dp_mst_dsc_aux_for_port(port);
 +	intel_dp_mst_read_decompression_port_dsc_caps(intel_dp, intel_connector);
 +	intel_connector->dp.dsc_hblank_expansion_quirk =
 +		detect_dsc_hblank_expansion_quirk(intel_connector);
 +
- 	drm_connector_helper_add(connector, &intel_dp_mst_connector_helper_funcs);
+ 	drm_connector_helper_add(connector, &mst_connector_helper_funcs);
  
- 	for_each_pipe(dev_priv, pipe) {
+ 	for_each_pipe(display, pipe) {
  		struct drm_encoder *enc =
  			&intel_dp->mst_encoders[pipe]->base.base;