[PATCH] drm: exynos: fix for loosing display mode header during mode adjustment

2012-11-14 Thread Inki Dae
2012/11/9 Rahul Sharma 

> This patch is to preserve the display mode header during the mode
> adjustment.
> Display mode header is overwritten with the adjusted mode header which is
> throwing the stack dump.
>
> Signed-off-by: Rahul Sharma 
> ---
>  drivers/gpu/drm/exynos/exynos_hdmi.c |8 
>  1 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c
> b/drivers/gpu/drm/exynos/exynos_hdmi.c
> index ee110c9..c7844ea 100644
> --- a/drivers/gpu/drm/exynos/exynos_hdmi.c
> +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
> @@ -1974,6 +1974,8 @@ static void hdmi_mode_fixup(void *ctx, struct
> drm_connector *connector,
>  {
> struct drm_display_mode *m;
> struct hdmi_context *hdata = ctx;
> +   struct drm_mode_object base;
> +   struct list_head head;
>

Remove base and head,


> int index;
>
> DRM_DEBUG_KMS("[%d] %s\n", __LINE__, __func__);
> @@ -2002,7 +2004,13 @@ static void hdmi_mode_fixup(void *ctx, struct
> drm_connector *connector,
> if (index >= 0) {
>

And declare them here.

Thanks,
Inki Dae


> DRM_INFO("desired mode doesn't exist so\n");
> DRM_INFO("use the most suitable mode among
> modes.\n");
> +
> +   /* preserve display mode header while copying. */
> +   head = adjusted_mode->head;
> +   base = adjusted_mode->base;
> memcpy(adjusted_mode, m, sizeof(*m));
> +   adjusted_mode->head = head;
> +   adjusted_mode->base = base;
> break;
> }
> }
> --
> 1.7.0.4
>
> ___
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel
>
-- next part --
An HTML attachment was scrubbed...
URL: 



Re: [PATCH] drm: exynos: fix for loosing display mode header during mode adjustment

2012-11-14 Thread Inki Dae
2012/11/9 Rahul Sharma rahul.sha...@samsung.com

 This patch is to preserve the display mode header during the mode
 adjustment.
 Display mode header is overwritten with the adjusted mode header which is
 throwing the stack dump.

 Signed-off-by: Rahul Sharma rahul.sha...@samsung.com
 ---
  drivers/gpu/drm/exynos/exynos_hdmi.c |8 
  1 files changed, 8 insertions(+), 0 deletions(-)

 diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c
 b/drivers/gpu/drm/exynos/exynos_hdmi.c
 index ee110c9..c7844ea 100644
 --- a/drivers/gpu/drm/exynos/exynos_hdmi.c
 +++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
 @@ -1974,6 +1974,8 @@ static void hdmi_mode_fixup(void *ctx, struct
 drm_connector *connector,
  {
 struct drm_display_mode *m;
 struct hdmi_context *hdata = ctx;
 +   struct drm_mode_object base;
 +   struct list_head head;


Remove base and head,


 int index;

 DRM_DEBUG_KMS([%d] %s\n, __LINE__, __func__);
 @@ -2002,7 +2004,13 @@ static void hdmi_mode_fixup(void *ctx, struct
 drm_connector *connector,
 if (index = 0) {


And declare them here.

Thanks,
Inki Dae


 DRM_INFO(desired mode doesn't exist so\n);
 DRM_INFO(use the most suitable mode among
 modes.\n);
 +
 +   /* preserve display mode header while copying. */
 +   head = adjusted_mode-head;
 +   base = adjusted_mode-base;
 memcpy(adjusted_mode, m, sizeof(*m));
 +   adjusted_mode-head = head;
 +   adjusted_mode-base = base;
 break;
 }
 }
 --
 1.7.0.4

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

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


[PATCH] drm: exynos: fix for loosing display mode header during mode adjustment

2012-11-12 Thread Rahul Sharma
This patch is to preserve the display mode header during the mode adjustment.
Display mode header is overwritten with the adjusted mode header which is
throwing the stack dump.

Signed-off-by: Rahul Sharma rahul.sha...@samsung.com
---
 drivers/gpu/drm/exynos/exynos_hdmi.c |8 
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c 
b/drivers/gpu/drm/exynos/exynos_hdmi.c
index ee110c9..c7844ea 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -1974,6 +1974,8 @@ static void hdmi_mode_fixup(void *ctx, struct 
drm_connector *connector,
 {
struct drm_display_mode *m;
struct hdmi_context *hdata = ctx;
+   struct drm_mode_object base;
+   struct list_head head;
int index;
 
DRM_DEBUG_KMS([%d] %s\n, __LINE__, __func__);
@@ -2002,7 +2004,13 @@ static void hdmi_mode_fixup(void *ctx, struct 
drm_connector *connector,
if (index = 0) {
DRM_INFO(desired mode doesn't exist so\n);
DRM_INFO(use the most suitable mode among modes.\n);
+
+   /* preserve display mode header while copying. */
+   head = adjusted_mode-head;
+   base = adjusted_mode-base;
memcpy(adjusted_mode, m, sizeof(*m));
+   adjusted_mode-head = head;
+   adjusted_mode-base = base;
break;
}
}
-- 
1.7.0.4

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


[PATCH] drm: exynos: fix for loosing display mode header during mode adjustment

2012-11-09 Thread Rahul Sharma
This patch is to preserve the display mode header during the mode adjustment.
Display mode header is overwritten with the adjusted mode header which is
throwing the stack dump.

Signed-off-by: Rahul Sharma 
---
 drivers/gpu/drm/exynos/exynos_hdmi.c |8 
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c 
b/drivers/gpu/drm/exynos/exynos_hdmi.c
index ee110c9..c7844ea 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -1974,6 +1974,8 @@ static void hdmi_mode_fixup(void *ctx, struct 
drm_connector *connector,
 {
struct drm_display_mode *m;
struct hdmi_context *hdata = ctx;
+   struct drm_mode_object base;
+   struct list_head head;
int index;

DRM_DEBUG_KMS("[%d] %s\n", __LINE__, __func__);
@@ -2002,7 +2004,13 @@ static void hdmi_mode_fixup(void *ctx, struct 
drm_connector *connector,
if (index >= 0) {
DRM_INFO("desired mode doesn't exist so\n");
DRM_INFO("use the most suitable mode among modes.\n");
+
+   /* preserve display mode header while copying. */
+   head = adjusted_mode->head;
+   base = adjusted_mode->base;
memcpy(adjusted_mode, m, sizeof(*m));
+   adjusted_mode->head = head;
+   adjusted_mode->base = base;
break;
}
}
-- 
1.7.0.4