From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sasha Levin Subject: [PATCH AUTOSEL 4.19 163/167] drm/atomic_helper: Allow DPMS On<->Off changes for unregistered connectors Date: Tue, 3 Sep 2019 12:25:15 -0400 Message-ID: <20190903162519.7136-163-sashal@kernel.org> References: <20190903162519.7136-1-sashal@kernel.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5CB7B898B7 for ; Tue, 3 Sep 2019 16:32:13 +0000 (UTC) In-Reply-To: <20190903162519.7136-1-sashal@kernel.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Sasha Levin , Daniel Vetter , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org RnJvbTogTHl1ZGUgUGF1bCA8bHl1ZGVAcmVkaGF0LmNvbT4KClsgVXBzdHJlYW0gY29tbWl0IDM0 Y2EyNmE5OGFkNjdlZGQ2ZTQ4NzBmZTJkNGFhMDQ3ZDQxYTUxZGQgXQoKSXQgYXBwZWFycyB3aGVu IHRlc3RpbmcgbXkgcHJldmlvdXMgZml4IGZvciBzb21lIG9mIHRoZSBsZWdhY3kKbW9kZXNldHRp bmcgaXNzdWVzIHdpdGggTVNULCBJIG1pc2F0dHJpYnV0ZWQgc29tZSBrZXJuZWwgc3BsYXRzIHRo YXQKc3RhcnRlZCBhcHBlYXJpbmcgb24gbXkgbWFjaGluZSBhZnRlciBhIHJlYmFzZSBhcyBiZWlu ZyBmcm9tIHVwc3RyZWFtLgpCdXQgaXQgYXBwZWFycyB0aGV5IGFjdHVhbGx5IGNhbWUgZnJvbSBt eSBwYXRjaCBzZXJpZXM6CgpbICAgIDIuOTgwNTEyXSBbZHJtOmRybV9hdG9taWNfaGVscGVyX2No ZWNrX21vZGVzZXQgW2RybV9rbXNfaGVscGVyXV0gVXBkYXRpbmcgcm91dGluZyBmb3IgW0NPTk5F Q1RPUjo2NTplRFAtMV0KWyAgICAyLjk4MDUxNl0gW2RybTpkcm1fYXRvbWljX2hlbHBlcl9jaGVj a19tb2Rlc2V0IFtkcm1fa21zX2hlbHBlcl1dIFtDT05ORUNUT1I6NjU6ZURQLTFdIGlzIG5vdCBy ZWdpc3RlcmVkClsgICAgMi45ODA1MTZdIC0tLS0tLS0tLS0tLVsgY3V0IGhlcmUgXS0tLS0tLS0t LS0tLQpbICAgIDIuOTgwNTE5XSBDb3VsZCBub3QgZGV0ZXJtaW5lIHZhbGlkIHdhdGVybWFya3Mg Zm9yIGluaGVyaXRlZCBzdGF0ZQpbICAgIDIuOTgwNTUzXSBXQVJOSU5HOiBDUFU6IDMgUElEOiA1 NTEgYXQgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jOjE0OTgzIGludGVsX21v ZGVzZXRfaW5pdCsweDE0ZDcvMHgxOWYwIFtpOTE1XQpbICAgIDIuOTgwNTU2XSBNb2R1bGVzIGxp bmtlZCBpbjogaTkxNShPKykgaTJjX2FsZ29fYml0IGRybV9rbXNfaGVscGVyKE8pIHN5c2NvcHlh cmVhIHN5c2ZpbGxyZWN0IHN5c2ltZ2JsdCBmYl9zeXNfZm9wcyBkcm0oTykgaW50ZWxfcmFwbCB4 ODZfcGtnX3RlbXBfdGhlcm1hbCBpVENPX3dkdCB3bWlfYm1vZiBjb3JldGVtcCBjcmMzMl9wY2xt dWwgcHNtb3VzZSBpMmNfaTgwMSBtZWlfbWUgbWVpIGkyY19jb3JlIGxwY19pY2ggbWZkX2NvcmUg dHBtX3RpcyB0cG1fdGlzX2NvcmUgd21pIHRwbSB0aGlua3BhZF9hY3BpIHBjY19jcHVmcmVxIHZp ZGVvIGVoY2lfcGNpIGNyYzMyY19pbnRlbCBzZXJpb19yYXcgZWhjaV9oY2QgeGhjaV9wY2kgeGhj aV9oY2QKWyAgICAyLjk4MDU3N10gQ1BVOiAzIFBJRDogNTUxIENvbW06IHN5c3RlbWQtdWRldmQg VGFpbnRlZDogRyAgICAgICAgICAgTyAgICAgIDQuMTkuMC1yYzdMeXVkZS1UZXN0KyAjMQpbICAg IDIuOTgwNTc5XSBIYXJkd2FyZSBuYW1lOiBMRU5PVk8gMjBCV1MxS1kwMC8yMEJXUzFLWTAwLCBC SU9TIEpCRVQ2M1dXICgxLjI3ICkgMTEvMTAvMjAxNgpbICAgIDIuOTgwNjA1XSBSSVA6IDAwMTA6 aW50ZWxfbW9kZXNldF9pbml0KzB4MTRkNy8weDE5ZjAgW2k5MTVdClsgICAgMi45ODA2MDddIENv ZGU6IDg5IGRmIGU4IGVjIDI3IDAyIDAwIGU5IDI0IGYyIGZmIGZmIGJlIDAzIDAwIDAwIDAwIDQ4 IDg5IGRmIGU4IGRhIDI3IDAyIDAwIGU5IDI2IGYyIGZmIGZmIDQ4IGM3IGM3IGM4IGQxIDM0IGEw IGU4IDIzIGNmIGRjIGUwIDwwZj4gMGIgZTkgN2MgZmQgZmYgZmYgZjYgYzQgMDQgMGYgODUgMzcg ZjcgZmYgZmYgNDggOGIgODMgNjAgMDggMDAKWyAgICAyLjk4MDYxMV0gUlNQOiAwMDE4OmZmZmZj OTAwMDAyODc5ODggRUZMQUdTOiAwMDAxMDI4MgpbICAgIDIuOTgwNjE0XSBSQVg6IDAwMDAwMDAw MDAwMDAwMDAgUkJYOiBmZmZmODgwMzFiNDg4MDAwIFJDWDogMDAwMDAwMDAwMDAwMDAwNgpbICAg IDIuOTgwNjE3XSBSRFg6IDAwMDAwMDAwMDAwMDAwMDcgUlNJOiAwMDAwMDAwMDAwMDAwMDg2IFJE STogZmZmZjg4MDMyMWFkNTRkMApbICAgIDIuOTgwNjIwXSBSQlA6IGZmZmZjOTAwMDAyODdhMTAg UjA4OiAwMDAwMDAwMDAwMDAwNDBhIFIwOTogMDAwMDAwMDAwMDAwMDA2NQpbICAgIDIuOTgwNjIz XSBSMTA6IGZmZmY4ODAzMGViYjhmMDAgUjExOiBmZmZmZmZmZjgxNDE2NTkwIFIxMjogZmZmZjg4 MDMxYjQ4ODAwMApbICAgIDIuOTgwNjI2XSBSMTM6IGZmZmY4ODAzMWI0ODgzYTAgUjE0OiBmZmZm YzkwMDAwMjg3OWE4IFIxNTogZmZmZjg4MDMxOTA5OTgwMApbICAgIDIuOTgwNjMwXSBGUzogIDAw MDA3ZjQ3NTYyMGQxODAoMDAwMCkgR1M6ZmZmZjg4MDMyMWFjMDAwMCgwMDAwKSBrbmxHUzowMDAw MDAwMDAwMDAwMDAwClsgICAgMi45ODA2MzNdIENTOiAgMDAxMCBEUzogMDAwMCBFUzogMDAwMCBD UjA6IDAwMDAwMDAwODAwNTAwMzMKWyAgICAyLjk4MDYzNl0gQ1IyOiAwMDAwN2Y5ZWYyODAxOGEw IENSMzogMDAwMDAwMDMxYjcyYzAwMSBDUjQ6IDAwMDAwMDAwMDAzNjA2ZTAKWyAgICAyLjk4MDYz OV0gRFIwOiAwMDAwMDAwMDAwMDAwMDAwIERSMTogMDAwMDAwMDAwMDAwMDAwMCBEUjI6IDAwMDAw MDAwMDAwMDAwMDAKWyAgICAyLjk4MDY0Ml0gRFIzOiAwMDAwMDAwMDAwMDAwMDAwIERSNjogMDAw MDAwMDBmZmZlMGZmMCBEUjc6IDAwMDAwMDAwMDAwMDA0MDAKWyAgICAyLjk4MDY0NV0gQ2FsbCBU cmFjZToKWyAgICAyLjk4MDY3NV0gIGk5MTVfZHJpdmVyX2xvYWQrMHhiMGUvMHhkYzAgW2k5MTVd ClsgICAgMi45ODA2ODFdICA/IGtlcm5mc19hZGRfb25lKzB4ZTcvMHgxMzAKWyAgICAyLjk4MDcw OV0gIGk5MTVfcGNpX3Byb2JlKzB4NDYvMHg2MCBbaTkxNV0KWyAgICAyLjk4MDcxNV0gIHBjaV9k ZXZpY2VfcHJvYmUrMHhkNC8weDE1MApbICAgIDIuOTgwNzE5XSAgcmVhbGx5X3Byb2JlKzB4MjQz LzB4M2IwClsgICAgMi45ODA3MjJdICBkcml2ZXJfcHJvYmVfZGV2aWNlKzB4YmEvMHgxMDAKWyAg ICAyLjk4MDcyNl0gIF9fZHJpdmVyX2F0dGFjaCsweGU0LzB4MTEwClsgICAgMi45ODA3MjldICA/ IGRyaXZlcl9wcm9iZV9kZXZpY2UrMHgxMDAvMHgxMDAKWyAgICAyLjk4MDczM10gIGJ1c19mb3Jf ZWFjaF9kZXYrMHg3NC8weGIwClsgICAgMi45ODA3MzZdICBkcml2ZXJfYXR0YWNoKzB4MWUvMHgy MApbICAgIDIuOTgwNzM5XSAgYnVzX2FkZF9kcml2ZXIrMHgxNTkvMHgyMzAKWyAgICAyLjk4MDc0 M10gID8gMHhmZmZmZmZmZmEwMzkzMDAwClsgICAgMi45ODA3NDZdICBkcml2ZXJfcmVnaXN0ZXIr MHg3MC8weGMwClsgICAgMi45ODA3NDldICA/IDB4ZmZmZmZmZmZhMDM5MzAwMApbICAgIDIuOTgw NzUzXSAgX19wY2lfcmVnaXN0ZXJfZHJpdmVyKzB4NTcvMHg2MApbICAgIDIuOTgwNzgwXSAgaTkx NV9pbml0KzB4NTUvMHg1OCBbaTkxNV0KWyAgICAyLjk4MDc4NV0gIGRvX29uZV9pbml0Y2FsbCsw eDRhLzB4MWM0ClsgICAgMi45ODA3ODldICA/IGRvX2luaXRfbW9kdWxlKzB4MjcvMHgyMTAKWyAg ICAyLjk4MDc5M10gID8ga21lbV9jYWNoZV9hbGxvY190cmFjZSsweDEzMS8weDE5MApbICAgIDIu OTgwNzk3XSAgZG9faW5pdF9tb2R1bGUrMHg2MC8weDIxMApbICAgIDIuOTgwODAwXSAgbG9hZF9t b2R1bGUrMHgyMDYzLzB4MjJlMApbICAgIDIuOTgwODA0XSAgPyB2ZnNfcmVhZCsweDExNi8weDE0 MApbICAgIDIuOTgwODA3XSAgPyB2ZnNfcmVhZCsweDExNi8weDE0MApbICAgIDIuOTgwODExXSAg X19kb19zeXNfZmluaXRfbW9kdWxlKzB4YmQvMHgxMjAKWyAgICAyLjk4MDgxNF0gID8gX19kb19z eXNfZmluaXRfbW9kdWxlKzB4YmQvMHgxMjAKWyAgICAyLjk4MDgxOF0gIF9feDY0X3N5c19maW5p dF9tb2R1bGUrMHgxYS8weDIwClsgICAgMi45ODA4MjFdICBkb19zeXNjYWxsXzY0KzB4NWEvMHgx MTAKWyAgICAyLjk4MDgyNF0gIGVudHJ5X1NZU0NBTExfNjRfYWZ0ZXJfaHdmcmFtZSsweDQ0LzB4 YTkKWyAgICAyLjk4MDgyNl0gUklQOiAwMDMzOjB4N2Y0NzU0ZTMyODc5ClsgICAgMi45ODA4Mjhd IENvZGU6IDAwIGMzIDY2IDJlIDBmIDFmIDg0IDAwIDAwIDAwIDAwIDAwIDBmIDFmIDQ0IDAwIDAw IDQ4IDg5IGY4IDQ4IDg5IGY3IDQ4IDg5IGQ2IDQ4IDg5IGNhIDRkIDg5IGMyIDRkIDg5IGM4IDRj IDhiIDRjIDI0IDA4IDBmIDA1IDw0OD4gM2QgMDEgZjAgZmYgZmYgNzMgMDEgYzMgNDggOGIgMGQg ZjcgNDUgMmMgMDAgZjcgZDggNjQgODkgMDEgNDgKWyAgICAyLjk4MDgzMV0gUlNQOiAwMDJiOjAw MDA3ZmZmNDNmZDk3ZDggRUZMQUdTOiAwMDAwMDI0NiBPUklHX1JBWDogMDAwMDAwMDAwMDAwMDEz OQpbICAgIDIuOTgwODM0XSBSQVg6IGZmZmZmZmZmZmZmZmZmZGEgUkJYOiAwMDAwNTU5YTQ0Y2E2 NGYwIFJDWDogMDAwMDdmNDc1NGUzMjg3OQpbICAgIDIuOTgwODM2XSBSRFg6IDAwMDAwMDAwMDAw MDAwMDAgUlNJOiAwMDAwN2Y0NzU1OTlmNGNkIFJESTogMDAwMDAwMDAwMDAwMDAxOApbICAgIDIu OTgwODM4XSBSQlA6IDAwMDA3ZjQ3NTU5OWY0Y2QgUjA4OiAwMDAwMDAwMDAwMDAwMDAwIFIwOTog MDAwMDAwMDAwMDAwMDAwMApbICAgIDIuOTgwODM5XSBSMTA6IDAwMDAwMDAwMDAwMDAwMTggUjEx OiAwMDAwMDAwMDAwMDAwMjQ2IFIxMjogMDAwMDAwMDAwMDAwMDAwMApbICAgIDIuOTgwODQxXSBS MTM6IDAwMDA1NTlhNDRjOTJmZDAgUjE0OiAwMDAwMDAwMDAwMDIwMDAwIFIxNTogMDAwMDAwMDAw MDAwMDAwMApbICAgIDIuOTgwODgxXSBXQVJOSU5HOiBDUFU6IDMgUElEOiA1NTEgYXQgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jOjE0OTgzIGludGVsX21vZGVzZXRfaW5pdCsw eDE0ZDcvMHgxOWYwIFtpOTE1XQpbICAgIDIuOTgwODg0XSAtLS1bIGVuZCB0cmFjZSA1ZWI0N2E3 NjI3N2Q0NzMxIF0tLS0KClRoZSBjYXVzZSBvZiB0aGlzIGFwcGVhcnMgdG8gYmUgZHVlIHRvIHRo ZSBmYWN0IHRoYXQgaWYgdGhlcmUncwpwcmUtZXhpc3RpbmcgZGlzcGxheSBzdGF0ZSB0aGF0IHdh cyBzZXQgYnkgdGhlIEJJT1Mgd2hlbiBpOTE1IGxvYWRzLCBpdAp3aWxsIGF0dGVtcHQgdG8gcGVy Zm9ybSBhIG1vZGVzZXQgYmVmb3JlIHRoZSBkcml2ZXIgaXMgcmVnaXN0ZXJlZCB3aXRoCnVzZXJz cGFjZS4gU2luY2UgdGhpcyBoYXBwZW5zIGJlZm9yZSB0aGUgZHJpdmVyJ3MgcmVnaXN0ZXJlZCB3 aXRoCnVzZXJzcGFjZSwgaXQncyBjb25uZWN0b3JzIGFyZSBhbHNvIHVucmVnaXN0ZXJlZCBhbmQg dGh1cy1zdGF0ZXMgd2hpY2gKd291bGQgdHVybiBvbiBEUE1TIG9uIGEgY29ubmVjdG9yIGVuZCB1 cCBnZXR0aW5nIHJlamVjdGVkIHNpbmNlIHRoZQpjb25uZWN0b3IgaXNuJ3QgcmVnaXN0ZXJlZC4K ClRoZXNlIGJ1Z3MgbWFuYWdlZCB0byBnZXQgcGFzdCBJbnRlbCdzIENJIHBhcnRpYWxseSBkdWUg dG8gdGhlIGZhY3QgaXQKbmV2ZXIgcmFuIGEgZnVsbCB0ZXN0IG9uIG15IHBhdGNoZXMgZm9yIHNv bWUgcmVhc29uLCBidXQgYWxzbyBiZWNhdXNlCmFsbCBvZiB0aGUgdGVzdHMgdW5sb2FkIHRoZSBH UFUgb25jZSBiZWZvcmUgcnVubmluZy4gU2luY2UgdGhpcyBidWcgaXMKb25seSByZWFsbHkgdHJp Z2dlcmVkIHdoZW4gdGhlIGRyaXZlcnMgdHJpZXMgdG8gcGVyZm9ybSBhIG1vZGVzZXQgYmVmb3Jl Cml0J3MgYmVlbiBmdWxseSByZWdpc3RlcmVkIHdpdGggdXNlcnNwYWNlIHdoZW4gY29taW5nIGZy b20gd2hhdGV2ZXIKZGlzcGxheSBjb25maWd1cmF0aW9uIHRoZSBmaXJtd2FyZSBsZWZ0IHVzIHdp dGgsIGl0IGxpa2VseSB3b3VsZCBuZXZlcgpoYXZlIGJlZW4gcGlja2VkIHVwIGJ5IENJIGluIHRo ZSBmaXJzdCBwbGFjZS4KCkFmdGVyIHNvbWUgZGlzY3Vzc2lvbiB3aXRoIHZzeXJqYWxhLCB3ZSBk ZWNpZGVkIHRoZSBiZXN0IGNvdXJzZSBvZgphY3Rpb24gd291bGQgYmUgdG8ganVzdCBtb3ZlIHRo ZSB1bnJlZ2lzdGVyZWQgY29ubmVjdG9yIGNoZWNrcyBvdXQgb2YKdXBkYXRlX2Nvbm5lY3Rvcl9y b3V0aW5nKCkgYW5kIGludG8gZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfY29ubmVjdG9yKCkuClRo ZSByZWFzb24gZm9yIHRoaXMgYmVpbmcgdGhhdCBsZWdhY3kgbW9kZXNldHRpbmcgaXNuJ3QgZ29p bmcgdG8gYmUKZXhwZWN0aW5nIGZhaWx1cmVzIGFueXdoZXJlIChhdCBsZWFzdCB0aGlzIGlzIHRo ZSBjYXNlIHdpdGggWCksIHNvCmlkZWFsbHkgd2Ugd2FudCB0byBlbnN1cmUgdGhhdCBhbnkgRFBN UyBjaGFuZ2VzIHdpbGwgc3RpbGwgd29yayBldmVuIG9uCnVucmVnaXN0ZXJlZCBjb25uZWN0b3Jz LiBJbnN0ZWFkLCB3ZSBub3cgb25seSByZWplY3QgbmV3IG1vZGVzZXRzIHdoaWNoCndvdWxkIGNo YW5nZSB0aGUgY3VycmVudCBDUlRDIGFzc2lnbmVkIHRvIGFuIHVucmVnaXN0ZXJlZCBjb25uZWN0 b3IKdW5sZXNzIG5vIG5ldyBDUlRDIGlzIGJlaW5nIGFzc2lnbmVkIHRvIHJlcGxhY2UgdGhlIGNv bm5lY3RvcidzIHByZXZpb3VzCm9uZS4KClNpZ25lZC1vZmYtYnk6IEx5dWRlIFBhdWwgPGx5dWRl QHJlZGhhdC5jb20+ClJlcG9ydGVkLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFA bGludXguaW50ZWwuY29tPgpGaXhlczogNGQ4MDI3Mzk3NmJmICgiZHJtL2F0b21pY19oZWxwZXI6 IERpc2FsbG93IG5ldyBtb2Rlc2V0cyBvbiB1bnJlZ2lzdGVyZWQgY29ubmVjdG9ycyIpCkNjOiBE YW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgpDYzogVmlsbGUgU3lyasOkbMOk IDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KQ2M6IHN0YWJsZUB2Z2VyLmtlcm5lbC5v cmcKUmV2aWV3ZWQtYnk6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRl bC5jb20+Ckxpbms6IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC9tc2dp ZC8yMDE4MTAwOTIwNDQyNC4yMTQ2Mi0xLWx5dWRlQHJlZGhhdC5jb20KKGNoZXJyeSBwaWNrZWQg ZnJvbSBjb21taXQgYjVkMjk4NDNkOGVmODZkNGNkZTQ3NDJlMDk1YjgxYjdmZDQxZTY4OCkKRml4 ZXM6IGU5NjU1MDk1NmZiYyAoImRybS9hdG9taWNfaGVscGVyOiBEaXNhbGxvdyBuZXcgbW9kZXNl dHMgb24gdW5yZWdpc3RlcmVkIGNvbm5lY3RvcnMiKQpTaWduZWQtb2ZmLWJ5OiBKb29uYXMgTGFo dGluZW4gPGpvb25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+ClNpZ25lZC1vZmYtYnk6IFNh c2hhIExldmluIDxzYXNoYWxAa2VybmVsLm9yZz4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0 b21pYy5jICAgICAgICB8IDIxICsrKysrKysrKysrKysrKysrKysrKwogZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWNfaGVscGVyLmMgfCAyMSArLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDIgZmlsZXMg Y2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj LmMKaW5kZXggMjgxY2Y5Y2JiNDRjNC4uMWE0YjQ0OTIzYWVjYSAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2RybV9hdG9taWMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5j CkBAIC0xNzAyLDYgKzE3MDIsMjcgQEAgZHJtX2F0b21pY19zZXRfY3J0Y19mb3JfY29ubmVjdG9y KHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlLAogCXN0cnVjdCBkcm1fY29u bmVjdG9yICpjb25uZWN0b3IgPSBjb25uX3N0YXRlLT5jb25uZWN0b3I7CiAJc3RydWN0IGRybV9j cnRjX3N0YXRlICpjcnRjX3N0YXRlOwogCisJLyoKKwkgKiBGb3IgY29tcGF0aWJpbGl0eSB3aXRo IGxlZ2FjeSB1c2Vycywgd2Ugd2FudCB0byBtYWtlIHN1cmUgdGhhdAorCSAqIHdlIGFsbG93IERQ TVMgT248LT5PZmYgbW9kZXNldHMgb24gdW5yZWdpc3RlcmVkIGNvbm5lY3RvcnMsIHNpbmNlCisJ ICogbGVnYWN5IG1vZGVzZXR0aW5nIHVzZXJzIHdpbGwgbm90IGJlIGV4cGVjdGluZyB0aGVzZSB0 byBmYWlsLiBXZSBkbworCSAqIG5vdCBob3dldmVyLCB3YW50IHRvIGFsbG93IGxlZ2FjeSB1c2Vy cyB0byBhc3NpZ24gYSBjb25uZWN0b3IKKwkgKiB0aGF0J3MgYmVlbiB1bnJlZ2lzdGVyZWQgZnJv bSBzeXNmcyB0byBhbm90aGVyIENSVEMsIHNpbmNlIGRvaW5nCisJICogdGhpcyB3aXRoIGEgbm93 IG5vbi1leGlzdGVudCBjb25uZWN0b3IgY291bGQgcG90ZW50aWFsbHkgbGVhdmUgdXMKKwkgKiBp biBhbiBpbnZhbGlkIHN0YXRlLgorCSAqCisJICogU2luY2UgdGhlIGNvbm5lY3RvciBjYW4gYmUg dW5yZWdpc3RlcmVkIGF0IGFueSBwb2ludCBkdXJpbmcgYW4KKwkgKiBhdG9taWMgY2hlY2sgb3Ig Y29tbWl0LCB0aGlzIGlzIHJhY3kuIEJ1dCB0aGF0J3MgT0s6IGFsbCB3ZSBjYXJlCisJICogYWJv dXQgaXMgZW5zdXJpbmcgdGhhdCB1c2Vyc3BhY2UgY2FuJ3QgdXNlIHRoaXMgY29ubmVjdG9yIGZv ciBuZXcKKwkgKiBjb25maWd1cmF0aW9ucyBhZnRlciBpdCdzIGJlZW4gbm90aWZpZWQgdGhhdCB0 aGUgY29ubmVjdG9yIGlzIG5vCisJICogbG9uZ2VyIHByZXNlbnQuCisJICovCisJaWYgKCFSRUFE X09OQ0UoY29ubmVjdG9yLT5yZWdpc3RlcmVkKSAmJiBjcnRjKSB7CisJCURSTV9ERUJVR19BVE9N SUMoIltDT05ORUNUT1I6JWQ6JXNdIGlzIG5vdCByZWdpc3RlcmVkXG4iLAorCQkJCSBjb25uZWN0 b3ItPmJhc2UuaWQsIGNvbm5lY3Rvci0+bmFtZSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwog CWlmIChjb25uX3N0YXRlLT5jcnRjID09IGNydGMpCiAJCXJldHVybiAwOwogCmRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9k cm1fYXRvbWljX2hlbHBlci5jCmluZGV4IDcxYzcwYTAzMWEwNDMuLmMyMjA2MmNjOTk5MjMgMTAw NjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCkBAIC0zMDcsMjYgKzMwNyw2IEBAIHVwZGF0 ZV9jb25uZWN0b3Jfcm91dGluZyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCiAJCXJl dHVybiAwOwogCX0KIAotCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dldF9uZXdfY3J0Y19zdGF0 ZShzdGF0ZSwKLQkJCQkJCSAgIG5ld19jb25uZWN0b3Jfc3RhdGUtPmNydGMpOwotCS8qCi0JICog Rm9yIGNvbXBhdGliaWxpdHkgd2l0aCBsZWdhY3kgdXNlcnMsIHdlIHdhbnQgdG8gbWFrZSBzdXJl IHRoYXQKLQkgKiB3ZSBhbGxvdyBEUE1TIE9uLT5PZmYgbW9kZXNldHMgb24gdW5yZWdpc3RlcmVk IGNvbm5lY3RvcnMuIE1vZGVzZXRzCi0JICogd2hpY2ggd291bGQgcmVzdWx0IGluIGFueXRoaW5n IGVsc2UgbXVzdCBiZSBjb25zaWRlcmVkIGludmFsaWQsIHRvCi0JICogYXZvaWQgdHVybmluZyBv biBuZXcgZGlzcGxheXMgb24gZGVhZCBjb25uZWN0b3JzLgotCSAqCi0JICogU2luY2UgdGhlIGNv bm5lY3RvciBjYW4gYmUgdW5yZWdpc3RlcmVkIGF0IGFueSBwb2ludCBkdXJpbmcgYW4KLQkgKiBh dG9taWMgY2hlY2sgb3IgY29tbWl0LCB0aGlzIGlzIHJhY3kuIEJ1dCB0aGF0J3MgT0s6IGFsbCB3 ZSBjYXJlCi0JICogYWJvdXQgaXMgZW5zdXJpbmcgdGhhdCB1c2Vyc3BhY2UgY2FuJ3QgZG8gYW55 dGhpbmcgYnV0IHNodXQgb2ZmIHRoZQotCSAqIGRpc3BsYXkgb24gYSBjb25uZWN0b3IgdGhhdCB3 YXMgZGVzdHJveWVkIGFmdGVyIGl0cyBiZWVuIG5vdGlmaWVkLAotCSAqIG5vdCBiZWZvcmUuCi0J ICovCi0JaWYgKCFSRUFEX09OQ0UoY29ubmVjdG9yLT5yZWdpc3RlcmVkKSAmJiBjcnRjX3N0YXRl LT5hY3RpdmUpIHsKLQkJRFJNX0RFQlVHX0FUT01JQygiW0NPTk5FQ1RPUjolZDolc10gaXMgbm90 IHJlZ2lzdGVyZWRcbiIsCi0JCQkJIGNvbm5lY3Rvci0+YmFzZS5pZCwgY29ubmVjdG9yLT5uYW1l KTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQotCiAJZnVuY3MgPSBjb25uZWN0b3ItPmhlbHBlcl9w cml2YXRlOwogCiAJaWYgKGZ1bmNzLT5hdG9taWNfYmVzdF9lbmNvZGVyKQpAQCAtMzcxLDYgKzM1 MSw3IEBAIHVwZGF0ZV9jb25uZWN0b3Jfcm91dGluZyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAq c3RhdGUsCiAKIAlzZXRfYmVzdF9lbmNvZGVyKHN0YXRlLCBuZXdfY29ubmVjdG9yX3N0YXRlLCBu ZXdfZW5jb2Rlcik7CiAKKwljcnRjX3N0YXRlID0gZHJtX2F0b21pY19nZXRfbmV3X2NydGNfc3Rh dGUoc3RhdGUsIG5ld19jb25uZWN0b3Jfc3RhdGUtPmNydGMpOwogCWNydGNfc3RhdGUtPmNvbm5l Y3RvcnNfY2hhbmdlZCA9IHRydWU7CiAKIAlEUk1fREVCVUdfQVRPTUlDKCJbQ09OTkVDVE9SOiVk OiVzXSB1c2luZyBbRU5DT0RFUjolZDolc10gb24gW0NSVEM6JWQ6JXNdXG4iLAotLSAKMi4yMC4x CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2 ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9s aXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWw= 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=-10.1 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=unavailable 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 43B1BC3A5A2 for ; Tue, 3 Sep 2019 16:32:41 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 07CCC215EA for ; Tue, 3 Sep 2019 16:32:41 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1567528361; bh=lHLzGeJ80lC6PwD/xjvFZt99d22R34+rzxc8vyTl0Tc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=QHQkaYA+esXOOQpnZe0yswD+RsA0Ju1dsINuRnmo8oXWEX8damoOpWz4JuEvFgnc9 W26LB/z8XZNJR+HufvlBsuk9lj3omU7FKgvljqF8IS/1mKFpRLk410tjE7INXuos1c SmFRoRkAA1RMEBzNa7cvgn6Sjf8f0xjgxDDRLSYA= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731337AbfICQck (ORCPT ); Tue, 3 Sep 2019 12:32:40 -0400 Received: from mail.kernel.org ([198.145.29.99]:55688 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1731419AbfICQcP (ORCPT ); Tue, 3 Sep 2019 12:32:15 -0400 Received: from sasha-vm.mshome.net (c-73-47-72-35.hsd1.nh.comcast.net [73.47.72.35]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 6CAE8238C5; Tue, 3 Sep 2019 16:32:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1567528333; bh=lHLzGeJ80lC6PwD/xjvFZt99d22R34+rzxc8vyTl0Tc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=KA14D7GFs/ZVkizXQACJE+72ZYx6XT8BB9e4iKX98iUK1tGKsAluNTFIlIGXhSnGR jBtEls0rYOIzj0DRuljJsHQaekWzHX3qqToREv7aqiq8dlpLW2+Qj5gHUq5OR+zf/o 2e3MQqN7gXkLIwzyyhmNKbBuqu6St30ejVMNQWDQ= From: Sasha Levin To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Lyude Paul , =?UTF-8?q?Ville=20Syrj=C3=A4l=C3=A4?= , Daniel Vetter , Joonas Lahtinen , Sasha Levin , dri-devel@lists.freedesktop.org Subject: [PATCH AUTOSEL 4.19 163/167] drm/atomic_helper: Allow DPMS On<->Off changes for unregistered connectors Date: Tue, 3 Sep 2019 12:25:15 -0400 Message-Id: <20190903162519.7136-163-sashal@kernel.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190903162519.7136-1-sashal@kernel.org> References: <20190903162519.7136-1-sashal@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-stable: review X-Patchwork-Hint: Ignore Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Lyude Paul [ Upstream commit 34ca26a98ad67edd6e4870fe2d4aa047d41a51dd ] It appears when testing my previous fix for some of the legacy modesetting issues with MST, I misattributed some kernel splats that started appearing on my machine after a rebase as being from upstream. But it appears they actually came from my patch series: [ 2.980512] [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] Updating routing for [CONNECTOR:65:eDP-1] [ 2.980516] [drm:drm_atomic_helper_check_modeset [drm_kms_helper]] [CONNECTOR:65:eDP-1] is not registered [ 2.980516] ------------[ cut here ]------------ [ 2.980519] Could not determine valid watermarks for inherited state [ 2.980553] WARNING: CPU: 3 PID: 551 at drivers/gpu/drm/i915/intel_display.c:14983 intel_modeset_init+0x14d7/0x19f0 [i915] [ 2.980556] Modules linked in: i915(O+) i2c_algo_bit drm_kms_helper(O) syscopyarea sysfillrect sysimgblt fb_sys_fops drm(O) intel_rapl x86_pkg_temp_thermal iTCO_wdt wmi_bmof coretemp crc32_pclmul psmouse i2c_i801 mei_me mei i2c_core lpc_ich mfd_core tpm_tis tpm_tis_core wmi tpm thinkpad_acpi pcc_cpufreq video ehci_pci crc32c_intel serio_raw ehci_hcd xhci_pci xhci_hcd [ 2.980577] CPU: 3 PID: 551 Comm: systemd-udevd Tainted: G O 4.19.0-rc7Lyude-Test+ #1 [ 2.980579] Hardware name: LENOVO 20BWS1KY00/20BWS1KY00, BIOS JBET63WW (1.27 ) 11/10/2016 [ 2.980605] RIP: 0010:intel_modeset_init+0x14d7/0x19f0 [i915] [ 2.980607] Code: 89 df e8 ec 27 02 00 e9 24 f2 ff ff be 03 00 00 00 48 89 df e8 da 27 02 00 e9 26 f2 ff ff 48 c7 c7 c8 d1 34 a0 e8 23 cf dc e0 <0f> 0b e9 7c fd ff ff f6 c4 04 0f 85 37 f7 ff ff 48 8b 83 60 08 00 [ 2.980611] RSP: 0018:ffffc90000287988 EFLAGS: 00010282 [ 2.980614] RAX: 0000000000000000 RBX: ffff88031b488000 RCX: 0000000000000006 [ 2.980617] RDX: 0000000000000007 RSI: 0000000000000086 RDI: ffff880321ad54d0 [ 2.980620] RBP: ffffc90000287a10 R08: 000000000000040a R09: 0000000000000065 [ 2.980623] R10: ffff88030ebb8f00 R11: ffffffff81416590 R12: ffff88031b488000 [ 2.980626] R13: ffff88031b4883a0 R14: ffffc900002879a8 R15: ffff880319099800 [ 2.980630] FS: 00007f475620d180(0000) GS:ffff880321ac0000(0000) knlGS:0000000000000000 [ 2.980633] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 2.980636] CR2: 00007f9ef28018a0 CR3: 000000031b72c001 CR4: 00000000003606e0 [ 2.980639] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 2.980642] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 2.980645] Call Trace: [ 2.980675] i915_driver_load+0xb0e/0xdc0 [i915] [ 2.980681] ? kernfs_add_one+0xe7/0x130 [ 2.980709] i915_pci_probe+0x46/0x60 [i915] [ 2.980715] pci_device_probe+0xd4/0x150 [ 2.980719] really_probe+0x243/0x3b0 [ 2.980722] driver_probe_device+0xba/0x100 [ 2.980726] __driver_attach+0xe4/0x110 [ 2.980729] ? driver_probe_device+0x100/0x100 [ 2.980733] bus_for_each_dev+0x74/0xb0 [ 2.980736] driver_attach+0x1e/0x20 [ 2.980739] bus_add_driver+0x159/0x230 [ 2.980743] ? 0xffffffffa0393000 [ 2.980746] driver_register+0x70/0xc0 [ 2.980749] ? 0xffffffffa0393000 [ 2.980753] __pci_register_driver+0x57/0x60 [ 2.980780] i915_init+0x55/0x58 [i915] [ 2.980785] do_one_initcall+0x4a/0x1c4 [ 2.980789] ? do_init_module+0x27/0x210 [ 2.980793] ? kmem_cache_alloc_trace+0x131/0x190 [ 2.980797] do_init_module+0x60/0x210 [ 2.980800] load_module+0x2063/0x22e0 [ 2.980804] ? vfs_read+0x116/0x140 [ 2.980807] ? vfs_read+0x116/0x140 [ 2.980811] __do_sys_finit_module+0xbd/0x120 [ 2.980814] ? __do_sys_finit_module+0xbd/0x120 [ 2.980818] __x64_sys_finit_module+0x1a/0x20 [ 2.980821] do_syscall_64+0x5a/0x110 [ 2.980824] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 2.980826] RIP: 0033:0x7f4754e32879 [ 2.980828] Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d f7 45 2c 00 f7 d8 64 89 01 48 [ 2.980831] RSP: 002b:00007fff43fd97d8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 [ 2.980834] RAX: ffffffffffffffda RBX: 0000559a44ca64f0 RCX: 00007f4754e32879 [ 2.980836] RDX: 0000000000000000 RSI: 00007f475599f4cd RDI: 0000000000000018 [ 2.980838] RBP: 00007f475599f4cd R08: 0000000000000000 R09: 0000000000000000 [ 2.980839] R10: 0000000000000018 R11: 0000000000000246 R12: 0000000000000000 [ 2.980841] R13: 0000559a44c92fd0 R14: 0000000000020000 R15: 0000000000000000 [ 2.980881] WARNING: CPU: 3 PID: 551 at drivers/gpu/drm/i915/intel_display.c:14983 intel_modeset_init+0x14d7/0x19f0 [i915] [ 2.980884] ---[ end trace 5eb47a76277d4731 ]--- The cause of this appears to be due to the fact that if there's pre-existing display state that was set by the BIOS when i915 loads, it will attempt to perform a modeset before the driver is registered with userspace. Since this happens before the driver's registered with userspace, it's connectors are also unregistered and thus-states which would turn on DPMS on a connector end up getting rejected since the connector isn't registered. These bugs managed to get past Intel's CI partially due to the fact it never ran a full test on my patches for some reason, but also because all of the tests unload the GPU once before running. Since this bug is only really triggered when the drivers tries to perform a modeset before it's been fully registered with userspace when coming from whatever display configuration the firmware left us with, it likely would never have been picked up by CI in the first place. After some discussion with vsyrjala, we decided the best course of action would be to just move the unregistered connector checks out of update_connector_routing() and into drm_atomic_set_crtc_for_connector(). The reason for this being that legacy modesetting isn't going to be expecting failures anywhere (at least this is the case with X), so ideally we want to ensure that any DPMS changes will still work even on unregistered connectors. Instead, we now only reject new modesets which would change the current CRTC assigned to an unregistered connector unless no new CRTC is being assigned to replace the connector's previous one. Signed-off-by: Lyude Paul Reported-by: Ville Syrjälä Fixes: 4d80273976bf ("drm/atomic_helper: Disallow new modesets on unregistered connectors") Cc: Daniel Vetter Cc: Ville Syrjälä Cc: stable@vger.kernel.org Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20181009204424.21462-1-lyude@redhat.com (cherry picked from commit b5d29843d8ef86d4cde4742e095b81b7fd41e688) Fixes: e96550956fbc ("drm/atomic_helper: Disallow new modesets on unregistered connectors") Signed-off-by: Joonas Lahtinen Signed-off-by: Sasha Levin --- drivers/gpu/drm/drm_atomic.c | 21 +++++++++++++++++++++ drivers/gpu/drm/drm_atomic_helper.c | 21 +-------------------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/drm_atomic.c b/drivers/gpu/drm/drm_atomic.c index 281cf9cbb44c4..1a4b44923aeca 100644 --- a/drivers/gpu/drm/drm_atomic.c +++ b/drivers/gpu/drm/drm_atomic.c @@ -1702,6 +1702,27 @@ drm_atomic_set_crtc_for_connector(struct drm_connector_state *conn_state, struct drm_connector *connector = conn_state->connector; struct drm_crtc_state *crtc_state; + /* + * For compatibility with legacy users, we want to make sure that + * we allow DPMS On<->Off modesets on unregistered connectors, since + * legacy modesetting users will not be expecting these to fail. We do + * not however, want to allow legacy users to assign a connector + * that's been unregistered from sysfs to another CRTC, since doing + * this with a now non-existent connector could potentially leave us + * in an invalid state. + * + * Since the connector can be unregistered at any point during an + * atomic check or commit, this is racy. But that's OK: all we care + * about is ensuring that userspace can't use this connector for new + * configurations after it's been notified that the connector is no + * longer present. + */ + if (!READ_ONCE(connector->registered) && crtc) { + DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] is not registered\n", + connector->base.id, connector->name); + return -EINVAL; + } + if (conn_state->crtc == crtc) return 0; diff --git a/drivers/gpu/drm/drm_atomic_helper.c b/drivers/gpu/drm/drm_atomic_helper.c index 71c70a031a043..c22062cc99923 100644 --- a/drivers/gpu/drm/drm_atomic_helper.c +++ b/drivers/gpu/drm/drm_atomic_helper.c @@ -307,26 +307,6 @@ update_connector_routing(struct drm_atomic_state *state, return 0; } - crtc_state = drm_atomic_get_new_crtc_state(state, - new_connector_state->crtc); - /* - * For compatibility with legacy users, we want to make sure that - * we allow DPMS On->Off modesets on unregistered connectors. Modesets - * which would result in anything else must be considered invalid, to - * avoid turning on new displays on dead connectors. - * - * Since the connector can be unregistered at any point during an - * atomic check or commit, this is racy. But that's OK: all we care - * about is ensuring that userspace can't do anything but shut off the - * display on a connector that was destroyed after its been notified, - * not before. - */ - if (!READ_ONCE(connector->registered) && crtc_state->active) { - DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] is not registered\n", - connector->base.id, connector->name); - return -EINVAL; - } - funcs = connector->helper_private; if (funcs->atomic_best_encoder) @@ -371,6 +351,7 @@ update_connector_routing(struct drm_atomic_state *state, set_best_encoder(state, new_connector_state, new_encoder); + crtc_state = drm_atomic_get_new_crtc_state(state, new_connector_state->crtc); crtc_state->connectors_changed = true; DRM_DEBUG_ATOMIC("[CONNECTOR:%d:%s] using [ENCODER:%d:%s] on [CRTC:%d:%s]\n", -- 2.20.1