From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thierry Reding Subject: [PATCH v2 2/3] drm/atomic-helper: Implement subsystem-level suspend/resume Date: Wed, 12 Aug 2015 16:37:29 +0200 Message-ID: <1439390250-1402-2-git-send-email-thierry.reding@gmail.com> References: <1439390250-1402-1-git-send-email-thierry.reding@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-pa0-f50.google.com (mail-pa0-f50.google.com [209.85.220.50]) by gabe.freedesktop.org (Postfix) with ESMTPS id 6BC996EB7B for ; Wed, 12 Aug 2015 07:38:29 -0700 (PDT) Received: by pawu10 with SMTP id u10so15952858paw.1 for ; Wed, 12 Aug 2015 07:38:29 -0700 (PDT) In-Reply-To: <1439390250-1402-1-git-send-email-thierry.reding@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org Cc: Daniel Vetter List-Id: dri-devel@lists.freedesktop.org RnJvbTogVGhpZXJyeSBSZWRpbmcgPHRyZWRpbmdAbnZpZGlhLmNvbT4KClByb3ZpZGUgc3Vic3lz dGVtLWxldmVsIHN1c3BlbmQgYW5kIHJlc3VtZSBoZWxwZXJzIHRoYXQgY2FuIGJlIHVzZWQgdG8K aW1wbGVtZW50IHN1c3BlbmQvcmVzdW1lIG9uIGF0b21pYyBtb2RlLXNldHRpbmcgZW5hYmxlZCBk cml2ZXJzLgoKdjI6IHNpbXBsaWZ5IGxvY2tpbmcsIGVuaGFuY2Uga2VybmVsZG9jIGNvbW1lbnRz CgpTaWduZWQtb2ZmLWJ5OiBUaGllcnJ5IFJlZGluZyA8dHJlZGluZ0BudmlkaWEuY29tPgotLS0K IGRyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgMTQxICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaCAg ICAgfCAgIDUgKysKIDIgZmlsZXMgY2hhbmdlZCwgMTQ2IGluc2VydGlvbnMoKykKCmRpZmYgLS1n aXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX2hlbHBlci5jCmluZGV4IDFmODRkZjNiMGE1ZC4uMGViNDVhN2E3NjBlIDEw MDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYworKysgYi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwpAQCAtMTc1MSw2ICsxNzUxLDE0NyBAQCBi YWNrb2ZmOgogRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnKTsKIAog LyoqCisgKiBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbCAtIGRpc2FibGUgYWxsIGN1cnJl bnRseSBhY3RpdmUgb3V0cHV0cworICogQGRldjogRFJNIGRldmljZQorICoKKyAqIExvb3BzIHRo cm91Z2ggYWxsIGNvbm5lY3RvcnMsIGZpbmRpbmcgdGhvc2UgdGhhdCBhcmVuJ3QgdHVybmVkIG9m ZiBhbmQgdGhlbgorICogdHVybnMgdGhlbSBvZmYgYnkgc2V0dGluZyB0aGVpciBEUE1TIG1vZGUg dG8gT0ZGIGFuZCBkZWFjdGl2YXRpbmcgdGhlIENSVEMKKyAqIHRoYXQgdGhleSBhcmUgY29ubmVj dGVkIHRvLgorICoKKyAqIFRoaXMgaXMgdXNlZCBmb3IgZXhhbXBsZSBpbiBzdXNwZW5kL3Jlc3Vt ZSB0byBkaXNhYmxlIGFsbCBjdXJyZW50bHkgYWN0aXZlCisgKiBmdW5jdGlvbnMgd2hlbiBzdXNw ZW5kaW5nLiBTZWUgZHJtX2F0b21pY19oZWxwZXJfc3VzcGVuZCgpLgorICoKKyAqIFJldHVybnM6 CisgKiAwIG9uIHN1Y2Nlc3Mgb3IgYSBuZWdhdGl2ZSBlcnJvciBjb2RlIG9uIGZhaWx1cmUuCisg Ki8KK2ludCBkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2KQoreworCXN0cnVjdCBkcm1fbW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29u ZmlnOworCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0YXRlOworCXN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKKwl1 bnNpZ25lZCBpbnQgaTsKKwlpbnQgZXJyOworCisJc3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2Fs bG9jKGRldik7CisJaWYgKCFzdGF0ZSkKKwkJcmV0dXJuIC1FTk9NRU07CisKKwlzdGF0ZS0+YWNx dWlyZV9jdHggPSBjb25maWctPmFjcXVpcmVfY3R4OworCisJZHJtX2Zvcl9lYWNoX2Nvbm5lY3Rv cihjb25uLCBkZXYpIHsKKwkJc3RydWN0IGRybV9jcnRjICpjcnRjID0gY29ubi0+c3RhdGUtPmNy dGM7CisJCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKKworCQlpZiAoIWNydGMg fHwgY29ubi0+ZHBtcyAhPSBEUk1fTU9ERV9EUE1TX09OKQorCQkJY29udGludWU7CisKKwkJY3J0 Y19zdGF0ZSA9IGRybV9hdG9taWNfZ2V0X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOworCQlpZiAo SVNfRVJSKGNydGNfc3RhdGUpKSB7CisJCQllcnIgPSBQVFJfRVJSKGNydGNfc3RhdGUpOworCQkJ Z290byBmcmVlOworCQl9CisKKwkJZXJyID0gZHJtX2F0b21pY19hZGRfYWZmZWN0ZWRfY29ubmVj dG9ycyhzdGF0ZSwgY3J0Yyk7CisJCWlmIChlcnIgPCAwKQorCQkJZ290byBmcmVlOworCisJCWNv bm4tPmRwbXMgPSBEUk1fTU9ERV9EUE1TX09GRjsKKwkJY3J0Y19zdGF0ZS0+YWN0aXZlID0gZmFs c2U7CisJfQorCisJZXJyID0gZHJtX2F0b21pY19jb21taXQoc3RhdGUpOworCWlmIChlcnIgPCAw KSB7CisJCS8qIHJlc3RvcmUgRFBNUyBtb2RlICovCisJCWZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9z dGF0ZShzdGF0ZSwgY29ubiwgY29ubl9zdGF0ZSwgaSkKKwkJCWNvbm4tPmRwbXMgPSBEUk1fTU9E RV9EUE1TX09OOworCisJCWdvdG8gZnJlZTsKKwl9CisKK2ZyZWU6CisJaWYgKGVyciA8IDApCisJ CWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7CisKKwlyZXR1cm4gZXJyOworfQorRVhQT1JU X1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9kaXNhYmxlX2FsbCk7CisKKy8qKgorICogZHJtX2F0 b21pY19oZWxwZXJfc3VzcGVuZCAtIHN1YnN5c3RlbS1sZXZlbCBzdXNwZW5kIGhlbHBlcgorICog QGRldjogRFJNIGRldmljZQorICoKKyAqIER1cGxpY2F0ZXMgdGhlIGN1cnJlbnQgYXRvbWljIHN0 YXRlLCBkaXNhYmxlcyBhbGwgYWN0aXZlIG91dHB1dHMgYW5kIHRoZW4KKyAqIHJldHVybnMgYSBw b2ludGVyIHRvIHRoZSBvcmlnaW5hbCBhdG9taWMgc3RhdGUgdG8gdGhlIGNhbGxlci4gRHJpdmVy cyBjYW4KKyAqIHBhc3MgdGhpcyBwb2ludGVyIHRvIHRoZSBkcm1fYXRvbWljX2hlbHBlcl9yZXN1 bWUoKSBoZWxwZXIgdXBvbiByZXN1bWUgdG8KKyAqIHJlc3RvcmUgdGhlIG91dHB1dCBjb25maWd1 cmF0aW9uIHRoYXQgd2FzIGFjdGl2ZSBhdCB0aGUgdGltZSB0aGUgc3lzdGVtCisgKiBlbnRlcmVk IHN1c3BlbmQuCisgKgorICogTm90ZSB0aGF0IGl0IGlzIHBvdGVudGlhbGx5IHVuc2FmZSB0byB1 c2UgdGhpcy4gVGhlIGF0b21pYyBzdGF0ZSBvYmplY3QKKyAqIHJldHVybmVkIGJ5IHRoaXMgZnVu Y3Rpb24gaXMgYXNzdW1lZCB0byBiZSBwZXJzaXN0ZW50LiBEcml2ZXJzIG11c3QgZW5zdXJlCisg KiB0aGF0IHRoaXMgaG9sZHMgdHJ1ZS4gQmVmb3JlIGNhbGxpbmcgdGhpcyBmdW5jdGlvbiwgZHJp dmVycyBtdXN0IG1ha2Ugc3VyZQorICogdG8gc3VzcGVuZCBmYmRldiBlbXVsYXRpb24gc28gdGhh dCBub3RoaW5nIGNhbiBiZSB1c2luZyB0aGUgZGV2aWNlLgorICoKKyAqIFJldHVybnM6CisgKiBB IHBvaW50ZXIgdG8gYSBjb3B5IG9mIHRoZSBzdGF0ZSBiZWZvcmUgc3VzcGVuZCBvbiBzdWNjZXNz IG9yIGFuIEVSUl9QVFIoKS0KKyAqIGVuY29kZWQgZXJyb3IgY29kZSBvbiBmYWlsdXJlLiBEcml2 ZXJzIHNob3VsZCBzdG9yZSB0aGUgcmV0dXJuZWQgYXRvbWljCisgKiBzdGF0ZSBvYmplY3QgYW5k IHBhc3MgaXQgdG8gdGhlIGRybV9hdG9taWNfaGVscGVyX3Jlc3VtZSgpIGhlbHBlciB1cG9uCisg KiByZXN1bWUuCisgKi8KK3N0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpkcm1fYXRvbWljX2hlbHBl cl9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCit7CisJc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlOworCWludCBlcnI7CisKKwlkcm1fbW9kZXNldF9sb2NrX2FsbChkZXYpOwor CisJc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9kdXBsaWNhdGVfc3RhdGUoZGV2KTsKKwlpZiAo SVNfRVJSKHN0YXRlKSkKKwkJZ290byB1bmxvY2s7CisKKwllcnIgPSBkcm1fYXRvbWljX2hlbHBl cl9kaXNhYmxlX2FsbChkZXYpOworCWlmIChlcnIgPCAwKSB7CisJCWRybV9hdG9taWNfc3RhdGVf ZnJlZShzdGF0ZSk7CisJCXN0YXRlID0gRVJSX1BUUihlcnIpOworCQlnb3RvIHVubG9jazsKKwl9 CisKK3VubG9jazoKKwlkcm1fbW9kZXNldF91bmxvY2tfYWxsKGRldik7CisJcmV0dXJuIHN0YXRl OworfQorRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKTsKKworLyoqCisg KiBkcm1fYXRvbWljX2hlbHBlcl9yZXN1bWUgLSBzdWJzeXN0ZW0tbGV2ZWwgcmVzdW1lIGhlbHBl cgorICogQGRldjogRFJNIGRldmljZQorICogQHN0YXRlOiBhdG9taWMgc3RhdGUgdG8gcmVzdW1l IHRvCisgKgorICogQ2FsbHMgZHJtX21vZGVfY29uZmlnX3Jlc2V0KCkgdG8gc3luY2hyb25pemUg aGFyZHdhcmUgYW5kIHNvZnR3YXJlIHN0YXRlcywKKyAqIGdyYWJzIGFsbCBtb2Rlc2V0IGxvY2tz IGFuZCBjb21taXRzIHRoZSBhdG9taWMgc3RhdGUgb2JqZWN0LiBUaGlzIGNhbiBiZQorICogdXNl ZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBkcm1fYXRvbWljX2hlbHBlcl9zdXNwZW5kKCkgaGVs cGVyIHRvCisgKiBpbXBsZW1lbnQgc3VzcGVuZC9yZXN1bWUgZm9yIGRyaXZlcnMgdGhhdCBzdXBw b3J0IGF0b21pYyBtb2RlLXNldHRpbmcuCisgKgorICogUmV0dXJuczoKKyAqIDAgb24gc3VjY2Vz cyBvciBhIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KKyAqLworaW50IGRybV9hdG9t aWNfaGVscGVyX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAorCQkJICAgICBzdHJ1Y3Qg ZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCit7CisJc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29u ZmlnID0gJmRldi0+bW9kZV9jb25maWc7CisJaW50IGVycjsKKworCWRybV9tb2RlX2NvbmZpZ19y ZXNldChkZXYpOworCWRybV9tb2Rlc2V0X2xvY2tfYWxsKGRldik7CisJc3RhdGUtPmFjcXVpcmVf Y3R4ID0gY29uZmlnLT5hY3F1aXJlX2N0eDsKKwllcnIgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0 ZSk7CisJZHJtX21vZGVzZXRfdW5sb2NrX2FsbChkZXYpOworCisJcmV0dXJuIGVycjsKK30KK0VY UE9SVF9TWU1CT0woZHJtX2F0b21pY19oZWxwZXJfcmVzdW1lKTsKKworLyoqCiAgKiBkcm1fYXRv bWljX2hlbHBlcl9jcnRjX3NldF9wcm9wZXJ0eSAtIGhlbHBlciBmb3IgY3J0YyBwcm9wZXJ0aWVz CiAgKiBAY3J0YzogRFJNIGNydGMKICAqIEBwcm9wZXJ0eTogRFJNIHByb3BlcnR5CmRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljX2hlbHBlci5oIGIvaW5jbHVkZS9kcm0vZHJtX2F0 b21pY19oZWxwZXIuaAppbmRleCA1ZDI3NjEyOTk3Y2UuLjA4MGYxMzFjOWYyZSAxMDA2NDQKLS0t IGEvaW5jbHVkZS9kcm0vZHJtX2F0b21pY19oZWxwZXIuaAorKysgYi9pbmNsdWRlL2RybS9kcm1f YXRvbWljX2hlbHBlci5oCkBAIC03NSw2ICs3NSwxMSBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJf dXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogaW50IGRybV9hdG9taWNfaGVs cGVyX2Rpc2FibGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpOwogaW50IGRybV9hdG9t aWNfaGVscGVyX3NldF9jb25maWcoc3RydWN0IGRybV9tb2RlX3NldCAqc2V0KTsKIAoraW50IGRy bV9hdG9taWNfaGVscGVyX2Rpc2FibGVfYWxsKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOworc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKmRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQoc3RydWN0IGRy bV9kZXZpY2UgKmRldik7CitpbnQgZHJtX2F0b21pY19oZWxwZXJfcmVzdW1lKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCisJCQkgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSk7CisK IGludCBkcm1fYXRvbWljX2hlbHBlcl9jcnRjX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCiAJCQkJCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3BlcnR5LAogCQkJCQl1aW50NjRf dCB2YWwpOwotLSAKMi40LjUKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJp LWRldmVsCg==