From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 1/7] drm/i915: Use passed plane state for sprite planes, v4. Date: Thu, 7 Jan 2016 11:54:06 +0100 Message-ID: <1452164052-21752-2-git-send-email-maarten.lankhorst@linux.intel.com> References: <1452164052-21752-1-git-send-email-maarten.lankhorst@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mblankhorst.nl (mblankhorst.nl [141.105.120.124]) by gabe.freedesktop.org (Postfix) with ESMTPS id 298AF6E3B3 for ; Thu, 7 Jan 2016 02:55:12 -0800 (PST) In-Reply-To: <1452164052-21752-1-git-send-email-maarten.lankhorst@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RG9uJ3QgdXNlIHBsYW5lLT5zdGF0ZSBkaXJlY3RseSwgdXNlIHRoZSBwb2ludGVyIGZyb20gY29t bWl0X3BsYW5lLgoKQ2hhbmdlcyBzaW5jZSB2MToKLSBGaXggdXNlcyBvZiBwbGFuZS0+c3RhdGUt PnJvdGF0aW9uIGFuZCBjb2xvciBrZXkgdG8gdXNlIHRoZSBwYXNzZWQgc3RhdGUgdG9vLgotIE9u bHkgcGFzcyBjcnRjX3N0YXRlIGFuZCBwbGFuZV9zdGF0ZSB0byB1cGRhdGVfcGxhbmUuCkNoYW5n ZXMgc2luY2UgdjI6Ci0gUmViYXNlZC4KQ2hhbmdlcyBzaW5jZSB2MzoKLSBTbWFsbCB3aGl0ZXNw YWNlIGNoYW5nZXMgYW5kIG9ubHkgYXNzaWduIDEgdmFyaWFibGUgcGVyIGxpbmUuCi0gQ29uc3Rp ZnkgcGxhbmVfc3RhdGUgYW5kIGNydGNfc3RhdGUuICh2c3lyamFsYSkKClNpZ25lZC1vZmYtYnk6 IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+CkNj OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgotLS0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgIHwgIDEwICstLQogZHJpdmVycy9ncHUv ZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMgfCAxMjQgKysrKysrKysrKysrKysrKysrKystLS0tLS0t LS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDcxIGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggYTNiMjAyNWRhNTYzLi4wNjgwNTA4 ODQzNTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC02NTgsMTYgKzY1OCwxMiBAQCBz dHJ1Y3QgaW50ZWxfcGxhbmUgewogCS8qCiAJICogTk9URTogRG8gbm90IHBsYWNlIG5ldyBwbGFu ZSBzdGF0ZSBmaWVsZHMgaGVyZSAoZS5nLiwgd2hlbiBhZGRpbmcKIAkgKiBuZXcgcGxhbmUgcHJv cGVydGllcykuICBOZXcgcnVudGltZSBzdGF0ZSBzaG91bGQgbm93IGJlIHBsYWNlZCBpbgotCSAq IHRoZSBpbnRlbF9wbGFuZV9zdGF0ZSBzdHJ1Y3R1cmUgYW5kIGFjY2Vzc2VkIHZpYSBkcm1fcGxh bmUtPnN0YXRlLgorCSAqIHRoZSBpbnRlbF9wbGFuZV9zdGF0ZSBzdHJ1Y3R1cmUgYW5kIGFjY2Vz c2VkIHZpYSBwbGFuZV9zdGF0ZS4KIAkgKi8KIAogCXZvaWQgKCp1cGRhdGVfcGxhbmUpKHN0cnVj dCBkcm1fcGxhbmUgKnBsYW5lLAotCQkJICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCi0JCQkg ICAgIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAotCQkJICAgICBpbnQgY3J0Y194LCBpbnQg Y3J0Y195LAotCQkJICAgICB1bnNpZ25lZCBpbnQgY3J0Y193LCB1bnNpZ25lZCBpbnQgY3J0Y19o LAotCQkJICAgICB1aW50MzJfdCB4LCB1aW50MzJfdCB5LAotCQkJICAgICB1aW50MzJfdCBzcmNf dywgdWludDMyX3Qgc3JjX2gpOworCQkJICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSwKKwkJCSAgICAgY29uc3Qgc3RydWN0IGludGVsX3BsYW5lX3N0YXRlICpw bGFuZV9zdGF0ZSk7CiAJdm9pZCAoKmRpc2FibGVfcGxhbmUpKHN0cnVjdCBkcm1fcGxhbmUgKnBs YW5lLAogCQkJICAgICAgc3RydWN0IGRybV9jcnRjICpjcnRjKTsKIAlpbnQgKCpjaGVja19wbGFu ZSkoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9zcHJpdGUuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5j CmluZGV4IDRmZjdhMWY0MTgzZS4uOWY2NDI4OTMzM2U4IDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9zcHJpdGUuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9zcHJpdGUuYwpAQCAtMTc4LDI4ICsxNzgsMzMgQEAgdm9pZCBpbnRlbF9waXBlX3VwZGF0ZV9l bmQoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiB9CiAKIHN0YXRpYyB2b2lkCi1za2xfdXBkYXRl X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRj LAotCQkgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCi0JCSBpbnQgY3J0Y194LCBpbnQgY3J0 Y195LAotCQkgdW5zaWduZWQgaW50IGNydGNfdywgdW5zaWduZWQgaW50IGNydGNfaCwKLQkJIHVp bnQzMl90IHgsIHVpbnQzMl90IHksCi0JCSB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gp Citza2xfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFuZSwKKwkJIGNvbnN0 IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLAorCQkgY29uc3Qgc3RydWN0IGlu dGVsX3BsYW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZHJtX3BsYW5lLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g ZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgaW50ZWxfcGxhbmUgKmludGVsX3BsYW5lID0gdG9f aW50ZWxfcGxhbmUoZHJtX3BsYW5lKTsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBs YW5lX3N0YXRlLT5iYXNlLmZiOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBp bnRlbF9mYl9vYmooZmIpOwogCWNvbnN0IGludCBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7CiAJ Y29uc3QgaW50IHBsYW5lID0gaW50ZWxfcGxhbmUtPnBsYW5lICsgMTsKIAl1MzIgcGxhbmVfY3Rs LCBzdHJpZGVfZGl2LCBzdHJpZGU7Ci0JY29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29s b3JrZXkgKmtleSA9Ci0JCSZ0b19pbnRlbF9wbGFuZV9zdGF0ZShkcm1fcGxhbmUtPnN0YXRlKS0+ Y2tleTsKKwljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0gJnBs YW5lX3N0YXRlLT5ja2V5OwogCXUzMiBzdXJmX2FkZHI7CiAJdTMyIHRpbGVfaGVpZ2h0LCBwbGFu ZV9vZmZzZXQsIHBsYW5lX3NpemU7CiAJdW5zaWduZWQgaW50IHJvdGF0aW9uOwogCWludCB4X29m ZnNldCwgeV9vZmZzZXQ7Ci0Jc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUgPSB0 b19pbnRlbF9jcnRjKGNydGMpLT5jb25maWc7Ci0JaW50IHNjYWxlcl9pZDsKKwlpbnQgY3J0Y194 ID0gcGxhbmVfc3RhdGUtPmRzdC54MTsKKwlpbnQgY3J0Y195ID0gcGxhbmVfc3RhdGUtPmRzdC55 MTsKKwl1aW50MzJfdCBjcnRjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmRzdCk7 CisJdWludDMyX3QgY3J0Y19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+ZHN0KTsK Kwl1aW50MzJfdCB4ID0gcGxhbmVfc3RhdGUtPnNyYy54MSA+PiAxNjsKKwl1aW50MzJfdCB5ID0g cGxhbmVfc3RhdGUtPnNyYy55MSA+PiAxNjsKKwl1aW50MzJfdCBzcmNfdyA9IGRybV9yZWN0X3dp ZHRoKCZwbGFuZV9zdGF0ZS0+c3JjKSA+PiAxNjsKKwl1aW50MzJfdCBzcmNfaCA9IGRybV9yZWN0 X2hlaWdodCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTY7CisJY29uc3Qgc3RydWN0IGludGVsX3Nj YWxlciAqc2NhbGVyID0KKwkJJmNydGNfc3RhdGUtPnNjYWxlcl9zdGF0ZS5zY2FsZXJzW3BsYW5l X3N0YXRlLT5zY2FsZXJfaWRdOwogCiAJcGxhbmVfY3RsID0gUExBTkVfQ1RMX0VOQUJMRSB8CiAJ CVBMQU5FX0NUTF9QSVBFX0dBTU1BX0VOQUJMRSB8CkBAIC0yMDgsMTQgKzIxMywxMiBAQCBza2xf dXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFuZSwgc3RydWN0IGRybV9jcnRj ICpjcnRjLAogCXBsYW5lX2N0bCB8PSBza2xfcGxhbmVfY3RsX2Zvcm1hdChmYi0+cGl4ZWxfZm9y bWF0KTsKIAlwbGFuZV9jdGwgfD0gc2tsX3BsYW5lX2N0bF90aWxpbmcoZmItPm1vZGlmaWVyWzBd KTsKIAotCXJvdGF0aW9uID0gZHJtX3BsYW5lLT5zdGF0ZS0+cm90YXRpb247CisJcm90YXRpb24g PSBwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbjsKIAlwbGFuZV9jdGwgfD0gc2tsX3BsYW5lX2N0 bF9yb3RhdGlvbihyb3RhdGlvbik7CiAKIAlzdHJpZGVfZGl2ID0gaW50ZWxfZmJfc3RyaWRlX2Fs aWdubWVudChkZXYsIGZiLT5tb2RpZmllclswXSwKIAkJCQkJICAgICAgIGZiLT5waXhlbF9mb3Jt YXQpOwogCi0Jc2NhbGVyX2lkID0gdG9faW50ZWxfcGxhbmVfc3RhdGUoZHJtX3BsYW5lLT5zdGF0 ZSktPnNjYWxlcl9pZDsKLQogCS8qIFNpemVzIGFyZSAwIGJhc2VkICovCiAJc3JjX3ctLTsKIAlz cmNfaC0tOwpAQCAtMjU2LDEzICsyNTksMTMgQEAgc2tsX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJt X3BsYW5lICpkcm1fcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAlJOTE1X1dSSVRFKFBM QU5FX1NJWkUocGlwZSwgcGxhbmUpLCBwbGFuZV9zaXplKTsKIAogCS8qIHByb2dyYW0gcGxhbmUg c2NhbGVyICovCi0JaWYgKHNjYWxlcl9pZCA+PSAwKSB7CisJaWYgKHBsYW5lX3N0YXRlLT5zY2Fs ZXJfaWQgPj0gMCkgewogCQl1aW50MzJfdCBwc19jdHJsID0gMDsKKwkJaW50IHNjYWxlcl9pZCA9 IHBsYW5lX3N0YXRlLT5zY2FsZXJfaWQ7CiAKIAkJRFJNX0RFQlVHX0tNUygicGxhbmUgPSAlZCBQ U19QTEFORV9TRUwocGxhbmUpID0gMHgleFxuIiwgcGxhbmUsCiAJCQlQU19QTEFORV9TRUwocGxh bmUpKTsKLQkJcHNfY3RybCA9IFBTX1NDQUxFUl9FTiB8IFBTX1BMQU5FX1NFTChwbGFuZSkgfAot CQkJY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRlLnNjYWxlcnNbc2NhbGVyX2lkXS5tb2RlOworCQlw c19jdHJsID0gUFNfU0NBTEVSX0VOIHwgUFNfUExBTkVfU0VMKHBsYW5lKSB8IHNjYWxlci0+bW9k ZTsKIAkJSTkxNV9XUklURShTS0xfUFNfQ1RSTChwaXBlLCBzY2FsZXJfaWQpLCBwc19jdHJsKTsK IAkJSTkxNV9XUklURShTS0xfUFNfUFdSX0dBVEUocGlwZSwgc2NhbGVyX2lkKSwgMCk7CiAJCUk5 MTVfV1JJVEUoU0tMX1BTX1dJTl9QT1MocGlwZSwgc2NhbGVyX2lkKSwgKGNydGNfeCA8PCAxNikg fCBjcnRjX3kpOwpAQCAtMzM0LDI0ICszMzcsMjkgQEAgY2h2X3VwZGF0ZV9jc2Moc3RydWN0IGlu dGVsX3BsYW5lICppbnRlbF9wbGFuZSwgdWludDMyX3QgZm9ybWF0KQogfQogCiBzdGF0aWMgdm9p ZAotdmx2X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsIHN0cnVjdCBkcm1f Y3J0YyAqY3J0YywKLQkJIHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiLAotCQkgaW50IGNydGNf eCwgaW50IGNydGNfeSwKLQkJIHVuc2lnbmVkIGludCBjcnRjX3csIHVuc2lnbmVkIGludCBjcnRj X2gsCi0JCSB1aW50MzJfdCB4LCB1aW50MzJfdCB5LAotCQkgdWludDMyX3Qgc3JjX3csIHVpbnQz Ml90IHNyY19oKQordmx2X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsCisJ CSBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSwKKwkJIGNvbnN0IHN0 cnVjdCBpbnRlbF9wbGFuZV9zdGF0ZSAqcGxhbmVfc3RhdGUpCiB7CiAJc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGRwbGFuZS0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9 IHRvX2ludGVsX3BsYW5lKGRwbGFuZSk7CisJc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBw bGFuZV9zdGF0ZS0+YmFzZS5mYjsKIAlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0g aW50ZWxfZmJfb2JqKGZiKTsKIAlpbnQgcGlwZSA9IGludGVsX3BsYW5lLT5waXBlOwogCWludCBw bGFuZSA9IGludGVsX3BsYW5lLT5wbGFuZTsKIAl1MzIgc3ByY3RsOwogCXVuc2lnbmVkIGxvbmcg c3Byc3VyZl9vZmZzZXQsIGxpbmVhcl9vZmZzZXQ7CiAJaW50IHBpeGVsX3NpemUgPSBkcm1fZm9y bWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKLQljb25zdCBzdHJ1Y3QgZHJtX2lu dGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0KLQkJJnRvX2ludGVsX3BsYW5lX3N0YXRlKGRwbGFu ZS0+c3RhdGUpLT5ja2V5OworCWNvbnN0IHN0cnVjdCBkcm1faW50ZWxfc3ByaXRlX2NvbG9ya2V5 ICprZXkgPSAmcGxhbmVfc3RhdGUtPmNrZXk7CisJaW50IGNydGNfeCA9IHBsYW5lX3N0YXRlLT5k c3QueDE7CisJaW50IGNydGNfeSA9IHBsYW5lX3N0YXRlLT5kc3QueTE7CisJdWludDMyX3QgY3J0 Y193ID0gZHJtX3JlY3Rfd2lkdGgoJnBsYW5lX3N0YXRlLT5kc3QpOworCXVpbnQzMl90IGNydGNf aCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPmRzdCk7CisJdWludDMyX3QgeCA9IHBs YW5lX3N0YXRlLT5zcmMueDEgPj4gMTY7CisJdWludDMyX3QgeSA9IHBsYW5lX3N0YXRlLT5zcmMu eTEgPj4gMTY7CisJdWludDMyX3Qgc3JjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUt PnNyYykgPj4gMTY7CisJdWludDMyX3Qgc3JjX2ggPSBkcm1fcmVjdF9oZWlnaHQoJnBsYW5lX3N0 YXRlLT5zcmMpID4+IDE2OwogCiAJc3ByY3RsID0gU1BfRU5BQkxFOwogCkBAIC00MjEsNyArNDI5 LDcgQEAgdmx2X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxhbmUsIHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKIAkJCQkJCQlmYi0+cGl0Y2hlc1swXSk7CiAJbGluZWFyX29mZnNldCAt PSBzcHJzdXJmX29mZnNldDsKIAotCWlmIChkcGxhbmUtPnN0YXRlLT5yb3RhdGlvbiA9PSBCSVQo RFJNX1JPVEFURV8xODApKSB7CisJaWYgKHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uID09IEJJ VChEUk1fUk9UQVRFXzE4MCkpIHsKIAkJc3ByY3RsIHw9IFNQX1JPVEFURV8xODA7CiAKIAkJeCAr PSBzcmNfdzsKQEAgLTQ3NCwyMyArNDgyLDI4IEBAIHZsdl9kaXNhYmxlX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmUgKmRwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjKQogfQogCiBzdGF0aWMgdm9p ZAotaXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9j cnRjICpjcnRjLAotCQkgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCi0JCSBpbnQgY3J0Y194 LCBpbnQgY3J0Y195LAotCQkgdW5zaWduZWQgaW50IGNydGNfdywgdW5zaWduZWQgaW50IGNydGNf aCwKLQkJIHVpbnQzMl90IHgsIHVpbnQzMl90IHksCi0JCSB1aW50MzJfdCBzcmNfdywgdWludDMy X3Qgc3JjX2gpCitpdmJfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkg Y29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCSBjb25zdCBzdHJ1 Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBwbGFuZS0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRv X2ludGVsX3BsYW5lKHBsYW5lKTsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5l X3N0YXRlLT5iYXNlLmZiOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRl bF9mYl9vYmooZmIpOwogCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7CiAJdTMy IHNwcmN0bCwgc3Byc2NhbGUgPSAwOwogCXVuc2lnbmVkIGxvbmcgc3Byc3VyZl9vZmZzZXQsIGxp bmVhcl9vZmZzZXQ7CiAJaW50IHBpeGVsX3NpemUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+ cGl4ZWxfZm9ybWF0LCAwKTsKLQljb25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtl eSAqa2V5ID0KLQkJJnRvX2ludGVsX3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSktPmNrZXk7CisJ Y29uc3Qgc3RydWN0IGRybV9pbnRlbF9zcHJpdGVfY29sb3JrZXkgKmtleSA9ICZwbGFuZV9zdGF0 ZS0+Y2tleTsKKwlpbnQgY3J0Y194ID0gcGxhbmVfc3RhdGUtPmRzdC54MTsKKwlpbnQgY3J0Y195 ID0gcGxhbmVfc3RhdGUtPmRzdC55MTsKKwl1aW50MzJfdCBjcnRjX3cgPSBkcm1fcmVjdF93aWR0 aCgmcGxhbmVfc3RhdGUtPmRzdCk7CisJdWludDMyX3QgY3J0Y19oID0gZHJtX3JlY3RfaGVpZ2h0 KCZwbGFuZV9zdGF0ZS0+ZHN0KTsKKwl1aW50MzJfdCB4ID0gcGxhbmVfc3RhdGUtPnNyYy54MSA+ PiAxNjsKKwl1aW50MzJfdCB5ID0gcGxhbmVfc3RhdGUtPnNyYy55MSA+PiAxNjsKKwl1aW50MzJf dCBzcmNfdyA9IGRybV9yZWN0X3dpZHRoKCZwbGFuZV9zdGF0ZS0+c3JjKSA+PiAxNjsKKwl1aW50 MzJfdCBzcmNfaCA9IGRybV9yZWN0X2hlaWdodCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTY7CiAK IAlzcHJjdGwgPSBTUFJJVEVfRU5BQkxFOwogCkBAIC01NTAsNyArNTYzLDcgQEAgaXZiX3VwZGF0 ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAog CQkJCQkgICAgICAgcGl4ZWxfc2l6ZSwgZmItPnBpdGNoZXNbMF0pOwogCWxpbmVhcl9vZmZzZXQg LT0gc3Byc3VyZl9vZmZzZXQ7CiAKLQlpZiAocGxhbmUtPnN0YXRlLT5yb3RhdGlvbiA9PSBCSVQo RFJNX1JPVEFURV8xODApKSB7CisJaWYgKHBsYW5lX3N0YXRlLT5iYXNlLnJvdGF0aW9uID09IEJJ VChEUk1fUk9UQVRFXzE4MCkpIHsKIAkJc3ByY3RsIHw9IFNQUklURV9ST1RBVEVfMTgwOwogCiAJ CS8qIEhTVyBhbmQgQkRXIGRvZXMgdGhpcyBhdXRvbWFnaWNhbGx5IGluIGhhcmR3YXJlICovCkBA IC02MTIsMjMgKzYyNSwyOCBAQCBpdmJfZGlzYWJsZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjKQogfQogCiBzdGF0aWMgdm9pZAotaWxrX3VwZGF0 ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAot CQkgc3RydWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIsCi0JCSBpbnQgY3J0Y194LCBpbnQgY3J0Y195 LAotCQkgdW5zaWduZWQgaW50IGNydGNfdywgdW5zaWduZWQgaW50IGNydGNfaCwKLQkJIHVpbnQz Ml90IHgsIHVpbnQzMl90IHksCi0JCSB1aW50MzJfdCBzcmNfdywgdWludDMyX3Qgc3JjX2gpCitp bGtfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAorCQkgY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCisJCSBjb25zdCBzdHJ1Y3QgaW50ZWxfcGxh bmVfc3RhdGUgKnBsYW5lX3N0YXRlKQogewogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBwbGFu ZS0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7CiAJc3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5l KHBsYW5lKTsKKwlzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHBsYW5lX3N0YXRlLT5iYXNl LmZiOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmogPSBpbnRlbF9mYl9vYmooZmIp OwogCWludCBwaXBlID0gaW50ZWxfcGxhbmUtPnBpcGU7CiAJdW5zaWduZWQgbG9uZyBkdnNzdXJm X29mZnNldCwgbGluZWFyX29mZnNldDsKIAl1MzIgZHZzY250ciwgZHZzc2NhbGU7CiAJaW50IHBp eGVsX3NpemUgPSBkcm1fZm9ybWF0X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKLQlj b25zdCBzdHJ1Y3QgZHJtX2ludGVsX3Nwcml0ZV9jb2xvcmtleSAqa2V5ID0KLQkJJnRvX2ludGVs X3BsYW5lX3N0YXRlKHBsYW5lLT5zdGF0ZSktPmNrZXk7CisJY29uc3Qgc3RydWN0IGRybV9pbnRl bF9zcHJpdGVfY29sb3JrZXkgKmtleSA9ICZwbGFuZV9zdGF0ZS0+Y2tleTsKKwlpbnQgY3J0Y194 ID0gcGxhbmVfc3RhdGUtPmRzdC54MTsKKwlpbnQgY3J0Y195ID0gcGxhbmVfc3RhdGUtPmRzdC55 MTsKKwl1aW50MzJfdCBjcnRjX3cgPSBkcm1fcmVjdF93aWR0aCgmcGxhbmVfc3RhdGUtPmRzdCk7 CisJdWludDMyX3QgY3J0Y19oID0gZHJtX3JlY3RfaGVpZ2h0KCZwbGFuZV9zdGF0ZS0+ZHN0KTsK Kwl1aW50MzJfdCB4ID0gcGxhbmVfc3RhdGUtPnNyYy54MSA+PiAxNjsKKwl1aW50MzJfdCB5ID0g cGxhbmVfc3RhdGUtPnNyYy55MSA+PiAxNjsKKwl1aW50MzJfdCBzcmNfdyA9IGRybV9yZWN0X3dp ZHRoKCZwbGFuZV9zdGF0ZS0+c3JjKSA+PiAxNjsKKwl1aW50MzJfdCBzcmNfaCA9IGRybV9yZWN0 X2hlaWdodCgmcGxhbmVfc3RhdGUtPnNyYykgPj4gMTY7CiAKIAlkdnNjbnRyID0gRFZTX0VOQUJM RTsKIApAQCAtNjg0LDcgKzcwMiw3IEBAIGlsa191cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFu ZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJCQkJICAgICAgIHBpeGVsX3NpemUs IGZiLT5waXRjaGVzWzBdKTsKIAlsaW5lYXJfb2Zmc2V0IC09IGR2c3N1cmZfb2Zmc2V0OwogCi0J aWYgKHBsYW5lLT5zdGF0ZS0+cm90YXRpb24gPT0gQklUKERSTV9ST1RBVEVfMTgwKSkgeworCWlm IChwbGFuZV9zdGF0ZS0+YmFzZS5yb3RhdGlvbiA9PSBCSVQoRFJNX1JPVEFURV8xODApKSB7CiAJ CWR2c2NudHIgfD0gRFZTX1JPVEFURV8xODA7CiAKIAkJeCArPSBzcmNfdzsKQEAgLTkxNywyMyAr OTM1LDE3IEBAIHN0YXRpYyB2b2lkCiBpbnRlbF9jb21taXRfc3ByaXRlX3BsYW5lKHN0cnVjdCBk cm1fcGxhbmUgKnBsYW5lLAogCQkJICBzdHJ1Y3QgaW50ZWxfcGxhbmVfc3RhdGUgKnN0YXRlKQog ewotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YyA9IHN0YXRlLT5iYXNlLmNydGM7CiAJc3RydWN0IGlu dGVsX3BsYW5lICppbnRlbF9wbGFuZSA9IHRvX2ludGVsX3BsYW5lKHBsYW5lKTsKLQlzdHJ1Y3Qg ZHJtX2ZyYW1lYnVmZmVyICpmYiA9IHN0YXRlLT5iYXNlLmZiOwotCi0JY3J0YyA9IGNydGMgPyBj cnRjIDogcGxhbmUtPmNydGM7CiAKIAlpZiAoc3RhdGUtPnZpc2libGUpIHsKLQkJaW50ZWxfcGxh bmUtPnVwZGF0ZV9wbGFuZShwbGFuZSwgY3J0YywgZmIsCi0JCQkJCSAgc3RhdGUtPmRzdC54MSwg c3RhdGUtPmRzdC55MSwKLQkJCQkJICBkcm1fcmVjdF93aWR0aCgmc3RhdGUtPmRzdCksCi0JCQkJ CSAgZHJtX3JlY3RfaGVpZ2h0KCZzdGF0ZS0+ZHN0KSwKLQkJCQkJICBzdGF0ZS0+c3JjLngxID4+ IDE2LAotCQkJCQkgIHN0YXRlLT5zcmMueTEgPj4gMTYsCi0JCQkJCSAgZHJtX3JlY3Rfd2lkdGgo JnN0YXRlLT5zcmMpID4+IDE2LAotCQkJCQkgIGRybV9yZWN0X2hlaWdodCgmc3RhdGUtPnNyYykg Pj4gMTYpOworCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9CisJCQl0b19p bnRlbF9jcnRjKHN0YXRlLT5iYXNlLmNydGMpLT5jb25maWc7CisKKwkJaW50ZWxfcGxhbmUtPnVw ZGF0ZV9wbGFuZShwbGFuZSwgY3J0Y19zdGF0ZSwgc3RhdGUpOwogCX0gZWxzZSB7Ci0JCWludGVs X3BsYW5lLT5kaXNhYmxlX3BsYW5lKHBsYW5lLCBjcnRjKTsKKwkJc3RydWN0IGRybV9jcnRjICpj cnRjID0gc3RhdGUtPmJhc2UuY3J0YzsKKworCQlpbnRlbF9wbGFuZS0+ZGlzYWJsZV9wbGFuZShw bGFuZSwgY3J0YyA/OiBwbGFuZS0+Y3J0Yyk7CiAJfQogfQogCi0tIAoyLjEuMAoKX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcg bGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK