<br><br><div class="gmail_quote">2012/11/9 Rahul Sharma <span dir="ltr"><<a href="mailto:rahul.sharma@samsung.com" target="_blank">rahul.sharma@samsung.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This patch is to preserve the display mode header during the mode adjustment.<br>
Display mode header is overwritten with the adjusted mode header which is<br>
throwing the stack dump.<br>
<br>
Signed-off-by: Rahul Sharma <<a href="mailto:rahul.sharma@samsung.com">rahul.sharma@samsung.com</a>><br>
---<br>
 drivers/gpu/drm/exynos/exynos_hdmi.c |    8 ++++++++<br>
 1 files changed, 8 insertions(+), 0 deletions(-)<br>
<br>
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c<br>
index ee110c9..c7844ea 100644<br>
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c<br>
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c<br>
@@ -1974,6 +1974,8 @@ static void hdmi_mode_fixup(void *ctx, struct drm_connector *connector,<br>
 {<br>
        struct drm_display_mode *m;<br>
        struct hdmi_context *hdata = ctx;<br>
+       struct drm_mode_object base;<br>
+       struct list_head head;<br></blockquote><div><br>Remove base and head,<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
        int index;<br>
<br>
        DRM_DEBUG_KMS("[%d] %s\n", __LINE__, __func__);<br>
@@ -2002,7 +2004,13 @@ static void hdmi_mode_fixup(void *ctx, struct drm_connector *connector,<br>
                if (index >= 0) {<br></blockquote><div><br>And declare them here.<br><br>Thanks,<br>Inki Dae<br> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

                        DRM_INFO("desired mode doesn't exist so\n");<br>
                        DRM_INFO("use the most suitable mode among modes.\n");<br>
+<br>
+                       /* preserve display mode header while copying. */<br>
+                       head = adjusted_mode->head;<br>
+                       base = adjusted_mode->base;<br>
                        memcpy(adjusted_mode, m, sizeof(*m));<br>
+                       adjusted_mode->head = head;<br>
+                       adjusted_mode->base = base;<br>
                        break;<br>
                }<br>
        }<br>
<span class="HOEnZb"><font color="#888888">--<br>
1.7.0.4<br>
<br>
_______________________________________________<br>
dri-devel mailing list<br>
<a href="mailto:dri-devel@lists.freedesktop.org">dri-devel@lists.freedesktop.org</a><br>
<a href="http://lists.freedesktop.org/mailman/listinfo/dri-devel" target="_blank">http://lists.freedesktop.org/mailman/listinfo/dri-devel</a><br>
</font></span></blockquote></div><br>