From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965239AbdADHcU (ORCPT ); Wed, 4 Jan 2017 02:32:20 -0500 Received: from mailout1.samsung.com ([203.254.224.24]:57960 "EHLO mailout1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965118AbdADHcP (ORCPT ); Wed, 4 Jan 2017 02:32:15 -0500 MIME-version: 1.0 Content-type: text/plain; charset=utf-8 X-AuditID: b6c32a58-f79726d000001ac1-3a-586ca4722fe9 Content-transfer-encoding: 8BIT Message-id: <586CA471.9030803@samsung.com> Date: Wed, 04 Jan 2017 16:29:53 +0900 From: Inki Dae User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 To: Hoegeun Kwon , robh@kernel.org, thierry.reding@gmail.com, airlied@linux.ie, kgene@kernel.org, krzk@kernel.org Cc: dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-samsung-soc@vger.kernel.org, a.hajda@samsung.com, cw00.choi@samsung.com, jh80.chung@samsung.com Subject: Re: [PATCH v4 1/3] drm/exynos: mic: Add mode_set callback function In-reply-to: <1483513115-3068-2-git-send-email-hoegeun.kwon@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrBJsWRmVeSWpSXmKPExsWy7bCmlm7RkpwIgwmbZC1urTvHatF77iST xfUvz1kt5h8Bcq98fc9m8X55F5vFjV9trBb9j18zW5w/v4Hd4vKuOWwWM87vY7L4v2cHu8XP XfNYHHg9ds66y+6xaVUnm8f2bw9YPe53H2fy6NuyitHj8ya5ALaoVJuM1MSU1CKF1Lzk/JTM vHRbJe/geOd4UzMDQ11DSwtzJYW8xNxUWyUXnwBdt8wcoEuVFMoSc0qBQgGJxcVK+nY2Rfml JakKGfnFJbZK0YaGRnqGBuZ6RkZGeibGsVZGpkAlCakZPzqXMhZ0ilZMn/SNuYHxn0AXIyeH hICJxIOzhxghbDGJC/fWs3UxcnEICSxllNhzfQ8LhNPOJPG94TkTTMeN65ugqpYzSjzsPsMG kuAVEJT4MfkeUAcHB7OAvMSRS9kgYWYBTYkXXyaxgNhCAvcYJS5OzwUp4RXQktg12R8kzCKg KrF7wTd2EJsNyJ644j7YRFGBCImd8yHiIgL9jBI7V2SCrGUWOMEo0XxjAhvIHGEBb4nZR1JA ajgFPCRWzFnMCFIjIXCPXeJq/3KwGgkBWYlNB5ghzneR6J7ZxgZhC0u8Or6FHcKWlvi79BZU bzejxPWeHjYIp4NR4m/nfxaIKmOJ+w/uMUM8xifR+/sJE8QCXomONiGIEg+JUy+vQ5U7SjTt OccE8ftNRonJ50MmMMrPQgqtWYjQmoUUWgsYmVcxiqUWFOempxabFpjoFSfmFpfmpesl5+du YgSnUq2IHYz/ZgQdYhTgYFTi4eXozYkQYk0sK67MPcQowcGsJMKbuQgoxJuSWFmVWpQfX1Sa k1p8iNEUGNwTmaVEk/OBaT6vJN7QxMzQxMgSCM0NzZXEeRdUWEcICaQnlqRmp6YWpBbB9DFx cEo1MKpG5zFPXH0wck92V+6kmdu7GSban1q6Yqbp3AaZ244lv/iX7ipkfmeTeejsvYPbn25c xS+6SMi4YunVRG83zcolfTnPzVi6JrW7f1NPdODt6lrLvsp5RQC77XoDJ+sWua2mMvGT1d44 S/Eq7Pqy4+m8lJ/L5/LeT+2trLuwwdXk7KKnsUd3eyuxFGckGmoxFxUnAgDUm9gLuwMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrMIsWRmVeSWpSXmKPExsVy+t9jAd2iJTkRBkdXcFrcWneO1aL33Ekm i+tfnrNazD8C5F75+p7N4v3yLjaLG7/aWC36H79mtjh/fgO7xeVdc9gsZpzfx2Txf88Odouf u+axOPB67Jx1l91j06pONo/t3x6wetzvPs7k0bdlFaPH501yAWxRbjYZqYkpqUUKqXnJ+SmZ eem2SqEhbroWSgp5ibmptkoRur4hQUoKZYk5pUCekQEacHAOcA9W0rdLcMv40bmUsaBTtGL6 pG/MDYz/BLoYOTkkBEwkblzfxAZhi0lcuLceyObiEBJYyiix+usSRpAEr4CgxI/J91i6GDk4 mAXkJY5cyoYw1SWmTMmFKH/AKDH30lomkDivgJbErsn+IJ0sAqoSuxd8Ywex2YDsiSvus4GU iApESHSfqARpFRHoZZTYv+EQE0gNs8AJRom3De4gNcIC3hKzj6RAjL/JKHGz6z/YHE4BD4kV cxYzTmAUmIXkuFkIx81COG4BI/MqRonUguSC4qT0XKO81HK94sTc4tK8dL3k/NxNjOAIfSa9 g/HwLvdDjAIcjEo8vBu+ZEcIsSaWFVfmHmKU4GBWEuHNXJQTIcSbklhZlVqUH19UmpNafIjR FOi9icxSosn5wOSRVxJvaGJuYm5sYGFuaWlipCTO2zj7WbiQQHpiSWp2ampBahFMHxMHp1QD Y8W13cu/5NV9uVAep/A5MMf84iGFFwV3DnseeLHmQ+Y51+jVVrlPQljmu4tIXXd51LC9aKq/ WKbMPP6lDev9Gi4c3xEyuenSmTuSL06dfh/G/vfpFmb7KR3Lp7r3n3FLdpypLvQ1scq6d9bF 899euB/3epzndzZK8+eC+223TN6yeXkkB3sUT1BiKc5INNRiLipOBACDofSE5gIAAA== X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170104072954epcas5p277008674bf87aa7c8c29a9c5de505e63 X-Msg-Generator: CA X-Sender-IP: 203.254.230.27 X-Local-Sender: =?UTF-8?B?64yA7J246riwG1RpemVuIFBsYXRmb3JtIExhYihTL1fshLw=?= =?UTF-8?B?7YSwKRvsgrzshLHsoITsnpAbUzUo7LGF7J6EKS/ssYXsnoQ=?= X-Global-Sender: =?UTF-8?B?SW5raSBEYWUbVGl6ZW4gUGxhdGZvcm0gTGFiLhtTYW1zdW5n?= =?UTF-8?B?IEVsZWN0cm9uaWNzG1M1L1NlbmlvciBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG1NUQUYbQzEwVjgxMTE=?= CMS-TYPE: 105P DLP-Filter: Pass X-CFilter-Loop: Reflected X-HopCount: 7 X-CMS-RootMailID: 20170104065859epcas1p1df9efb3844bd8e4e4d4bb0af0a229ca2 X-RootMTR: 20170104065859epcas1p1df9efb3844bd8e4e4d4bb0af0a229ca2 References: <1483513115-3068-1-git-send-email-hoegeun.kwon@samsung.com> <1483513115-3068-2-git-send-email-hoegeun.kwon@samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 2017년 01월 04일 15:58에 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 > --- > drivers/gpu/drm/exynos/exynos_drm_mic.c | 33 ++++++++++++++++++++++----------- > 1 file changed, 22 insertions(+), 11 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c > index a0def0b..9a50ceb 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,27 @@ 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); > + if (mic->enabled) > + goto already_enabled; mode setting should be performed every time mode_set callback is called so remove above two lines. > + > + drm_display_mode_to_videomode(mode, &mic->vm); > + > + if (!mic->i80_mode) > + mic_set_porch_timing(mic); > + mic_set_img_size(mic); > + mic_set_output_timing(mic); > + > +already_enabled: So this label is unnecessary. > + mutex_unlock(&mic_mutex); > +} > + > static void mic_pre_enable(struct drm_bridge *bridge) > { > struct exynos_mic *mic = bridge->driver_private; > @@ -355,10 +369,6 @@ static void mic_pre_enable(struct drm_bridge *bridge) > goto turn_off_clks; > } > > - if (!mic->i80_mode) > - mic_set_porch_timing(mic); > - mic_set_img_size(mic); > - mic_set_output_timing(mic); > mic_set_reg_on(mic, 1); > mic->enabled = 1; > mutex_unlock(&mic_mutex); > @@ -377,6 +387,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, > }; >