From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755383AbcJMOzZ (ORCPT ); Thu, 13 Oct 2016 10:55:25 -0400 Received: from mail-yb0-f194.google.com ([209.85.213.194]:34543 "EHLO mail-yb0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752463AbcJMOzQ (ORCPT ); Thu, 13 Oct 2016 10:55:16 -0400 MIME-Version: 1.0 In-Reply-To: <1476352028-16701-1-git-send-email-brian.starkey@arm.com> References: <20161012065618.GI20761@phenom.ffwll.local> <1476352028-16701-1-git-send-email-brian.starkey@arm.com> From: Alex Deucher Date: Thu, 13 Oct 2016 10:54:51 -0400 Message-ID: Subject: Re: [PATCH] drm: atomic: Clarify documentation around drm_atomic_crtc_needs_modeset To: Brian Starkey Cc: Daniel Vetter , Maling list - DRI developers , LKML Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Thu, Oct 13, 2016 at 5:47 AM, Brian Starkey wrote: > Add some additional comments to more explicitly describe the meaning and > usage of the three CRTC modeset detection booleans: mode_changed, > connectors_changed and active_changed. > > Suggested-by: Daniel Vetter > Signed-off-by: Brian Starkey > --- > > Hi Daniel, > > I guess I asked for this one :-), please just check my understanding > is correct. > The whole thread was very enlightening for me with respect to those flags as well. The patch looks good to me. Acked-by: Alex Deucher > Thanks, > Brian > > drivers/gpu/drm/drm_atomic_helper.c | 9 +++++---- > include/drm/drm_atomic.h | 11 ++++++++++- > include/drm/drm_crtc.h | 5 +++++ > 3 files changed, 20 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c > index 78ea735..fb4071a 100644 > --- a/drivers/gpu/drm/drm_atomic_helper.c > +++ b/drivers/gpu/drm/drm_atomic_helper.c > @@ -458,10 +458,11 @@ mode_fixup(struct drm_atomic_state *state) > * removed from the crtc. > * crtc_state->active_changed is set when crtc_state->active changes, > * which is used for dpms. > + * See also: drm_atomic_crtc_needs_modeset() > * > * IMPORTANT: > * > - * Drivers which update ->mode_changed (e.g. in their ->atomic_check hooks if a > + * Drivers which set ->mode_changed (e.g. in their ->atomic_check hooks if a > * plane update can't be done without a full modeset) _must_ call this function > * afterwards after that change. It is permitted to call this function multiple > * times for the same update, e.g. when the ->atomic_check functions depend upon > @@ -510,9 +511,9 @@ drm_atomic_helper_check_modeset(struct drm_device *dev, > > for_each_connector_in_state(state, connector, connector_state, i) { > /* > - * This only sets crtc->mode_changed for routing changes, > - * drivers must set crtc->mode_changed themselves when connector > - * properties need to be updated. > + * This only sets crtc->connectors_changed for routing changes, > + * drivers must set crtc->connectors_changed themselves when > + * connector properties need to be updated. > */ > ret = update_connector_routing(state, connector, > connector_state); > diff --git a/include/drm/drm_atomic.h b/include/drm/drm_atomic.h > index d9aff06..1ce255f 100644 > --- a/include/drm/drm_atomic.h > +++ b/include/drm/drm_atomic.h > @@ -368,8 +368,17 @@ int __must_check drm_atomic_nonblocking_commit(struct drm_atomic_state *state); > * > * To give drivers flexibility struct &drm_crtc_state has 3 booleans to track > * whether the state CRTC changed enough to need a full modeset cycle: > - * connectors_changed, mode_changed and active_change. This helper simply > + * connectors_changed, mode_changed and active_changed. This helper simply > * combines these three to compute the overall need for a modeset for @state. > + * > + * The atomic helper code sets these booleans, but drivers can and should > + * change them appropriately to accurately represent whether a modeset is > + * really needed. In general, drivers should avoid full modesets whenever > + * possible. > + * > + * For example if the CRTC mode has changed, and the hardware is able to enact > + * the requested mode change without going through a full modeset, the driver > + * should clear mode_changed during its ->atomic_check. > */ > static inline bool > drm_atomic_crtc_needs_modeset(struct drm_crtc_state *state) > diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h > index c4a3164..1f094d2 100644 > --- a/include/drm/drm_crtc.h > +++ b/include/drm/drm_crtc.h > @@ -116,6 +116,11 @@ struct drm_plane_helper_funcs; > * never return in a failure from the ->atomic_check callback. Userspace assumes > * that a DPMS On will always succeed. In other words: @enable controls resource > * assignment, @active controls the actual hardware state. > + * > + * The three booleans active_changed, connectors_changed and mode_changed are > + * intended to indicate whether a full modeset is needed, rather than strictly > + * describing what has changed in a commit. > + * See also: drm_atomic_crtc_needs_modeset() > */ > struct drm_crtc_state { > struct drm_crtc *crtc; > -- > 1.7.9.5 > > _______________________________________________ > dri-devel mailing list > dri-devel@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alex Deucher Subject: Re: [PATCH] drm: atomic: Clarify documentation around drm_atomic_crtc_needs_modeset Date: Thu, 13 Oct 2016 10:54:51 -0400 Message-ID: References: <20161012065618.GI20761@phenom.ffwll.local> <1476352028-16701-1-git-send-email-brian.starkey@arm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-yb0-x241.google.com (mail-yb0-x241.google.com [IPv6:2607:f8b0:4002:c09::241]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9A3026EAC4 for ; Thu, 13 Oct 2016 14:54:53 +0000 (UTC) Received: by mail-yb0-x241.google.com with SMTP id y19so1745402ybi.2 for ; Thu, 13 Oct 2016 07:54:53 -0700 (PDT) In-Reply-To: <1476352028-16701-1-git-send-email-brian.starkey@arm.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Brian Starkey Cc: Maling list - DRI developers , LKML List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBPY3QgMTMsIDIwMTYgYXQgNTo0NyBBTSwgQnJpYW4gU3RhcmtleSA8YnJpYW4uc3Rh cmtleUBhcm0uY29tPiB3cm90ZToKPiBBZGQgc29tZSBhZGRpdGlvbmFsIGNvbW1lbnRzIHRvIG1v cmUgZXhwbGljaXRseSBkZXNjcmliZSB0aGUgbWVhbmluZyBhbmQKPiB1c2FnZSBvZiB0aGUgdGhy ZWUgQ1JUQyBtb2Rlc2V0IGRldGVjdGlvbiBib29sZWFuczogbW9kZV9jaGFuZ2VkLAo+IGNvbm5l Y3RvcnNfY2hhbmdlZCBhbmQgYWN0aXZlX2NoYW5nZWQuCj4KPiBTdWdnZXN0ZWQtYnk6IERhbmll bCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAZmZ3bGwuY2g+Cj4gU2lnbmVkLW9mZi1ieTogQnJpYW4g U3RhcmtleSA8YnJpYW4uc3RhcmtleUBhcm0uY29tPgo+IC0tLQo+Cj4gSGkgRGFuaWVsLAo+Cj4g SSBndWVzcyBJIGFza2VkIGZvciB0aGlzIG9uZSA6LSksIHBsZWFzZSBqdXN0IGNoZWNrIG15IHVu ZGVyc3RhbmRpbmcKPiBpcyBjb3JyZWN0Lgo+CgpUaGUgd2hvbGUgdGhyZWFkIHdhcyB2ZXJ5IGVu bGlnaHRlbmluZyBmb3IgbWUgd2l0aCByZXNwZWN0IHRvIHRob3NlCmZsYWdzIGFzIHdlbGwuICBU aGUgcGF0Y2ggbG9va3MgZ29vZCB0byBtZS4KQWNrZWQtYnk6IEFsZXggRGV1Y2hlciA8YWxleGFu ZGVyLmRldWNoZXJAYW1kLmNvbT4KCj4gVGhhbmtzLAo+IEJyaWFuCj4KPiAgZHJpdmVycy9ncHUv ZHJtL2RybV9hdG9taWNfaGVscGVyLmMgfCAgICA5ICsrKysrLS0tLQo+ICBpbmNsdWRlL2RybS9k cm1fYXRvbWljLmggICAgICAgICAgICB8ICAgMTEgKysrKysrKysrKy0KPiAgaW5jbHVkZS9kcm0v ZHJtX2NydGMuaCAgICAgICAgICAgICAgfCAgICA1ICsrKysrCj4gIDMgZmlsZXMgY2hhbmdlZCwg MjAgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X2hlbHBlci5jCj4gaW5kZXggNzhlYTczNS4uZmI0MDcxYSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1f YXRvbWljX2hlbHBlci5jCj4gQEAgLTQ1OCwxMCArNDU4LDExIEBAIG1vZGVfZml4dXAoc3RydWN0 IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAgKiByZW1vdmVkIGZyb20gdGhlIGNydGMuCj4g ICAqIGNydGNfc3RhdGUtPmFjdGl2ZV9jaGFuZ2VkIGlzIHNldCB3aGVuIGNydGNfc3RhdGUtPmFj dGl2ZSBjaGFuZ2VzLAo+ICAgKiB3aGljaCBpcyB1c2VkIGZvciBkcG1zLgo+ICsgKiBTZWUgYWxz bzogZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVzZXQoKQo+ICAgKgo+ICAgKiBJTVBPUlRBTlQ6 Cj4gICAqCj4gLSAqIERyaXZlcnMgd2hpY2ggdXBkYXRlIC0+bW9kZV9jaGFuZ2VkIChlLmcuIGlu IHRoZWlyIC0+YXRvbWljX2NoZWNrIGhvb2tzIGlmIGEKPiArICogRHJpdmVycyB3aGljaCBzZXQg LT5tb2RlX2NoYW5nZWQgKGUuZy4gaW4gdGhlaXIgLT5hdG9taWNfY2hlY2sgaG9va3MgaWYgYQo+ ICAgKiBwbGFuZSB1cGRhdGUgY2FuJ3QgYmUgZG9uZSB3aXRob3V0IGEgZnVsbCBtb2Rlc2V0KSBf bXVzdF8gY2FsbCB0aGlzIGZ1bmN0aW9uCj4gICAqIGFmdGVyd2FyZHMgYWZ0ZXIgdGhhdCBjaGFu Z2UuIEl0IGlzIHBlcm1pdHRlZCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gbXVsdGlwbGUKPiAgICog dGltZXMgZm9yIHRoZSBzYW1lIHVwZGF0ZSwgZS5nLiB3aGVuIHRoZSAtPmF0b21pY19jaGVjayBm dW5jdGlvbnMgZGVwZW5kIHVwb24KPiBAQCAtNTEwLDkgKzUxMSw5IEBAIGRybV9hdG9taWNfaGVs cGVyX2NoZWNrX21vZGVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPgo+ICAgICAgICAgZm9y X2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKHN0YXRlLCBjb25uZWN0b3IsIGNvbm5lY3Rvcl9zdGF0 ZSwgaSkgewo+ICAgICAgICAgICAgICAgICAvKgo+IC0gICAgICAgICAgICAgICAgKiBUaGlzIG9u bHkgc2V0cyBjcnRjLT5tb2RlX2NoYW5nZWQgZm9yIHJvdXRpbmcgY2hhbmdlcywKPiAtICAgICAg ICAgICAgICAgICogZHJpdmVycyBtdXN0IHNldCBjcnRjLT5tb2RlX2NoYW5nZWQgdGhlbXNlbHZl cyB3aGVuIGNvbm5lY3Rvcgo+IC0gICAgICAgICAgICAgICAgKiBwcm9wZXJ0aWVzIG5lZWQgdG8g YmUgdXBkYXRlZC4KPiArICAgICAgICAgICAgICAgICogVGhpcyBvbmx5IHNldHMgY3J0Yy0+Y29u bmVjdG9yc19jaGFuZ2VkIGZvciByb3V0aW5nIGNoYW5nZXMsCj4gKyAgICAgICAgICAgICAgICAq IGRyaXZlcnMgbXVzdCBzZXQgY3J0Yy0+Y29ubmVjdG9yc19jaGFuZ2VkIHRoZW1zZWx2ZXMgd2hl bgo+ICsgICAgICAgICAgICAgICAgKiBjb25uZWN0b3IgcHJvcGVydGllcyBuZWVkIHRvIGJlIHVw ZGF0ZWQuCj4gICAgICAgICAgICAgICAgICAqLwo+ICAgICAgICAgICAgICAgICByZXQgPSB1cGRh dGVfY29ubmVjdG9yX3JvdXRpbmcoc3RhdGUsIGNvbm5lY3RvciwKPiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rvcl9zdGF0ZSk7Cj4gZGlmZiAt LWdpdCBhL2luY2x1ZGUvZHJtL2RybV9hdG9taWMuaCBiL2luY2x1ZGUvZHJtL2RybV9hdG9taWMu aAo+IGluZGV4IGQ5YWZmMDYuLjFjZTI1NWYgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9kcm0vZHJt X2F0b21pYy5oCj4gKysrIGIvaW5jbHVkZS9kcm0vZHJtX2F0b21pYy5oCj4gQEAgLTM2OCw4ICsz NjgsMTcgQEAgaW50IF9fbXVzdF9jaGVjayBkcm1fYXRvbWljX25vbmJsb2NraW5nX2NvbW1pdChz dHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpOwo+ICAgKgo+ICAgKiBUbyBnaXZlIGRyaXZl cnMgZmxleGliaWxpdHkgc3RydWN0ICZkcm1fY3J0Y19zdGF0ZSBoYXMgMyBib29sZWFucyB0byB0 cmFjawo+ICAgKiB3aGV0aGVyIHRoZSBzdGF0ZSBDUlRDIGNoYW5nZWQgZW5vdWdoIHRvIG5lZWQg YSBmdWxsIG1vZGVzZXQgY3ljbGU6Cj4gLSAqIGNvbm5lY3RvcnNfY2hhbmdlZCwgbW9kZV9jaGFu Z2VkIGFuZCBhY3RpdmVfY2hhbmdlLiBUaGlzIGhlbHBlciBzaW1wbHkKPiArICogY29ubmVjdG9y c19jaGFuZ2VkLCBtb2RlX2NoYW5nZWQgYW5kIGFjdGl2ZV9jaGFuZ2VkLiBUaGlzIGhlbHBlciBz aW1wbHkKPiAgICogY29tYmluZXMgdGhlc2UgdGhyZWUgdG8gY29tcHV0ZSB0aGUgb3ZlcmFsbCBu ZWVkIGZvciBhIG1vZGVzZXQgZm9yIEBzdGF0ZS4KPiArICoKPiArICogVGhlIGF0b21pYyBoZWxw ZXIgY29kZSBzZXRzIHRoZXNlIGJvb2xlYW5zLCBidXQgZHJpdmVycyBjYW4gYW5kIHNob3VsZAo+ ICsgKiBjaGFuZ2UgdGhlbSBhcHByb3ByaWF0ZWx5IHRvIGFjY3VyYXRlbHkgcmVwcmVzZW50IHdo ZXRoZXIgYSBtb2Rlc2V0IGlzCj4gKyAqIHJlYWxseSBuZWVkZWQuIEluIGdlbmVyYWwsIGRyaXZl cnMgc2hvdWxkIGF2b2lkIGZ1bGwgbW9kZXNldHMgd2hlbmV2ZXIKPiArICogcG9zc2libGUuCj4g KyAqCj4gKyAqIEZvciBleGFtcGxlIGlmIHRoZSBDUlRDIG1vZGUgaGFzIGNoYW5nZWQsIGFuZCB0 aGUgaGFyZHdhcmUgaXMgYWJsZSB0byBlbmFjdAo+ICsgKiB0aGUgcmVxdWVzdGVkIG1vZGUgY2hh bmdlIHdpdGhvdXQgZ29pbmcgdGhyb3VnaCBhIGZ1bGwgbW9kZXNldCwgdGhlIGRyaXZlcgo+ICsg KiBzaG91bGQgY2xlYXIgbW9kZV9jaGFuZ2VkIGR1cmluZyBpdHMgLT5hdG9taWNfY2hlY2suCj4g ICAqLwo+ICBzdGF0aWMgaW5saW5lIGJvb2wKPiAgZHJtX2F0b21pY19jcnRjX25lZWRzX21vZGVz ZXQoc3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSkKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9k cm0vZHJtX2NydGMuaCBiL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiBpbmRleCBjNGEzMTY0Li4x ZjA5NGQyIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jcnRjLmgKPiArKysgYi9pbmNs dWRlL2RybS9kcm1fY3J0Yy5oCj4gQEAgLTExNiw2ICsxMTYsMTEgQEAgc3RydWN0IGRybV9wbGFu ZV9oZWxwZXJfZnVuY3M7Cj4gICAqIG5ldmVyIHJldHVybiBpbiBhIGZhaWx1cmUgZnJvbSB0aGUg LT5hdG9taWNfY2hlY2sgY2FsbGJhY2suIFVzZXJzcGFjZSBhc3N1bWVzCj4gICAqIHRoYXQgYSBE UE1TIE9uIHdpbGwgYWx3YXlzIHN1Y2NlZWQuIEluIG90aGVyIHdvcmRzOiBAZW5hYmxlIGNvbnRy b2xzIHJlc291cmNlCj4gICAqIGFzc2lnbm1lbnQsIEBhY3RpdmUgY29udHJvbHMgdGhlIGFjdHVh bCBoYXJkd2FyZSBzdGF0ZS4KPiArICoKPiArICogVGhlIHRocmVlIGJvb2xlYW5zIGFjdGl2ZV9j aGFuZ2VkLCBjb25uZWN0b3JzX2NoYW5nZWQgYW5kIG1vZGVfY2hhbmdlZCBhcmUKPiArICogaW50 ZW5kZWQgdG8gaW5kaWNhdGUgd2hldGhlciBhIGZ1bGwgbW9kZXNldCBpcyBuZWVkZWQsIHJhdGhl ciB0aGFuIHN0cmljdGx5Cj4gKyAqIGRlc2NyaWJpbmcgd2hhdCBoYXMgY2hhbmdlZCBpbiBhIGNv bW1pdC4KPiArICogU2VlIGFsc286IGRybV9hdG9taWNfY3J0Y19uZWVkc19tb2Rlc2V0KCkKPiAg ICovCj4gIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSB7Cj4gICAgICAgICBzdHJ1Y3QgZHJtX2NydGMg KmNydGM7Cj4gLS0KPiAxLjcuOS41Cj4KPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiBkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1h bi9saXN0aW5mby9kcmktZGV2ZWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==