From mboxrd@z Thu Jan 1 00:00:00 1970 From: Hyungwon Hwang Subject: [PATCH 2/2] drm/exynos: implement atomic_{begin/flush} of FIMD and DECON Date: Thu, 20 Aug 2015 11:33:27 +0900 Message-ID: <1440038007-32192-2-git-send-email-human.hwang@samsung.com> References: <1440038007-32192-1-git-send-email-human.hwang@samsung.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) by gabe.freedesktop.org (Postfix) with ESMTPS id 754396E28D for ; Wed, 19 Aug 2015 19:33:42 -0700 (PDT) Received: from epcpsbgr3.samsung.com (u143.gpu120.samsung.co.kr [203.254.230.143]) by mailout3.samsung.com (Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014)) with ESMTP id <0NTD005QW0G3AI70@mailout3.samsung.com> for dri-devel@lists.freedesktop.org; Thu, 20 Aug 2015 11:33:39 +0900 (KST) In-reply-to: <1440038007-32192-1-git-send-email-human.hwang@samsung.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: sw0312.kim@samsung.com List-Id: dri-devel@lists.freedesktop.org RWFjaCBDUlRDJ3MgYXRvbWljX3tiZWdpbi9mbHVzaH0gbXVzdCBzdG9wL3N0YXJ0IHRoZSB1cGRh dGUgb2Ygc2hhZG93CnJlZ2lzdGVycyB0byBhY3RpdmUgcmVnaXN0ZXIgaW4gdGhlIGZ1bmN0aW9u cy4gVGhpcyBwYXRjaCBhY2hpZXZlcyB0aGVzZQpwdXJwb3NlIGJ5IG1vdmluZyB0aGUgc2V0dGlu ZyBvZiBwcm90ZWN0aW9uIGJpdHMgdG8gdGhvc2UgZnVuY3Rpb25zIGZyb20Ke2ZpbWQvZGVjb259 X3VwZGF0ZV9wbGFuZS4KClNpZ25lZC1vZmYtYnk6IEh5dW5nd29uIEh3YW5nIDxodW1hbi5od2Fu Z0BzYW1zdW5nLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczU0MzNfZHJt X2RlY29uLmMgfCA0NyArKysrKysrKysrKysrKysrKy0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9l eHlub3MvZXh5bm9zN19kcm1fZGVjb24uYyAgICB8IDQ3ICsrKysrKysrKysrKysrKystLS0tLS0t LQogZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZpbWQuYyAgICAgIHwgNTEgKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDEwMyBpbnNlcnRpb25z KCspLCA0MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9z L2V4eW5vczU0MzNfZHJtX2RlY29uLmMgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vczU0 MzNfZHJtX2RlY29uLmMKaW5kZXggNDg0ZTMxMi4uZmVmMDMzMyAxMDA2NDQKLS0tIGEvZHJpdmVy cy9ncHUvZHJtL2V4eW5vcy9leHlub3M1NDMzX2RybV9kZWNvbi5jCisrKyBiL2RyaXZlcnMvZ3B1 L2RybS9leHlub3MvZXh5bm9zNTQzM19kcm1fZGVjb24uYwpAQCAtMzEsNiArMzEsNyBAQCBzdHJ1 Y3QgZGVjb25fY29udGV4dCB7CiAJc3RydWN0IGRybV9kZXZpY2UJCSpkcm1fZGV2OwogCXN0cnVj dCBleHlub3NfZHJtX2NydGMJCSpjcnRjOwogCXN0cnVjdCBleHlub3NfZHJtX3BsYW5lCQlwbGFu ZXNbV0lORE9XU19OUl07CisJdW5zaWduZWQgaW50CQkJdXBkYXRlZF9wbGFuZTsKIAl2b2lkIF9f aW9tZW0JCQkqYWRkcjsKIAlzdHJ1Y3QgY2xrCQkJKmNsa3NbNl07CiAJdW5zaWduZWQgaW50CQkJ ZGVmYXVsdF93aW47CkBAIC0yMDQsMTcgKzIwNSwxNyBAQCBzdGF0aWMgdm9pZCBkZWNvbl93aW5f c2V0X3BpeGZtdChzdHJ1Y3QgZGVjb25fY29udGV4dCAqY3R4LCB1bnNpZ25lZCBpbnQgd2luLAog CXdyaXRlbCh2YWwsIGN0eC0+YWRkciArIERFQ09OX1dJTkNPTngod2luKSk7CiB9CiAKLXN0YXRp YyB2b2lkIGRlY29uX3NoYWRvd19wcm90ZWN0X3dpbihzdHJ1Y3QgZGVjb25fY29udGV4dCAqY3R4 LCBpbnQgd2luLAotCQkJCQlib29sIHByb3RlY3QpCitzdGF0aWMgdm9pZCBkZWNvbl9zaGFkb3df cHJvdGVjdF93aW4oc3RydWN0IGRlY29uX2NvbnRleHQgKmN0eCwKKwkJCQl1bnNpZ25lZCBpbnQg d2luX2JpdHMsIGJvb2wgcHJvdGVjdCkKIHsKIAl1MzIgdmFsOwogCiAJdmFsID0gcmVhZGwoY3R4 LT5hZGRyICsgREVDT05fU0hBRE9XQ09OKTsKIAogCWlmIChwcm90ZWN0KQotCQl2YWwgfD0gU0hB RE9XQ09OX1d4X1BST1RFQ1Qod2luKTsKKwkJdmFsIHw9IHdpbl9iaXRzOwogCWVsc2UKLQkJdmFs ICY9IH5TSEFET1dDT05fV3hfUFJPVEVDVCh3aW4pOworCQl2YWwgJj0gfndpbl9iaXRzOwogCiAJ d3JpdGVsKHZhbCwgY3R4LT5hZGRyICsgREVDT05fU0hBRE9XQ09OKTsKIH0KQEAgLTIzMiw4ICsy MzMsNiBAQCBzdGF0aWMgdm9pZCBkZWNvbl91cGRhdGVfcGxhbmUoc3RydWN0IGV4eW5vc19kcm1f Y3J0YyAqY3J0YywKIAlpZiAoY3R4LT5zdXNwZW5kZWQpCiAJCXJldHVybjsKIAotCWRlY29uX3No YWRvd19wcm90ZWN0X3dpbihjdHgsIHdpbiwgdHJ1ZSk7Ci0KIAl2YWwgPSBDT09SRElOQVRFX1go cGxhbmUtPmNydGNfeCkgfCBDT09SRElOQVRFX1kocGxhbmUtPmNydGNfeSk7CiAJd3JpdGVsKHZh bCwgY3R4LT5hZGRyICsgREVDT05fVklET1NEeEEod2luKSk7CiAKQEAgLTI2NSwxNSArMjY0LDEy IEBAIHN0YXRpYyB2b2lkIGRlY29uX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRj ICpjcnRjLAogCXZhbCB8PSBXSU5DT054X0VOV0lOX0Y7CiAJd3JpdGVsKHZhbCwgY3R4LT5hZGRy ICsgREVDT05fV0lOQ09OeCh3aW4pKTsKIAotCWRlY29uX3NoYWRvd19wcm90ZWN0X3dpbihjdHgs IHdpbiwgZmFsc2UpOwotCiAJLyogc3RhbmRhbG9uZSB1cGRhdGUgKi8KIAl2YWwgPSByZWFkbChj dHgtPmFkZHIgKyBERUNPTl9VUERBVEUpOwogCXZhbCB8PSBTVEFOREFMT05FX1VQREFURV9GOwog CXdyaXRlbCh2YWwsIGN0eC0+YWRkciArIERFQ09OX1VQREFURSk7CiAKLQlpZiAoY3R4LT5pODBf aWYpCi0JCWF0b21pY19zZXQoJmN0eC0+d2luX3VwZGF0ZWQsIDEpOworCWN0eC0+dXBkYXRlZF9w bGFuZSB8PSBTSEFET1dDT05fV3hfUFJPVEVDVCh3aW4pOwogfQogCiBzdGF0aWMgdm9pZCBkZWNv bl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMsCkBAIC0yODYsMTQg KzI4MiwxNCBAQCBzdGF0aWMgdm9pZCBkZWNvbl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBleHlub3Nf ZHJtX2NydGMgKmNydGMsCiAJaWYgKGN0eC0+c3VzcGVuZGVkKQogCQlyZXR1cm47CiAKLQlkZWNv bl9zaGFkb3dfcHJvdGVjdF93aW4oY3R4LCB3aW4sIHRydWUpOworCWRlY29uX3NoYWRvd19wcm90 ZWN0X3dpbihjdHgsIFNIQURPV0NPTl9XeF9QUk9URUNUKHdpbiksIHRydWUpOwogCiAJLyogd2lu ZG93IGRpc2FibGUgKi8KIAl2YWwgPSByZWFkbChjdHgtPmFkZHIgKyBERUNPTl9XSU5DT054KHdp bikpOwogCXZhbCAmPSB+V0lOQ09OeF9FTldJTl9GOwogCXdyaXRlbCh2YWwsIGN0eC0+YWRkciAr IERFQ09OX1dJTkNPTngod2luKSk7CiAKLQlkZWNvbl9zaGFkb3dfcHJvdGVjdF93aW4oY3R4LCB3 aW4sIGZhbHNlKTsKKwlkZWNvbl9zaGFkb3dfcHJvdGVjdF93aW4oY3R4LCBTSEFET1dDT05fV3hf UFJPVEVDVCh3aW4pLCBmYWxzZSk7CiAKIAkvKiBzdGFuZGFsb25lIHVwZGF0ZSAqLwogCXZhbCA9 IHJlYWRsKGN0eC0+YWRkciArIERFQ09OX1VQREFURSk7CkBAIC00MDUsNiArNDAxLDMxIEBAIHZv aWQgZGVjb25fdGVfaXJxX2hhbmRsZXIoc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKIAlk cm1fY3J0Y19oYW5kbGVfdmJsYW5rKCZjdHgtPmNydGMtPmJhc2UpOwogfQogCitzdGF0aWMgdm9p ZCBkZWNvbl9iZWdpbihzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQoreworCXN0cnVjdCBk ZWNvbl9jb250ZXh0ICpjdHggPSBjcnRjLT5jdHg7CisJaW50IGk7CisJdW5zaWduZWQgaW50IHZh bCA9IDA7CisKKwlmb3IgKGkgPSAwOyBpIDwgV0lORE9XU19OUjsgaSsrKQorCQl2YWwgfD0gU0hB RE9XQ09OX1d4X1BST1RFQ1QoaSk7CisKKwkvKiBwcm90ZWN0IHdpbmRvd3MgKi8KKwlkZWNvbl9z aGFkb3dfcHJvdGVjdF93aW4oY3R4LCB2YWwsIHRydWUpOworfQorCitzdGF0aWMgdm9pZCBkZWNv bl9mbHVzaChzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQoreworCXN0cnVjdCBkZWNvbl9j b250ZXh0ICpjdHggPSBjcnRjLT5jdHg7CisKKwlpZiAoY3R4LT51cGRhdGVkX3BsYW5lKSB7CisJ CWRlY29uX3NoYWRvd19wcm90ZWN0X3dpbihjdHgsIGN0eC0+dXBkYXRlZF9wbGFuZSwgZmFsc2Up OworCisJCWlmIChjdHgtPmk4MF9pZikKKwkJCWF0b21pY19zZXQoJmN0eC0+d2luX3VwZGF0ZWQs IDEpOworCX0KK30KKwogc3RhdGljIHZvaWQgZGVjb25fY2xlYXJfY2hhbm5lbHMoc3RydWN0IGV4 eW5vc19kcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZGVjb25fY29udGV4dCAqY3R4ID0gY3J0 Yy0+Y3R4OwpAQCAtNDU4LDYgKzQ3OSw4IEBAIHN0YXRpYyBzdHJ1Y3QgZXh5bm9zX2RybV9jcnRj X29wcyBkZWNvbl9jcnRjX29wcyA9IHsKIAkudXBkYXRlX3BsYW5lCQk9IGRlY29uX3VwZGF0ZV9w bGFuZSwKIAkuZGlzYWJsZV9wbGFuZQkJPSBkZWNvbl9kaXNhYmxlX3BsYW5lLAogCS50ZV9oYW5k bGVyCQk9IGRlY29uX3RlX2lycV9oYW5kbGVyLAorCS5hdG9taWNfYmVnaW4JCT0gZGVjb25fYmVn aW4sCisJLmF0b21pY19mbHVzaAkJPSBkZWNvbl9mbHVzaCwKIH07CiAKIHN0YXRpYyBpbnQgZGVj b25fYmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBkZXZpY2UgKm1hc3Rlciwgdm9pZCAq ZGF0YSkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zN19kcm1fZGVj b24uYyBiL2RyaXZlcnMvZ3B1L2RybS9leHlub3MvZXh5bm9zN19kcm1fZGVjb24uYwppbmRleCAw NzkyNjU0Li5jODFkZTg2IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5v czdfZHJtX2RlY29uLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3M3X2RybV9k ZWNvbi5jCkBAIC00Nyw2ICs0Nyw3IEBAIHN0cnVjdCBkZWNvbl9jb250ZXh0IHsKIAlzdHJ1Y3Qg ZHJtX2RldmljZQkJKmRybV9kZXY7CiAJc3RydWN0IGV4eW5vc19kcm1fY3J0YwkJKmNydGM7CiAJ c3RydWN0IGV4eW5vc19kcm1fcGxhbmUJCXBsYW5lc1tXSU5ET1dTX05SXTsKKwl1bnNpZ25lZCBp bnQJCQl1cGRhdGVkX3BsYW5lOwogCXN0cnVjdCBjbGsJCQkqcGNsazsKIAlzdHJ1Y3QgY2xrCQkJ KmFjbGs7CiAJc3RydWN0IGNsawkJCSplY2xrOwpAQCAtMzY5LDE3ICszNzAsMTUgQEAgc3RhdGlj IHZvaWQgZGVjb25fd2luX3NldF9jb2xrZXkoc3RydWN0IGRlY29uX2NvbnRleHQgKmN0eCwgdW5z aWduZWQgaW50IHdpbikKICAqIEBwcm90ZWN0OiAxIHRvIHByb3RlY3QgKGRpc2FibGUgdXBkYXRl cykKICAqLwogc3RhdGljIHZvaWQgZGVjb25fc2hhZG93X3Byb3RlY3Rfd2luKHN0cnVjdCBkZWNv bl9jb250ZXh0ICpjdHgsCi0JCQkJICAgICB1bnNpZ25lZCBpbnQgd2luLCBib29sIHByb3RlY3Qp CisJCQkJICAgICB1bnNpZ25lZCBpbnQgd2luX2JpdHMsIGJvb2wgcHJvdGVjdCkKIHsKLQl1MzIg Yml0cywgdmFsOwotCi0JYml0cyA9IFNIQURPV0NPTl9XSU54X1BST1RFQ1Qod2luKTsKKwl1MzIg dmFsOwogCiAJdmFsID0gcmVhZGwoY3R4LT5yZWdzICsgU0hBRE9XQ09OKTsKIAlpZiAocHJvdGVj dCkKLQkJdmFsIHw9IGJpdHM7CisJCXZhbCB8PSB3aW5fYml0czsKIAllbHNlCi0JCXZhbCAmPSB+ Yml0czsKKwkJdmFsICY9IH53aW5fYml0czsKIAl3cml0ZWwodmFsLCBjdHgtPnJlZ3MgKyBTSEFE T1dDT04pOwogfQogCkBAIC00MTAsOSArNDA5LDYgQEAgc3RhdGljIHZvaWQgZGVjb25fdXBkYXRl X3BsYW5lKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMsCiAJICogaXMgc2V0LgogCSAqLwog Ci0JLyogcHJvdGVjdCB3aW5kb3dzICovCi0JZGVjb25fc2hhZG93X3Byb3RlY3Rfd2luKGN0eCwg d2luLCB0cnVlKTsKLQogCS8qIGJ1ZmZlciBzdGFydCBhZGRyZXNzICovCiAJdmFsID0gKHVuc2ln bmVkIGxvbmcpcGxhbmUtPmRtYV9hZGRyWzBdOwogCXdyaXRlbCh2YWwsIGN0eC0+cmVncyArIFZJ RFdfQlVGX1NUQVJUKHdpbikpOwpAQCAtNDg0LDEyICs0ODAsMTEgQEAgc3RhdGljIHZvaWQgZGVj b25fdXBkYXRlX3BsYW5lKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMsCiAJdmFsIHw9IFdJ TkNPTnhfRU5XSU47CiAJd3JpdGVsKHZhbCwgY3R4LT5yZWdzICsgV0lOQ09OKHdpbikpOwogCi0J LyogRW5hYmxlIERNQSBjaGFubmVsIGFuZCB1bnByb3RlY3Qgd2luZG93cyAqLwotCWRlY29uX3No YWRvd19wcm90ZWN0X3dpbihjdHgsIHdpbiwgZmFsc2UpOwotCiAJdmFsID0gcmVhZGwoY3R4LT5y ZWdzICsgREVDT05fVVBEQVRFKTsKIAl2YWwgfD0gREVDT05fVVBEQVRFX1NUQU5EQUxPTkVfRjsK IAl3cml0ZWwodmFsLCBjdHgtPnJlZ3MgKyBERUNPTl9VUERBVEUpOworCisJY3R4LT51cGRhdGVk X3BsYW5lIHw9IFNIQURPV0NPTl9XSU54X1BST1RFQ1Qod2luKTsKIH0KIAogc3RhdGljIHZvaWQg ZGVjb25fZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLApAQCAtNTAz LDcgKzQ5OCw3IEBAIHN0YXRpYyB2b2lkIGRlY29uX2Rpc2FibGVfcGxhbmUoc3RydWN0IGV4eW5v c19kcm1fY3J0YyAqY3J0YywKIAkJcmV0dXJuOwogCiAJLyogcHJvdGVjdCB3aW5kb3dzICovCi0J ZGVjb25fc2hhZG93X3Byb3RlY3Rfd2luKGN0eCwgd2luLCB0cnVlKTsKKwlkZWNvbl9zaGFkb3df cHJvdGVjdF93aW4oY3R4LCBTSEFET1dDT05fV0lOeF9QUk9URUNUKHdpbiksIHRydWUpOwogCiAJ Lyogd2luY29uICovCiAJdmFsID0gcmVhZGwoY3R4LT5yZWdzICsgV0lOQ09OKHdpbikpOwpAQCAt NTExLDcgKzUwNiw3IEBAIHN0YXRpYyB2b2lkIGRlY29uX2Rpc2FibGVfcGxhbmUoc3RydWN0IGV4 eW5vc19kcm1fY3J0YyAqY3J0YywKIAl3cml0ZWwodmFsLCBjdHgtPnJlZ3MgKyBXSU5DT04od2lu KSk7CiAKIAkvKiB1bnByb3RlY3Qgd2luZG93cyAqLwotCWRlY29uX3NoYWRvd19wcm90ZWN0X3dp bihjdHgsIHdpbiwgZmFsc2UpOworCWRlY29uX3NoYWRvd19wcm90ZWN0X3dpbihjdHgsIFNIQURP V0NPTl9XSU54X1BST1RFQ1Qod2luKSwgZmFsc2UpOwogCiAJdmFsID0gcmVhZGwoY3R4LT5yZWdz ICsgREVDT05fVVBEQVRFKTsKIAl2YWwgfD0gREVDT05fVVBEQVRFX1NUQU5EQUxPTkVfRjsKQEAg LTYwNiw2ICs2MDEsMjggQEAgc3RhdGljIHZvaWQgZGVjb25fZGlzYWJsZShzdHJ1Y3QgZXh5bm9z X2RybV9jcnRjICpjcnRjKQogCWN0eC0+c3VzcGVuZGVkID0gdHJ1ZTsKIH0KIAorc3RhdGljIHZv aWQgZGVjb25fYmVnaW4oc3RydWN0IGV4eW5vc19kcm1fY3J0YyAqY3J0YykKK3sKKwlzdHJ1Y3Qg ZGVjb25fY29udGV4dCAqY3R4ID0gY3J0Yy0+Y3R4OworCWludCBpOworCXVuc2lnbmVkIGludCB2 YWwgPSAwOworCisJZm9yIChpID0gMDsgaSA8IFdJTkRPV1NfTlI7IGkrKykKKwkJdmFsIHw9IFNI QURPV0NPTl9XSU54X1BST1RFQ1QoaSk7CisKKwkvKiBwcm90ZWN0IHdpbmRvd3MgKi8KKwlkZWNv bl9zaGFkb3dfcHJvdGVjdF93aW4oY3R4LCB2YWwsIHRydWUpOworfQorCitzdGF0aWMgdm9pZCBk ZWNvbl9mbHVzaChzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjKQoreworCXN0cnVjdCBkZWNv bl9jb250ZXh0ICpjdHggPSBjcnRjLT5jdHg7CisKKwlpZiAoY3R4LT51cGRhdGVkX3BsYW5lKQor CQlkZWNvbl9zaGFkb3dfcHJvdGVjdF93aW4oY3R4LCBjdHgtPnVwZGF0ZWRfcGxhbmUsIGZhbHNl KTsKK30KKworCiBzdGF0aWMgY29uc3Qgc3RydWN0IGV4eW5vc19kcm1fY3J0Y19vcHMgZGVjb25f Y3J0Y19vcHMgPSB7CiAJLmVuYWJsZSA9IGRlY29uX2VuYWJsZSwKIAkuZGlzYWJsZSA9IGRlY29u X2Rpc2FibGUsCkBAIC02MTYsNiArNjMzLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBleHlub3Nf ZHJtX2NydGNfb3BzIGRlY29uX2NydGNfb3BzID0gewogCS53YWl0X2Zvcl92YmxhbmsgPSBkZWNv bl93YWl0X2Zvcl92YmxhbmssCiAJLnVwZGF0ZV9wbGFuZSA9IGRlY29uX3VwZGF0ZV9wbGFuZSwK IAkuZGlzYWJsZV9wbGFuZSA9IGRlY29uX2Rpc2FibGVfcGxhbmUsCisJLmF0b21pY19iZWdpbiA9 IGRlY29uX2JlZ2luLAorCS5hdG9taWNfZmx1c2ggPSBkZWNvbl9mbHVzaCwKIH07CiAKIApkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZpbWQuYyBiL2RyaXZl cnMvZ3B1L2RybS9leHlub3MvZXh5bm9zX2RybV9maW1kLmMKaW5kZXggNWRlZjZiYy4uMGI0MWJi MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2V4eW5vcy9leHlub3NfZHJtX2ZpbWQuYwor KysgYi9kcml2ZXJzL2dwdS9kcm0vZXh5bm9zL2V4eW5vc19kcm1fZmltZC5jCkBAIC0xNDksNiAr MTQ5LDcgQEAgc3RydWN0IGZpbWRfY29udGV4dCB7CiAJc3RydWN0IGRybV9kZXZpY2UJCSpkcm1f ZGV2OwogCXN0cnVjdCBleHlub3NfZHJtX2NydGMJCSpjcnRjOwogCXN0cnVjdCBleHlub3NfZHJt X3BsYW5lCQlwbGFuZXNbV0lORE9XU19OUl07CisJdW5zaWduZWQgaW50CQkJdXBkYXRlZF9wbGFu ZTsKIAlzdHJ1Y3QgY2xrCQkJKmJ1c19jbGs7CiAJc3RydWN0IGNsawkJCSpsY2RfY2xrOwogCXZv aWQgX19pb21lbQkJCSpyZWdzOwpAQCAtNTg3LDIzICs1ODgsMjIgQEAgc3RhdGljIHZvaWQgZmlt ZF93aW5fc2V0X2NvbGtleShzdHJ1Y3QgZmltZF9jb250ZXh0ICpjdHgsIHVuc2lnbmVkIGludCB3 aW4pCiAgKiBAcHJvdGVjdDogMSB0byBwcm90ZWN0IChkaXNhYmxlIHVwZGF0ZXMpCiAgKi8KIHN0 YXRpYyB2b2lkIGZpbWRfc2hhZG93X3Byb3RlY3Rfd2luKHN0cnVjdCBmaW1kX2NvbnRleHQgKmN0 eCwKLQkJCQkgICAgdW5zaWduZWQgaW50IHdpbiwgYm9vbCBwcm90ZWN0KQorCQkJCSAgICB1bnNp Z25lZCBpbnQgd2luX2JpdHMsIGJvb2wgcHJvdGVjdCkKIHsKLQl1MzIgcmVnLCBiaXRzLCB2YWw7 CisJdTMyIHJlZywgdmFsOwogCiAJaWYgKGN0eC0+ZHJpdmVyX2RhdGEtPmhhc19zaGFkb3djb24p IHsKIAkJcmVnID0gU0hBRE9XQ09OOwotCQliaXRzID0gU0hBRE9XQ09OX1dJTnhfUFJPVEVDVCh3 aW4pOwogCX0gZWxzZSB7CiAJCXJlZyA9IFBSVENPTjsKLQkJYml0cyA9IFBSVENPTl9QUk9URUNU OworCQl3aW5fYml0cyA9IFBSVENPTl9QUk9URUNUOwogCX0KIAogCXZhbCA9IHJlYWRsKGN0eC0+ cmVncyArIHJlZyk7CiAJaWYgKHByb3RlY3QpCi0JCXZhbCB8PSBiaXRzOworCQl2YWwgfD0gd2lu X2JpdHM7CiAJZWxzZQotCQl2YWwgJj0gfmJpdHM7CisJCXZhbCAmPSB+d2luX2JpdHM7CiAJd3Jp dGVsKHZhbCwgY3R4LT5yZWdzICsgcmVnKTsKIH0KIApAQCAtNjMyLDEwICs2MzIsNiBAQCBzdGF0 aWMgdm9pZCBmaW1kX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLAog CSAqIGlzIHNldC4KIAkgKi8KIAotCS8qIHByb3RlY3Qgd2luZG93cyAqLwotCWZpbWRfc2hhZG93 X3Byb3RlY3Rfd2luKGN0eCwgd2luLCB0cnVlKTsKLQotCiAJb2Zmc2V0ID0gcGxhbmUtPnNyY194 ICogYnBwOwogCW9mZnNldCArPSBwbGFuZS0+c3JjX3kgKiBwaXRjaDsKIApAQCAtNzA3LDExICs3 MDMsMzIgQEAgc3RhdGljIHZvaWQgZmltZF91cGRhdGVfcGxhbmUoc3RydWN0IGV4eW5vc19kcm1f Y3J0YyAqY3J0YywKIAlpZiAoY3R4LT5kcml2ZXJfZGF0YS0+aGFzX3NoYWRvd2NvbikKIAkJZmlt ZF9lbmFibGVfc2hhZG93X2NoYW5uZWxfcGF0aChjdHgsIHdpbiwgdHJ1ZSk7CiAKLQkvKiBFbmFi bGUgRE1BIGNoYW5uZWwgYW5kIHVucHJvdGVjdCB3aW5kb3dzICovCi0JZmltZF9zaGFkb3dfcHJv dGVjdF93aW4oY3R4LCB3aW4sIGZhbHNlKTsKKwljdHgtPnVwZGF0ZWRfcGxhbmUgfD0gU0hBRE9X Q09OX1dJTnhfUFJPVEVDVCh3aW4pOworfQorCitzdGF0aWMgdm9pZCBmaW1kX2JlZ2luKHN0cnVj dCBleHlub3NfZHJtX2NydGMgKmNydGMpCit7CisJc3RydWN0IGZpbWRfY29udGV4dCAqY3R4ID0g Y3J0Yy0+Y3R4OworCWludCBpOworCXVuc2lnbmVkIGludCB2YWwgPSAwOworCisJZm9yIChpID0g MDsgaSA8IFdJTkRPV1NfTlI7IGkrKykKKwkJdmFsIHw9IFNIQURPV0NPTl9XSU54X1BST1RFQ1Qo aSk7CiAKLQlpZiAoY3R4LT5pODBfaWYpCi0JCWF0b21pY19zZXQoJmN0eC0+d2luX3VwZGF0ZWQs IDEpOworCS8qIHByb3RlY3Qgd2luZG93cyAqLworCWZpbWRfc2hhZG93X3Byb3RlY3Rfd2luKGN0 eCwgdmFsLCB0cnVlKTsKK30KKworc3RhdGljIHZvaWQgZmltZF9mbHVzaChzdHJ1Y3QgZXh5bm9z X2RybV9jcnRjICpjcnRjKQoreworCXN0cnVjdCBmaW1kX2NvbnRleHQgKmN0eCA9IGNydGMtPmN0 eDsKKworCWlmIChjdHgtPnVwZGF0ZWRfcGxhbmUpIHsKKwkJZmltZF9zaGFkb3dfcHJvdGVjdF93 aW4oY3R4LCBjdHgtPnVwZGF0ZWRfcGxhbmUsIGZhbHNlKTsKKworCQlpZiAoY3R4LT5pODBfaWYp CisJCQlhdG9taWNfc2V0KCZjdHgtPndpbl91cGRhdGVkLCAxKTsKKwl9CiB9CiAKIHN0YXRpYyB2 b2lkIGZpbWRfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZXh5bm9zX2RybV9jcnRjICpjcnRjLApAQCAt NzI0LDcgKzc0MSw3IEBAIHN0YXRpYyB2b2lkIGZpbWRfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZXh5 bm9zX2RybV9jcnRjICpjcnRjLAogCQlyZXR1cm47CiAKIAkvKiBwcm90ZWN0IHdpbmRvd3MgKi8K LQlmaW1kX3NoYWRvd19wcm90ZWN0X3dpbihjdHgsIHdpbiwgdHJ1ZSk7CisJZmltZF9zaGFkb3df cHJvdGVjdF93aW4oY3R4LCBTSEFET1dDT05fV0lOeF9QUk9URUNUKHdpbiksIHRydWUpOwogCiAJ ZmltZF9lbmFibGVfdmlkZW9fb3V0cHV0KGN0eCwgd2luLCBmYWxzZSk7CiAKQEAgLTczMiw3ICs3 NDksNyBAQCBzdGF0aWMgdm9pZCBmaW1kX2Rpc2FibGVfcGxhbmUoc3RydWN0IGV4eW5vc19kcm1f Y3J0YyAqY3J0YywKIAkJZmltZF9lbmFibGVfc2hhZG93X2NoYW5uZWxfcGF0aChjdHgsIHdpbiwg ZmFsc2UpOwogCiAJLyogdW5wcm90ZWN0IHdpbmRvd3MgKi8KLQlmaW1kX3NoYWRvd19wcm90ZWN0 X3dpbihjdHgsIHdpbiwgZmFsc2UpOworCWZpbWRfc2hhZG93X3Byb3RlY3Rfd2luKGN0eCwgU0hB RE9XQ09OX1dJTnhfUFJPVEVDVCh3aW4pLCBmYWxzZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGZpbWRf ZW5hYmxlKHN0cnVjdCBleHlub3NfZHJtX2NydGMgKmNydGMpCkBAIC04NzksNiArODk2LDggQEAg c3RhdGljIGNvbnN0IHN0cnVjdCBleHlub3NfZHJtX2NydGNfb3BzIGZpbWRfY3J0Y19vcHMgPSB7 CiAJLmRpc2FibGVfcGxhbmUgPSBmaW1kX2Rpc2FibGVfcGxhbmUsCiAJLnRlX2hhbmRsZXIgPSBm aW1kX3RlX2hhbmRsZXIsCiAJLmNsb2NrX2VuYWJsZSA9IGZpbWRfZHBfY2xvY2tfZW5hYmxlLAor CS5hdG9taWNfYmVnaW4gPSBmaW1kX2JlZ2luLAorCS5hdG9taWNfZmx1c2ggPSBmaW1kX2ZsdXNo LAogfTsKIAogc3RhdGljIGlycXJldHVybl90IGZpbWRfaXJxX2hhbmRsZXIoaW50IGlycSwgdm9p ZCAqZGV2X2lkKQotLSAKMi40LjMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==