From mboxrd@z Thu Jan 1 00:00:00 1970 From: Inki Dae Subject: Re: [PATCH v4 1/3] drm/exynos: mic: Add mode_set callback function Date: Wed, 04 Jan 2017 16:29:53 +0900 Message-ID: <586CA471.9030803@samsung.com> References: <1483513115-3068-1-git-send-email-hoegeun.kwon@samsung.com> <1483513115-3068-2-git-send-email-hoegeun.kwon@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-reply-to: <1483513115-3068-2-git-send-email-hoegeun.kwon@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Hoegeun Kwon , robh@kernel.org, thierry.reding@gmail.com, airlied@linux.ie, kgene@kernel.org, krzk@kernel.org Cc: devicetree@vger.kernel.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, jh80.chung@samsung.com, cw00.choi@samsung.com List-Id: linux-samsung-soc@vger.kernel.org CgoyMDE364WEIDAx7JuUIDA07J28IDE1OjU47JeQIEhvZWdldW4gS3dvbiDsnbQo6rCAKSDsk7Qg 6riAOgo+IEJlZm9yZSBhcHBseWluZyB0aGUgcGF0Y2gsIHVzZWQgdGhlIG9mX2dldF92aWRlb21v ZGUgZnVuY3Rpb24gdG8KPiBwYXJzZSB0aGUgZGlzcGxheS10aW1pbmdzIGluIHRoZSBwYW5lbCB3 aGljaCBpcyB0aGUgY2hpbGQgZHJpdmVyCj4gb2YgZHNpIGluIHRoZSBkZXZpY2V0cmVlLiB0aGlz IGlzIHdyb25nLiBTbyByZW1vdmVkIHRoZQo+IG9mX2dldF92aWRlb21vZGUgYW5kIGZpeGVkIHRv IGdldCB2aWRlb21vZGUgc3RydWN0IHRocm91Z2gKPiBtb2RlX3NldCBjYWxsYmFjayBmdW5jdGlv bi4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBIb2VnZXVuIEt3b24gPGhvZWdldW4ua3dvbkBzYW1zdW5n LmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX21pYy5jIHwg MzMgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCAy MiBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5v cy9leHlub3NfZHJtX21pYy5jCj4gaW5kZXggYTBkZWYwYi4uOWE1MGNlYiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fbWljLmMKPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fbWljLmMKPiBAQCAtMjg2LDEzICsyODYsNiBAQCBz dGF0aWMgaW50IHBhcnNlX2R0KHN0cnVjdCBleHlub3NfbWljICptaWMpCj4gIAkJCX0KPiAgCQkJ bm9kZXNbaisrXSA9IHJlbW90ZV9ub2RlOwo+ICAKPiAtCQkJcmV0ID0gb2ZfZ2V0X3ZpZGVvbW9k ZShyZW1vdGVfbm9kZSwKPiAtCQkJCQkJCSZtaWMtPnZtLCAwKTsKPiAtCQkJaWYgKHJldCkgewo+ IC0JCQkJRFJNX0VSUk9SKCJtaWM6IGZhaWxlZCB0byBnZXQgdmlkZW9tb2RlIik7Cj4gLQkJCQln b3RvIGV4aXQ7Cj4gLQkJCX0KPiAtCj4gIAkJCWJyZWFrOwo+ICAJCWRlZmF1bHQ6Cj4gIAkJCURS TV9FUlJPUigibWljOiBVbmtub3duIGVuZHBvaW50IGZyb20gTUlDIik7Cj4gQEAgLTMyOSw2ICsz MjIsMjcgQEAgc3RhdGljIHZvaWQgbWljX3Bvc3RfZGlzYWJsZShzdHJ1Y3QgZHJtX2JyaWRnZSAq YnJpZGdlKQo+ICAJbXV0ZXhfdW5sb2NrKCZtaWNfbXV0ZXgpOwo+ICB9Cj4gIAo+ICtzdGF0aWMg dm9pZCBtaWNfbW9kZV9zZXQoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSwKPiArCQkJc3RydWN0 IGRybV9kaXNwbGF5X21vZGUgKm1vZGUsCj4gKwkJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICph ZGp1c3RlZF9tb2RlKQo+ICt7Cj4gKwlzdHJ1Y3QgZXh5bm9zX21pYyAqbWljID0gYnJpZGdlLT5k cml2ZXJfcHJpdmF0ZTsKPiArCj4gKwltdXRleF9sb2NrKCZtaWNfbXV0ZXgpOwo+ICsJaWYgKG1p Yy0+ZW5hYmxlZCkKPiArCQlnb3RvIGFscmVhZHlfZW5hYmxlZDsKCm1vZGUgc2V0dGluZyBzaG91 bGQgYmUgcGVyZm9ybWVkIGV2ZXJ5IHRpbWUgbW9kZV9zZXQgY2FsbGJhY2sgaXMgY2FsbGVkIHNv IHJlbW92ZSBhYm92ZSB0d28gbGluZXMuCgo+ICsKPiArCWRybV9kaXNwbGF5X21vZGVfdG9fdmlk ZW9tb2RlKG1vZGUsICZtaWMtPnZtKTsKPiArCj4gKwlpZiAoIW1pYy0+aTgwX21vZGUpCj4gKwkJ bWljX3NldF9wb3JjaF90aW1pbmcobWljKTsKPiArCW1pY19zZXRfaW1nX3NpemUobWljKTsKPiAr CW1pY19zZXRfb3V0cHV0X3RpbWluZyhtaWMpOwo+ICsKPiArYWxyZWFkeV9lbmFibGVkOgoKU28g dGhpcyBsYWJlbCBpcyB1bm5lY2Vzc2FyeS4KCj4gKwltdXRleF91bmxvY2soJm1pY19tdXRleCk7 Cj4gK30KPiArCj4gIHN0YXRpYyB2b2lkIG1pY19wcmVfZW5hYmxlKHN0cnVjdCBkcm1fYnJpZGdl ICpicmlkZ2UpCj4gIHsKPiAgCXN0cnVjdCBleHlub3NfbWljICptaWMgPSBicmlkZ2UtPmRyaXZl cl9wcml2YXRlOwo+IEBAIC0zNTUsMTAgKzM2OSw2IEBAIHN0YXRpYyB2b2lkIG1pY19wcmVfZW5h YmxlKHN0cnVjdCBkcm1fYnJpZGdlICpicmlkZ2UpCj4gIAkJZ290byB0dXJuX29mZl9jbGtzOwo+ ICAJfQo+ICAKPiAtCWlmICghbWljLT5pODBfbW9kZSkKPiAtCQltaWNfc2V0X3BvcmNoX3RpbWlu ZyhtaWMpOwo+IC0JbWljX3NldF9pbWdfc2l6ZShtaWMpOwo+IC0JbWljX3NldF9vdXRwdXRfdGlt aW5nKG1pYyk7Cj4gIAltaWNfc2V0X3JlZ19vbihtaWMsIDEpOwo+ICAJbWljLT5lbmFibGVkID0g MTsKPiAgCW11dGV4X3VubG9jaygmbWljX211dGV4KTsKPiBAQCAtMzc3LDYgKzM4Nyw3IEBAIHN0 YXRpYyB2b2lkIG1pY19lbmFibGUoc3RydWN0IGRybV9icmlkZ2UgKmJyaWRnZSkgeyB9Cj4gIHN0 YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyBtaWNfYnJpZGdlX2Z1bmNzID0gewo+ ICAJLmRpc2FibGUgPSBtaWNfZGlzYWJsZSwKPiAgCS5wb3N0X2Rpc2FibGUgPSBtaWNfcG9zdF9k aXNhYmxlLAo+ICsJLm1vZGVfc2V0ID0gbWljX21vZGVfc2V0LAo+ICAJLnByZV9lbmFibGUgPSBt aWNfcHJlX2VuYWJsZSwKPiAgCS5lbmFibGUgPSBtaWNfZW5hYmxlLAo+ICB9Owo+IApfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGlu ZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVl ZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK 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, > }; >