Browse Source

drm/exynos: kill exynos_drm_crtc::pipe

Since crtc index is stored in drm_crtc pipe field became redundant.
The patch beside removing the field simplifies also
exynos_drm_crtc_get_pipe_from_type.

Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Signed-off-by: Inki Dae <inki.dae@samsung.com>
Andrzej Hajda 8 years ago
parent
commit
d644951c2b

+ 1 - 2
drivers/gpu/drm/exynos/exynos5433_drm_decon.c

@@ -614,8 +614,7 @@ static int decon_bind(struct device *dev, struct device *master, void *data)
 	out_type = (ctx->out_type & IFTYPE_HDMI) ? EXYNOS_DISPLAY_TYPE_HDMI
 	out_type = (ctx->out_type & IFTYPE_HDMI) ? EXYNOS_DISPLAY_TYPE_HDMI
 						  : EXYNOS_DISPLAY_TYPE_LCD;
 						  : EXYNOS_DISPLAY_TYPE_LCD;
 	ctx->crtc = exynos_drm_crtc_create(drm_dev, &exynos_plane->base,
 	ctx->crtc = exynos_drm_crtc_create(drm_dev, &exynos_plane->base,
-					ctx->pipe, out_type,
-					&decon_crtc_ops, ctx);
+			out_type, &decon_crtc_ops, ctx);
 	if (IS_ERR(ctx->crtc)) {
 	if (IS_ERR(ctx->crtc)) {
 		ret = PTR_ERR(ctx->crtc);
 		ret = PTR_ERR(ctx->crtc);
 		goto err;
 		goto err;

+ 1 - 2
drivers/gpu/drm/exynos/exynos7_drm_decon.c

@@ -656,8 +656,7 @@ static int decon_bind(struct device *dev, struct device *master, void *data)
 
 
 	exynos_plane = &ctx->planes[DEFAULT_WIN];
 	exynos_plane = &ctx->planes[DEFAULT_WIN];
 	ctx->crtc = exynos_drm_crtc_create(drm_dev, &exynos_plane->base,
 	ctx->crtc = exynos_drm_crtc_create(drm_dev, &exynos_plane->base,
-					   ctx->pipe, EXYNOS_DISPLAY_TYPE_LCD,
-					   &decon_crtc_ops, ctx);
+			EXYNOS_DISPLAY_TYPE_LCD, &decon_crtc_ops, ctx);
 	if (IS_ERR(ctx->crtc)) {
 	if (IS_ERR(ctx->crtc)) {
 		decon_ctx_remove(ctx);
 		decon_ctx_remove(ctx);
 		return PTR_ERR(ctx->crtc);
 		return PTR_ERR(ctx->crtc);

+ 3 - 9
drivers/gpu/drm/exynos/exynos_drm_crtc.c

@@ -166,7 +166,6 @@ static const struct drm_crtc_funcs exynos_crtc_funcs = {
 
 
 struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev,
 struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev,
 					struct drm_plane *plane,
 					struct drm_plane *plane,
-					int pipe,
 					enum exynos_drm_output_type type,
 					enum exynos_drm_output_type type,
 					const struct exynos_drm_crtc_ops *ops,
 					const struct exynos_drm_crtc_ops *ops,
 					void *ctx)
 					void *ctx)
@@ -179,7 +178,6 @@ struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev,
 	if (!exynos_crtc)
 	if (!exynos_crtc)
 		return ERR_PTR(-ENOMEM);
 		return ERR_PTR(-ENOMEM);
 
 
-	exynos_crtc->pipe = pipe;
 	exynos_crtc->type = type;
 	exynos_crtc->type = type;
 	exynos_crtc->ops = ops;
 	exynos_crtc->ops = ops;
 	exynos_crtc->ctx = ctx;
 	exynos_crtc->ctx = ctx;
@@ -206,13 +204,9 @@ int exynos_drm_crtc_get_pipe_from_type(struct drm_device *drm_dev,
 {
 {
 	struct drm_crtc *crtc;
 	struct drm_crtc *crtc;
 
 
-	list_for_each_entry(crtc, &drm_dev->mode_config.crtc_list, head) {
-		struct exynos_drm_crtc *exynos_crtc;
-
-		exynos_crtc = to_exynos_crtc(crtc);
-		if (exynos_crtc->type == out_type)
-			return exynos_crtc->pipe;
-	}
+	drm_for_each_crtc(crtc, drm_dev)
+		if (to_exynos_crtc(crtc)->type == out_type)
+			return drm_crtc_index(crtc);
 
 
 	return -EPERM;
 	return -EPERM;
 }
 }

+ 0 - 1
drivers/gpu/drm/exynos/exynos_drm_crtc.h

@@ -19,7 +19,6 @@
 
 
 struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev,
 struct exynos_drm_crtc *exynos_drm_crtc_create(struct drm_device *drm_dev,
 					struct drm_plane *plane,
 					struct drm_plane *plane,
-					int pipe,
 					enum exynos_drm_output_type type,
 					enum exynos_drm_output_type type,
 					const struct exynos_drm_crtc_ops *ops,
 					const struct exynos_drm_crtc_ops *ops,
 					void *context);
 					void *context);

+ 0 - 8
drivers/gpu/drm/exynos/exynos_drm_drv.h

@@ -154,13 +154,6 @@ struct exynos_drm_clk {
  *
  *
  * @base: crtc object.
  * @base: crtc object.
  * @type: one of EXYNOS_DISPLAY_TYPE_LCD and HDMI.
  * @type: one of EXYNOS_DISPLAY_TYPE_LCD and HDMI.
- * @pipe: a crtc index created at load() with a new crtc object creation
- *	and the crtc object would be set to private->crtc array
- *	to get a crtc object corresponding to this pipe from private->crtc
- *	array when irq interrupt occurred. the reason of using this pipe is that
- *	drm framework doesn't support multiple irq yet.
- *	we can refer to the crtc to current hardware interrupt occurred through
- *	this pipe value.
  * @ops: pointer to callbacks for exynos drm specific functionality
  * @ops: pointer to callbacks for exynos drm specific functionality
  * @ctx: A pointer to the crtc's implementation specific context
  * @ctx: A pointer to the crtc's implementation specific context
  * @pipe_clk: A pointer to the crtc's pipeline clock.
  * @pipe_clk: A pointer to the crtc's pipeline clock.
@@ -168,7 +161,6 @@ struct exynos_drm_clk {
 struct exynos_drm_crtc {
 struct exynos_drm_crtc {
 	struct drm_crtc			base;
 	struct drm_crtc			base;
 	enum exynos_drm_output_type	type;
 	enum exynos_drm_output_type	type;
-	unsigned int			pipe;
 	const struct exynos_drm_crtc_ops	*ops;
 	const struct exynos_drm_crtc_ops	*ops;
 	void				*ctx;
 	void				*ctx;
 	struct exynos_drm_clk		*pipe_clk;
 	struct exynos_drm_clk		*pipe_clk;

+ 1 - 2
drivers/gpu/drm/exynos/exynos_drm_fimd.c

@@ -1003,8 +1003,7 @@ static int fimd_bind(struct device *dev, struct device *master, void *data)
 
 
 	exynos_plane = &ctx->planes[DEFAULT_WIN];
 	exynos_plane = &ctx->planes[DEFAULT_WIN];
 	ctx->crtc = exynos_drm_crtc_create(drm_dev, &exynos_plane->base,
 	ctx->crtc = exynos_drm_crtc_create(drm_dev, &exynos_plane->base,
-					   ctx->pipe, EXYNOS_DISPLAY_TYPE_LCD,
-					   &fimd_crtc_ops, ctx);
+			EXYNOS_DISPLAY_TYPE_LCD, &fimd_crtc_ops, ctx);
 	if (IS_ERR(ctx->crtc))
 	if (IS_ERR(ctx->crtc))
 		return PTR_ERR(ctx->crtc);
 		return PTR_ERR(ctx->crtc);
 
 

+ 1 - 2
drivers/gpu/drm/exynos/exynos_drm_vidi.c

@@ -416,8 +416,7 @@ static int vidi_bind(struct device *dev, struct device *master, void *data)
 
 
 	exynos_plane = &ctx->planes[DEFAULT_WIN];
 	exynos_plane = &ctx->planes[DEFAULT_WIN];
 	ctx->crtc = exynos_drm_crtc_create(drm_dev, &exynos_plane->base,
 	ctx->crtc = exynos_drm_crtc_create(drm_dev, &exynos_plane->base,
-					   ctx->pipe, EXYNOS_DISPLAY_TYPE_VIDI,
-					   &vidi_crtc_ops, ctx);
+			EXYNOS_DISPLAY_TYPE_VIDI, &vidi_crtc_ops, ctx);
 	if (IS_ERR(ctx->crtc)) {
 	if (IS_ERR(ctx->crtc)) {
 		DRM_ERROR("failed to create crtc.\n");
 		DRM_ERROR("failed to create crtc.\n");
 		return PTR_ERR(ctx->crtc);
 		return PTR_ERR(ctx->crtc);

+ 1 - 2
drivers/gpu/drm/exynos/exynos_mixer.c

@@ -1165,8 +1165,7 @@ static int mixer_bind(struct device *dev, struct device *manager, void *data)
 
 
 	exynos_plane = &ctx->planes[DEFAULT_WIN];
 	exynos_plane = &ctx->planes[DEFAULT_WIN];
 	ctx->crtc = exynos_drm_crtc_create(drm_dev, &exynos_plane->base,
 	ctx->crtc = exynos_drm_crtc_create(drm_dev, &exynos_plane->base,
-					   ctx->pipe, EXYNOS_DISPLAY_TYPE_HDMI,
-					   &mixer_crtc_ops, ctx);
+			EXYNOS_DISPLAY_TYPE_HDMI, &mixer_crtc_ops, ctx);
 	if (IS_ERR(ctx->crtc)) {
 	if (IS_ERR(ctx->crtc)) {
 		mixer_ctx_remove(ctx);
 		mixer_ctx_remove(ctx);
 		ret = PTR_ERR(ctx->crtc);
 		ret = PTR_ERR(ctx->crtc);