Message ID | 1483611609-23522-2-git-send-email-hoegeun.kwon@samsung.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Applied. Thanks. 2017년 01월 05일 19:20에 Hoegeun Kwon 이(가) 쓴 글: > Before applying the patch, used the of_get_videomode function to > parse the display-timings in the panel which is the child driver > of dsi in the devicetree. this is wrong. So removed the > of_get_videomode and fixed to get videomode struct through > mode_set callback function. > > Signed-off-by: Hoegeun Kwon <hoegeun.kwon@samsung.com> > Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> > --- > drivers/gpu/drm/exynos/exynos_drm_mic.c | 19 ++++++++++++------- > 1 file changed, 12 insertions(+), 7 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c > index a0def0b..fed1a94 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_mic.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c > @@ -286,13 +286,6 @@ static int parse_dt(struct exynos_mic *mic) > } > nodes[j++] = remote_node; > > - ret = of_get_videomode(remote_node, > - &mic->vm, 0); > - if (ret) { > - DRM_ERROR("mic: failed to get videomode"); > - goto exit; > - } > - > break; > default: > DRM_ERROR("mic: Unknown endpoint from MIC"); > @@ -329,6 +322,17 @@ static void mic_post_disable(struct drm_bridge *bridge) > mutex_unlock(&mic_mutex); > } > > +static void mic_mode_set(struct drm_bridge *bridge, > + struct drm_display_mode *mode, > + struct drm_display_mode *adjusted_mode) > +{ > + struct exynos_mic *mic = bridge->driver_private; > + > + mutex_lock(&mic_mutex); > + drm_display_mode_to_videomode(mode, &mic->vm); > + mutex_unlock(&mic_mutex); > +} > + > static void mic_pre_enable(struct drm_bridge *bridge) > { > struct exynos_mic *mic = bridge->driver_private; > @@ -377,6 +381,7 @@ static void mic_enable(struct drm_bridge *bridge) { } > static const struct drm_bridge_funcs mic_bridge_funcs = { > .disable = mic_disable, > .post_disable = mic_post_disable, > + .mode_set = mic_mode_set, > .pre_enable = mic_pre_enable, > .enable = mic_enable, > }; >
diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c index a0def0b..fed1a94 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_mic.c +++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c @@ -286,13 +286,6 @@ static int parse_dt(struct exynos_mic *mic) } nodes[j++] = remote_node; - ret = of_get_videomode(remote_node, - &mic->vm, 0); - if (ret) { - DRM_ERROR("mic: failed to get videomode"); - goto exit; - } - break; default: DRM_ERROR("mic: Unknown endpoint from MIC"); @@ -329,6 +322,17 @@ static void mic_post_disable(struct drm_bridge *bridge) mutex_unlock(&mic_mutex); } +static void mic_mode_set(struct drm_bridge *bridge, + struct drm_display_mode *mode, + struct drm_display_mode *adjusted_mode) +{ + struct exynos_mic *mic = bridge->driver_private; + + mutex_lock(&mic_mutex); + drm_display_mode_to_videomode(mode, &mic->vm); + mutex_unlock(&mic_mutex); +} + static void mic_pre_enable(struct drm_bridge *bridge) { struct exynos_mic *mic = bridge->driver_private; @@ -377,6 +381,7 @@ static void mic_enable(struct drm_bridge *bridge) { } static const struct drm_bridge_funcs mic_bridge_funcs = { .disable = mic_disable, .post_disable = mic_post_disable, + .mode_set = mic_mode_set, .pre_enable = mic_pre_enable, .enable = mic_enable, };