From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gustavo Padovan Subject: [PATCH v4] drm/exynos: atomic dpms support Date: Tue, 7 Apr 2015 15:56:26 -0400 Message-ID: <1428436586-1139-1-git-send-email-gustavo@padovan.org> References: <552385B5.1040001@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <552385B5.1040001@samsung.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: linux-samsung-soc@vger.kernel.org Cc: Gustavo Padovan , dri-devel@lists.freedesktop.org List-Id: linux-samsung-soc@vger.kernel.org RnJvbTogR3VzdGF2byBQYWRvdmFuIDxndXN0YXZvLnBhZG92YW5AY29sbGFib3JhLmNvLnVrPgoK UnVuIGRwbXMgb3BlcmF0aW9ucyB0aHJvdWdoIHRoZSBhdG9taWMgaW50ZWZhY2VzLiBUaGlzIGJh c2ljYWxseSByZW1vdmVzCnRoZSAuZHBtcygpIGNhbGxiYWNrIGZyb20gZWNvbmRlcnMgYW5kIGNy dGNzIGFuZCB1c2UgLmRpc2FibGUoKSBhbmQKLmVuYWJsZSgpIHRvIHR1cm4gdGhlIGNydGMgb24g YW5kIG9mZi4KCnYyOiBBZGRyZXNzIGNvbW1lbnRzIGJ5IEpvb255b3VuZzoKCS0gbWFrZSBoZG1p IGNvZGUgY2FsbCAtPmRpc2FibGUoKSBpbnN0ZWFkIG9mIC0+ZHBtcygpCgktIGRvIG5vdCB1c2Ug V0FSTl9PTiBvbiBjcnRjIGVuYWJsZS9kaXNhYmxlCgp2MzogLSBGaXggYnVpbGQgZmFpbHVyZSBh ZnRlciB0aGUgaGRtaSBjaGFuZ2UgaW4gdjIKICAgIC0gQ2hhbmdlIGRwbXMgaGVscGVyIG9mIHB0 bjM0NjAgYnJpZGdlCgpTaWduZWQtb2ZmLWJ5OiBHdXN0YXZvIFBhZG92YW4gPGd1c3Rhdm8ucGFk b3ZhbkBjb2xsYWJvcmEuY28udWs+Ci0tLQogZHJpdmVycy9ncHUvZHJtL2JyaWRnZS9wdG4zNDYw LmMgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcF9j b3JlLmMgICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9jcnRj LmMgICAgfCA5OSArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncHUvZHJt L2V4eW5vcy9leHlub3NfZHJtX2RwaS5jICAgICB8ICAyICstCiBkcml2ZXJzL2dwdS9kcm0vZXh5 bm9zL2V4eW5vc19kcm1fZHJ2LmggICAgIHwgIDQgKy0KIGRyaXZlcnMvZ3B1L2RybS9leHlub3Mv ZXh5bm9zX2RybV9kc2kuYyAgICAgfCAgMiArLQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlu b3NfZHJtX2VuY29kZXIuYyB8IDI3ICsrLS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vc19kcm1fdmlkaS5jICAgIHwgIDIgKy0KIGRyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9z X2hkbWkuYyAgICAgICAgfCAgNiArLQogOSBmaWxlcyBjaGFuZ2VkLCA3MCBpbnNlcnRpb25zKCsp LCA3NiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vYnJpZGdlL3B0 bjM0NjAuYyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvcHRuMzQ2MC5jCmluZGV4IDMwZGExMGMu LjRkNDk0NTQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvcHRuMzQ2MC5jCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9icmlkZ2UvcHRuMzQ2MC5jCkBAIC0yNjAsNyArMjYwLDcgQEAg c3RhdGljIHZvaWQgcHRuMzQ2MF9jb25uZWN0b3JfZGVzdHJveShzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQogfQogCiBzdGF0aWMgc3RydWN0IGRybV9jb25uZWN0b3JfZnVuY3MgcHRu MzQ2MF9jb25uZWN0b3JfZnVuY3MgPSB7Ci0JLmRwbXMgPSBkcm1faGVscGVyX2Nvbm5lY3Rvcl9k cG1zLAorCS5kcG1zID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2RwbXMsCiAJLmZpbGxf bW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3JfbW9kZXMsCiAJLmRldGVj dCA9IHB0bjM0NjBfZGV0ZWN0LAogCS5kZXN0cm95ID0gcHRuMzQ2MF9jb25uZWN0b3JfZGVzdHJv eSwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RwX2NvcmUuYyBi L2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RwX2NvcmUuYwppbmRleCA1OWYyY2E1Li5k NDY4NjM3IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcF9jb3Jl LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHBfY29yZS5jCkBAIC05NTUs NyArOTU1LDcgQEAgc3RhdGljIHZvaWQgZXh5bm9zX2RwX2Nvbm5lY3Rvcl9kZXN0cm95KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB9CiAKIHN0YXRpYyBzdHJ1Y3QgZHJtX2Nvbm5l Y3Rvcl9mdW5jcyBleHlub3NfZHBfY29ubmVjdG9yX2Z1bmNzID0gewotCS5kcG1zID0gZHJtX2hl bHBlcl9jb25uZWN0b3JfZHBtcywKKwkuZHBtcyA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rv cl9kcG1zLAogCS5maWxsX21vZGVzID0gZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVfY29ubmVjdG9y X21vZGVzLAogCS5kZXRlY3QgPSBleHlub3NfZHBfZGV0ZWN0LAogCS5kZXN0cm95ID0gZXh5bm9z X2RwX2Nvbm5lY3Rvcl9kZXN0cm95LApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5v cy9leHlub3NfZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9j cnRjLmMKaW5kZXggMGRiN2I5MS4uNTE5YzU2OSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJt L2V4eW5vcy9leHlub3NfZHJtX2NydGMuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4 eW5vc19kcm1fY3J0Yy5jCkBAIC0yMiw1MSArMjIsNTcgQEAKICNpbmNsdWRlICJleHlub3NfZHJt X2VuY29kZXIuaCIKICNpbmNsdWRlICJleHlub3NfZHJtX3BsYW5lLmgiCiAKLXN0YXRpYyB2b2lk IGV4eW5vc19kcm1fY3J0Y19kcG1zKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgaW50IG1vZGUpCitz dGF0aWMgdm9pZCBleHlub3NfZHJtX2NydGNfZW5hYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK IHsKIAlzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpleHlub3NfY3J0YyA9IHRvX2V4eW5vc19jcnRj KGNydGMpOworCXN0cnVjdCBleHlub3NfZHJtX3BsYW5lICpleHlub3NfcGxhbmUgPSB0b19leHlu b3NfcGxhbmUoY3J0Yy0+cHJpbWFyeSk7CiAKLQlEUk1fREVCVUdfS01TKCJjcnRjWyVkXSBtb2Rl WyVkXVxuIiwgY3J0Yy0+YmFzZS5pZCwgbW9kZSk7Ci0KLQlpZiAoZXh5bm9zX2NydGMtPmRwbXMg PT0gbW9kZSkgewotCQlEUk1fREVCVUdfS01TKCJkZXNpcmVkIGRwbXMgbW9kZSBpcyBzYW1lIGFz IHByZXZpb3VzIG9uZS5cbiIpOworCWlmIChleHlub3NfY3J0Yy0+ZW5hYmxlZCkKIAkJcmV0dXJu OwotCX0KLQotCWlmIChtb2RlID4gRFJNX01PREVfRFBNU19PTikgewotCQkvKiB3YWl0IGZvciB0 aGUgY29tcGxldGlvbiBvZiBwYWdlIGZsaXAuICovCi0JCWlmICghd2FpdF9ldmVudF90aW1lb3V0 KGV4eW5vc19jcnRjLT5wZW5kaW5nX2ZsaXBfcXVldWUsCi0JCQkJKGV4eW5vc19jcnRjLT5ldmVu dCA9PSBOVUxMKSwgSFovMjApKQotCQkJZXh5bm9zX2NydGMtPmV2ZW50ID0gTlVMTDsKLQkJZHJt X2NydGNfdmJsYW5rX29mZihjcnRjKTsKLQl9CiAKIAlpZiAoZXh5bm9zX2NydGMtPm9wcy0+ZHBt cykKLQkJZXh5bm9zX2NydGMtPm9wcy0+ZHBtcyhleHlub3NfY3J0YywgbW9kZSk7CisJCWV4eW5v c19jcnRjLT5vcHMtPmRwbXMoZXh5bm9zX2NydGMsIERSTV9NT0RFX0RQTVNfT04pOwogCi0JZXh5 bm9zX2NydGMtPmRwbXMgPSBtb2RlOworCWV4eW5vc19jcnRjLT5lbmFibGVkID0gdHJ1ZTsKIAot CWlmIChtb2RlID09IERSTV9NT0RFX0RQTVNfT04pCi0JCWRybV9jcnRjX3ZibGFua19vbihjcnRj KTsKLX0KKwlkcm1fY3J0Y192Ymxhbmtfb24oY3J0Yyk7CiAKLXN0YXRpYyB2b2lkIGV4eW5vc19k cm1fY3J0Y19wcmVwYXJlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKLXsKLQkvKiBkcm0gZnJhbWV3 b3JrIGRvZXNuJ3QgY2hlY2sgTlVMTC4gKi8KKwlpZiAoZXh5bm9zX2NydGMtPm9wcy0+d2luX2Nv bW1pdCkKKwkJZXh5bm9zX2NydGMtPm9wcy0+d2luX2NvbW1pdChleHlub3NfY3J0YywgZXh5bm9z X3BsYW5lLT56cG9zKTsKKworCWlmIChleHlub3NfY3J0Yy0+b3BzLT5jb21taXQpCisJCWV4eW5v c19jcnRjLT5vcHMtPmNvbW1pdChleHlub3NfY3J0Yyk7CiB9CiAKLXN0YXRpYyB2b2lkIGV4eW5v c19kcm1fY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjKQorc3RhdGljIHZvaWQgZXh5 bm9zX2RybV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjKQogewogCXN0cnVjdCBl eHlub3NfZHJtX2NydGMgKmV4eW5vc19jcnRjID0gdG9fZXh5bm9zX2NydGMoY3J0Yyk7Ci0Jc3Ry dWN0IGV4eW5vc19kcm1fcGxhbmUgKmV4eW5vc19wbGFuZSA9IHRvX2V4eW5vc19wbGFuZShjcnRj LT5wcmltYXJ5KTsKKwlzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZTsKKwlpbnQgcmV0OworCisJaWYg KCFleHlub3NfY3J0Yy0+ZW5hYmxlZCkKKwkJcmV0dXJuOwogCi0JZXh5bm9zX2RybV9jcnRjX2Rw bXMoY3J0YywgRFJNX01PREVfRFBNU19PTik7CisJLyogd2FpdCBmb3IgdGhlIGNvbXBsZXRpb24g b2YgcGFnZSBmbGlwLiAqLworCWlmICghd2FpdF9ldmVudF90aW1lb3V0KGV4eW5vc19jcnRjLT5w ZW5kaW5nX2ZsaXBfcXVldWUsCisJCQkJKGV4eW5vc19jcnRjLT5ldmVudCA9PSBOVUxMKSwgSFov MjApKQorCQlleHlub3NfY3J0Yy0+ZXZlbnQgPSBOVUxMOwogCi0JaWYgKGV4eW5vc19jcnRjLT5v cHMtPndpbl9jb21taXQpCi0JCWV4eW5vc19jcnRjLT5vcHMtPndpbl9jb21taXQoZXh5bm9zX2Ny dGMsIGV4eW5vc19wbGFuZS0+enBvcyk7CisJZHJtX2NydGNfdmJsYW5rX29mZihjcnRjKTsKIAot CWlmIChleHlub3NfY3J0Yy0+b3BzLT5jb21taXQpCi0JCWV4eW5vc19jcnRjLT5vcHMtPmNvbW1p dChleHlub3NfY3J0Yyk7CisJaWYgKGV4eW5vc19jcnRjLT5vcHMtPmRwbXMpCisJCWV4eW5vc19j cnRjLT5vcHMtPmRwbXMoZXh5bm9zX2NydGMsIERSTV9NT0RFX0RQTVNfT0ZGKTsKKworCWV4eW5v c19jcnRjLT5lbmFibGVkID0gZmFsc2U7CisKKwlkcm1fZm9yX2VhY2hfbGVnYWN5X3BsYW5lKHBs YW5lLCAmY3J0Yy0+ZGV2LT5tb2RlX2NvbmZpZy5wbGFuZV9saXN0KSB7CisJCWlmIChwbGFuZS0+ Y3J0YyAhPSBjcnRjKQorCQkJY29udGludWU7CisKKwkJcmV0ID0gcGxhbmUtPmZ1bmNzLT5kaXNh YmxlX3BsYW5lKHBsYW5lKTsKKwkJaWYgKHJldCkKKwkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGRp c2FibGUgcGxhbmUgJWRcbiIsIHJldCk7CisJfQogfQogCiBzdGF0aWMgYm9vbApAQCAtOTUsMzIg KzEwMSwzNiBAQCBleHlub3NfZHJtX2NydGNfbW9kZV9zZXRfbm9mYihzdHJ1Y3QgZHJtX2NydGMg KmNydGMpCiAJCWV4eW5vc19jcnRjLT5vcHMtPmNvbW1pdChleHlub3NfY3J0Yyk7CiB9CiAKLXN0 YXRpYyB2b2lkIGV4eW5vc19kcm1fY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykK K3N0YXRpYyBpbnQgZXh5bm9zX2NydGNfYXRvbWljX2NoZWNrKHN0cnVjdCBkcm1fY3J0YyAqY3J0 YywKKwkJCQkgICAgIHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUpCiB7Ci0Jc3RydWN0IGRy bV9wbGFuZSAqcGxhbmU7CisJc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqZXh5bm9zX2NydGMgPSB0 b19leHlub3NfY3J0YyhjcnRjKTsKIAlpbnQgcmV0OwogCi0JZXh5bm9zX2RybV9jcnRjX2RwbXMo Y3J0YywgRFJNX01PREVfRFBNU19PRkYpOworCWlmIChleHlub3NfY3J0Yy0+ZXZlbnQpCisJCXJl dHVybiAtRUJVU1k7CiAKLQlkcm1fZm9yX2VhY2hfbGVnYWN5X3BsYW5lKHBsYW5lLCAmY3J0Yy0+ ZGV2LT5tb2RlX2NvbmZpZy5wbGFuZV9saXN0KSB7Ci0JCWlmIChwbGFuZS0+Y3J0YyAhPSBjcnRj KQotCQkJY29udGludWU7CisJaWYgKHN0YXRlLT5ldmVudCkgeworCQlyZXQgPSBkcm1fdmJsYW5r X2dldChjcnRjLT5kZXYsIGV4eW5vc19jcnRjLT5waXBlKTsKKwkJaWYgKHJldCkgeworCQkJRFJN X0VSUk9SKCJmYWlsZWQgdG8gYWNxdWlyZSB2YmxhbmsgY291bnRlclxuIik7CisJCQlyZXR1cm4g cmV0OworCQl9CiAKLQkJcmV0ID0gcGxhbmUtPmZ1bmNzLT5kaXNhYmxlX3BsYW5lKHBsYW5lKTsK LQkJaWYgKHJldCkKLQkJCURSTV9FUlJPUigiRmFpbGVkIHRvIGRpc2FibGUgcGxhbmUgJWRcbiIs IHJldCk7CisJCWV4eW5vc19jcnRjLT5ldmVudCA9IHN0YXRlLT5ldmVudDsKIAl9CisKKwlyZXR1 cm4gMDsKIH0KIAogc3RhdGljIHN0cnVjdCBkcm1fY3J0Y19oZWxwZXJfZnVuY3MgZXh5bm9zX2Ny dGNfaGVscGVyX2Z1bmNzID0gewotCS5kcG1zCQk9IGV4eW5vc19kcm1fY3J0Y19kcG1zLAotCS5w cmVwYXJlCT0gZXh5bm9zX2RybV9jcnRjX3ByZXBhcmUsCi0JLmNvbW1pdAkJPSBleHlub3NfZHJt X2NydGNfY29tbWl0LAorCS5lbmFibGUJCT0gZXh5bm9zX2RybV9jcnRjX2VuYWJsZSwKKwkuZGlz YWJsZQk9IGV4eW5vc19kcm1fY3J0Y19kaXNhYmxlLAogCS5tb2RlX2ZpeHVwCT0gZXh5bm9zX2Ry bV9jcnRjX21vZGVfZml4dXAsCiAJLm1vZGVfc2V0CT0gZHJtX2hlbHBlcl9jcnRjX21vZGVfc2V0 LAogCS5tb2RlX3NldF9ub2ZiCT0gZXh5bm9zX2RybV9jcnRjX21vZGVfc2V0X25vZmIsCiAJLm1v ZGVfc2V0X2Jhc2UJPSBkcm1faGVscGVyX2NydGNfbW9kZV9zZXRfYmFzZSwKLQkuZGlzYWJsZQk9 IGV4eW5vc19kcm1fY3J0Y19kaXNhYmxlLAorCS5hdG9taWNfY2hlY2sJPSBleHlub3NfY3J0Y19h dG9taWNfY2hlY2ssCiB9OwogCiBzdGF0aWMgdm9pZCBleHlub3NfZHJtX2NydGNfZGVzdHJveShz dHJ1Y3QgZHJtX2NydGMgKmNydGMpCkBAIC0xNjIsNyArMTcyLDYgQEAgc3RydWN0IGV4eW5vc19k cm1fY3J0YyAqZXh5bm9zX2RybV9jcnRjX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtX2Rl diwKIAogCWluaXRfd2FpdHF1ZXVlX2hlYWQoJmV4eW5vc19jcnRjLT5wZW5kaW5nX2ZsaXBfcXVl dWUpOwogCi0JZXh5bm9zX2NydGMtPmRwbXMgPSBEUk1fTU9ERV9EUE1TX09GRjsKIAlleHlub3Nf Y3J0Yy0+cGlwZSA9IHBpcGU7CiAJZXh5bm9zX2NydGMtPnR5cGUgPSB0eXBlOwogCWV4eW5vc19j cnRjLT5vcHMgPSBvcHM7CkBAIC0xOTMsNyArMjAyLDcgQEAgaW50IGV4eW5vc19kcm1fY3J0Y19l bmFibGVfdmJsYW5rKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGludCBwaXBlKQogCXN0cnVjdCBl eHlub3NfZHJtX2NydGMgKmV4eW5vc19jcnRjID0KIAkJdG9fZXh5bm9zX2NydGMocHJpdmF0ZS0+ Y3J0Y1twaXBlXSk7CiAKLQlpZiAoZXh5bm9zX2NydGMtPmRwbXMgIT0gRFJNX01PREVfRFBNU19P TikKKwlpZiAoIWV4eW5vc19jcnRjLT5lbmFibGVkKQogCQlyZXR1cm4gLUVQRVJNOwogCiAJaWYg KGV4eW5vc19jcnRjLT5vcHMtPmVuYWJsZV92YmxhbmspCkBAIC0yMDgsNyArMjE3LDcgQEAgdm9p ZCBleHlub3NfZHJtX2NydGNfZGlzYWJsZV92Ymxhbmsoc3RydWN0IGRybV9kZXZpY2UgKmRldiwg aW50IHBpcGUpCiAJc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqZXh5bm9zX2NydGMgPQogCQl0b19l eHlub3NfY3J0Yyhwcml2YXRlLT5jcnRjW3BpcGVdKTsKIAotCWlmIChleHlub3NfY3J0Yy0+ZHBt cyAhPSBEUk1fTU9ERV9EUE1TX09OKQorCWlmICghZXh5bm9zX2NydGMtPmVuYWJsZWQpCiAJCXJl dHVybjsKIAogCWlmIChleHlub3NfY3J0Yy0+b3BzLT5kaXNhYmxlX3ZibGFuaykKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcGkuYyBiL2RyaXZlcnMvZ3B1 L2RybS9leHlub3MvZXh5bm9zX2RybV9kcGkuYwppbmRleCBjZWQ1YzIzLi42ZGMzMjhlIDEwMDY0 NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHBpLmMKKysrIGIvZHJp dmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2RwaS5jCkBAIC02MCw3ICs2MCw3IEBAIHN0 YXRpYyB2b2lkIGV4eW5vc19kcGlfY29ubmVjdG9yX2Rlc3Ryb3koc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcikKIH0KIAogc3RhdGljIHN0cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIGV4 eW5vc19kcGlfY29ubmVjdG9yX2Z1bmNzID0gewotCS5kcG1zID0gZHJtX2hlbHBlcl9jb25uZWN0 b3JfZHBtcywKKwkuZHBtcyA9IGRybV9hdG9taWNfaGVscGVyX2Nvbm5lY3Rvcl9kcG1zLAogCS5k ZXRlY3QgPSBleHlub3NfZHBpX2RldGVjdCwKIAkuZmlsbF9tb2RlcyA9IGRybV9oZWxwZXJfcHJv YmVfc2luZ2xlX2Nvbm5lY3Rvcl9tb2RlcywKIAkuZGVzdHJveSA9IGV4eW5vc19kcGlfY29ubmVj dG9yX2Rlc3Ryb3ksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19k cm1fZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZHJ2LmgKaW5kZXgg ZTEyZWNiNS4uNDcwMmNlOCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlu b3NfZHJtX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9kcnYu aApAQCAtMjA5LDcgKzIwOSw3IEBAIHN0cnVjdCBleHlub3NfZHJtX2NydGNfb3BzIHsKICAqCWRy bSBmcmFtZXdvcmsgZG9lc24ndCBzdXBwb3J0IG11bHRpcGxlIGlycSB5ZXQuCiAgKgl3ZSBjYW4g cmVmZXIgdG8gdGhlIGNydGMgdG8gY3VycmVudCBoYXJkd2FyZSBpbnRlcnJ1cHQgb2NjdXJyZWQg dGhyb3VnaAogICoJdGhpcyBwaXBlIHZhbHVlLgotICogQGRwbXM6IHN0b3JlIHRoZSBjcnRjIGRw bXMgdmFsdWUKKyAqIEBlbmFibGVkOiBpZiB0aGUgY3J0YyBpcyBlbmFibGVkIG9yIG5vdAogICog QGV2ZW50OiB2YmxhbmsgZXZlbnQgdGhhdCBpcyBjdXJyZW50bHkgcXVldWVkIGZvciBmbGlwCiAg KiBAb3BzOiBwb2ludGVyIHRvIGNhbGxiYWNrcyBmb3IgZXh5bm9zIGRybSBzcGVjaWZpYyBmdW5j dGlvbmFsaXR5CiAgKiBAY3R4OiBBIHBvaW50ZXIgdG8gdGhlIGNydGMncyBpbXBsZW1lbnRhdGlv biBzcGVjaWZpYyBjb250ZXh0CkBAIC0yMTgsNyArMjE4LDcgQEAgc3RydWN0IGV4eW5vc19kcm1f Y3J0YyB7CiAJc3RydWN0IGRybV9jcnRjCQkJYmFzZTsKIAllbnVtIGV4eW5vc19kcm1fb3V0cHV0 X3R5cGUJdHlwZTsKIAl1bnNpZ25lZCBpbnQJCQlwaXBlOwotCXVuc2lnbmVkIGludAkJCWRwbXM7 CisJYm9vbAkJCQllbmFibGVkOwogCXdhaXRfcXVldWVfaGVhZF90CQlwZW5kaW5nX2ZsaXBfcXVl dWU7CiAJc3RydWN0IGRybV9wZW5kaW5nX3ZibGFua19ldmVudAkqZXZlbnQ7CiAJc3RydWN0IGV4 eW5vc19kcm1fY3J0Y19vcHMJKm9wczsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zX2RybV9kc2kuYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9k c2kuYwppbmRleCBlNGU3Zjc0Li4xOTBmM2IzIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0v ZXh5bm9zL2V4eW5vc19kcm1fZHNpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlu b3NfZHJtX2RzaS5jCkBAIC0xNDU4LDcgKzE0NTgsNyBAQCBzdGF0aWMgdm9pZCBleHlub3NfZHNp X2Nvbm5lY3Rvcl9kZXN0cm95KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpCiB9CiAK IHN0YXRpYyBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9mdW5jcyBleHlub3NfZHNpX2Nvbm5lY3Rvcl9m dW5jcyA9IHsKLQkuZHBtcyA9IGRybV9oZWxwZXJfY29ubmVjdG9yX2RwbXMsCisJLmRwbXMgPSBk cm1fYXRvbWljX2hlbHBlcl9jb25uZWN0b3JfZHBtcywKIAkuZGV0ZWN0ID0gZXh5bm9zX2RzaV9k ZXRlY3QsCiAJLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3Jf bW9kZXMsCiAJLmRlc3Ryb3kgPSBleHlub3NfZHNpX2Nvbm5lY3Rvcl9kZXN0cm95LApkaWZmIC0t Z2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2VuY29kZXIuYyBiL2RyaXZl cnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9lbmNvZGVyLmMKaW5kZXggNTdkZTBiZC4uMDY0 OGJhNCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2VuY29k ZXIuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZW5jb2Rlci5jCkBA IC0zMiwxNyArMzIsNiBAQCBzdHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyIHsKIAlzdHJ1Y3QgZXh5 bm9zX2RybV9kaXNwbGF5CSpkaXNwbGF5OwogfTsKIAotc3RhdGljIHZvaWQgZXh5bm9zX2RybV9l bmNvZGVyX2RwbXMoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBpbnQgbW9kZSkKLXsKLQlz dHJ1Y3QgZXh5bm9zX2RybV9lbmNvZGVyICpleHlub3NfZW5jb2RlciA9IHRvX2V4eW5vc19lbmNv ZGVyKGVuY29kZXIpOwotCXN0cnVjdCBleHlub3NfZHJtX2Rpc3BsYXkgKmRpc3BsYXkgPSBleHlu b3NfZW5jb2Rlci0+ZGlzcGxheTsKLQotCURSTV9ERUJVR19LTVMoImVuY29kZXIgZHBtczogJWRc biIsIG1vZGUpOwotCi0JaWYgKGRpc3BsYXktPm9wcy0+ZHBtcykKLQkJZGlzcGxheS0+b3BzLT5k cG1zKGRpc3BsYXksIG1vZGUpOwotfQotCiBzdGF0aWMgYm9vbAogZXh5bm9zX2RybV9lbmNvZGVy X21vZGVfZml4dXAoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLAogCQkJICAgICAgIGNvbnN0 IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlLApAQCAtNzYsMTIgKzY1LDcgQEAgc3RhdGlj IHZvaWQgZXh5bm9zX2RybV9lbmNvZGVyX21vZGVfc2V0KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5j b2RlciwKIAkJZGlzcGxheS0+b3BzLT5tb2RlX3NldChkaXNwbGF5LCBhZGp1c3RlZF9tb2RlKTsK IH0KIAotc3RhdGljIHZvaWQgZXh5bm9zX2RybV9lbmNvZGVyX3ByZXBhcmUoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyKQotewotCS8qIGRybSBmcmFtZXdvcmsgZG9lc24ndCBjaGVjayBOVUxM LiAqLwotfQotCi1zdGF0aWMgdm9pZCBleHlub3NfZHJtX2VuY29kZXJfY29tbWl0KHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlcikKK3N0YXRpYyB2b2lkIGV4eW5vc19kcm1fZW5jb2Rlcl9lbmFi bGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogewogCXN0cnVjdCBleHlub3NfZHJtX2Vu Y29kZXIgKmV4eW5vc19lbmNvZGVyID0gdG9fZXh5bm9zX2VuY29kZXIoZW5jb2Rlcik7CiAJc3Ry dWN0IGV4eW5vc19kcm1fZGlzcGxheSAqZGlzcGxheSA9IGV4eW5vc19lbmNvZGVyLT5kaXNwbGF5 OwpAQCAtOTUsMTAgKzc5LDEzIEBAIHN0YXRpYyB2b2lkIGV4eW5vc19kcm1fZW5jb2Rlcl9jb21t aXQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQogCiBzdGF0aWMgdm9pZCBleHlub3NfZHJt X2VuY29kZXJfZGlzYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiB7CisJc3RydWN0 IGV4eW5vc19kcm1fZW5jb2RlciAqZXh5bm9zX2VuY29kZXIgPSB0b19leHlub3NfZW5jb2Rlcihl bmNvZGVyKTsKKwlzdHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpkaXNwbGF5ID0gZXh5bm9zX2Vu Y29kZXItPmRpc3BsYXk7CiAJc3RydWN0IGRybV9wbGFuZSAqcGxhbmU7CiAJc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKIAotCWV4eW5vc19kcm1fZW5jb2Rlcl9kcG1zKGVu Y29kZXIsIERSTV9NT0RFX0RQTVNfT0ZGKTsKKwlpZiAoZGlzcGxheS0+b3BzLT5kcG1zKQorCQlk aXNwbGF5LT5vcHMtPmRwbXMoZGlzcGxheSwgRFJNX01PREVfRFBNU19PRkYpOwogCiAJLyogYWxs IHBsYW5lcyBjb25uZWN0ZWQgdG8gdGhpcyBlbmNvZGVyIHNob3VsZCBiZSBhbHNvIGRpc2FibGVk LiAqLwogCWRybV9mb3JfZWFjaF9sZWdhY3lfcGxhbmUocGxhbmUsICZkZXYtPm1vZGVfY29uZmln LnBsYW5lX2xpc3QpIHsKQEAgLTEwOCwxMSArOTUsOSBAQCBzdGF0aWMgdm9pZCBleHlub3NfZHJt X2VuY29kZXJfZGlzYWJsZShzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpCiB9CiAKIHN0YXRp YyBzdHJ1Y3QgZHJtX2VuY29kZXJfaGVscGVyX2Z1bmNzIGV4eW5vc19lbmNvZGVyX2hlbHBlcl9m dW5jcyA9IHsKLQkuZHBtcwkJPSBleHlub3NfZHJtX2VuY29kZXJfZHBtcywKIAkubW9kZV9maXh1 cAk9IGV4eW5vc19kcm1fZW5jb2Rlcl9tb2RlX2ZpeHVwLAogCS5tb2RlX3NldAk9IGV4eW5vc19k cm1fZW5jb2Rlcl9tb2RlX3NldCwKLQkucHJlcGFyZQk9IGV4eW5vc19kcm1fZW5jb2Rlcl9wcmVw YXJlLAotCS5jb21taXQJCT0gZXh5bm9zX2RybV9lbmNvZGVyX2NvbW1pdCwKKwkuZW5hYmxlCQk9 IGV4eW5vc19kcm1fZW5jb2Rlcl9lbmFibGUsCiAJLmRpc2FibGUJPSBleHlub3NfZHJtX2VuY29k ZXJfZGlzYWJsZSwKIH07CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5 bm9zX2RybV92aWRpLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fdmlkaS5j CmluZGV4IGVlODQyYzAuLjVlNGMxODEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9leHlu b3MvZXh5bm9zX2RybV92aWRpLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3Nf ZHJtX3ZpZGkuYwpAQCAtMzg1LDcgKzM4NSw3IEBAIHN0YXRpYyB2b2lkIHZpZGlfY29ubmVjdG9y X2Rlc3Ryb3koc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKIH0KIAogc3RhdGljIHN0 cnVjdCBkcm1fY29ubmVjdG9yX2Z1bmNzIHZpZGlfY29ubmVjdG9yX2Z1bmNzID0gewotCS5kcG1z ID0gZHJtX2hlbHBlcl9jb25uZWN0b3JfZHBtcywKKwkuZHBtcyA9IGRybV9hdG9taWNfaGVscGVy X2Nvbm5lY3Rvcl9kcG1zLAogCS5maWxsX21vZGVzID0gZHJtX2hlbHBlcl9wcm9iZV9zaW5nbGVf Y29ubmVjdG9yX21vZGVzLAogCS5kZXRlY3QgPSB2aWRpX2RldGVjdCwKIAkuZGVzdHJveSA9IHZp ZGlfY29ubmVjdG9yX2Rlc3Ryb3ksCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9z L2V4eW5vc19oZG1pLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19oZG1pLmMKaW5k ZXggMDU0M2U0MS4uYzJmZjViZSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9l eHlub3NfaGRtaS5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2hkbWkuYwpA QCAtMTA1MSw3ICsxMDUxLDcgQEAgc3RhdGljIHZvaWQgaGRtaV9jb25uZWN0b3JfZGVzdHJveShz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKQogfQogCiBzdGF0aWMgc3RydWN0IGRybV9j b25uZWN0b3JfZnVuY3MgaGRtaV9jb25uZWN0b3JfZnVuY3MgPSB7Ci0JLmRwbXMgPSBkcm1faGVs cGVyX2Nvbm5lY3Rvcl9kcG1zLAorCS5kcG1zID0gZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9y X2RwbXMsCiAJLmZpbGxfbW9kZXMgPSBkcm1faGVscGVyX3Byb2JlX3NpbmdsZV9jb25uZWN0b3Jf bW9kZXMsCiAJLmRldGVjdCA9IGhkbWlfZGV0ZWN0LAogCS5kZXN0cm95ID0gaGRtaV9jb25uZWN0 b3JfZGVzdHJveSwKQEAgLTIxMjcsOCArMjEyNyw4IEBAIHN0YXRpYyB2b2lkIGhkbWlfZHBtcyhz dHJ1Y3QgZXh5bm9zX2RybV9kaXNwbGF5ICpkaXNwbGF5LCBpbnQgbW9kZSkKIAkJICovCiAJCWlm IChjcnRjKQogCQkJZnVuY3MgPSBjcnRjLT5oZWxwZXJfcHJpdmF0ZTsKLQkJaWYgKGZ1bmNzICYm IGZ1bmNzLT5kcG1zKQotCQkJKCpmdW5jcy0+ZHBtcykoY3J0YywgbW9kZSk7CisJCWlmIChmdW5j cyAmJiBmdW5jcy0+ZGlzYWJsZSkKKwkJCSgqZnVuY3MtPmRpc2FibGUpKGNydGMpOwogCiAJCWhk bWlfcG93ZXJvZmYoaGRhdGEpOwogCQlicmVhazsKLS0gCjIuMS4wCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRy aS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=