Commit 0054ac2c authored by Dmitry Baryshkov's avatar Dmitry Baryshkov
Browse files

drm/msm: don't store created planes, connectors and encoders



There is no point now in storing arrays of creates planes, connectors
and encoders. Remove them from struct msm_drm_private.

Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Reviewed-by: default avatarStephen Boyd <swboyd@chromium.org>
Patchwork: https://patchwork.freedesktop.org/patch/480945/
Link: https://lore.kernel.org/r/20220406101247.483649-4-dmitry.baryshkov@linaro.org


Signed-off-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
parent fa560afa
Loading
Loading
Loading
Loading
+7 −6
Original line number Diff line number Diff line
@@ -569,8 +569,6 @@ static int _dpu_kms_initialize_dsi(struct drm_device *dev,
			return PTR_ERR(encoder);
		}

		priv->encoders[priv->num_encoders++] = encoder;

		memset(&info, 0, sizeof(info));
		info.intf_type = encoder->encoder_type;

@@ -633,8 +631,6 @@ static int _dpu_kms_initialize_displayport(struct drm_device *dev,
			return rc;
		}

		priv->encoders[priv->num_encoders++] = encoder;

		info.num_of_h_tiles = 1;
		info.h_tile_instance[0] = i;
		info.capabilities = MSM_DISPLAY_CAP_VID_MODE;
@@ -679,6 +675,7 @@ static int _dpu_kms_setup_displays(struct drm_device *dev,
	return rc;
}

#define MAX_PLANES 20
static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
{
	struct drm_device *dev;
@@ -686,6 +683,7 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
	struct drm_plane *cursor_planes[MAX_PLANES] = { NULL };
	struct drm_crtc *crtc;
	struct drm_encoder *encoder;
	unsigned int num_encoders;

	struct msm_drm_private *priv;
	struct dpu_mdss_cfg *catalog;
@@ -704,7 +702,11 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
	if (ret)
		return ret;

	max_crtc_count = min(catalog->mixer_count, priv->num_encoders);
	num_encoders = 0;
	drm_for_each_encoder(encoder, dev)
		num_encoders++;

	max_crtc_count = min(catalog->mixer_count, num_encoders);

	/* Create the planes, keeping track of one primary/cursor per crtc */
	for (i = 0; i < catalog->sspp_count; i++) {
@@ -729,7 +731,6 @@ static int _dpu_kms_drm_obj_init(struct dpu_kms *dpu_kms)
			ret = PTR_ERR(plane);
			return ret;
		}
		priv->planes[priv->num_planes++] = plane;

		if (type == DRM_PLANE_TYPE_CURSOR)
			cursor_planes[cursor_planes_idx++] = plane;
+0 −7
Original line number Diff line number Diff line
@@ -229,9 +229,6 @@ static int mdp4_modeset_init_intf(struct mdp4_kms *mdp4_kms,
			return PTR_ERR(connector);
		}

		priv->encoders[priv->num_encoders++] = encoder;
		priv->connectors[priv->num_connectors++] = connector;

		break;
	case DRM_MODE_ENCODER_TMDS:
		encoder = mdp4_dtv_encoder_init(dev);
@@ -252,8 +249,6 @@ static int mdp4_modeset_init_intf(struct mdp4_kms *mdp4_kms,
			}
		}

		priv->encoders[priv->num_encoders++] = encoder;

		break;
	case DRM_MODE_ENCODER_DSI:
		/* only DSI1 supported for now */
@@ -272,7 +267,6 @@ static int mdp4_modeset_init_intf(struct mdp4_kms *mdp4_kms,

		/* TODO: Add DMA_S later? */
		encoder->possible_crtcs = 1 << DMA_P;
		priv->encoders[priv->num_encoders++] = encoder;

		ret = msm_dsi_modeset_init(priv->dsi[dsi_id], dev, encoder);
		if (ret) {
@@ -324,7 +318,6 @@ static int modeset_init(struct mdp4_kms *mdp4_kms)
			ret = PTR_ERR(plane);
			goto fail;
		}
		priv->planes[priv->num_planes++] = plane;
	}

	for (i = 0; i < ARRAY_SIZE(mdp4_crtcs); i++) {
+6 −5
Original line number Diff line number Diff line
@@ -322,7 +322,6 @@ static struct drm_encoder *construct_encoder(struct mdp5_kms *mdp5_kms,
					     struct mdp5_ctl *ctl)
{
	struct drm_device *dev = mdp5_kms->dev;
	struct msm_drm_private *priv = dev->dev_private;
	struct drm_encoder *encoder;

	encoder = mdp5_encoder_init(dev, intf, ctl);
@@ -331,8 +330,6 @@ static struct drm_encoder *construct_encoder(struct mdp5_kms *mdp5_kms,
		return encoder;
	}

	priv->encoders[priv->num_encoders++] = encoder;

	return encoder;
}

@@ -438,6 +435,7 @@ static int modeset_init(struct mdp5_kms *mdp5_kms)
	struct drm_plane *primary[MAX_BASES] = { NULL };
	struct drm_plane *cursor[MAX_BASES] = { NULL };
	struct drm_encoder *encoder;
	unsigned int num_encoders;

	/*
	 * Construct encoders and modeset initialize connector devices
@@ -449,12 +447,16 @@ static int modeset_init(struct mdp5_kms *mdp5_kms)
			goto fail;
	}

	num_encoders = 0;
	drm_for_each_encoder(encoder, dev)
		num_encoders++;

	/*
	 * We should ideally have less number of encoders (set up by parsing
	 * the MDP5 interfaces) than the number of layer mixers present in HW,
	 * but let's be safe here anyway
	 */
	num_crtcs = min(priv->num_encoders, mdp5_kms->num_hwmixers);
	num_crtcs = min(num_encoders, mdp5_kms->num_hwmixers);

	/*
	 * Construct planes equaling the number of hw pipes, and CRTCs for the
@@ -479,7 +481,6 @@ static int modeset_init(struct mdp5_kms *mdp5_kms)
			DRM_DEV_ERROR(dev->dev, "failed to construct plane %d (%d)\n", i, ret);
			goto fail;
		}
		priv->planes[priv->num_planes++] = plane;

		if (type == DRM_PLANE_TYPE_PRIMARY)
			primary[pi++] = plane;
+0 −2
Original line number Diff line number Diff line
@@ -1541,8 +1541,6 @@ int msm_dp_modeset_init(struct msm_dp *dp_display, struct drm_device *dev,

	dp_priv->panel->connector = dp_display->connector;

	priv->connectors[priv->num_connectors++] = dp_display->connector;

	dp_display->bridge = msm_dp_bridge_init(dp_display, dev, encoder);
	if (IS_ERR(dp_display->bridge)) {
		ret = PTR_ERR(dp_display->bridge);
+0 −1
Original line number Diff line number Diff line
@@ -273,7 +273,6 @@ int msm_dsi_modeset_init(struct msm_dsi *msm_dsi, struct drm_device *dev,
	}

	priv->bridges[priv->num_bridges++]       = msm_dsi->bridge;
	priv->connectors[priv->num_connectors++] = msm_dsi->connector;

	return 0;
fail:
Loading