From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965590AbdADIQh (ORCPT ); Wed, 4 Jan 2017 03:16:37 -0500 Received: from mailout2.samsung.com ([203.254.224.25]:59716 "EHLO mailout2.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756360AbdADIQ1 (ORCPT ); Wed, 4 Jan 2017 03:16:27 -0500 X-AuditID: b6c32a3d-f79a36d000004dcf-7b-586caf1a35e5 From: Hoegeun Kwon To: robh@kernel.org, thierry.reding@gmail.com, airlied@linux.ie, kgene@kernel.org, krzk@kernel.org, inki.dae@samsung.com 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, Hoegeun Kwon Subject: [PATCH v5 1/3] drm/exynos: mic: Add mode_set callback function Date: Wed, 04 Jan 2017 17:15:09 +0900 Message-id: <1483517711-23849-2-git-send-email-hoegeun.kwon@samsung.com> X-Mailer: git-send-email 1.9.1 In-reply-to: <1483517711-23849-1-git-send-email-hoegeun.kwon@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAAzVSfUgTcRjud7e7ndbsmlk/tMSuhBK2vGvmWRqFlQv9wxBsVGKX/prSdhu7 GfZFFmU2S82gwszC8DvU7ENbFrXKCEqtLCUqg8hQyRFq+ZHa5tZ/z/O+z/N+8VK4cpAIpDJF K7KIgoEhfWX3nq5arQpsMOjCTzz34z/WtxP8ufaXGN898oPgrz1z0a5RJ8k7q2wkX9xbJON7 JnIJvvDbIM53dDTK+Xf2UpK/3PEI42daW+T8uL1MttFPe7/ks1zbVHuG1Db//kpoe/NfYNqC O7VAO9wUnEjuRNEZSEhHlhAkppnSM0V9DBOflBqbGrE2nFWxUXwkEyIKRhTDbE5IVG3NNLjG ZUIOCIYsVyhRkCRm9YZoiynLikIyTJI1htnFspyaDY9Ucxyn1qxJWcdFuCR7UEbxtRpgHlqQ ferTFJYDev1swIeCtAbm5t2SefAi2PmlgbQBX0pJtwD4tP405iGnMXimeEz+3/Hr009vogrA mrYCL5kA8HvrSeBWkbQKjp7txtx4IX0Ijl15K3OLcHoYwKK+i7MJfzoO5ncex91YRofCmYJJ wo0VtBbav3VgnnbB8GXbhdm4D70N9jurcHchSFfK4cyjARehXGQpbHqMe/Sb4VC73Yv94cCL O96xg2Dt9EfM480H8M+Jam+hIgDHcxq9jjWw9+uXWYzTfnBo9CzhaaCAeblKj0QLX9c9815s E7S35RKe9UsBHO7plBWBJdfBnFqwCJklox5JrDlKLQlGKUvUq9NMxiYw+2hhMS1gpD3BAWgK MPMU1eX7dUpCOCAdNDoApHBmoeJ9nUGnVKQLBw8hiynVkmVAkgNEuA51Hg8MSDO53la0prKa tayG07BsJBfOMYsVlcfX65S0XrCi/QiZkeW/D6N8AnNAYuzugHlTW1XRef4VfdV7S8XXkzeT nSs2lGVbb8+dePWhcGrxk4igPzeOOHYcrprM2f63XN/8nErecmykJrQnu+uk+Wo5LLM12Byx y/LS5k+P+QTFJ1XUl+j6r76xWicyN6X8eOJLzoDuqbqau0jlbBENlx5wcfv2Ply+8qhjvG8n I5MyBDYMt0jCPwVNJVl+AwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprCIsWRmVeSWpSXmKPExsVy+t9jAV3J9TkRBr2rdC1urTvHatF77iST xfUvz1kt5h8Bcq98fc9m8X55F5vFpPsTWCxu/Gpjteh//JrZ4vz5DewWl3fNYbOYcX4fk8X/ PTvYLX7umsfiwOexc9Zddo9NqzrZPLZ/e8Dqcb/7OJNH35ZVjB6fN8kFsEW52WSkJqakFimk 5iXnp2TmpdsqhYa46VooKeQl5qbaKkXo+oYEKSmUJeaUAnlGBmjAwTnAPVhJ3y7BLWPS/JWM Be8EK1rv/GVqYLzP18XIySEhYCLx8c5bJghbTOLCvfVsILaQwFJGiZZjLl2MXED2L0aJZ/NX gCXYBHQlvvZcB2sQEaiSeHBoKQuIzSzwmVHi8nIzEFtYwF2i+0IjM4jNIqAq8b/vNyuIzSvg IbHr8XmoZXISJ49NBotzCnhKvHy/nBlisYfE//97WScw8i5gZFjFKJFakFxQnJSea5iXWq5X nJhbXJqXrpecn7uJERwjz6R2MB7c5X6IUYCDUYmHd4VFToQQa2JZcWXuIUYJDmYlEd6rq4FC vCmJlVWpRfnxRaU5qcWHGE2BDpvILCWanA+M37ySeEMTcxNzYwMLc0tLEyMlcd7G2c/ChQTS E0tSs1NTC1KLYPqYODilGhj7t7WulxN1ZF1y+hnXkqUXZS0Pc029bFauYcuR25V0OO/ydK0S sXWvzUVZJbb0t01n9S0+GSU9uThP4jOL3w9ODvfJc6PiG6R6niYEN3Sd9T4YvLaxNJl95sp+ Jk/nqs0lrz60yBy6vinm11S9CrOeCzWWdZM9jH1m96/c6Gp8pk55x+G9l5RYijMSDbWYi4oT ATxjI5qnAgAA X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170104081521epcas1p40d5fbfbe0600d0df05e77b36ce6a353f X-Msg-Generator: CA X-Sender-IP: 203.254.230.26 X-Local-Sender: =?UTF-8?B?6raM7ZqM6re8G1RpemVuIFBsYXRmb3JtIExhYihTL1fshLw=?= =?UTF-8?B?7YSwKRvsgrzshLHsoITsnpAbUzMo7IKs7JuQKS/sgqzsm5A=?= X-Global-Sender: =?UTF-8?B?SG9lZ2V1biBLd29uG1RpemVuIFBsYXRmb3JtIExhYi4bU2Ft?= =?UTF-8?B?c3VuZyBFbGVjdHJvbmljcxtTMy9Bc3Npc3RhbnQgRW5naW5lZXI=?= X-Sender-Code: =?UTF-8?B?QzEwG1NUQUYbQzEwVjgxMTE=?= CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-HopCount: 7 X-CMS-RootMailID: 20170104081521epcas1p40d5fbfbe0600d0df05e77b36ce6a353f X-RootMTR: 20170104081521epcas1p40d5fbfbe0600d0df05e77b36ce6a353f References: <1483517711-23849-1-git-send-email-hoegeun.kwon@samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 | 30 +++++++++++++++++++----------- 1 file changed, 19 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..a0f459c 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,24 @@ 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); + + if (!mic->i80_mode) + mic_set_porch_timing(mic); + mic_set_img_size(mic); + mic_set_output_timing(mic); + + mutex_unlock(&mic_mutex); +} + static void mic_pre_enable(struct drm_bridge *bridge) { struct exynos_mic *mic = bridge->driver_private; @@ -355,10 +366,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 +384,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, }; -- 1.9.1