All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm/exynos: fix wrong pipe calculation for crtc
@ 2015-01-30  7:43 Joonyoung Shim
  2015-01-30  7:43 ` [PATCH] drm/exynos: use driver internal struct Joonyoung Shim
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Joonyoung Shim @ 2015-01-30  7:43 UTC (permalink / raw)
  To: dri-devel; +Cc: sw0312.kim

We get wrong pipe value for crtc since commit 93bca243ec96 ("drm/exynos:
remove struct exynos_drm_manager"). We should should increase pipe value
before call exynos_drm_crtc_create.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
---
 drivers/gpu/drm/exynos/exynos_drm_fimd.c | 13 +++++++------
 drivers/gpu/drm/exynos/exynos_drm_vidi.c |  4 ++--
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
index 682806e..39f7fa7 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
@@ -1065,18 +1065,19 @@ static int fimd_bind(struct device *dev, struct device *master, void *data)
 	struct drm_device *drm_dev = data;
 	int ret;
 
-	ctx->crtc = exynos_drm_crtc_create(drm_dev, ctx->pipe,
-					   EXYNOS_DISPLAY_TYPE_LCD,
-					   &fimd_crtc_ops, ctx);
-	if (IS_ERR(ctx->crtc))
-		return PTR_ERR(ctx->crtc);
-
 	ret = fimd_ctx_initialize(ctx, drm_dev);
 	if (ret) {
 		DRM_ERROR("fimd_ctx_initialize failed.\n");
 		return ret;
 	}
 
+	ctx->crtc = exynos_drm_crtc_create(drm_dev, ctx->pipe,
+					   EXYNOS_DISPLAY_TYPE_LCD,
+					   &fimd_crtc_ops, ctx);
+	if (IS_ERR(ctx->crtc)) {
+		fimd_ctx_remove(ctx);
+		return PTR_ERR(ctx->crtc);
+	}
 
 	if (ctx->display)
 		exynos_drm_create_enc_conn(drm_dev, ctx->display);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
index 9c8300e..fb68d3c 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
@@ -548,6 +548,8 @@ static int vidi_bind(struct device *dev, struct device *master, void *data)
 	struct drm_device *drm_dev = data;
 	int ret;
 
+	vidi_ctx_initialize(ctx, drm_dev);
+
 	ctx->crtc = exynos_drm_crtc_create(drm_dev, ctx->pipe,
 					   EXYNOS_DISPLAY_TYPE_VIDI,
 					   &vidi_crtc_ops, ctx);
@@ -556,8 +558,6 @@ static int vidi_bind(struct device *dev, struct device *master, void *data)
 		return PTR_ERR(ctx->crtc);
 	}
 
-	vidi_ctx_initialize(ctx, drm_dev);
-
 	ret = exynos_drm_create_enc_conn(drm_dev, &ctx->display);
 	if (ret) {
 		ctx->crtc->base.funcs->destroy(&ctx->crtc->base);
-- 
1.9.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [PATCH] drm/exynos: use driver internal struct
  2015-01-30  7:43 [PATCH] drm/exynos: fix wrong pipe calculation for crtc Joonyoung Shim
@ 2015-01-30  7:43 ` Joonyoung Shim
  2015-01-30 14:58   ` Gustavo Padovan
  2015-02-04  7:17   ` Inki Dae
  2015-01-30 14:56 ` [PATCH] drm/exynos: fix wrong pipe calculation for crtc Gustavo Padovan
  2015-02-04  7:13 ` Inki Dae
  2 siblings, 2 replies; 6+ messages in thread
From: Joonyoung Shim @ 2015-01-30  7:43 UTC (permalink / raw)
  To: dri-devel; +Cc: sw0312.kim

Use driver internal struct as argument instead of struct exynos_drm_crtc
except functions of exynos_drm_crtc_ops and instead of struct
exynos_drm_display except functions of exynos_drm_display_ops.

It can reduce unnecessary variable declaration.

Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
---
 drivers/gpu/drm/exynos/exynos_dp_core.c  | 14 ++++-------
 drivers/gpu/drm/exynos/exynos_drm_fimd.c | 43 +++++++++++++-------------------
 drivers/gpu/drm/exynos/exynos_drm_vidi.c | 19 ++++++--------
 drivers/gpu/drm/exynos/exynos_hdmi.c     | 12 ++++-----
 drivers/gpu/drm/exynos/exynos_mixer.c    | 26 ++++++++-----------
 5 files changed, 47 insertions(+), 67 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c b/drivers/gpu/drm/exynos/exynos_dp_core.c
index 34d46aa..11fd893 100644
--- a/drivers/gpu/drm/exynos/exynos_dp_core.c
+++ b/drivers/gpu/drm/exynos/exynos_dp_core.c
@@ -1067,10 +1067,8 @@ static void exynos_dp_phy_exit(struct exynos_dp_device *dp)
 		phy_power_off(dp->phy);
 }
 
-static void exynos_dp_poweron(struct exynos_drm_display *display)
+static void exynos_dp_poweron(struct exynos_dp_device *dp)
 {
-	struct exynos_dp_device *dp = display_to_dp(display);
-
 	if (dp->dpms_mode == DRM_MODE_DPMS_ON)
 		return;
 
@@ -1085,13 +1083,11 @@ static void exynos_dp_poweron(struct exynos_drm_display *display)
 	exynos_dp_phy_init(dp);
 	exynos_dp_init_dp(dp);
 	enable_irq(dp->irq);
-	exynos_dp_commit(display);
+	exynos_dp_commit(&dp->display);
 }
 
-static void exynos_dp_poweroff(struct exynos_drm_display *display)
+static void exynos_dp_poweroff(struct exynos_dp_device *dp)
 {
-	struct exynos_dp_device *dp = display_to_dp(display);
-
 	if (dp->dpms_mode != DRM_MODE_DPMS_ON)
 		return;
 
@@ -1119,12 +1115,12 @@ static void exynos_dp_dpms(struct exynos_drm_display *display, int mode)
 
 	switch (mode) {
 	case DRM_MODE_DPMS_ON:
-		exynos_dp_poweron(display);
+		exynos_dp_poweron(dp);
 		break;
 	case DRM_MODE_DPMS_STANDBY:
 	case DRM_MODE_DPMS_SUSPEND:
 	case DRM_MODE_DPMS_OFF:
-		exynos_dp_poweroff(display);
+		exynos_dp_poweroff(dp);
 		break;
 	default:
 		break;
diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
index 39f7fa7..925fc69 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
@@ -253,9 +253,8 @@ static void fimd_enable_shadow_channel_path(struct fimd_context *ctx, int win,
 	writel(val, ctx->regs + SHADOWCON);
 }
 
-static void fimd_clear_channel(struct exynos_drm_crtc *crtc)
+static void fimd_clear_channel(struct fimd_context *ctx)
 {
-	struct fimd_context *ctx = crtc->ctx;
 	int win, ch_enabled = 0;
 
 	DRM_DEBUG_KMS("%s\n", __FILE__);
@@ -280,7 +279,7 @@ static void fimd_clear_channel(struct exynos_drm_crtc *crtc)
 		unsigned int state = ctx->suspended;
 
 		ctx->suspended = 0;
-		fimd_wait_for_vblank(crtc);
+		fimd_wait_for_vblank(ctx->crtc);
 		ctx->suspended = state;
 	}
 }
@@ -302,7 +301,7 @@ static int fimd_ctx_initialize(struct fimd_context *ctx,
 		 * If any channel is already active, iommu will throw
 		 * a PAGE FAULT when enabled. So clear any channel if enabled.
 		 */
-		fimd_clear_channel(ctx->crtc);
+		fimd_clear_channel(ctx);
 		ret = drm_iommu_attach_device(ctx->drm_dev, ctx->dev);
 		if (ret) {
 			DRM_ERROR("drm_iommu_attach failed.\n");
@@ -823,9 +822,8 @@ static void fimd_win_disable(struct exynos_drm_crtc *crtc, int zpos)
 	win_data->enabled = false;
 }
 
-static void fimd_window_suspend(struct exynos_drm_crtc *crtc)
+static void fimd_window_suspend(struct fimd_context *ctx)
 {
-	struct fimd_context *ctx = crtc->ctx;
 	struct fimd_win_data *win_data;
 	int i;
 
@@ -833,13 +831,12 @@ static void fimd_window_suspend(struct exynos_drm_crtc *crtc)
 		win_data = &ctx->win_data[i];
 		win_data->resume = win_data->enabled;
 		if (win_data->enabled)
-			fimd_win_disable(crtc, i);
+			fimd_win_disable(ctx->crtc, i);
 	}
 }
 
-static void fimd_window_resume(struct exynos_drm_crtc *crtc)
+static void fimd_window_resume(struct fimd_context *ctx)
 {
-	struct fimd_context *ctx = crtc->ctx;
 	struct fimd_win_data *win_data;
 	int i;
 
@@ -850,26 +847,24 @@ static void fimd_window_resume(struct exynos_drm_crtc *crtc)
 	}
 }
 
-static void fimd_apply(struct exynos_drm_crtc *crtc)
+static void fimd_apply(struct fimd_context *ctx)
 {
-	struct fimd_context *ctx = crtc->ctx;
 	struct fimd_win_data *win_data;
 	int i;
 
 	for (i = 0; i < WINDOWS_NR; i++) {
 		win_data = &ctx->win_data[i];
 		if (win_data->enabled)
-			fimd_win_commit(crtc, i);
+			fimd_win_commit(ctx->crtc, i);
 		else
-			fimd_win_disable(crtc, i);
+			fimd_win_disable(ctx->crtc, i);
 	}
 
-	fimd_commit(crtc);
+	fimd_commit(ctx->crtc);
 }
 
-static int fimd_poweron(struct exynos_drm_crtc *crtc)
+static int fimd_poweron(struct fimd_context *ctx)
 {
-	struct fimd_context *ctx = crtc->ctx;
 	int ret;
 
 	if (!ctx->suspended)
@@ -893,16 +888,16 @@ static int fimd_poweron(struct exynos_drm_crtc *crtc)
 
 	/* if vblank was enabled status, enable it again. */
 	if (test_and_clear_bit(0, &ctx->irq_flags)) {
-		ret = fimd_enable_vblank(crtc);
+		ret = fimd_enable_vblank(ctx->crtc);
 		if (ret) {
 			DRM_ERROR("Failed to re-enable vblank [%d]\n", ret);
 			goto enable_vblank_err;
 		}
 	}
 
-	fimd_window_resume(crtc);
+	fimd_window_resume(ctx);
 
-	fimd_apply(crtc);
+	fimd_apply(ctx);
 
 	return 0;
 
@@ -915,10 +910,8 @@ bus_clk_err:
 	return ret;
 }
 
-static int fimd_poweroff(struct exynos_drm_crtc *crtc)
+static int fimd_poweroff(struct fimd_context *ctx)
 {
-	struct fimd_context *ctx = crtc->ctx;
-
 	if (ctx->suspended)
 		return 0;
 
@@ -927,7 +920,7 @@ static int fimd_poweroff(struct exynos_drm_crtc *crtc)
 	 * suspend that connector. Otherwise we might try to scan from
 	 * a destroyed buffer later.
 	 */
-	fimd_window_suspend(crtc);
+	fimd_window_suspend(ctx);
 
 	clk_disable_unprepare(ctx->lcd_clk);
 	clk_disable_unprepare(ctx->bus_clk);
@@ -944,12 +937,12 @@ static void fimd_dpms(struct exynos_drm_crtc *crtc, int mode)
 
 	switch (mode) {
 	case DRM_MODE_DPMS_ON:
-		fimd_poweron(crtc);
+		fimd_poweron(crtc->ctx);
 		break;
 	case DRM_MODE_DPMS_STANDBY:
 	case DRM_MODE_DPMS_SUSPEND:
 	case DRM_MODE_DPMS_OFF:
-		fimd_poweroff(crtc);
+		fimd_poweroff(crtc->ctx);
 		break;
 	default:
 		DRM_DEBUG_KMS("unspecified mode %d\n", mode);
diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
index fb68d3c..b886972 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
@@ -97,17 +97,16 @@ static const char fake_edid_info[] = {
 	0x00, 0x00, 0x00, 0x06
 };
 
-static void vidi_apply(struct exynos_drm_crtc *crtc)
+static void vidi_apply(struct vidi_context *ctx)
 {
-	struct vidi_context *ctx = crtc->ctx;
-	struct exynos_drm_crtc_ops *crtc_ops = crtc->ops;
+	struct exynos_drm_crtc_ops *crtc_ops = ctx->crtc->ops;
 	struct vidi_win_data *win_data;
 	int i;
 
 	for (i = 0; i < WINDOWS_NR; i++) {
 		win_data = &ctx->win_data[i];
 		if (win_data->enabled && (crtc_ops && crtc_ops->win_commit))
-			crtc_ops->win_commit(crtc, i);
+			crtc_ops->win_commit(ctx->crtc, i);
 	}
 }
 
@@ -240,10 +239,8 @@ static void vidi_win_disable(struct exynos_drm_crtc *crtc, int zpos)
 	/* TODO. */
 }
 
-static int vidi_power_on(struct exynos_drm_crtc *crtc, bool enable)
+static int vidi_power_on(struct vidi_context *ctx, bool enable)
 {
-	struct vidi_context *ctx = crtc->ctx;
-
 	DRM_DEBUG_KMS("%s\n", __FILE__);
 
 	if (enable != false && enable != true)
@@ -254,9 +251,9 @@ static int vidi_power_on(struct exynos_drm_crtc *crtc, bool enable)
 
 		/* if vblank was enabled status, enable it again. */
 		if (test_and_clear_bit(0, &ctx->irq_flags))
-			vidi_enable_vblank(crtc);
+			vidi_enable_vblank(ctx->crtc);
 
-		vidi_apply(crtc);
+		vidi_apply(ctx);
 	} else {
 		ctx->suspended = true;
 	}
@@ -274,12 +271,12 @@ static void vidi_dpms(struct exynos_drm_crtc *crtc, int mode)
 
 	switch (mode) {
 	case DRM_MODE_DPMS_ON:
-		vidi_power_on(crtc, true);
+		vidi_power_on(ctx, true);
 		break;
 	case DRM_MODE_DPMS_STANDBY:
 	case DRM_MODE_DPMS_SUSPEND:
 	case DRM_MODE_DPMS_OFF:
-		vidi_power_on(crtc, false);
+		vidi_power_on(ctx, false);
 		break;
 	default:
 		DRM_DEBUG_KMS("unspecified mode %d\n", mode);
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
index 98051e8..229b361 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -2032,9 +2032,8 @@ static void hdmi_commit(struct exynos_drm_display *display)
 	hdmi_conf_apply(hdata);
 }
 
-static void hdmi_poweron(struct exynos_drm_display *display)
+static void hdmi_poweron(struct hdmi_context *hdata)
 {
-	struct hdmi_context *hdata = display_to_hdmi(display);
 	struct hdmi_resources *res = &hdata->res;
 
 	mutex_lock(&hdata->hdmi_mutex);
@@ -2060,12 +2059,11 @@ static void hdmi_poweron(struct exynos_drm_display *display)
 	clk_prepare_enable(res->sclk_hdmi);
 
 	hdmiphy_poweron(hdata);
-	hdmi_commit(display);
+	hdmi_commit(&hdata->display);
 }
 
-static void hdmi_poweroff(struct exynos_drm_display *display)
+static void hdmi_poweroff(struct hdmi_context *hdata)
 {
-	struct hdmi_context *hdata = display_to_hdmi(display);
 	struct hdmi_resources *res = &hdata->res;
 
 	mutex_lock(&hdata->hdmi_mutex);
@@ -2109,7 +2107,7 @@ static void hdmi_dpms(struct exynos_drm_display *display, int mode)
 
 	switch (mode) {
 	case DRM_MODE_DPMS_ON:
-		hdmi_poweron(display);
+		hdmi_poweron(hdata);
 		break;
 	case DRM_MODE_DPMS_STANDBY:
 	case DRM_MODE_DPMS_SUSPEND:
@@ -2128,7 +2126,7 @@ static void hdmi_dpms(struct exynos_drm_display *display, int mode)
 		if (funcs && funcs->dpms)
 			(*funcs->dpms)(crtc, mode);
 
-		hdmi_poweroff(display);
+		hdmi_poweroff(hdata);
 		break;
 	default:
 		DRM_DEBUG_KMS("unknown dpms mode: %d\n", mode);
diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c
index a3a5db3..39d37d6 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -1054,23 +1054,21 @@ static void mixer_wait_for_vblank(struct exynos_drm_crtc *crtc)
 	drm_vblank_put(mixer_ctx->drm_dev, mixer_ctx->pipe);
 }
 
-static void mixer_window_suspend(struct exynos_drm_crtc *crtc)
+static void mixer_window_suspend(struct mixer_context *ctx)
 {
-	struct mixer_context *ctx = crtc->ctx;
 	struct hdmi_win_data *win_data;
 	int i;
 
 	for (i = 0; i < MIXER_WIN_NR; i++) {
 		win_data = &ctx->win_data[i];
 		win_data->resume = win_data->enabled;
-		mixer_win_disable(crtc, i);
+		mixer_win_disable(ctx->crtc, i);
 	}
-	mixer_wait_for_vblank(crtc);
+	mixer_wait_for_vblank(ctx->crtc);
 }
 
-static void mixer_window_resume(struct exynos_drm_crtc *crtc)
+static void mixer_window_resume(struct mixer_context *ctx)
 {
-	struct mixer_context *ctx = crtc->ctx;
 	struct hdmi_win_data *win_data;
 	int i;
 
@@ -1079,13 +1077,12 @@ static void mixer_window_resume(struct exynos_drm_crtc *crtc)
 		win_data->enabled = win_data->resume;
 		win_data->resume = false;
 		if (win_data->enabled)
-			mixer_win_commit(crtc, i);
+			mixer_win_commit(ctx->crtc, i);
 	}
 }
 
-static void mixer_poweron(struct exynos_drm_crtc *crtc)
+static void mixer_poweron(struct mixer_context *ctx)
 {
-	struct mixer_context *ctx = crtc->ctx;
 	struct mixer_resources *res = &ctx->mixer_res;
 
 	mutex_lock(&ctx->mixer_mutex);
@@ -1115,12 +1112,11 @@ static void mixer_poweron(struct exynos_drm_crtc *crtc)
 	mixer_reg_write(res, MXR_INT_EN, ctx->int_en);
 	mixer_win_reset(ctx);
 
-	mixer_window_resume(crtc);
+	mixer_window_resume(ctx);
 }
 
-static void mixer_poweroff(struct exynos_drm_crtc *crtc)
+static void mixer_poweroff(struct mixer_context *ctx)
 {
-	struct mixer_context *ctx = crtc->ctx;
 	struct mixer_resources *res = &ctx->mixer_res;
 
 	mutex_lock(&ctx->mixer_mutex);
@@ -1131,7 +1127,7 @@ static void mixer_poweroff(struct exynos_drm_crtc *crtc)
 	mutex_unlock(&ctx->mixer_mutex);
 
 	mixer_stop(ctx);
-	mixer_window_suspend(crtc);
+	mixer_window_suspend(ctx);
 
 	ctx->int_en = mixer_reg_read(res, MXR_INT_EN);
 
@@ -1154,12 +1150,12 @@ static void mixer_dpms(struct exynos_drm_crtc *crtc, int mode)
 {
 	switch (mode) {
 	case DRM_MODE_DPMS_ON:
-		mixer_poweron(crtc);
+		mixer_poweron(crtc->ctx);
 		break;
 	case DRM_MODE_DPMS_STANDBY:
 	case DRM_MODE_DPMS_SUSPEND:
 	case DRM_MODE_DPMS_OFF:
-		mixer_poweroff(crtc);
+		mixer_poweroff(crtc->ctx);
 		break;
 	default:
 		DRM_DEBUG_KMS("unknown dpms mode: %d\n", mode);
-- 
1.9.1

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/exynos: fix wrong pipe calculation for crtc
  2015-01-30  7:43 [PATCH] drm/exynos: fix wrong pipe calculation for crtc Joonyoung Shim
  2015-01-30  7:43 ` [PATCH] drm/exynos: use driver internal struct Joonyoung Shim
@ 2015-01-30 14:56 ` Gustavo Padovan
  2015-02-04  7:13 ` Inki Dae
  2 siblings, 0 replies; 6+ messages in thread
From: Gustavo Padovan @ 2015-01-30 14:56 UTC (permalink / raw)
  To: Joonyoung Shim; +Cc: sw0312.kim, dri-devel

Hi Joonyoung,

2015-01-30 Joonyoung Shim <jy0922.shim@samsung.com>:

> We get wrong pipe value for crtc since commit 93bca243ec96 ("drm/exynos:
> remove struct exynos_drm_manager"). We should should increase pipe value
> before call exynos_drm_crtc_create.
> 
> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> ---
>  drivers/gpu/drm/exynos/exynos_drm_fimd.c | 13 +++++++------
>  drivers/gpu/drm/exynos/exynos_drm_vidi.c |  4 ++--
>  2 files changed, 9 insertions(+), 8 deletions(-)

Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>

	Gustavo
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/exynos: use driver internal struct
  2015-01-30  7:43 ` [PATCH] drm/exynos: use driver internal struct Joonyoung Shim
@ 2015-01-30 14:58   ` Gustavo Padovan
  2015-02-04  7:17   ` Inki Dae
  1 sibling, 0 replies; 6+ messages in thread
From: Gustavo Padovan @ 2015-01-30 14:58 UTC (permalink / raw)
  To: Joonyoung Shim; +Cc: sw0312.kim, dri-devel

Hi Joonyoung,

2015-01-30 Joonyoung Shim <jy0922.shim@samsung.com>:

> Use driver internal struct as argument instead of struct exynos_drm_crtc
> except functions of exynos_drm_crtc_ops and instead of struct
> exynos_drm_display except functions of exynos_drm_display_ops.
> 
> It can reduce unnecessary variable declaration.
> 
> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> ---
>  drivers/gpu/drm/exynos/exynos_dp_core.c  | 14 ++++-------
>  drivers/gpu/drm/exynos/exynos_drm_fimd.c | 43 +++++++++++++-------------------
>  drivers/gpu/drm/exynos/exynos_drm_vidi.c | 19 ++++++--------
>  drivers/gpu/drm/exynos/exynos_hdmi.c     | 12 ++++-----
>  drivers/gpu/drm/exynos/exynos_mixer.c    | 26 ++++++++-----------
>  5 files changed, 47 insertions(+), 67 deletions(-)

Reviewed-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk>

	Gustavo
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/exynos: fix wrong pipe calculation for crtc
  2015-01-30  7:43 [PATCH] drm/exynos: fix wrong pipe calculation for crtc Joonyoung Shim
  2015-01-30  7:43 ` [PATCH] drm/exynos: use driver internal struct Joonyoung Shim
  2015-01-30 14:56 ` [PATCH] drm/exynos: fix wrong pipe calculation for crtc Gustavo Padovan
@ 2015-02-04  7:13 ` Inki Dae
  2 siblings, 0 replies; 6+ messages in thread
From: Inki Dae @ 2015-02-04  7:13 UTC (permalink / raw)
  To: Joonyoung Shim; +Cc: sw0312.kim, dri-devel

On 2015년 01월 30일 16:43, Joonyoung Shim wrote:
> We get wrong pipe value for crtc since commit 93bca243ec96 ("drm/exynos:
> remove struct exynos_drm_manager"). We should should increase pipe value
> before call exynos_drm_crtc_create.

Right, applied.

Thanks,
Inki Dae

> 
> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> ---
>  drivers/gpu/drm/exynos/exynos_drm_fimd.c | 13 +++++++------
>  drivers/gpu/drm/exynos/exynos_drm_vidi.c |  4 ++--
>  2 files changed, 9 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> index 682806e..39f7fa7 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> @@ -1065,18 +1065,19 @@ static int fimd_bind(struct device *dev, struct device *master, void *data)
>  	struct drm_device *drm_dev = data;
>  	int ret;
>  
> -	ctx->crtc = exynos_drm_crtc_create(drm_dev, ctx->pipe,
> -					   EXYNOS_DISPLAY_TYPE_LCD,
> -					   &fimd_crtc_ops, ctx);
> -	if (IS_ERR(ctx->crtc))
> -		return PTR_ERR(ctx->crtc);
> -
>  	ret = fimd_ctx_initialize(ctx, drm_dev);
>  	if (ret) {
>  		DRM_ERROR("fimd_ctx_initialize failed.\n");
>  		return ret;
>  	}
>  
> +	ctx->crtc = exynos_drm_crtc_create(drm_dev, ctx->pipe,
> +					   EXYNOS_DISPLAY_TYPE_LCD,
> +					   &fimd_crtc_ops, ctx);
> +	if (IS_ERR(ctx->crtc)) {
> +		fimd_ctx_remove(ctx);
> +		return PTR_ERR(ctx->crtc);
> +	}
>  
>  	if (ctx->display)
>  		exynos_drm_create_enc_conn(drm_dev, ctx->display);
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> index 9c8300e..fb68d3c 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> @@ -548,6 +548,8 @@ static int vidi_bind(struct device *dev, struct device *master, void *data)
>  	struct drm_device *drm_dev = data;
>  	int ret;
>  
> +	vidi_ctx_initialize(ctx, drm_dev);
> +
>  	ctx->crtc = exynos_drm_crtc_create(drm_dev, ctx->pipe,
>  					   EXYNOS_DISPLAY_TYPE_VIDI,
>  					   &vidi_crtc_ops, ctx);
> @@ -556,8 +558,6 @@ static int vidi_bind(struct device *dev, struct device *master, void *data)
>  		return PTR_ERR(ctx->crtc);
>  	}
>  
> -	vidi_ctx_initialize(ctx, drm_dev);
> -
>  	ret = exynos_drm_create_enc_conn(drm_dev, &ctx->display);
>  	if (ret) {
>  		ctx->crtc->base.funcs->destroy(&ctx->crtc->base);
> 

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] drm/exynos: use driver internal struct
  2015-01-30  7:43 ` [PATCH] drm/exynos: use driver internal struct Joonyoung Shim
  2015-01-30 14:58   ` Gustavo Padovan
@ 2015-02-04  7:17   ` Inki Dae
  1 sibling, 0 replies; 6+ messages in thread
From: Inki Dae @ 2015-02-04  7:17 UTC (permalink / raw)
  To: Joonyoung Shim; +Cc: sw0312.kim, dri-devel

On 2015년 01월 30일 16:43, Joonyoung Shim wrote:
> Use driver internal struct as argument instead of struct exynos_drm_crtc
> except functions of exynos_drm_crtc_ops and instead of struct
> exynos_drm_display except functions of exynos_drm_display_ops.

Agree. Reasonable to use a driver context as an argument in case of
internal functions. Applied.

Thanks,
Inki Dae

> 
> It can reduce unnecessary variable declaration.
> 
> Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com>
> ---
>  drivers/gpu/drm/exynos/exynos_dp_core.c  | 14 ++++-------
>  drivers/gpu/drm/exynos/exynos_drm_fimd.c | 43 +++++++++++++-------------------
>  drivers/gpu/drm/exynos/exynos_drm_vidi.c | 19 ++++++--------
>  drivers/gpu/drm/exynos/exynos_hdmi.c     | 12 ++++-----
>  drivers/gpu/drm/exynos/exynos_mixer.c    | 26 ++++++++-----------
>  5 files changed, 47 insertions(+), 67 deletions(-)
> 
> diff --git a/drivers/gpu/drm/exynos/exynos_dp_core.c b/drivers/gpu/drm/exynos/exynos_dp_core.c
> index 34d46aa..11fd893 100644
> --- a/drivers/gpu/drm/exynos/exynos_dp_core.c
> +++ b/drivers/gpu/drm/exynos/exynos_dp_core.c
> @@ -1067,10 +1067,8 @@ static void exynos_dp_phy_exit(struct exynos_dp_device *dp)
>  		phy_power_off(dp->phy);
>  }
>  
> -static void exynos_dp_poweron(struct exynos_drm_display *display)
> +static void exynos_dp_poweron(struct exynos_dp_device *dp)
>  {
> -	struct exynos_dp_device *dp = display_to_dp(display);
> -
>  	if (dp->dpms_mode == DRM_MODE_DPMS_ON)
>  		return;
>  
> @@ -1085,13 +1083,11 @@ static void exynos_dp_poweron(struct exynos_drm_display *display)
>  	exynos_dp_phy_init(dp);
>  	exynos_dp_init_dp(dp);
>  	enable_irq(dp->irq);
> -	exynos_dp_commit(display);
> +	exynos_dp_commit(&dp->display);
>  }
>  
> -static void exynos_dp_poweroff(struct exynos_drm_display *display)
> +static void exynos_dp_poweroff(struct exynos_dp_device *dp)
>  {
> -	struct exynos_dp_device *dp = display_to_dp(display);
> -
>  	if (dp->dpms_mode != DRM_MODE_DPMS_ON)
>  		return;
>  
> @@ -1119,12 +1115,12 @@ static void exynos_dp_dpms(struct exynos_drm_display *display, int mode)
>  
>  	switch (mode) {
>  	case DRM_MODE_DPMS_ON:
> -		exynos_dp_poweron(display);
> +		exynos_dp_poweron(dp);
>  		break;
>  	case DRM_MODE_DPMS_STANDBY:
>  	case DRM_MODE_DPMS_SUSPEND:
>  	case DRM_MODE_DPMS_OFF:
> -		exynos_dp_poweroff(display);
> +		exynos_dp_poweroff(dp);
>  		break;
>  	default:
>  		break;
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> index 39f7fa7..925fc69 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
> @@ -253,9 +253,8 @@ static void fimd_enable_shadow_channel_path(struct fimd_context *ctx, int win,
>  	writel(val, ctx->regs + SHADOWCON);
>  }
>  
> -static void fimd_clear_channel(struct exynos_drm_crtc *crtc)
> +static void fimd_clear_channel(struct fimd_context *ctx)
>  {
> -	struct fimd_context *ctx = crtc->ctx;
>  	int win, ch_enabled = 0;
>  
>  	DRM_DEBUG_KMS("%s\n", __FILE__);
> @@ -280,7 +279,7 @@ static void fimd_clear_channel(struct exynos_drm_crtc *crtc)
>  		unsigned int state = ctx->suspended;
>  
>  		ctx->suspended = 0;
> -		fimd_wait_for_vblank(crtc);
> +		fimd_wait_for_vblank(ctx->crtc);
>  		ctx->suspended = state;
>  	}
>  }
> @@ -302,7 +301,7 @@ static int fimd_ctx_initialize(struct fimd_context *ctx,
>  		 * If any channel is already active, iommu will throw
>  		 * a PAGE FAULT when enabled. So clear any channel if enabled.
>  		 */
> -		fimd_clear_channel(ctx->crtc);
> +		fimd_clear_channel(ctx);
>  		ret = drm_iommu_attach_device(ctx->drm_dev, ctx->dev);
>  		if (ret) {
>  			DRM_ERROR("drm_iommu_attach failed.\n");
> @@ -823,9 +822,8 @@ static void fimd_win_disable(struct exynos_drm_crtc *crtc, int zpos)
>  	win_data->enabled = false;
>  }
>  
> -static void fimd_window_suspend(struct exynos_drm_crtc *crtc)
> +static void fimd_window_suspend(struct fimd_context *ctx)
>  {
> -	struct fimd_context *ctx = crtc->ctx;
>  	struct fimd_win_data *win_data;
>  	int i;
>  
> @@ -833,13 +831,12 @@ static void fimd_window_suspend(struct exynos_drm_crtc *crtc)
>  		win_data = &ctx->win_data[i];
>  		win_data->resume = win_data->enabled;
>  		if (win_data->enabled)
> -			fimd_win_disable(crtc, i);
> +			fimd_win_disable(ctx->crtc, i);
>  	}
>  }
>  
> -static void fimd_window_resume(struct exynos_drm_crtc *crtc)
> +static void fimd_window_resume(struct fimd_context *ctx)
>  {
> -	struct fimd_context *ctx = crtc->ctx;
>  	struct fimd_win_data *win_data;
>  	int i;
>  
> @@ -850,26 +847,24 @@ static void fimd_window_resume(struct exynos_drm_crtc *crtc)
>  	}
>  }
>  
> -static void fimd_apply(struct exynos_drm_crtc *crtc)
> +static void fimd_apply(struct fimd_context *ctx)
>  {
> -	struct fimd_context *ctx = crtc->ctx;
>  	struct fimd_win_data *win_data;
>  	int i;
>  
>  	for (i = 0; i < WINDOWS_NR; i++) {
>  		win_data = &ctx->win_data[i];
>  		if (win_data->enabled)
> -			fimd_win_commit(crtc, i);
> +			fimd_win_commit(ctx->crtc, i);
>  		else
> -			fimd_win_disable(crtc, i);
> +			fimd_win_disable(ctx->crtc, i);
>  	}
>  
> -	fimd_commit(crtc);
> +	fimd_commit(ctx->crtc);
>  }
>  
> -static int fimd_poweron(struct exynos_drm_crtc *crtc)
> +static int fimd_poweron(struct fimd_context *ctx)
>  {
> -	struct fimd_context *ctx = crtc->ctx;
>  	int ret;
>  
>  	if (!ctx->suspended)
> @@ -893,16 +888,16 @@ static int fimd_poweron(struct exynos_drm_crtc *crtc)
>  
>  	/* if vblank was enabled status, enable it again. */
>  	if (test_and_clear_bit(0, &ctx->irq_flags)) {
> -		ret = fimd_enable_vblank(crtc);
> +		ret = fimd_enable_vblank(ctx->crtc);
>  		if (ret) {
>  			DRM_ERROR("Failed to re-enable vblank [%d]\n", ret);
>  			goto enable_vblank_err;
>  		}
>  	}
>  
> -	fimd_window_resume(crtc);
> +	fimd_window_resume(ctx);
>  
> -	fimd_apply(crtc);
> +	fimd_apply(ctx);
>  
>  	return 0;
>  
> @@ -915,10 +910,8 @@ bus_clk_err:
>  	return ret;
>  }
>  
> -static int fimd_poweroff(struct exynos_drm_crtc *crtc)
> +static int fimd_poweroff(struct fimd_context *ctx)
>  {
> -	struct fimd_context *ctx = crtc->ctx;
> -
>  	if (ctx->suspended)
>  		return 0;
>  
> @@ -927,7 +920,7 @@ static int fimd_poweroff(struct exynos_drm_crtc *crtc)
>  	 * suspend that connector. Otherwise we might try to scan from
>  	 * a destroyed buffer later.
>  	 */
> -	fimd_window_suspend(crtc);
> +	fimd_window_suspend(ctx);
>  
>  	clk_disable_unprepare(ctx->lcd_clk);
>  	clk_disable_unprepare(ctx->bus_clk);
> @@ -944,12 +937,12 @@ static void fimd_dpms(struct exynos_drm_crtc *crtc, int mode)
>  
>  	switch (mode) {
>  	case DRM_MODE_DPMS_ON:
> -		fimd_poweron(crtc);
> +		fimd_poweron(crtc->ctx);
>  		break;
>  	case DRM_MODE_DPMS_STANDBY:
>  	case DRM_MODE_DPMS_SUSPEND:
>  	case DRM_MODE_DPMS_OFF:
> -		fimd_poweroff(crtc);
> +		fimd_poweroff(crtc->ctx);
>  		break;
>  	default:
>  		DRM_DEBUG_KMS("unspecified mode %d\n", mode);
> diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> index fb68d3c..b886972 100644
> --- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> +++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
> @@ -97,17 +97,16 @@ static const char fake_edid_info[] = {
>  	0x00, 0x00, 0x00, 0x06
>  };
>  
> -static void vidi_apply(struct exynos_drm_crtc *crtc)
> +static void vidi_apply(struct vidi_context *ctx)
>  {
> -	struct vidi_context *ctx = crtc->ctx;
> -	struct exynos_drm_crtc_ops *crtc_ops = crtc->ops;
> +	struct exynos_drm_crtc_ops *crtc_ops = ctx->crtc->ops;
>  	struct vidi_win_data *win_data;
>  	int i;
>  
>  	for (i = 0; i < WINDOWS_NR; i++) {
>  		win_data = &ctx->win_data[i];
>  		if (win_data->enabled && (crtc_ops && crtc_ops->win_commit))
> -			crtc_ops->win_commit(crtc, i);
> +			crtc_ops->win_commit(ctx->crtc, i);
>  	}
>  }
>  
> @@ -240,10 +239,8 @@ static void vidi_win_disable(struct exynos_drm_crtc *crtc, int zpos)
>  	/* TODO. */
>  }
>  
> -static int vidi_power_on(struct exynos_drm_crtc *crtc, bool enable)
> +static int vidi_power_on(struct vidi_context *ctx, bool enable)
>  {
> -	struct vidi_context *ctx = crtc->ctx;
> -
>  	DRM_DEBUG_KMS("%s\n", __FILE__);
>  
>  	if (enable != false && enable != true)
> @@ -254,9 +251,9 @@ static int vidi_power_on(struct exynos_drm_crtc *crtc, bool enable)
>  
>  		/* if vblank was enabled status, enable it again. */
>  		if (test_and_clear_bit(0, &ctx->irq_flags))
> -			vidi_enable_vblank(crtc);
> +			vidi_enable_vblank(ctx->crtc);
>  
> -		vidi_apply(crtc);
> +		vidi_apply(ctx);
>  	} else {
>  		ctx->suspended = true;
>  	}
> @@ -274,12 +271,12 @@ static void vidi_dpms(struct exynos_drm_crtc *crtc, int mode)
>  
>  	switch (mode) {
>  	case DRM_MODE_DPMS_ON:
> -		vidi_power_on(crtc, true);
> +		vidi_power_on(ctx, true);
>  		break;
>  	case DRM_MODE_DPMS_STANDBY:
>  	case DRM_MODE_DPMS_SUSPEND:
>  	case DRM_MODE_DPMS_OFF:
> -		vidi_power_on(crtc, false);
> +		vidi_power_on(ctx, false);
>  		break;
>  	default:
>  		DRM_DEBUG_KMS("unspecified mode %d\n", mode);
> diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
> index 98051e8..229b361 100644
> --- a/drivers/gpu/drm/exynos/exynos_hdmi.c
> +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
> @@ -2032,9 +2032,8 @@ static void hdmi_commit(struct exynos_drm_display *display)
>  	hdmi_conf_apply(hdata);
>  }
>  
> -static void hdmi_poweron(struct exynos_drm_display *display)
> +static void hdmi_poweron(struct hdmi_context *hdata)
>  {
> -	struct hdmi_context *hdata = display_to_hdmi(display);
>  	struct hdmi_resources *res = &hdata->res;
>  
>  	mutex_lock(&hdata->hdmi_mutex);
> @@ -2060,12 +2059,11 @@ static void hdmi_poweron(struct exynos_drm_display *display)
>  	clk_prepare_enable(res->sclk_hdmi);
>  
>  	hdmiphy_poweron(hdata);
> -	hdmi_commit(display);
> +	hdmi_commit(&hdata->display);
>  }
>  
> -static void hdmi_poweroff(struct exynos_drm_display *display)
> +static void hdmi_poweroff(struct hdmi_context *hdata)
>  {
> -	struct hdmi_context *hdata = display_to_hdmi(display);
>  	struct hdmi_resources *res = &hdata->res;
>  
>  	mutex_lock(&hdata->hdmi_mutex);
> @@ -2109,7 +2107,7 @@ static void hdmi_dpms(struct exynos_drm_display *display, int mode)
>  
>  	switch (mode) {
>  	case DRM_MODE_DPMS_ON:
> -		hdmi_poweron(display);
> +		hdmi_poweron(hdata);
>  		break;
>  	case DRM_MODE_DPMS_STANDBY:
>  	case DRM_MODE_DPMS_SUSPEND:
> @@ -2128,7 +2126,7 @@ static void hdmi_dpms(struct exynos_drm_display *display, int mode)
>  		if (funcs && funcs->dpms)
>  			(*funcs->dpms)(crtc, mode);
>  
> -		hdmi_poweroff(display);
> +		hdmi_poweroff(hdata);
>  		break;
>  	default:
>  		DRM_DEBUG_KMS("unknown dpms mode: %d\n", mode);
> diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c
> index a3a5db3..39d37d6 100644
> --- a/drivers/gpu/drm/exynos/exynos_mixer.c
> +++ b/drivers/gpu/drm/exynos/exynos_mixer.c
> @@ -1054,23 +1054,21 @@ static void mixer_wait_for_vblank(struct exynos_drm_crtc *crtc)
>  	drm_vblank_put(mixer_ctx->drm_dev, mixer_ctx->pipe);
>  }
>  
> -static void mixer_window_suspend(struct exynos_drm_crtc *crtc)
> +static void mixer_window_suspend(struct mixer_context *ctx)
>  {
> -	struct mixer_context *ctx = crtc->ctx;
>  	struct hdmi_win_data *win_data;
>  	int i;
>  
>  	for (i = 0; i < MIXER_WIN_NR; i++) {
>  		win_data = &ctx->win_data[i];
>  		win_data->resume = win_data->enabled;
> -		mixer_win_disable(crtc, i);
> +		mixer_win_disable(ctx->crtc, i);
>  	}
> -	mixer_wait_for_vblank(crtc);
> +	mixer_wait_for_vblank(ctx->crtc);
>  }
>  
> -static void mixer_window_resume(struct exynos_drm_crtc *crtc)
> +static void mixer_window_resume(struct mixer_context *ctx)
>  {
> -	struct mixer_context *ctx = crtc->ctx;
>  	struct hdmi_win_data *win_data;
>  	int i;
>  
> @@ -1079,13 +1077,12 @@ static void mixer_window_resume(struct exynos_drm_crtc *crtc)
>  		win_data->enabled = win_data->resume;
>  		win_data->resume = false;
>  		if (win_data->enabled)
> -			mixer_win_commit(crtc, i);
> +			mixer_win_commit(ctx->crtc, i);
>  	}
>  }
>  
> -static void mixer_poweron(struct exynos_drm_crtc *crtc)
> +static void mixer_poweron(struct mixer_context *ctx)
>  {
> -	struct mixer_context *ctx = crtc->ctx;
>  	struct mixer_resources *res = &ctx->mixer_res;
>  
>  	mutex_lock(&ctx->mixer_mutex);
> @@ -1115,12 +1112,11 @@ static void mixer_poweron(struct exynos_drm_crtc *crtc)
>  	mixer_reg_write(res, MXR_INT_EN, ctx->int_en);
>  	mixer_win_reset(ctx);
>  
> -	mixer_window_resume(crtc);
> +	mixer_window_resume(ctx);
>  }
>  
> -static void mixer_poweroff(struct exynos_drm_crtc *crtc)
> +static void mixer_poweroff(struct mixer_context *ctx)
>  {
> -	struct mixer_context *ctx = crtc->ctx;
>  	struct mixer_resources *res = &ctx->mixer_res;
>  
>  	mutex_lock(&ctx->mixer_mutex);
> @@ -1131,7 +1127,7 @@ static void mixer_poweroff(struct exynos_drm_crtc *crtc)
>  	mutex_unlock(&ctx->mixer_mutex);
>  
>  	mixer_stop(ctx);
> -	mixer_window_suspend(crtc);
> +	mixer_window_suspend(ctx);
>  
>  	ctx->int_en = mixer_reg_read(res, MXR_INT_EN);
>  
> @@ -1154,12 +1150,12 @@ static void mixer_dpms(struct exynos_drm_crtc *crtc, int mode)
>  {
>  	switch (mode) {
>  	case DRM_MODE_DPMS_ON:
> -		mixer_poweron(crtc);
> +		mixer_poweron(crtc->ctx);
>  		break;
>  	case DRM_MODE_DPMS_STANDBY:
>  	case DRM_MODE_DPMS_SUSPEND:
>  	case DRM_MODE_DPMS_OFF:
> -		mixer_poweroff(crtc);
> +		mixer_poweroff(crtc->ctx);
>  		break;
>  	default:
>  		DRM_DEBUG_KMS("unknown dpms mode: %d\n", mode);
> 

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-02-04  7:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-30  7:43 [PATCH] drm/exynos: fix wrong pipe calculation for crtc Joonyoung Shim
2015-01-30  7:43 ` [PATCH] drm/exynos: use driver internal struct Joonyoung Shim
2015-01-30 14:58   ` Gustavo Padovan
2015-02-04  7:17   ` Inki Dae
2015-01-30 14:56 ` [PATCH] drm/exynos: fix wrong pipe calculation for crtc Gustavo Padovan
2015-02-04  7:13 ` Inki Dae

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.