From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1033757AbdD0KFl (ORCPT ); Thu, 27 Apr 2017 06:05:41 -0400 Received: from mailout3.w1.samsung.com ([210.118.77.13]:38681 "EHLO mailout3.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751173AbdD0KFc (ORCPT ); Thu, 27 Apr 2017 06:05:32 -0400 X-AuditID: cbfec7f2-f797e6d000004438-16-5901c267dd6a Subject: Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback To: Jose Abreu , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: Daniel Vetter , Alexey Brodkin , Carlos Palminha From: Andrzej Hajda Message-id: <978d1c10-a498-eeb3-a5ab-5a417a7fb209@samsung.com> Date: Thu, 27 Apr 2017 12:05:25 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-version: 1.0 In-reply-to: <3e1dba0cd5fc053e56f1c9c94d0cb8789ecca4ae.1493203049.git.joabreu@synopsys.com> Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA02Sa0hTYRzGez1nZ2ejxeu89E8raxR2VaOwYSFmETMM7JsaUSMPczRvOyra J8VoQwOvqE3zgjmkRHOarqLbusxMyTSKsk1kmU2NvKTNppbbsfDb7397Hp6XlybEGp4frUxO Z9TJcpWEEpKdLxfe7FeYUFxIuSNU2jI35CHVPRrhSetHLIT03dwPSmpdnOJJB+9XUxGU7OF8 HSkbLjB7yDoezyLZrGFrDBkvPJrAqJSZjDo4/IIwsd04jlI1OMsy2ETkIK0oHwlowIegJtfB 49gX+q2tVD4S0mLciKC4wsHnilkEbX3dxP+L4QbSxWKsR+BsoLmlrwi0E4vugRc+Di2lzR4u 9sZK+GNzupUIfA2BvaiF7xpQeDcstX9c8aNpEQ4HW2uoq03infClscqt44Nj4UN1B3KxCHuC o9Tq7gvwOTAOlbv1iRWZbz9LSI4DoL35O+HyAlzDh4WJLuTSB7wFDE9WA5yA6Zp+imMvGDd3 8DneDIOlBSR3W4BgprCbzxVlCJanKlevj8Az81se57YBSjorCM5ABNqrYm5FBo13liiufQwa BvZyD/QZgbW2CRWhAN2aPLo1GXRrMtQh4hbyZjLYJAXDHgxi5UlsRrIi6GJKkgGtfI/Xy+YZ I5rrDjMhTCPJelFE27o4MU+eyWYnmRDQhMRbtOkeihOLEuTZlxl1ynl1hophTcifJiUbRcKe 97FirJCnM5cYJpVR/5t60AK/HCSxj6ZNOqLt19lXlm1ns7s+6XtjAvHt6bKsKJ+0yKrAglPG ek2kKtfQc8MOnnmVzx84gwa0V/S1lorY0CYtntTban39UyZCxsvC9h2mR2+m7qLMoHvBjI0l zDuDtdGnR6dlxZraPsH2X/G9v6NST4ItU9lfmHdmh8/dp1OdEpJNlB/YQ6hZ+V/hjJn/GgMA AA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrKIsWRmVeSWpSXmKPExsVy+t/xq7pNhxgjDTr+Clis+3qbyWLWvoes Fgsf3mW2uPL1PZvFvT8fWC0u75rD5sDmsffbAhaP+93HmTy27P/M6PF5k1wAS5SbTUZqYkpq kUJqXnJ+SmZeuq1SaIibroWSQl5ibqqtUoSub0iQkkJZYk4pkGdkgAYcnAPcg5X07RLcMjbv eMVY0C5QcffyCuYGxg7eLkZODgkBE4l59xezQNhiEhfurWcDsYUEljBK7D9a18XIBWQ/Y5TY dOI3I0hCWMBZYt3kNUwgtohApkTTl8usEEV3GCUOHG0Bc5gFehgl5q45DjaWTUBT4u/mm0Bj OTh4BewkHq83AwmzCKhKPFk6G6xEVCBC4mHnLnYQm1dAUOLH5HtgcU6BWImtb7Yyg7QyC6hL TJmSCxJmFpCX2LzmLfMERoFZSDpmIVTNQlK1gJF5FaNIamlxbnpusZFecWJucWleul5yfu4m RmAUbTv2c8sOxq53wYcYBTgYlXh4HTYyRAqxJpYVV+YeYpTgYFYS4ZXcyRgpxJuSWFmVWpQf X1Sak1p8iNEU6IWJzFKiyfnACM8riTc0MTS3NDQytrAwNzJSEued+uFKuJBAemJJanZqakFq EUwfEwenVAOjV8Qdh69T7cqVdzHEctXvE/S7F/koY+ZlXjlhh+zLRWK5bRO5zEsDK/5G3awt rTwX1drKPWfCjr/MdfMZBdyvaeWoq6yN0Onx2n6K8/r6xv7e1SJ1i7bEsa47O31mX9vepRc2 ygbxJb0Qv3Y9d9rTfuMV7IzKq/e/7Uwr2rcq9kpqqmzBhVAlluKMREMt5qLiRADhLEiZuAIA AA== X-MTR: 20000000000000000@CPGS X-CMS-MailID: 20170427100527eucas1p217837a9ba15570bb95ad8e1c39b27554 X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 X-Local-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRvsgrw=?= =?UTF-8?B?7ISx7KCE7J6QG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Global-Sender: =?UTF-8?B?QW5kcnplaiBIYWpkYRtTUlBPTC1LZXJuZWwgKFRQKRtTYW1z?= =?UTF-8?B?dW5nIEVsZWN0cm9uaWNzG1NlbmlvciBTb2Z0d2FyZSBFbmdpbmVlcg==?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDAyQ0QwMjczOTI=?= CMS-TYPE: 201P X-HopCount: 7 X-CMS-RootMailID: 20170427000805epcas1p2e2205b5dabcf1e5989868748bc9c3791 X-RootMTR: 20170427000805epcas1p2e2205b5dabcf1e5989868748bc9c3791 References: <3e1dba0cd5fc053e56f1c9c94d0cb8789ecca4ae.1493203049.git.joabreu@synopsys.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Jose, On 26.04.2017 12:48, Jose Abreu wrote: > Some crtc's may have restrictions in the mode they can display. In > this patch a new callback (crtc->mode_valid()) is introduced that > is called at the same stage of connector->mode_valid() callback. > > This shall be implemented if the crtc has some sort of restriction > so that we don't probe modes that will fail in the commit() stage. > For example: A given crtc may be responsible to set a clock value. > If the clock can not produce all the values for the available > modes then this callback can be used to restrict the number of > probbed modes to only the ones that can be displayed. > > If the crtc does not implement the callback then the behaviour will > remain the same. Also, for a given set of crtcs that can be bound to > the connector, if at least one can display the mode then the mode > will be probbed. I see few possible issues/improvements here: 1. crtc can have different constraints depending on the encoder it is connected to, theoretically reverse dependency is also possible, but I am not aware of such hw. 2. there also could be similar dependency constrains between connector and encoder, I guess. 3. encoders and bridges should have also possibility to validate modes, they also have constrains, btw encoder_slave have such callback. Regarding 1st and 2nd point, maybe it would be good to validate modes according to topology described in drm_mode_get_connector::encoder_id and drm_mode_get_encoder::crtc_id: a) if connector is not connected to any encoder report to userspace modes filtered only by connector::mode_valid, b) if connector is connected to encoder, report modes filtered by connector, encoder and attached bridges, c) if full pipeline is constructed, report modes filtered by all members of the pipeline. Of course with this approach drm_mode_get_connector userspace should be aware of the fact that it should re-call drm_mode_get_connector after topology change to update supported modes. Regards Andrzej From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrzej Hajda Subject: Re: [PATCH 1/2] drm: Introduce crtc->mode_valid() callback Date: Thu, 27 Apr 2017 12:05:25 +0200 Message-ID: <978d1c10-a498-eeb3-a5ab-5a417a7fb209@samsung.com> References: <3e1dba0cd5fc053e56f1c9c94d0cb8789ecca4ae.1493203049.git.joabreu@synopsys.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout3.w1.samsung.com (mailout3.w1.samsung.com [210.118.77.13]) by gabe.freedesktop.org (Postfix) with ESMTPS id 19D996E0F3 for ; Thu, 27 Apr 2017 10:05:32 +0000 (UTC) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout3.w1.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0OP200KICC15BJ80@mailout3.w1.samsung.com> for dri-devel@lists.freedesktop.org; Thu, 27 Apr 2017 11:05:29 +0100 (BST) In-reply-to: <3e1dba0cd5fc053e56f1c9c94d0cb8789ecca4ae.1493203049.git.joabreu@synopsys.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jose Abreu , dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: Daniel Vetter , Alexey Brodkin , Carlos Palminha List-Id: dri-devel@lists.freedesktop.org SGkgSm9zZSwKCk9uIDI2LjA0LjIwMTcgMTI6NDgsIEpvc2UgQWJyZXUgd3JvdGU6Cj4gU29tZSBj cnRjJ3MgbWF5IGhhdmUgcmVzdHJpY3Rpb25zIGluIHRoZSBtb2RlIHRoZXkgY2FuIGRpc3BsYXku IEluCj4gdGhpcyBwYXRjaCBhIG5ldyBjYWxsYmFjayAoY3J0Yy0+bW9kZV92YWxpZCgpKSBpcyBp bnRyb2R1Y2VkIHRoYXQKPiBpcyBjYWxsZWQgYXQgdGhlIHNhbWUgc3RhZ2Ugb2YgY29ubmVjdG9y LT5tb2RlX3ZhbGlkKCkgY2FsbGJhY2suCj4KPiBUaGlzIHNoYWxsIGJlIGltcGxlbWVudGVkIGlm IHRoZSBjcnRjIGhhcyBzb21lIHNvcnQgb2YgcmVzdHJpY3Rpb24KPiBzbyB0aGF0IHdlIGRvbid0 IHByb2JlIG1vZGVzIHRoYXQgd2lsbCBmYWlsIGluIHRoZSBjb21taXQoKSBzdGFnZS4KPiBGb3Ig ZXhhbXBsZTogQSBnaXZlbiBjcnRjIG1heSBiZSByZXNwb25zaWJsZSB0byBzZXQgYSBjbG9jayB2 YWx1ZS4KPiBJZiB0aGUgY2xvY2sgY2FuIG5vdCBwcm9kdWNlIGFsbCB0aGUgdmFsdWVzIGZvciB0 aGUgYXZhaWxhYmxlCj4gbW9kZXMgdGhlbiB0aGlzIGNhbGxiYWNrIGNhbiBiZSB1c2VkIHRvIHJl c3RyaWN0IHRoZSBudW1iZXIgb2YKPiBwcm9iYmVkIG1vZGVzIHRvIG9ubHkgdGhlIG9uZXMgdGhh dCBjYW4gYmUgZGlzcGxheWVkLgo+Cj4gSWYgdGhlIGNydGMgZG9lcyBub3QgaW1wbGVtZW50IHRo ZSBjYWxsYmFjayB0aGVuIHRoZSBiZWhhdmlvdXIgd2lsbAo+IHJlbWFpbiB0aGUgc2FtZS4gQWxz bywgZm9yIGEgZ2l2ZW4gc2V0IG9mIGNydGNzIHRoYXQgY2FuIGJlIGJvdW5kIHRvCj4gdGhlIGNv bm5lY3RvciwgaWYgYXQgbGVhc3Qgb25lIGNhbiBkaXNwbGF5IHRoZSBtb2RlIHRoZW4gdGhlIG1v ZGUKPiB3aWxsIGJlIHByb2JiZWQuCgpJIHNlZSBmZXcgcG9zc2libGUgaXNzdWVzL2ltcHJvdmVt ZW50cyBoZXJlOgoxLiBjcnRjIGNhbiBoYXZlIGRpZmZlcmVudCBjb25zdHJhaW50cyBkZXBlbmRp bmcgb24gdGhlIGVuY29kZXIgaXQgaXMKY29ubmVjdGVkIHRvLCB0aGVvcmV0aWNhbGx5IHJldmVy c2UgZGVwZW5kZW5jeSBpcyBhbHNvIHBvc3NpYmxlLCBidXQgSQphbSBub3QgYXdhcmUgb2Ygc3Vj aCBody4KMi4gdGhlcmUgYWxzbyBjb3VsZCBiZSBzaW1pbGFyIGRlcGVuZGVuY3kgY29uc3RyYWlu cyBiZXR3ZWVuIGNvbm5lY3RvcgphbmQgZW5jb2RlciwgSSBndWVzcy4KMy4gZW5jb2RlcnMgYW5k IGJyaWRnZXMgc2hvdWxkIGhhdmUgYWxzbyBwb3NzaWJpbGl0eSB0byB2YWxpZGF0ZSBtb2RlcywK dGhleSBhbHNvIGhhdmUgY29uc3RyYWlucywgYnR3IGVuY29kZXJfc2xhdmUgaGF2ZSBzdWNoIGNh bGxiYWNrLgoKUmVnYXJkaW5nIDFzdCBhbmQgMm5kIHBvaW50LCBtYXliZSBpdCB3b3VsZCBiZSBn b29kIHRvIHZhbGlkYXRlIG1vZGVzCmFjY29yZGluZyB0byB0b3BvbG9neSBkZXNjcmliZWQgaW4g ZHJtX21vZGVfZ2V0X2Nvbm5lY3Rvcjo6ZW5jb2Rlcl9pZAphbmQgZHJtX21vZGVfZ2V0X2VuY29k ZXI6OmNydGNfaWQ6CmEpIGlmIGNvbm5lY3RvciBpcyBub3QgY29ubmVjdGVkIHRvIGFueSBlbmNv ZGVyIHJlcG9ydCB0byB1c2Vyc3BhY2UKbW9kZXMgZmlsdGVyZWQgb25seSBieSBjb25uZWN0b3I6 Om1vZGVfdmFsaWQsCmIpIGlmIGNvbm5lY3RvciBpcyBjb25uZWN0ZWQgdG8gZW5jb2RlciwgcmVw b3J0IG1vZGVzIGZpbHRlcmVkIGJ5CmNvbm5lY3RvciwgZW5jb2RlciBhbmQgYXR0YWNoZWQgYnJp ZGdlcywKYykgaWYgZnVsbCBwaXBlbGluZSBpcyBjb25zdHJ1Y3RlZCwgcmVwb3J0IG1vZGVzIGZp bHRlcmVkIGJ5IGFsbCBtZW1iZXJzCm9mIHRoZSBwaXBlbGluZS4KCk9mIGNvdXJzZSB3aXRoIHRo aXMgYXBwcm9hY2ggZHJtX21vZGVfZ2V0X2Nvbm5lY3RvciB1c2Vyc3BhY2Ugc2hvdWxkIGJlCmF3 YXJlIG9mIHRoZSBmYWN0IHRoYXQgaXQgc2hvdWxkIHJlLWNhbGwgZHJtX21vZGVfZ2V0X2Nvbm5l Y3RvciBhZnRlcgp0b3BvbG9neSBjaGFuZ2UgdG8gdXBkYXRlIHN1cHBvcnRlZCBtb2Rlcy4KClJl Z2FyZHMKQW5kcnplagoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRl dmVsCg==