From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-0.6 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id AB398C76195 for ; Thu, 18 Jul 2019 18:18:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 846792173B for ; Thu, 18 Jul 2019 18:18:46 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="cdeOP5hj"; dkim=fail reason="key not found in DNS" (0-bit key) header.d=codeaurora.org header.i=@codeaurora.org header.b="NdFlkuGm" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391189AbfGRSSp (ORCPT ); Thu, 18 Jul 2019 14:18:45 -0400 Received: from smtp.codeaurora.org ([198.145.29.96]:44014 "EHLO smtp.codeaurora.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391178AbfGRSSo (ORCPT ); Thu, 18 Jul 2019 14:18:44 -0400 Received: by smtp.codeaurora.org (Postfix, from userid 1000) id 3ED6A611D1; Thu, 18 Jul 2019 18:18:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1563473924; bh=s2i0fpH51lhrVs4GYLacMeK/1FuA13qFGeXtzi0LvfA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=cdeOP5hjJ36A34yjs6EJM8AWhARTTfc1guKVbPo5e2a3JZ4GD7KFIM5EJVTtecCbV gz1gdnJX8k497gCjSh866cimbv8BOWT18LjL8soOtBeFLqex0aRCYhSnKZUd/1O8M5 CdSgamIMF5cnLE7jAm2lrBnWcNvDTc/OFiAIVyt8= Received: from mail.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.codeaurora.org (Postfix) with ESMTP id 983BB6074F; Thu, 18 Jul 2019 18:18:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org; s=default; t=1563473922; bh=s2i0fpH51lhrVs4GYLacMeK/1FuA13qFGeXtzi0LvfA=; h=Date:From:To:Cc:Subject:In-Reply-To:References:From; b=NdFlkuGm3ew8Xa+B05bOJvE2DLw6CM7Ng46KgrHlqglPK4Yu+9c0K55tXKdh0EzuI BQ4lLHfotl0ytqrbUPbMamQXsy7nmkRoFSTee5UnOU71j/wpoga5OHyGk1bg4aPzYB NiV6kj1NlrPiIgQRR1ETbRQJo5r+jkcwoUqrFX+s= MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Date: Thu, 18 Jul 2019 11:18:42 -0700 From: Jeykumar Sankaran To: Daniel Vetter Cc: dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org, seanpaul@chromium.org, robdclark@gmail.com, pdhaval@codeaurora.org, Daniel Vetter Subject: Re: [RFC] Expanding drm_mode_modeinfo flags In-Reply-To: <20190716090712.GY15868@phenom.ffwll.local> References: <1562870805-32314-1-git-send-email-jsanka@codeaurora.org> <20190716090712.GY15868@phenom.ffwll.local> Message-ID: <16fee2b42fa03d2cf104452223dcf5af@codeaurora.org> X-Sender: jsanka@codeaurora.org User-Agent: Roundcube Webmail/1.2.5 Sender: linux-arm-msm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-arm-msm@vger.kernel.org On 2019-07-16 02:07, Daniel Vetter wrote: > On Thu, Jul 11, 2019 at 11:46:44AM -0700, Jeykumar Sankaran wrote: >> Hello All, >> drm_mode_modeinfo::flags is a 32 bit field currently used to >> describe the properties of a connector mode. I see the least order > 22 bits >> are already in use. Posting this RFC to discuss on any potential > plans to >> expand the bit range support of this field for growing mode > properties and >> ways to handle one such property needed by the msm dpu driver. >> >> msm drivers support panels which can dynamically switch between >> video(active) and command(smart) modes. Within video mode, they >> also > support >> switching between resolutions seamlessly i.e. glitch free >> resolution > switch. >> But they cannot do a seamless switch from a resolutions from video > to >> command or vice versa. Clients need to be aware for these > capablities before >> they switch between the resolutions. Since these capabilities are > identified >> per drm_mode, we are considering the below two approaches to >> handle > this >> use case. >> >> Option 1: >> Attached patch adds flag values to associate a drm_mode to > video/command >> mode and to indicate its capability to do a seamless switch. >> >> Option 2: >> drm_mode_modeinfo can expose a new "private_flags" field to handle > vendor >> specific mode flags. Besides the above mentioned use case, we are > also >> expoloring methods to handle some of our display port resolution > switch use >> cases where the DP ports can be operated in a tiled/detiled modes. > This >> approach will provide a standard channel for drm driver vendors >> for > their >> growing need for drm_mode specific capabilities. >> >> Please provide your inputs on the options or any upstream friendly >> recommendation to handle such custom use cases. >> >> Thanks and Regards, >> Jeykumar S. >> >> Jeykumar Sankaran (1): >> drm: add mode flags in uapi for seamless mode switch > > I think the uapi is the trivial part here, the real deal is how > userspace > uses this. Can you pls post the patches for your compositor? > > Also note that we already allow userspace to tell the kernel whether > flickering is ok or not for a modeset. msm driver could use that to at > least tell userspace whether a modeset change is possible. So you can > already implement glitch-free modeset changes for at least video mode. > -Daniel I believe you are referring to the below tv property of the connector. /** * @tv_flicker_reduction_property: Optional TV property to control the * flicker reduction mode. */ struct drm_property *tv_flicker_reduction_property; Sure. We can use this to indicate whether the connector representing the panel can support the dynamic glitch-free switch. But when the panel supports both video and command mode resolutions and such glitch-free switch is possible only between video mode resolutions, we need per resolution(drm_mode_modeinfo) information to identify the resolutions enumerated for video mode. Below is an example of the compositor utility function which can use the tv_flicker_property and the proposed modeinfo flags to identify glitch-free switches. bool is_seamless_switch_supported(struct drm_mode_modeinfo src_mode, struct drm_mode_modeinfo *dst_mode, bool flicker_reduction_supported) { if (!flicker_reduction_supported) { printf("flicker reduction prop not set for the connector\n"); return false; } /* * Seamless switch(if supported) is possible only between video mode * resolutions */ if (src_mode->flags & DRM_MODE_FLAG_VIDEO_MODE && dst_mode->flags & DRM_MODE_FLAG_VIDEO_MODE) return true; else return false; } -- Jeykumar S From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeykumar Sankaran Subject: Re: [RFC] Expanding drm_mode_modeinfo flags Date: Thu, 18 Jul 2019 11:18:42 -0700 Message-ID: <16fee2b42fa03d2cf104452223dcf5af@codeaurora.org> References: <1562870805-32314-1-git-send-email-jsanka@codeaurora.org> <20190716090712.GY15868@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20190716090712.GY15868-dv86pmgwkMBes7Z6vYuT8azUEOm+Xw19@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: freedreno-bounces-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org Sender: "Freedreno" To: Daniel Vetter Cc: linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, robdclark-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org, pdhaval-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org, seanpaul-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org, Daniel Vetter , freedreno-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org List-Id: dri-devel@lists.freedesktop.org T24gMjAxOS0wNy0xNiAwMjowNywgRGFuaWVsIFZldHRlciB3cm90ZToKPiBPbiBUaHUsIEp1bCAx MSwgMjAxOSBhdCAxMTo0Njo0NEFNIC0wNzAwLCBKZXlrdW1hciBTYW5rYXJhbiB3cm90ZToKPj4g ICAgIEhlbGxvIEFsbCwKPj4gICAgIAlkcm1fbW9kZV9tb2RlaW5mbzo6ZmxhZ3MgaXMgYSAzMiBi aXQgZmllbGQgY3VycmVudGx5IHVzZWQgdG8KPj4gICAgIGRlc2NyaWJlIHRoZSBwcm9wZXJ0aWVz IG9mIGEgY29ubmVjdG9yIG1vZGUuIEkgc2VlIHRoZSBsZWFzdCBvcmRlcgo+IDIyIGJpdHMKPj4g ICAgIGFyZSBhbHJlYWR5IGluIHVzZS4gUG9zdGluZyB0aGlzIFJGQyB0byBkaXNjdXNzIG9uIGFu eSBwb3RlbnRpYWwKPiBwbGFucyB0bwo+PiAgICAgZXhwYW5kIHRoZSBiaXQgcmFuZ2Ugc3VwcG9y dCBvZiB0aGlzIGZpZWxkIGZvciBncm93aW5nIG1vZGUKPiBwcm9wZXJ0aWVzIGFuZAo+PiAgICAg d2F5cyB0byBoYW5kbGUgb25lIHN1Y2ggcHJvcGVydHkgbmVlZGVkIGJ5IHRoZSBtc20gZHB1IGRy aXZlci4KPj4gCj4+ICAgICBtc20gZHJpdmVycyBzdXBwb3J0IHBhbmVscyB3aGljaCBjYW4gZHlu YW1pY2FsbHkgc3dpdGNoIGJldHdlZW4KPj4gICAgIHZpZGVvKGFjdGl2ZSkgYW5kIGNvbW1hbmQo c21hcnQpIG1vZGVzLiBXaXRoaW4gdmlkZW8gbW9kZSwgdGhleSAKPj4gYWxzbwo+IHN1cHBvcnQK Pj4gICAgIHN3aXRjaGluZyBiZXR3ZWVuIHJlc29sdXRpb25zIHNlYW1sZXNzbHkgaS5lLiBnbGl0 Y2ggZnJlZSAKPj4gcmVzb2x1dGlvbgo+IHN3aXRjaC4KPj4gICAgIEJ1dCB0aGV5IGNhbm5vdCBk byBhIHNlYW1sZXNzIHN3aXRjaCBmcm9tIGEgcmVzb2x1dGlvbnMgZnJvbSB2aWRlbwo+IHRvCj4+ ICAgICBjb21tYW5kIG9yIHZpY2UgdmVyc2EuIENsaWVudHMgbmVlZCB0byBiZSBhd2FyZSBmb3Ig dGhlc2UKPiBjYXBhYmxpdGllcyBiZWZvcmUKPj4gICAgIHRoZXkgc3dpdGNoIGJldHdlZW4gdGhl IHJlc29sdXRpb25zLiBTaW5jZSB0aGVzZSBjYXBhYmlsaXRpZXMgYXJlCj4gaWRlbnRpZmllZAo+ PiAgICAgcGVyIGRybV9tb2RlLCB3ZSBhcmUgY29uc2lkZXJpbmcgdGhlIGJlbG93IHR3byBhcHBy b2FjaGVzIHRvIAo+PiBoYW5kbGUKPiB0aGlzCj4+ICAgICB1c2UgY2FzZS4KPj4gCj4+ICAgICBP cHRpb24gMToKPj4gICAgIEF0dGFjaGVkIHBhdGNoIGFkZHMgZmxhZyB2YWx1ZXMgdG8gYXNzb2Np YXRlIGEgZHJtX21vZGUgdG8KPiB2aWRlby9jb21tYW5kCj4+ICAgICBtb2RlIGFuZCB0byBpbmRp Y2F0ZSBpdHMgY2FwYWJpbGl0eSB0byBkbyBhIHNlYW1sZXNzIHN3aXRjaC4KPj4gCj4+ICAgICBP cHRpb24gMjoKPj4gICAgIGRybV9tb2RlX21vZGVpbmZvIGNhbiBleHBvc2UgYSBuZXcgInByaXZh dGVfZmxhZ3MiIGZpZWxkIHRvIGhhbmRsZQo+IHZlbmRvcgo+PiAgICAgc3BlY2lmaWMgbW9kZSBm bGFncy4gQmVzaWRlcyB0aGUgYWJvdmUgbWVudGlvbmVkIHVzZSBjYXNlLCB3ZSBhcmUKPiBhbHNv Cj4+ICAgICBleHBvbG9yaW5nIG1ldGhvZHMgdG8gaGFuZGxlIHNvbWUgb2Ygb3VyIGRpc3BsYXkg cG9ydCByZXNvbHV0aW9uCj4gc3dpdGNoIHVzZQo+PiAgICAgY2FzZXMgd2hlcmUgdGhlIERQIHBv cnRzIGNhbiBiZSBvcGVyYXRlZCBpbiBhIHRpbGVkL2RldGlsZWQgbW9kZXMuCj4gVGhpcwo+PiAg ICAgYXBwcm9hY2ggd2lsbCBwcm92aWRlIGEgc3RhbmRhcmQgY2hhbm5lbCBmb3IgZHJtIGRyaXZl ciB2ZW5kb3JzIAo+PiBmb3IKPiB0aGVpcgo+PiAgICAgZ3Jvd2luZyBuZWVkIGZvciBkcm1fbW9k ZSBzcGVjaWZpYyBjYXBhYmlsaXRpZXMuCj4+IAo+PiAgICAgUGxlYXNlIHByb3ZpZGUgeW91ciBp bnB1dHMgb24gdGhlIG9wdGlvbnMgb3IgYW55IHVwc3RyZWFtIGZyaWVuZGx5Cj4+ICAgICByZWNv bW1lbmRhdGlvbiB0byBoYW5kbGUgc3VjaCBjdXN0b20gdXNlIGNhc2VzLgo+PiAKPj4gICAgIFRo YW5rcyBhbmQgUmVnYXJkcywKPj4gICAgIEpleWt1bWFyIFMuCj4+IAo+PiBKZXlrdW1hciBTYW5r YXJhbiAoMSk6Cj4+ICAgZHJtOiBhZGQgbW9kZSBmbGFncyBpbiB1YXBpIGZvciBzZWFtbGVzcyBt b2RlIHN3aXRjaAo+IAo+IEkgdGhpbmsgdGhlIHVhcGkgaXMgdGhlIHRyaXZpYWwgcGFydCBoZXJl LCB0aGUgcmVhbCBkZWFsIGlzIGhvdyAKPiB1c2Vyc3BhY2UKPiB1c2VzIHRoaXMuIENhbiB5b3Ug cGxzIHBvc3QgdGhlIHBhdGNoZXMgZm9yIHlvdXIgY29tcG9zaXRvcj8KPiAKPiBBbHNvIG5vdGUg dGhhdCB3ZSBhbHJlYWR5IGFsbG93IHVzZXJzcGFjZSB0byB0ZWxsIHRoZSBrZXJuZWwgd2hldGhl cgo+IGZsaWNrZXJpbmcgaXMgb2sgb3Igbm90IGZvciBhIG1vZGVzZXQuIG1zbSBkcml2ZXIgY291 bGQgdXNlIHRoYXQgdG8gYXQKPiBsZWFzdCB0ZWxsIHVzZXJzcGFjZSB3aGV0aGVyIGEgbW9kZXNl dCBjaGFuZ2UgaXMgcG9zc2libGUuIFNvIHlvdSBjYW4KPiBhbHJlYWR5IGltcGxlbWVudCBnbGl0 Y2gtZnJlZSBtb2Rlc2V0IGNoYW5nZXMgZm9yIGF0IGxlYXN0IHZpZGVvIG1vZGUuCj4gLURhbmll bAoKSSBiZWxpZXZlIHlvdSBhcmUgcmVmZXJyaW5nIHRvIHRoZSBiZWxvdyB0diBwcm9wZXJ0eSBv ZiB0aGUgY29ubmVjdG9yLgoKLyoqCiAgKiBAdHZfZmxpY2tlcl9yZWR1Y3Rpb25fcHJvcGVydHk6 IE9wdGlvbmFsIFRWIHByb3BlcnR5IHRvIGNvbnRyb2wgdGhlCiAgKiBmbGlja2VyIHJlZHVjdGlv biBtb2RlLgogICovCnN0cnVjdCBkcm1fcHJvcGVydHkgKnR2X2ZsaWNrZXJfcmVkdWN0aW9uX3By b3BlcnR5OwoKU3VyZS4gV2UgY2FuIHVzZSB0aGlzIHRvIGluZGljYXRlIHdoZXRoZXIgdGhlIGNv bm5lY3RvciByZXByZXNlbnRpbmcgdGhlIApwYW5lbApjYW4gc3VwcG9ydCB0aGUgZHluYW1pYyBn bGl0Y2gtZnJlZSBzd2l0Y2guIEJ1dCB3aGVuIHRoZSBwYW5lbCBzdXBwb3J0cyAKYm90aAp2aWRl byBhbmQgY29tbWFuZCBtb2RlIHJlc29sdXRpb25zIGFuZCBzdWNoIGdsaXRjaC1mcmVlIHN3aXRj aCBpcyAKcG9zc2libGUgb25seSBiZXR3ZWVuCnZpZGVvIG1vZGUgcmVzb2x1dGlvbnMsIHdlIG5l ZWQgcGVyIHJlc29sdXRpb24oZHJtX21vZGVfbW9kZWluZm8pIAppbmZvcm1hdGlvbgp0byBpZGVu dGlmeSB0aGUgcmVzb2x1dGlvbnMgZW51bWVyYXRlZCBmb3IgdmlkZW8gbW9kZS4KCkJlbG93IGlz IGFuIGV4YW1wbGUgb2YgdGhlIGNvbXBvc2l0b3IgdXRpbGl0eSBmdW5jdGlvbiB3aGljaCBjYW4g dXNlIHRoZSAKdHZfZmxpY2tlcl9wcm9wZXJ0eQphbmQgdGhlIHByb3Bvc2VkIG1vZGVpbmZvIGZs YWdzIHRvIGlkZW50aWZ5IGdsaXRjaC1mcmVlIHN3aXRjaGVzLgoKICBib29sIGlzX3NlYW1sZXNz X3N3aXRjaF9zdXBwb3J0ZWQoc3RydWN0IGRybV9tb2RlX21vZGVpbmZvIHNyY19tb2RlLCAKc3Ry dWN0CiAgICAgICAgICAgICAgICAgIGRybV9tb2RlX21vZGVpbmZvICpkc3RfbW9kZSwgYm9vbCAK ZmxpY2tlcl9yZWR1Y3Rpb25fc3VwcG9ydGVkKQogIHsKICAgICAgICAgIGlmICghZmxpY2tlcl9y ZWR1Y3Rpb25fc3VwcG9ydGVkKSB7CiAgICAgICAgICAgICAgICAgIHByaW50ZigiZmxpY2tlciBy ZWR1Y3Rpb24gcHJvcCBub3Qgc2V0IGZvciB0aGUgCmNvbm5lY3RvclxuIik7CiAgICAgICAgICAg ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgIH0KCiAgICAgICAgICAvKgogICAgICAgICAg ICogU2VhbWxlc3Mgc3dpdGNoKGlmIHN1cHBvcnRlZCkgaXMgcG9zc2libGUgb25seSBiZXR3ZWVu IHZpZGVvIAptb2RlCiAgICAgICAgICAgKiByZXNvbHV0aW9ucwogICAgICAgICAgICovCiAgICAg ICAgICBpZiAoc3JjX21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19WSURFT19NT0RFICYmCiAg ICAgICAgICAgICAgICAgICAgICAgICAgZHN0X21vZGUtPmZsYWdzICYgRFJNX01PREVfRkxBR19W SURFT19NT0RFKQogICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgIGVsc2UK ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoKICB9CgoKLS0gCkpleWt1bWFyIFMKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRnJlZWRyZW5vIG1h aWxpbmcgbGlzdApGcmVlZHJlbm9AbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZnJlZWRyZW5v