From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [RFC 4/6] drm/i915: Use framebuffer tiling mode for display purposes Date: Fri, 30 Jan 2015 17:36:56 +0000 Message-ID: <1422639418-28845-5-git-send-email-tvrtko.ursulin@linux.intel.com> References: <1422639418-28845-1-git-send-email-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 3805A6E853 for ; Fri, 30 Jan 2015 09:37:25 -0800 (PST) In-Reply-To: <1422639418-28845-1-git-send-email-tvrtko.ursulin@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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KClRvIHByZXBh cmUgZm9yIGZyYW1lYnVmZmVyIG1vZGlmaWVycywgbW92ZSB0aWxpbmcgZGVmaW5pdGlvbiBmcm9t IHRoZQpvYmplY3QgaW50byB0aGUgZnJhbWVidWZmZXIuIE1vdmUgaW4gYSB3YXkgdGhhdCBmcmFt ZWJ1ZmZlciB0aWxpbmcgaXMKbm93IHVzZWQgZm9yIGRpc3BsYXkgd2hpbGUgb2JqZWN0IHRpbGlu ZyByZW1haW5zIGZvciBmZW5jaW5nLgoKU2lnbmVkLW9mZi1ieTogVHZydGtvIFVyc3VsaW4gPHR2 cnRrby51cnN1bGluQGludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9k aXNwbGF5LmMgfCA0NiArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oICAgICB8ICAyICsrCiBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wbS5jICAgICAgfCAgNyArKystLS0KIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3Nwcml0ZS5jICB8IDI2ICsrKysrKysrKystLS0tLS0tLS0tCiA0IGZpbGVzIGNoYW5nZWQs IDQ2IGluc2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X2Rpc3BsYXkuYwppbmRleCA0NDI1ZTg2Li5lMjJhZmJlIDEwMDY0NAotLS0gYS9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50 ZWxfZGlzcGxheS5jCkBAIC0yMjExLDcgKzIyMTEsNyBAQCBpbnRlbF9waW5fYW5kX2ZlbmNlX2Zi X29iaihzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAogCVdBUk5fT04oIW11dGV4X2lzX2xvY2tl ZCgmZGV2LT5zdHJ1Y3RfbXV0ZXgpKTsKIAotCXN3aXRjaCAob2JqLT50aWxpbmdfbW9kZSkgewor CXN3aXRjaCAodG9faW50ZWxfZnJhbWVidWZmZXIoZmIpLT50aWxpbmdfbW9kZSkgewogCWNhc2Ug STkxNV9USUxJTkdfTk9ORToKIAkJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDkpCiAJCQlh bGlnbm1lbnQgPSAyNTYgKiAxMDI0OwpAQCAtMjQ3NCw2ICsyNDc0LDcgQEAgc3RhdGljIHZvaWQg aTl4eF91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJdTMyIGRz cGNudHI7CiAJdTMyIHJlZyA9IERTUENOVFIocGxhbmUpOwogCWludCBwaXhlbF9zaXplOworCXVu c2lnbmVkIGludCB0aWxpbmdfbW9kZSA9IHRvX2ludGVsX2ZyYW1lYnVmZmVyKGZiKS0+dGlsaW5n X21vZGU7CiAKIAlpZiAoIWludGVsX2NydGMtPnByaW1hcnlfZW5hYmxlZCkgewogCQlJOTE1X1dS SVRFKHJlZywgMCk7CkBAIC0yNTQ1LDggKzI1NDYsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X3VwZGF0 ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJQlVHKCk7CiAJfQogCi0J aWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuID49IDQgJiYKLQkgICAgb2JqLT50aWxpbmdfbW9kZSAh PSBJOTE1X1RJTElOR19OT05FKQorCWlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA0ICYmIHRp bGluZ19tb2RlICE9IEk5MTVfVElMSU5HX05PTkUpCiAJCWRzcGNudHIgfD0gRElTUFBMQU5FX1RJ TEVEOwogCiAJaWYgKElTX0c0WChkZXYpKQpAQCAtMjU1Niw3ICsyNTU2LDggQEAgc3RhdGljIHZv aWQgaTl4eF91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAlp ZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gNCkgewogCQlpbnRlbF9jcnRjLT5kc3BhZGRyX29m ZnNldCA9Ci0JCQlpbnRlbF9nZW40X2NvbXB1dGVfcGFnZV9vZmZzZXQoJngsICZ5LCBvYmotPnRp bGluZ19tb2RlLAorCQkJaW50ZWxfZ2VuNF9jb21wdXRlX3BhZ2Vfb2Zmc2V0KCZ4LCAmeSwKKwkJ CQkJCSAgICAgICB0aWxpbmdfbW9kZSwKIAkJCQkJCSAgICAgICBwaXhlbF9zaXplLAogCQkJCQkJ ICAgICAgIGZiLT5waXRjaGVzWzBdKTsKIAkJbGluZWFyX29mZnNldCAtPSBpbnRlbF9jcnRjLT5k c3BhZGRyX29mZnNldDsKQEAgLTI2MDYsNiArMjYwNyw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtl X3VwZGF0ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl1MzIgZHNwY250 cjsKIAl1MzIgcmVnID0gRFNQQ05UUihwbGFuZSk7CiAJaW50IHBpeGVsX3NpemU7CisJdW5zaWdu ZWQgaW50IHRpbGluZ19tb2RlID0gdG9faW50ZWxfZnJhbWVidWZmZXIoZmIpLT50aWxpbmdfbW9k ZTsKIAogCWlmICghaW50ZWxfY3J0Yy0+cHJpbWFyeV9lbmFibGVkKSB7CiAJCUk5MTVfV1JJVEUo cmVnLCAwKTsKQEAgLTI2NTQsNyArMjY1Niw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX3VwZGF0 ZV9wcmltYXJ5X3BsYW5lKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkJQlVHKCk7CiAJfQogCi0J aWYgKG9iai0+dGlsaW5nX21vZGUgIT0gSTkxNV9USUxJTkdfTk9ORSkKKwlpZiAodGlsaW5nX21v ZGUgIT0gSTkxNV9USUxJTkdfTk9ORSkKIAkJZHNwY250ciB8PSBESVNQUExBTkVfVElMRUQ7CiAK IAlpZiAoIUlTX0hBU1dFTEwoZGV2KSAmJiAhSVNfQlJPQURXRUxMKGRldikpCkBAIC0yNjYyLDcg KzI2NjQsOCBAQCBzdGF0aWMgdm9pZCBpcm9ubGFrZV91cGRhdGVfcHJpbWFyeV9wbGFuZShzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAKIAlsaW5lYXJfb2Zmc2V0ID0geSAqIGZiLT5waXRjaGVzWzBd ICsgeCAqIHBpeGVsX3NpemU7CiAJaW50ZWxfY3J0Yy0+ZHNwYWRkcl9vZmZzZXQgPQotCQlpbnRl bF9nZW40X2NvbXB1dGVfcGFnZV9vZmZzZXQoJngsICZ5LCBvYmotPnRpbGluZ19tb2RlLAorCQlp bnRlbF9nZW40X2NvbXB1dGVfcGFnZV9vZmZzZXQoJngsICZ5LAorCQkJCQkgICAgICAgdGlsaW5n X21vZGUsCiAJCQkJCSAgICAgICBwaXhlbF9zaXplLAogCQkJCQkgICAgICAgZmItPnBpdGNoZXNb MF0pOwogCWxpbmVhcl9vZmZzZXQgLT0gaW50ZWxfY3J0Yy0+ZHNwYWRkcl9vZmZzZXQ7CkBAIC0y NzUwLDcgKzI3NTMsNyBAQCBzdGF0aWMgdm9pZCBza3lsYWtlX3VwZGF0ZV9wcmltYXJ5X3BsYW5l KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAkgKiBUaGUgc3RyaWRlIGlzIGVpdGhlciBleHByZXNz ZWQgYXMgYSBtdWx0aXBsZSBvZiA2NCBieXRlcyBjaHVua3MgZm9yCiAJICogbGluZWFyIGJ1ZmZl cnMgb3IgaW4gbnVtYmVyIG9mIHRpbGVzIGZvciB0aWxlZCBidWZmZXJzLgogCSAqLwotCXN3aXRj aCAob2JqLT50aWxpbmdfbW9kZSkgeworCXN3aXRjaCAodG9faW50ZWxfZnJhbWVidWZmZXIoZmIp LT50aWxpbmdfbW9kZSkgewogCWNhc2UgSTkxNV9USUxJTkdfTk9ORToKIAkJc3RyaWRlID0gZmIt PnBpdGNoZXNbMF0gPj4gNjsKIAkJYnJlYWs7CkBAIC05MjkxLDcgKzkyOTQsNyBAQCBzdGF0aWMg aW50IGludGVsX2dlbjRfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCQkJTUlf RElTUExBWV9GTElQX1BMQU5FKGludGVsX2NydGMtPnBsYW5lKSk7CiAJaW50ZWxfcmluZ19lbWl0 KHJpbmcsIGZiLT5waXRjaGVzWzBdKTsKIAlpbnRlbF9yaW5nX2VtaXQocmluZywgaW50ZWxfY3J0 Yy0+dW5waW5fd29yay0+Z3R0X29mZnNldCB8Ci0JCQlvYmotPnRpbGluZ19tb2RlKTsKKwkJCXRv X2ludGVsX2ZyYW1lYnVmZmVyKGZiKS0+dGlsaW5nX21vZGUpOwogCiAJLyogWFhYIEVuYWJsaW5n IHRoZSBwYW5lbC1maXR0ZXIgYWNyb3NzIHBhZ2UtZmxpcCBpcyBzbyBmYXIKIAkgKiB1bnRlc3Rl ZCBvbiBub24tbmF0aXZlIG1vZGVzLCBzbyBpZ25vcmUgaXQgZm9yIG5vdy4KQEAgLTkzMjQsNyAr OTMyNyw4IEBAIHN0YXRpYyBpbnQgaW50ZWxfZ2VuNl9xdWV1ZV9mbGlwKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCiAKIAlpbnRlbF9yaW5nX2VtaXQocmluZywgTUlfRElTUExBWV9GTElQIHwKIAkJ CU1JX0RJU1BMQVlfRkxJUF9QTEFORShpbnRlbF9jcnRjLT5wbGFuZSkpOwotCWludGVsX3Jpbmdf ZW1pdChyaW5nLCBmYi0+cGl0Y2hlc1swXSB8IG9iai0+dGlsaW5nX21vZGUpOworCWludGVsX3Jp bmdfZW1pdChyaW5nLAorCQkJZmItPnBpdGNoZXNbMF0gfCB0b19pbnRlbF9mcmFtZWJ1ZmZlcihm YiktPnRpbGluZ19tb2RlKTsKIAlpbnRlbF9yaW5nX2VtaXQocmluZywgaW50ZWxfY3J0Yy0+dW5w aW5fd29yay0+Z3R0X29mZnNldCk7CiAKIAkvKiBDb250cmFyeSB0byB0aGUgc3VnZ2VzdGlvbnMg aW4gdGhlIGRvY3VtZW50YXRpb24sCkBAIC05NDI4LDcgKzk0MzIsOCBAQCBzdGF0aWMgaW50IGlu dGVsX2dlbjdfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAogCX0KIAogCWludGVs X3JpbmdfZW1pdChyaW5nLCBNSV9ESVNQTEFZX0ZMSVBfSTkxNSB8IHBsYW5lX2JpdCk7Ci0JaW50 ZWxfcmluZ19lbWl0KHJpbmcsIChmYi0+cGl0Y2hlc1swXSB8IG9iai0+dGlsaW5nX21vZGUpKTsK KwlpbnRlbF9yaW5nX2VtaXQocmluZywKKwkJCWZiLT5waXRjaGVzWzBdIHwgdG9faW50ZWxfZnJh bWVidWZmZXIoZmIpLT50aWxpbmdfbW9kZSk7CiAJaW50ZWxfcmluZ19lbWl0KHJpbmcsIGludGVs X2NydGMtPnVucGluX3dvcmstPmd0dF9vZmZzZXQpOwogCWludGVsX3JpbmdfZW1pdChyaW5nLCAo TUlfTk9PUCkpOwogCkBAIC05NDcwLDEzICs5NDc1LDEyIEBAIHN0YXRpYyB2b2lkIHNrbF9kb19t bWlvX2ZsaXAoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMpCiAJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKIAlzdHJ1Y3QgZHJtX2ZyYW1l YnVmZmVyICpmYiA9IGludGVsX2NydGMtPmJhc2UucHJpbWFyeS0+ZmI7CiAJc3RydWN0IGludGVs X2ZyYW1lYnVmZmVyICppbnRlbF9mYiA9IHRvX2ludGVsX2ZyYW1lYnVmZmVyKGZiKTsKLQlzdHJ1 Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmItPm9iajsKIAljb25zdCBlbnVt IHBpcGUgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAJdTMyIGN0bCwgc3RyaWRlOwogCiAJY3Rs ID0gSTkxNV9SRUFEKFBMQU5FX0NUTChwaXBlLCAwKSk7CiAJY3RsICY9IH5QTEFORV9DVExfVElM RURfTUFTSzsKLQlpZiAob2JqLT50aWxpbmdfbW9kZSA9PSBJOTE1X1RJTElOR19YKQorCWlmIChp bnRlbF9mYi0+dGlsaW5nX21vZGUgPT0gSTkxNV9USUxJTkdfWCkKIAkJY3RsIHw9IFBMQU5FX0NU TF9USUxFRF9YOwogCiAJLyoKQEAgLTk0ODQsNyArOTQ4OCw3IEBAIHN0YXRpYyB2b2lkIHNrbF9k b19tbWlvX2ZsaXAoc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMpCiAJICogbGluZWFyIGJ1 ZmZlcnMgb3IgaW4gbnVtYmVyIG9mIHRpbGVzIGZvciB0aWxlZCBidWZmZXJzLgogCSAqLwogCXN0 cmlkZSA9IGZiLT5waXRjaGVzWzBdID4+IDY7Ci0JaWYgKG9iai0+dGlsaW5nX21vZGUgPT0gSTkx NV9USUxJTkdfWCkKKwlpZiAoaW50ZWxfZmItPnRpbGluZ19tb2RlID09IEk5MTVfVElMSU5HX1gp CiAJCXN0cmlkZSA9IGZiLT5waXRjaGVzWzBdID4+IDk7IC8qIFggdGlsZXMgYXJlIDUxMiBieXRl cyB3aWRlICovCiAKIAkvKgpAQCAtOTUwNCwxNCArOTUwOCwxMyBAQCBzdGF0aWMgdm9pZCBpbGtf ZG9fbW1pb19mbGlwKHN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjKQogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3RydWN0IGludGVs X2ZyYW1lYnVmZmVyICppbnRlbF9mYiA9CiAJCXRvX2ludGVsX2ZyYW1lYnVmZmVyKGludGVsX2Ny dGMtPmJhc2UucHJpbWFyeS0+ZmIpOwotCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmog PSBpbnRlbF9mYi0+b2JqOwogCXUzMiBkc3BjbnRyOwogCXUzMiByZWc7CiAKIAlyZWcgPSBEU1BD TlRSKGludGVsX2NydGMtPnBsYW5lKTsKIAlkc3BjbnRyID0gSTkxNV9SRUFEKHJlZyk7CiAKLQlp ZiAob2JqLT50aWxpbmdfbW9kZSAhPSBJOTE1X1RJTElOR19OT05FKQorCWlmIChpbnRlbF9mYi0+ dGlsaW5nX21vZGUgIT0gSTkxNV9USUxJTkdfTk9ORSkKIAkJZHNwY250ciB8PSBESVNQUExBTkVf VElMRUQ7CiAJZWxzZQogCQlkc3BjbnRyICY9IH5ESVNQUExBTkVfVElMRUQ7CkBAIC05NTk1LDYg Kzk1OTgsNyBAQCBzdGF0aWMgaW50IGludGVsX2dlbjlfcXVldWVfZmxpcChzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0 YyhjcnRjKTsKIAl1aW50MzJfdCBwbGFuZSA9IDAsIHN0cmlkZTsKIAlpbnQgcmV0OworCXVuc2ln bmVkIGludCB0aWxpbmdfbW9kZSA9IHRvX2ludGVsX2ZyYW1lYnVmZmVyKGZiKS0+dGlsaW5nX21v ZGU7CiAKIAlzd2l0Y2goaW50ZWxfY3J0Yy0+cGlwZSkgewogCWNhc2UgUElQRV9BOgpAQCAtOTYx MSw3ICs5NjE1LDcgQEAgc3RhdGljIGludCBpbnRlbF9nZW45X3F1ZXVlX2ZsaXAoc3RydWN0IGRy bV9kZXZpY2UgKmRldiwKIAkJcmV0dXJuIC1FTk9ERVY7CiAJfQogCi0Jc3dpdGNoIChvYmotPnRp bGluZ19tb2RlKSB7CisJc3dpdGNoICh0aWxpbmdfbW9kZSkgewogCWNhc2UgSTkxNV9USUxJTkdf Tk9ORToKIAkJc3RyaWRlID0gZmItPnBpdGNoZXNbMF0gPj4gNjsKIAkJYnJlYWs7CkBAIC05NjM5 LDcgKzk2NDMsNyBAQCBzdGF0aWMgaW50IGludGVsX2dlbjlfcXVldWVfZmxpcChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LAogCWludGVsX3JpbmdfZW1pdChyaW5nLCAwKTsKIAogCWludGVsX3Jpbmdf ZW1pdChyaW5nLCBNSV9ESVNQTEFZX0ZMSVBfSTkxNSB8IHBsYW5lKTsKLQlpbnRlbF9yaW5nX2Vt aXQocmluZywgc3RyaWRlIDw8IDYgfCBvYmotPnRpbGluZ19tb2RlKTsKKwlpbnRlbF9yaW5nX2Vt aXQocmluZywgc3RyaWRlIDw8IDYgfCB0aWxpbmdfbW9kZSk7CiAJaW50ZWxfcmluZ19lbWl0KHJp bmcsIGludGVsX2NydGMtPnVucGluX3dvcmstPmd0dF9vZmZzZXQpOwogCiAJaW50ZWxfbWFya19w YWdlX2ZsaXBfYWN0aXZlKGludGVsX2NydGMpOwpAQCAtOTc2NCw2ICs5NzY4LDcgQEAgc3RhdGlj IGludCBpbnRlbF9jcnRjX3BhZ2VfZmxpcChzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJd29yay0+ ZXZlbnQgPSBldmVudDsKIAl3b3JrLT5jcnRjID0gY3J0YzsKIAl3b3JrLT5vbGRfZmJfb2JqID0g aW50ZWxfZmJfb2JqKG9sZF9mYik7CisJd29yay0+b2xkX3RpbGluZ19tb2RlID0gdG9faW50ZWxf ZnJhbWVidWZmZXIob2xkX2ZiKS0+dGlsaW5nX21vZGU7CiAJSU5JVF9XT1JLKCZ3b3JrLT53b3Jr LCBpbnRlbF91bnBpbl93b3JrX2ZuKTsKIAogCXJldCA9IGRybV9jcnRjX3ZibGFua19nZXQoY3J0 Yyk7CkBAIC05ODE0LDcgKzk4MTksOCBAQCBzdGF0aWMgaW50IGludGVsX2NydGNfcGFnZV9mbGlw KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogCWlmIChJU19WQUxMRVlWSUVXKGRldikpIHsKIAkJ cmluZyA9ICZkZXZfcHJpdi0+cmluZ1tCQ1NdOwotCQlpZiAob2JqLT50aWxpbmdfbW9kZSAhPSB3 b3JrLT5vbGRfZmJfb2JqLT50aWxpbmdfbW9kZSkKKwkJaWYgKHRvX2ludGVsX2ZyYW1lYnVmZmVy KGZiKS0+dGlsaW5nX21vZGUgIT0KKwkJICAgIHdvcmstPm9sZF90aWxpbmdfbW9kZSkKIAkJCS8q IHZsdjogRElTUExBWV9GTElQIGZhaWxzIHRvIGNoYW5nZSB0aWxpbmcgKi8KIAkJCXJpbmcgPSBO VUxMOwogCX0gZWxzZSBpZiAoSVNfSVZZQlJJREdFKGRldikgfHwgSVNfSEFTV0VMTChkZXYpKSB7 CkBAIC0xMjE5MCw3ICsxMjE5Niw4IEBAIGludGVsX2NoZWNrX2N1cnNvcl9wbGFuZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKIAogCS8qIHdlIG9ubHkgbmVlZCB0byBwaW4gaW5zaWRlIEdUVCBp ZiBjdXJzb3IgaXMgbm9uLXBoeSAqLwogCW11dGV4X2xvY2soJmRldi0+c3RydWN0X211dGV4KTsK LQlpZiAoIUlOVEVMX0lORk8oZGV2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2FsICYmIG9iai0+dGls aW5nX21vZGUpIHsKKwlpZiAoIUlOVEVMX0lORk8oZGV2KS0+Y3Vyc29yX25lZWRzX3BoeXNpY2Fs ICYmCisJICAgIHRvX2ludGVsX2ZyYW1lYnVmZmVyKGZiKS0+dGlsaW5nX21vZGUpIHsKIAkJRFJN X0RFQlVHX0tNUygiY3Vyc29yIGNhbm5vdCBiZSB0aWxlZFxuIik7CiAJCXJldCA9IC1FSU5WQUw7 CiAJfQpAQCAtMTI3NzIsNiArMTI3NzksNyBAQCBzdGF0aWMgaW50IGludGVsX2ZyYW1lYnVmZmVy X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKIAlkcm1faGVscGVyX21vZGVfZmlsbF9mYl9z dHJ1Y3QoJmludGVsX2ZiLT5iYXNlLCBtb2RlX2NtZCk7CiAJaW50ZWxfZmItPm9iaiA9IG9iajsK IAlpbnRlbF9mYi0+b2JqLT5mcmFtZWJ1ZmZlcl9yZWZlcmVuY2VzKys7CisJaW50ZWxfZmItPnRp bGluZ19tb2RlID0gb2JqLT50aWxpbmdfbW9kZTsKIAogCXJldCA9IGRybV9mcmFtZWJ1ZmZlcl9p bml0KGRldiwgJmludGVsX2ZiLT5iYXNlLCAmaW50ZWxfZmJfZnVuY3MpOwogCWlmIChyZXQpIHsK ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggZWVmNzljYy4uYjhkOGExZCAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZHJ2LmgKQEAgLTEyMCw2ICsxMjAsNyBAQCBlbnVtIGludGVsX291dHB1dF90 eXBlIHsKIHN0cnVjdCBpbnRlbF9mcmFtZWJ1ZmZlciB7CiAJc3RydWN0IGRybV9mcmFtZWJ1ZmZl ciBiYXNlOwogCXN0cnVjdCBkcm1faTkxNV9nZW1fb2JqZWN0ICpvYmo7CisJdW5zaWduZWQgaW50 IHRpbGluZ19tb2RlOwogfTsKIAogc3RydWN0IGludGVsX2ZiZGV2IHsKQEAgLTcyMyw2ICs3MjQs NyBAQCBzdHJ1Y3QgaW50ZWxfdW5waW5fd29yayB7CiAJaW50IGZsaXBfcXVldWVkX3ZibGFuazsK IAlpbnQgZmxpcF9yZWFkeV92Ymxhbms7CiAJYm9vbCBlbmFibGVfc3RhbGxfY2hlY2s7CisJdW5z aWduZWQgaW50IG9sZF90aWxpbmdfbW9kZTsKIH07CiAKIHN0cnVjdCBpbnRlbF9zZXRfY29uZmln IHsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9wbS5jCmluZGV4IDZlY2U2NjMuLjBjYTQwODggMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BtLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcG0uYwpAQCAtMTE4MiwxMiArMTE4MiwxMSBAQCBzdGF0aWMgdm9pZCBpOXh4 X3VwZGF0ZV93bShzdHJ1Y3QgZHJtX2NydGMgKnVudXNlZF9jcnRjKQogCURSTV9ERUJVR19LTVMo IkZJRk8gd2F0ZXJtYXJrcyAtIEE6ICVkLCBCOiAlZFxuIiwgcGxhbmVhX3dtLCBwbGFuZWJfd20p OwogCiAJaWYgKElTX0k5MTVHTShkZXYpICYmIGVuYWJsZWQpIHsKLQkJc3RydWN0IGRybV9pOTE1 X2dlbV9vYmplY3QgKm9iajsKLQotCQlvYmogPSBpbnRlbF9mYl9vYmooZW5hYmxlZC0+cHJpbWFy eS0+ZmIpOworCQlzdHJ1Y3QgaW50ZWxfZnJhbWVidWZmZXIgKmludGVsX2ZiOwogCiAJCS8qIHNl bGYtcmVmcmVzaCBzZWVtcyBidXN0ZWQgd2l0aCB1bnRpbGVkICovCi0JCWlmIChvYmotPnRpbGlu Z19tb2RlID09IEk5MTVfVElMSU5HX05PTkUpCisJCWludGVsX2ZiID0gdG9faW50ZWxfZnJhbWVi dWZmZXIoZW5hYmxlZC0+cHJpbWFyeS0+ZmIpOworCQlpZiAoaW50ZWxfZmItPnRpbGluZ19tb2Rl ID09IEk5MTVfVElMSU5HX05PTkUpCiAJCQllbmFibGVkID0gTlVMTDsKIAl9CiAKZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3Nwcml0ZS5jIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfc3ByaXRlLmMKaW5kZXggMGE1MmM0NC4uMDY1OTgwMiAxMDA2NDQKLS0tIGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfc3ByaXRlLmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfc3ByaXRlLmMKQEAgLTI0NSw3ICsyNDUsNyBAQCBza2xfdXBkYXRlX3BsYW5l KHN0cnVjdCBkcm1fcGxhbmUgKmRybV9wbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQlC VUcoKTsKIAl9CiAKLQlzd2l0Y2ggKG9iai0+dGlsaW5nX21vZGUpIHsKKwlzd2l0Y2ggKHRvX2lu dGVsX2ZyYW1lYnVmZmVyKGZiKS0+dGlsaW5nX21vZGUpIHsKIAljYXNlIEk5MTVfVElMSU5HX05P TkU6CiAJCXN0cmlkZSA9IGZiLT5waXRjaGVzWzBdID4+IDY7CiAJCWJyZWFrOwpAQCAtNDEzLDYg KzQxMyw3IEBAIHZsdl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHBsYW5lLCBzdHJ1 Y3QgZHJtX2NydGMgKmNydGMsCiAJdTMyIHNwcmN0bDsKIAl1bnNpZ25lZCBsb25nIHNwcnN1cmZf b2Zmc2V0LCBsaW5lYXJfb2Zmc2V0OwogCWludCBwaXhlbF9zaXplID0gZHJtX2Zvcm1hdF9wbGFu ZV9jcHAoZmItPnBpeGVsX2Zvcm1hdCwgMCk7CisJdW5zaWduZWQgaW50IHRpbGluZ19tb2RlID0g dG9faW50ZWxfZnJhbWVidWZmZXIoZmIpLT50aWxpbmdfbW9kZTsKIAogCXNwcmN0bCA9IEk5MTVf UkVBRChTUENOVFIocGlwZSwgcGxhbmUpKTsKIApAQCAtNDcxLDcgKzQ3Miw3IEBAIHZsdl91cGRh dGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMs CiAJICovCiAJc3ByY3RsIHw9IFNQX0dBTU1BX0VOQUJMRTsKIAotCWlmIChvYmotPnRpbGluZ19t b2RlICE9IEk5MTVfVElMSU5HX05PTkUpCisJaWYgKHRpbGluZ19tb2RlICE9IEk5MTVfVElMSU5H X05PTkUpCiAJCXNwcmN0bCB8PSBTUF9USUxFRDsKIAogCXNwcmN0bCB8PSBTUF9FTkFCTEU7CkBA IC00ODgsNyArNDg5LDcgQEAgdmx2X3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpkcGxh bmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAogCWxpbmVhcl9vZmZzZXQgPSB5ICogZmItPnBp dGNoZXNbMF0gKyB4ICogcGl4ZWxfc2l6ZTsKIAlzcHJzdXJmX29mZnNldCA9IGludGVsX2dlbjRf Y29tcHV0ZV9wYWdlX29mZnNldCgmeCwgJnksCi0JCQkJCQkJb2JqLT50aWxpbmdfbW9kZSwKKwkJ CQkJCQl0aWxpbmdfbW9kZSwKIAkJCQkJCQlwaXhlbF9zaXplLAogCQkJCQkJCWZiLT5waXRjaGVz WzBdKTsKIAlsaW5lYXJfb2Zmc2V0IC09IHNwcnN1cmZfb2Zmc2V0OwpAQCAtNTA5LDcgKzUxMCw3 IEBAIHZsdl91cGRhdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqZHBsYW5lLCBzdHJ1Y3QgZHJt X2NydGMgKmNydGMsCiAJSTkxNV9XUklURShTUFNUUklERShwaXBlLCBwbGFuZSksIGZiLT5waXRj aGVzWzBdKTsKIAlJOTE1X1dSSVRFKFNQUE9TKHBpcGUsIHBsYW5lKSwgKGNydGNfeSA8PCAxNikg fCBjcnRjX3gpOwogCi0JaWYgKG9iai0+dGlsaW5nX21vZGUgIT0gSTkxNV9USUxJTkdfTk9ORSkK KwlpZiAodGlsaW5nX21vZGUgIT0gSTkxNV9USUxJTkdfTk9ORSkKIAkJSTkxNV9XUklURShTUFRJ TEVPRkYocGlwZSwgcGxhbmUpLCAoeSA8PCAxNikgfCB4KTsKIAllbHNlCiAJCUk5MTVfV1JJVEUo U1BMSU5PRkYocGlwZSwgcGxhbmUpLCBsaW5lYXJfb2Zmc2V0KTsKQEAgLTYxMyw2ICs2MTQsNyBA QCBpdmJfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCiAJdTMyIHNwcmN0bCwgc3Byc2NhbGUgPSAwOwogCXVuc2lnbmVkIGxvbmcgc3By c3VyZl9vZmZzZXQsIGxpbmVhcl9vZmZzZXQ7CiAJaW50IHBpeGVsX3NpemUgPSBkcm1fZm9ybWF0 X3BsYW5lX2NwcChmYi0+cGl4ZWxfZm9ybWF0LCAwKTsKKwl1bnNpZ25lZCBpbnQgdGlsaW5nX21v ZGUgPSB0b19pbnRlbF9mcmFtZWJ1ZmZlcihmYiktPnRpbGluZ19tb2RlOwogCiAJc3ByY3RsID0g STkxNV9SRUFEKFNQUkNUTChwaXBlKSk7CiAKQEAgLTY1Miw3ICs2NTQsNyBAQCBpdmJfdXBkYXRl X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAJ ICovCiAJc3ByY3RsIHw9IFNQUklURV9HQU1NQV9FTkFCTEU7CiAKLQlpZiAob2JqLT50aWxpbmdf bW9kZSAhPSBJOTE1X1RJTElOR19OT05FKQorCWlmICh0aWxpbmdfbW9kZSAhPSBJOTE1X1RJTElO R19OT05FKQogCQlzcHJjdGwgfD0gU1BSSVRFX1RJTEVEOwogCiAJaWYgKElTX0hBU1dFTEwoZGV2 KSB8fCBJU19CUk9BRFdFTEwoZGV2KSkKQEAgLTY4MCw3ICs2ODIsNyBAQCBpdmJfdXBkYXRlX3Bs YW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCiAKIAls aW5lYXJfb2Zmc2V0ID0geSAqIGZiLT5waXRjaGVzWzBdICsgeCAqIHBpeGVsX3NpemU7CiAJc3By c3VyZl9vZmZzZXQgPQotCQlpbnRlbF9nZW40X2NvbXB1dGVfcGFnZV9vZmZzZXQoJngsICZ5LCBv YmotPnRpbGluZ19tb2RlLAorCQlpbnRlbF9nZW40X2NvbXB1dGVfcGFnZV9vZmZzZXQoJngsICZ5 LCB0aWxpbmdfbW9kZSwKIAkJCQkJICAgICAgIHBpeGVsX3NpemUsIGZiLT5waXRjaGVzWzBdKTsK IAlsaW5lYXJfb2Zmc2V0IC09IHNwcnN1cmZfb2Zmc2V0OwogCkBAIC03MDUsNyArNzA3LDcgQEAg aXZiX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRj ICpjcnRjLAogCSAqIHJlZ2lzdGVyICovCiAJaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJU19CUk9B RFdFTEwoZGV2KSkKIAkJSTkxNV9XUklURShTUFJPRkZTRVQocGlwZSksICh5IDw8IDE2KSB8IHgp OwotCWVsc2UgaWYgKG9iai0+dGlsaW5nX21vZGUgIT0gSTkxNV9USUxJTkdfTk9ORSkKKwllbHNl IGlmICh0aWxpbmdfbW9kZSAhPSBJOTE1X1RJTElOR19OT05FKQogCQlJOTE1X1dSSVRFKFNQUlRJ TEVPRkYocGlwZSksICh5IDw8IDE2KSB8IHgpOwogCWVsc2UKIAkJSTkxNV9XUklURShTUFJMSU5P RkYocGlwZSksIGxpbmVhcl9vZmZzZXQpOwpAQCAtODE4LDYgKzgyMCw3IEBAIGlsa191cGRhdGVf cGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKIAl1 bnNpZ25lZCBsb25nIGR2c3N1cmZfb2Zmc2V0LCBsaW5lYXJfb2Zmc2V0OwogCXUzMiBkdnNjbnRy LCBkdnNzY2FsZTsKIAlpbnQgcGl4ZWxfc2l6ZSA9IGRybV9mb3JtYXRfcGxhbmVfY3BwKGZiLT5w aXhlbF9mb3JtYXQsIDApOworCXVuc2lnbmVkIGludCB0aWxpbmdfbW9kZSA9IHRvX2ludGVsX2Zy YW1lYnVmZmVyKGZiKS0+dGlsaW5nX21vZGU7CiAKIAlkdnNjbnRyID0gSTkxNV9SRUFEKERWU0NO VFIocGlwZSkpOwogCkBAIC04NTcsNyArODYwLDcgQEAgaWxrX3VwZGF0ZV9wbGFuZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwgc3RydWN0IGRybV9jcnRjICpjcnRjLAogCSAqLwogCWR2c2NudHIg fD0gRFZTX0dBTU1BX0VOQUJMRTsKIAotCWlmIChvYmotPnRpbGluZ19tb2RlICE9IEk5MTVfVElM SU5HX05PTkUpCisJaWYgKHRpbGluZ19tb2RlICE9IEk5MTVfVElMSU5HX05PTkUpCiAJCWR2c2Nu dHIgfD0gRFZTX1RJTEVEOwogCiAJaWYgKElTX0dFTjYoZGV2KSkKQEAgLTg4MCw3ICs4ODMsNyBA QCBpbGtfdXBkYXRlX3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLCBzdHJ1Y3QgZHJtX2Ny dGMgKmNydGMsCiAKIAlsaW5lYXJfb2Zmc2V0ID0geSAqIGZiLT5waXRjaGVzWzBdICsgeCAqIHBp eGVsX3NpemU7CiAJZHZzc3VyZl9vZmZzZXQgPQotCQlpbnRlbF9nZW40X2NvbXB1dGVfcGFnZV9v ZmZzZXQoJngsICZ5LCBvYmotPnRpbGluZ19tb2RlLAorCQlpbnRlbF9nZW40X2NvbXB1dGVfcGFn ZV9vZmZzZXQoJngsICZ5LCB0aWxpbmdfbW9kZSwKIAkJCQkJICAgICAgIHBpeGVsX3NpemUsIGZi LT5waXRjaGVzWzBdKTsKIAlsaW5lYXJfb2Zmc2V0IC09IGR2c3N1cmZfb2Zmc2V0OwogCkBAIC04 OTcsNyArOTAwLDcgQEAgaWxrX3VwZGF0ZV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwg c3RydWN0IGRybV9jcnRjICpjcnRjLAogCUk5MTVfV1JJVEUoRFZTU1RSSURFKHBpcGUpLCBmYi0+ cGl0Y2hlc1swXSk7CiAJSTkxNV9XUklURShEVlNQT1MocGlwZSksIChjcnRjX3kgPDwgMTYpIHwg Y3J0Y194KTsKIAotCWlmIChvYmotPnRpbGluZ19tb2RlICE9IEk5MTVfVElMSU5HX05PTkUpCisJ aWYgKHRpbGluZ19tb2RlICE9IEk5MTVfVElMSU5HX05PTkUpCiAJCUk5MTVfV1JJVEUoRFZTVElM RU9GRihwaXBlKSwgKHkgPDwgMTYpIHwgeCk7CiAJZWxzZQogCQlJOTE1X1dSSVRFKERWU0xJTk9G RihwaXBlKSwgbGluZWFyX29mZnNldCk7CkBAIC0xMDc2LDcgKzEwNzksNiBAQCBpbnRlbF9jaGVj a19zcHJpdGVfcGxhbmUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUsCiAJc3RydWN0IGludGVsX2Ny dGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKHN0YXRlLT5iYXNlLmNydGMpOwogCXN0cnVj dCBpbnRlbF9wbGFuZSAqaW50ZWxfcGxhbmUgPSB0b19pbnRlbF9wbGFuZShwbGFuZSk7CiAJc3Ry dWN0IGRybV9mcmFtZWJ1ZmZlciAqZmIgPSBzdGF0ZS0+YmFzZS5mYjsKLQlzdHJ1Y3QgZHJtX2k5 MTVfZ2VtX29iamVjdCAqb2JqID0gaW50ZWxfZmJfb2JqKGZiKTsKIAlpbnQgY3J0Y194LCBjcnRj X3k7CiAJdW5zaWduZWQgaW50IGNydGNfdywgY3J0Y19oOwogCXVpbnQzMl90IHNyY194LCBzcmNf eSwgc3JjX3csIHNyY19oOwpAQCAtMTEwNyw3ICsxMTA5LDcgQEAgaW50ZWxfY2hlY2tfc3ByaXRl X3BsYW5lKHN0cnVjdCBkcm1fcGxhbmUgKnBsYW5lLAogCX0KIAogCS8qIFNwcml0ZSBwbGFuZXMg Y2FuIGJlIGxpbmVhciBvciB4LXRpbGVkIHN1cmZhY2VzICovCi0Jc3dpdGNoIChvYmotPnRpbGlu Z19tb2RlKSB7CisJc3dpdGNoICh0b19pbnRlbF9mcmFtZWJ1ZmZlcihmYiktPnRpbGluZ19tb2Rl KSB7CiAJCWNhc2UgSTkxNV9USUxJTkdfTk9ORToKIAkJY2FzZSBJOTE1X1RJTElOR19YOgogCQkJ YnJlYWs7Ci0tIAoyLjIuMgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRl bC1nZngK