From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 12/20] drm/i915: skip modeset if compatible, and enable fastboot for everyone, v2. Date: Tue, 7 Jul 2015 09:08:23 +0200 Message-ID: <1436252911-5703-13-git-send-email-maarten.lankhorst@linux.intel.com> References: <1436252911-5703-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 544006E4BF for ; Tue, 7 Jul 2015 00:08:50 -0700 (PDT) In-Reply-To: <1436252911-5703-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 Tm93IHRoYXQgd2UgcmVhZCBvdXQgdGhlIGZ1bGwgYXRvbWljIHN0YXRlIHdlIGNhbiBmb3JjZSBm YXN0Ym9vdAp3aXRob3V0IGhhY2tzLiBUaGUgb25seSB0aGluZyB0aGF0IHdlIGhhdmUgdG8gd29y cnkgYWJvdXQgaXMKcHJldmVudGluZyB1bm5lZWRlZCBtb2Rlc2V0cy4gVGhpcyBjYW4gYmUgZWFz aWx5IGRvbmUgYnkgY2FsY3VsYXRpbmcKaWYgdGhlIG5ldyBzdGF0ZSBtYXRjaGVzIHRoZSBvbGQg c3RhdGUsIHdpdGggZXhjZXB0aW9uIGZvciBwZml0IGFuZApwaXBlIHNpemUuIEJlY2F1c2UgdGhl IG9yaWdpbmFsIGZhc3Rib290IGNvZGUgb25seSB0b3VjaGVkIHBpcGUgc2l6ZQphbmQgcGFuZWwg Zml0dGVyIHdlIGNhbiBrZWVwIHRoYXQgYXMgYmFzZSBvcHRpb25zIGluCnBpcGVfY29uZmlnX2Nv bXBhcmUsIGFuZCBwYXRjaCBpdCB1cCBpbnNpZGUgaW50ZWxfdXBkYXRlX3BpcGVfY29uZmlnLgoK VGhpcyB3YXMgY2F1c2luZyBhIGJsYWNrIHNjcmVlbiBvbiBoYXN3ZWxsIGJlY2F1c2UgdGhlIGh3 IGRvZXNuJ3Qgc2V0CnVwIGNzYywgc28gbWFrZSBzdXJlIGludGVsX3NldF9waXBlX2NzYyBpcyBj YWxsZWQgZHVyaW5nIGNydGMKc2FuaXRpemF0aW9uLgoKQ2hhbmdlcyBzaW5jZSB2MToKLSBDYWxs IGludGVsX3NldF9waXBlX2NzYyBkdXJpbmcgc2FuaXRpemVfY3J0YywgdGhhbmtzIGZvciBmaW5k aW5nIGl0CiAgRGFuaWVsIFN0b25lIQotIEdldCByaWQgb2YgSU5IRVJJVEVEX01PREUsIHRoZSBp bml0aWFsIG1vZGUgY2hhbmdlcyB3aWxsIGZvcmNlIGEKICBtb2Rlc2V0LgoKU2lnbmVkLW9mZi1i eTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4LmludGVsLmNvbT4K LS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jICAgfCAgIDUgLS0KIGRyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICB8ICAgMiArLQogZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jIHwgMTU3ICsrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaCAgICAgfCAgIDMgKy0KIGRy aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMgICB8ICAgMyAtCiA1IGZpbGVzIGNoYW5n ZWQsIDk0IGluc2VydGlvbnMoKyksIDc2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfcGFyYW1zLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3BhcmFtcy5jCmluZGV4IDc5ODNmZTQ4YTY1NC4uZDZmOWQ5YTExN2I2IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3BhcmFtcy5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2k5MTVfcGFyYW1zLmMKQEAgLTQwLDcgKzQwLDYgQEAgc3RydWN0IGk5MTVfcGFyYW1zIGk5 MTUgX19yZWFkX21vc3RseSA9IHsKIAkucHJlbGltaW5hcnlfaHdfc3VwcG9ydCA9IElTX0VOQUJM RUQoQ09ORklHX0RSTV9JOTE1X1BSRUxJTUlOQVJZX0hXX1NVUFBPUlQpLAogCS5kaXNhYmxlX3Bv d2VyX3dlbGwgPSAxLAogCS5lbmFibGVfaXBzID0gMSwKLQkuZmFzdGJvb3QgPSAwLAogCS5wcmVm YXVsdF9kaXNhYmxlID0gMCwKIAkubG9hZF9kZXRlY3RfdGVzdCA9IDAsCiAJLnJlc2V0ID0gdHJ1 ZSwKQEAgLTEzMSwxMCArMTMwLDYgQEAgTU9EVUxFX1BBUk1fREVTQyhkaXNhYmxlX3Bvd2VyX3dl bGwsCiBtb2R1bGVfcGFyYW1fbmFtZWQoZW5hYmxlX2lwcywgaTkxNS5lbmFibGVfaXBzLCBpbnQs IDA2MDApOwogTU9EVUxFX1BBUk1fREVTQyhlbmFibGVfaXBzLCAiRW5hYmxlIElQUyAoZGVmYXVs dDogdHJ1ZSkiKTsKIAotbW9kdWxlX3BhcmFtX25hbWVkKGZhc3Rib290LCBpOTE1LmZhc3Rib290 LCBib29sLCAwNjAwKTsKLU1PRFVMRV9QQVJNX0RFU0MoZmFzdGJvb3QsCi0JIlRyeSB0byBza2lw IHVubmVjZXNzYXJ5IG1vZGUgc2V0cyBhdCBib290IHRpbWUgKGRlZmF1bHQ6IGZhbHNlKSIpOwot CiBtb2R1bGVfcGFyYW1fbmFtZWRfdW5zYWZlKHByZWZhdWx0X2Rpc2FibGUsIGk5MTUucHJlZmF1 bHRfZGlzYWJsZSwgYm9vbCwgMDYwMCk7CiBNT0RVTEVfUEFSTV9ERVNDKHByZWZhdWx0X2Rpc2Fi bGUsCiAJIkRpc2FibGUgcGFnZSBwcmVmYXVsdGluZyBmb3IgcHJlYWQvcHdyaXRlL3JlbG9jIChk ZWZhdWx0OmZhbHNlKS4gIgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf YXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdG9taWMuYwppbmRleCBiNTkz NjEyYTkxN2QuLjBiYmRjMmZjNTI5OCAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfYXRvbWljLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMK QEAgLTIyMSw4ICsyMjEsOCBAQCBpbnRlbF9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJt X2NydGMgKmNydGMpCiAJCXJldHVybiBOVUxMOwogCiAJX19kcm1fYXRvbWljX2hlbHBlcl9jcnRj X2R1cGxpY2F0ZV9zdGF0ZShjcnRjLCAmY3J0Y19zdGF0ZS0+YmFzZSk7Ci0KIAljcnRjX3N0YXRl LT5iYXNlLmNydGMgPSBjcnRjOworCWNydGNfc3RhdGUtPnVwZGF0ZV9waXBlID0gZmFsc2U7CiAK IAlyZXR1cm4gJmNydGNfc3RhdGUtPmJhc2U7CiB9CmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNw bGF5LmMKaW5kZXggYTg4N2JkY2E1M2MwLi4xNjM3MzMwOWRjYWUgMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMKQEAgLTExMCw2ICsxMTAsOSBAQCBzdGF0aWMgdm9pZCBza2xfaW5p dF9zY2FsZXJzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBpbnRlbF9jcnRjICppbnRl bF9jcgogc3RhdGljIGludCBpOXh4X2dldF9yZWZjbGsoY29uc3Qgc3RydWN0IGludGVsX2NydGNf c3RhdGUgKmNydGNfc3RhdGUsCiAJCQkgICBpbnQgbnVtX2Nvbm5lY3RvcnMpOwogc3RhdGljIHZv aWQgaW50ZWxfcHJlX2Rpc2FibGVfcHJpbWFyeShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOworc3Rh dGljIHZvaWQgc2t5bGFrZV9wZml0X2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0Yyk7Citz dGF0aWMgdm9pZCBpcm9ubGFrZV9wZml0X2Rpc2FibGUoc3RydWN0IGludGVsX2NydGMgKmNydGMs IGJvb2wgZm9yY2UpOworc3RhdGljIHZvaWQgaXJvbmxha2VfcGZpdF9lbmFibGUoc3RydWN0IGlu dGVsX2NydGMgKmNydGMpOwogc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0 ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KTsKIAogc3RhdGljIHN0cnVjdCBpbnRlbF9lbmNvZGVy ICppbnRlbF9maW5kX2VuY29kZXIoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBp bnQgcGlwZSkKQEAgLTMyOTksMTQgKzMzMDIsMTcgQEAgc3RhdGljIGJvb2wgaW50ZWxfY3J0Y19o YXNfcGVuZGluZ19mbGlwKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIAlyZXR1cm4gcGVuZGluZzsK IH0KIAotc3RhdGljIHZvaWQgaW50ZWxfdXBkYXRlX3BpcGVfc2l6ZShzdHJ1Y3QgaW50ZWxfY3J0 YyAqY3J0YykKK3N0YXRpYyB2b2lkIGludGVsX3VwZGF0ZV9waXBlX2NvbmZpZyhzdHJ1Y3QgaW50 ZWxfY3J0YyAqY3J0YywKKwkJCQkgICAgIHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0 Y19zdGF0ZSkKIHsKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+YmFzZS5kZXY7CiAJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKLQlj b25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqYWRqdXN0ZWRfbW9kZTsKKwlzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQorCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGMt PmJhc2Uuc3RhdGUpOwogCi0JaWYgKCFpOTE1LmZhc3Rib290KQotCQlyZXR1cm47CisJRFJNX0RF QlVHX0tNUygiVXBkYXRpbmcgcGlwZSBzaXplICVpeCVpIC0+ICVpeCVpXG4iLAorCQkgICAgICBv bGRfY3J0Y19zdGF0ZS0+cGlwZV9zcmNfdywgb2xkX2NydGNfc3RhdGUtPnBpcGVfc3JjX2gsCisJ CSAgICAgIHBpcGVfY29uZmlnLT5waXBlX3NyY193LCBwaXBlX2NvbmZpZy0+cGlwZV9zcmNfaCk7 CiAKIAkvKgogCSAqIFVwZGF0ZSBwaXBlIHNpemUgYW5kIGFkanVzdCBmaXR0ZXIgaWYgbmVlZGVk OiB0aGUgcmVhc29uIGZvciB0aGlzIGlzCkBAIC0zMzE1LDI3ICszMzIxLDI2IEBAIHN0YXRpYyB2 b2lkIGludGVsX3VwZGF0ZV9waXBlX3NpemUoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJICog ZmFzdGJvb3QgY2FzZSwgd2UnbGwgZmxpcCwgYnV0IGlmIHdlIGRvbid0IHVwZGF0ZSB0aGUgcGlw ZXNyYyBhbmQKIAkgKiBwZml0IHN0YXRlLCB3ZSdsbCBlbmQgdXAgd2l0aCBhIGJpZyBmYiBzY2Fu bmVkIG91dCBpbnRvIHRoZSB3cm9uZwogCSAqIHNpemVkIHN1cmZhY2UuCi0JICoKLQkgKiBUbyBm aXggdGhpcyBwcm9wZXJseSwgd2UgbmVlZCB0byBob2lzdCB0aGUgY2hlY2tzIHVwIGludG8KLQkg KiBjb21wdXRlX21vZGVfY2hhbmdlcyAob3IgYWJvdmUpLCBjaGVjayB0aGUgYWN0dWFsIHBmaXQg c3RhdGUgYW5kCi0JICogd2hldGhlciB0aGUgcGxhdGZvcm0gYWxsb3dzIHBmaXQgZGlzYWJsZSB3 aXRoIHBpcGUgYWN0aXZlLCBhbmQgb25seQotCSAqIHRoZW4gdXBkYXRlIHRoZSBwaXBlc3JjIGFu ZCBwZml0IHN0YXRlLCBldmVuIG9uIHRoZSBmbGlwIHBhdGguCiAJICovCiAKLQlhZGp1c3RlZF9t b2RlID0gJmNydGMtPmNvbmZpZy0+YmFzZS5hZGp1c3RlZF9tb2RlOwotCiAJSTkxNV9XUklURShQ SVBFU1JDKGNydGMtPnBpcGUpLAotCQkgICAoKGFkanVzdGVkX21vZGUtPmNydGNfaGRpc3BsYXkg LSAxKSA8PCAxNikgfAotCQkgICAoYWRqdXN0ZWRfbW9kZS0+Y3J0Y192ZGlzcGxheSAtIDEpKTsK LQlpZiAoIWNydGMtPmNvbmZpZy0+cGNoX3BmaXQuZW5hYmxlZCAmJgotCSAgICAoaW50ZWxfcGlw ZV9oYXNfdHlwZShjcnRjLCBJTlRFTF9PVVRQVVRfTFZEUykgfHwKLQkgICAgIGludGVsX3BpcGVf aGFzX3R5cGUoY3J0YywgSU5URUxfT1VUUFVUX0VEUCkpKSB7Ci0JCUk5MTVfV1JJVEUoUEZfQ1RM KGNydGMtPnBpcGUpLCAwKTsKLQkJSTkxNV9XUklURShQRl9XSU5fUE9TKGNydGMtPnBpcGUpLCAw KTsKLQkJSTkxNV9XUklURShQRl9XSU5fU1ooY3J0Yy0+cGlwZSksIDApOworCQkgICAoKHBpcGVf Y29uZmlnLT5waXBlX3NyY193IC0gMSkgPDwgMTYpIHwKKwkJICAgKHBpcGVfY29uZmlnLT5waXBl X3NyY19oIC0gMSkpOworCisJLyogb24gc2t5bGFrZSB0aGlzIGlzIGRvbmUgYnkgZGV0YWNoaW5n IHNjYWxlcnMgKi8KKwlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPT0gOSkgeworCQlza2xfZGV0 YWNoX3NjYWxlcnMoY3J0Yyk7CisKKwkJaWYgKHBpcGVfY29uZmlnLT5wY2hfcGZpdC5lbmFibGVk KQorCQkJc2t5bGFrZV9wZml0X2VuYWJsZShjcnRjKTsKKwl9CisJZWxzZSBpZiAoSU5URUxfSU5G TyhkZXYpLT5nZW4gPCA5ICYmCisJICAgICAgICAgSEFTX1BDSF9TUExJVChkZXYpKSB7CisJCWlm IChwaXBlX2NvbmZpZy0+cGNoX3BmaXQuZW5hYmxlZCkKKwkJCWlyb25sYWtlX3BmaXRfZW5hYmxl KGNydGMpOworCQllbHNlIGlmIChvbGRfY3J0Y19zdGF0ZS0+cGNoX3BmaXQuZW5hYmxlZCkKKwkJ CWlyb25sYWtlX3BmaXRfZGlzYWJsZShjcnRjLCB0cnVlKTsKIAl9Ci0JY3J0Yy0+Y29uZmlnLT5w aXBlX3NyY193ID0gYWRqdXN0ZWRfbW9kZS0+Y3J0Y19oZGlzcGxheTsKLQljcnRjLT5jb25maWct PnBpcGVfc3JjX2ggPSBhZGp1c3RlZF9tb2RlLT5jcnRjX3ZkaXNwbGF5OwogfQogCiBzdGF0aWMg dm9pZCBpbnRlbF9mZGlfbm9ybWFsX3RyYWluKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKQEAgLTQ5 OTMsNyArNDk5OCw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGRy bV9jcnRjICpjcnRjKQogCX0KIH0KIAotc3RhdGljIHZvaWQgaXJvbmxha2VfcGZpdF9kaXNhYmxl KHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQorc3RhdGljIHZvaWQgaXJvbmxha2VfcGZpdF9kaXNh YmxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjLCBib29sIGZvcmNlKQogewogCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5iYXNlLmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwpAQCAtNTAwMSw3ICs1MDA2LDcgQEAgc3RhdGlj IHZvaWQgaXJvbmxha2VfcGZpdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjICpjcnRjKQogCiAJ LyogVG8gYXZvaWQgdXBzZXR0aW5nIHRoZSBwb3dlciB3ZWxsIG9uIGhhc3dlbGwgb25seSBkaXNh YmxlIHRoZSBwZml0IGlmCiAJICogaXQncyBpbiB1c2UuIFRoZSBodyBzdGF0ZSBjb2RlIHdpbGwg bWFrZSBzdXJlIHdlIGdldCB0aGlzIHJpZ2h0LiAqLwotCWlmIChjcnRjLT5jb25maWctPnBjaF9w Zml0LmVuYWJsZWQpIHsKKwlpZiAoZm9yY2UgfHwgY3J0Yy0+Y29uZmlnLT5wY2hfcGZpdC5lbmFi bGVkKSB7CiAJCUk5MTVfV1JJVEUoUEZfQ1RMKHBpcGUpLCAwKTsKIAkJSTkxNV9XUklURShQRl9X SU5fUE9TKHBpcGUpLCAwKTsKIAkJSTkxNV9XUklURShQRl9XSU5fU1oocGlwZSksIDApOwpAQCAt NTAyOCw3ICs1MDMzLDcgQEAgc3RhdGljIHZvaWQgaXJvbmxha2VfY3J0Y19kaXNhYmxlKHN0cnVj dCBkcm1fY3J0YyAqY3J0YykKIAogCWludGVsX2Rpc2FibGVfcGlwZShpbnRlbF9jcnRjKTsKIAot CWlyb25sYWtlX3BmaXRfZGlzYWJsZShpbnRlbF9jcnRjKTsKKwlpcm9ubGFrZV9wZml0X2Rpc2Fi bGUoaW50ZWxfY3J0YywgZmFsc2UpOwogCiAJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+aGFzX3Bj aF9lbmNvZGVyKQogCQlpcm9ubGFrZV9mZGlfZGlzYWJsZShjcnRjKTsKQEAgLTUwODgsNyArNTA5 Myw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAq Y3J0YykKIAlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPT0gOSkKIAkJc2t5bGFrZV9zY2FsZXJf ZGlzYWJsZShpbnRlbF9jcnRjKTsKIAllbHNlIGlmIChJTlRFTF9JTkZPKGRldiktPmdlbiA8IDkp Ci0JCWlyb25sYWtlX3BmaXRfZGlzYWJsZShpbnRlbF9jcnRjKTsKKwkJaXJvbmxha2VfcGZpdF9k aXNhYmxlKGludGVsX2NydGMsIGZhbHNlKTsKIAllbHNlCiAJCU1JU1NJTkdfQ0FTRShJTlRFTF9J TkZPKGRldiktPmdlbik7CiAKQEAgLTUyMzksNyArNTI0NCw4IEBAIHN0YXRpYyB2b2lkIG1vZGVz ZXRfdXBkYXRlX2NydGNfcG93ZXJfZG9tYWlucyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3Rh dGUpCiAJaW50IGk7CiAKIAlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRj X3N0YXRlLCBpKSB7Ci0JCWlmIChuZWVkc19tb2Rlc2V0KGNydGMtPnN0YXRlKSkKKwkJaWYgKG5l ZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpIHx8CisJCSAgICB0b19pbnRlbF9jcnRjX3N0YXRlKGNy dGMtPnN0YXRlKS0+dXBkYXRlX3BpcGUpCiAJCQlwdXRfZG9tYWluc1t0b19pbnRlbF9jcnRjKGNy dGMpLT5waXBlXSA9CiAJCQkJbW9kZXNldF9nZXRfY3J0Y19wb3dlcl9kb21haW5zKGNydGMpOwog CX0KQEAgLTEyMzMxLDcgKzEyMzM3LDYgQEAgc3RhdGljIGJvb2wgaW50ZWxfZnV6enlfY2xvY2tf Y2hlY2soaW50IGNsb2NrMSwgaW50IGNsb2NrMikKIAkJCSAgICBiYXNlLmhlYWQpIFwKIAkJaWYg KG1hc2sgJiAoMSA8PChpbnRlbF9jcnRjKS0+cGlwZSkpCiAKLQogc3RhdGljIGJvb2wKIGludGVs X2NvbXBhcmVfbV9uKHVuc2lnbmVkIGludCBtLCB1bnNpZ25lZCBpbnQgbiwKIAkJICB1bnNpZ25l ZCBpbnQgbTIsIHVuc2lnbmVkIGludCBuMikKQEAgLTEyNTUzLDE4ICsxMjU1OCwyMSBAQCBpbnRl bF9waXBlX2NvbmZpZ19jb21wYXJlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCiAJICogUHJvcGVy IGF0b21pYyBtb2Rlc2V0cyB3aXRoIHJlY29tcHV0ZWQgZ2xvYmFsIHN0YXRlIHdpbGwgZml4IHRo aXMuCiAJICogVW50aWwgdGhlbiBqdXN0IGRvbid0IGNoZWNrIGdtY2ggc3RhdGUgZm9yIGluaGVy aXRlZCBtb2Rlcy4KIAkgKi8KLQlpZiAoIVBJUEVfQ09ORl9RVUlSSyhQSVBFX0NPTkZJR19RVUlS S19JTkhFUklURURfTU9ERSkpIHsKLQkJUElQRV9DT05GX0NIRUNLX0koZ21jaF9wZml0LmNvbnRy b2wpOwotCQkvKiBwZml0IHJhdGlvcyBhcmUgYXV0b2NvbXB1dGVkIGJ5IHRoZSBodyBvbiBnZW40 KyAqLwotCQlpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPCA0KQotCQkJUElQRV9DT05GX0NIRUNL X0koZ21jaF9wZml0LnBnbV9yYXRpb3MpOwotCQlQSVBFX0NPTkZfQ0hFQ0tfSShnbWNoX3BmaXQu bHZkc19ib3JkZXJfYml0cyk7Ci0JfQorCWlmICghYWRqdXN0KSB7CisJCVBJUEVfQ09ORl9DSEVD S19JKHBpcGVfc3JjX3cpOworCQlQSVBFX0NPTkZfQ0hFQ0tfSShwaXBlX3NyY19oKTsKIAotCVBJ UEVfQ09ORl9DSEVDS19JKHBjaF9wZml0LmVuYWJsZWQpOwotCWlmIChjdXJyZW50X2NvbmZpZy0+ cGNoX3BmaXQuZW5hYmxlZCkgewotCQlQSVBFX0NPTkZfQ0hFQ0tfSShwY2hfcGZpdC5wb3MpOwot CQlQSVBFX0NPTkZfQ0hFQ0tfSShwY2hfcGZpdC5zaXplKTsKKwkJUElQRV9DT05GX0NIRUNLX0ko cGNoX3BmaXQuZW5hYmxlZCk7CisJCWlmIChjdXJyZW50X2NvbmZpZy0+cGNoX3BmaXQuZW5hYmxl ZCkgeworCQkJUElQRV9DT05GX0NIRUNLX0kocGNoX3BmaXQucG9zKTsKKwkJCVBJUEVfQ09ORl9D SEVDS19JKHBjaF9wZml0LnNpemUpOworCisJCQlQSVBFX0NPTkZfQ0hFQ0tfSShnbWNoX3BmaXQu Y29udHJvbCk7CisJCQkvKiBwZml0IHJhdGlvcyBhcmUgYXV0b2NvbXB1dGVkIGJ5IHRoZSBodyBv biBnZW40KyAqLworCQkJaWYgKElOVEVMX0lORk8oZGV2KS0+Z2VuIDwgNCkKKwkJCQlQSVBFX0NP TkZfQ0hFQ0tfSShnbWNoX3BmaXQucGdtX3JhdGlvcyk7CisJCQlQSVBFX0NPTkZfQ0hFQ0tfSShn bWNoX3BmaXQubHZkc19ib3JkZXJfYml0cyk7CisJCX0KIAl9CiAKIAlQSVBFX0NPTkZfQ0hFQ0tf SShzY2FsZXJfc3RhdGUuc2NhbGVyX2lkKTsKQEAgLTEzMDQ4LDYgKzEzMDU2LDI5IEBAIHN0YXRp YyBpbnQgaW50ZWxfbW9kZXNldF9hbGxfcGlwZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0 YXRlKQogCXJldHVybiByZXQ7CiB9CiAKK3N0YXRpYyBib29sIGludGVsX21vZGVzZXRfY2FsY191 cGRhdGVfcGlwZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJCSAgIHN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ ZGV2OworCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZyA9CisJCXRvX2ludGVs X2NydGNfc3RhdGUoY3J0Y19zdGF0ZSk7CisJc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9z dGF0ZSA9CisJCXRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpOworCisJaWYgKGNydGNf c3RhdGUtPmFjdGl2ZV9jaGFuZ2VkIHx8IGNydGNfc3RhdGUtPmNvbm5lY3RvcnNfY2hhbmdlZCkK KwkJcmV0dXJuIGZhbHNlOworCisJcGlwZV9jb25maWctPnF1aXJrcyA9IDA7CisJaWYgKCFpbnRl bF9waXBlX2NvbmZpZ19jb21wYXJlKGRldiwgcGlwZV9jb25maWcsIG9sZF9zdGF0ZSwgdHJ1ZSkp IHsKKwkJRFJNX0RFQlVHX0FUT01JQygiW0NSVEM6JWldIG5ldyBzdGF0ZSBpbmNvbXBhdGlibGUs IGZvcmNpbmcgbW9kZXNldFxuIiwKKwkJCQkgY3J0Yy0+YmFzZS5pZCk7CisJCXJldHVybiBmYWxz ZTsKKwl9CisJcGlwZV9jb25maWctPnF1aXJrcyA9IG9sZF9zdGF0ZS0+cXVpcmtzICYgUElQRV9D T05GSUdfUVVJUktfTU9ERV9TWU5DX0ZMQUdTOworCURSTV9ERUJVR19BVE9NSUMoIltDUlRDOiVp XSBuZXcgc3RhdGUgY29tcGF0aWJsZSwgc2tpcHBpbmcgbW9kZXNldFxuIiwKKwkJCSBjcnRjLT5i YXNlLmlkKTsKKwlyZXR1cm4gdHJ1ZTsKK30KIAogLyogQ29kZSB0aGF0IHNob3VsZCBldmVudHVh bGx5IGJlIHBhcnQgb2YgYXRvbWljX2NoZWNrKCkgKi8KIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNl dF9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQpAQCAtMTMxMDYsMzYgKzEz MTM3LDI2IEBAIGludGVsX21vZGVzZXRfY29tcHV0ZV9jb25maWcoc3RydWN0IGRybV9hdG9taWNf c3RhdGUgKnN0YXRlKQogCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcgPQog CQkJdG9faW50ZWxfY3J0Y19zdGF0ZShjcnRjX3N0YXRlKTsKIAorCQlpZiAoIW5lZWRzX21vZGVz ZXQoY3J0Y19zdGF0ZSkpCisJCQljb250aW51ZTsKKwogCQlpZiAoIWNydGNfc3RhdGUtPmVuYWJs ZSkgewogCQkJaWYgKG5lZWRzX21vZGVzZXQoY3J0Y19zdGF0ZSkpCiAJCQkJYW55X21zID0gdHJ1 ZTsKIAkJCWNvbnRpbnVlOwogCQl9CiAKLQkJaWYgKCFuZWVkc19tb2Rlc2V0KGNydGNfc3RhdGUp KSB7Ci0JCQlpZiAoIShwaXBlX2NvbmZpZy0+cXVpcmtzICYgUElQRV9DT05GSUdfUVVJUktfSU5I RVJJVEVEX01PREUpKQotCQkJCWNvbnRpbnVlOwotCi0JCQlyZXQgPSBkcm1fYXRvbWljX2FkZF9h ZmZlY3RlZF9jb25uZWN0b3JzKHN0YXRlLCBjcnRjKTsKLQkJCWlmIChyZXQpCi0JCQkJcmV0dXJu IHJldDsKLQkJfQotCiAJCXJldCA9IGludGVsX21vZGVzZXRfcGlwZV9jb25maWcoY3J0YywgcGlw ZV9jb25maWcpOwogCQlpZiAocmV0KQogCQkJcmV0dXJuIHJldDsKIAotCQlpZiAoIWludGVsX3Bp cGVfY29uZmlnX2NvbXBhcmUoc3RhdGUtPmRldiwKLQkJCQkJICAgICAgIHRvX2ludGVsX2NydGNf c3RhdGUoY3J0Yy0+c3RhdGUpLAotCQkJCQkgICAgICAgcGlwZV9jb25maWcsIHRydWUpKQotCQkJ Y3J0Y19zdGF0ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKLQkJZWxzZSBpZiAoIW5lZWRzX21vZGVz ZXQoY3J0Y19zdGF0ZSkpCi0JCQljb250aW51ZTsKLQogCQlhbnlfbXMgPSB0cnVlOworCQlwaXBl X2NvbmZpZy0+dXBkYXRlX3BpcGUgPQorCQkJaW50ZWxfbW9kZXNldF9jYWxjX3VwZGF0ZV9waXBl KGNydGMsIGNydGNfc3RhdGUpOworCQlwaXBlX2NvbmZpZy0+YmFzZS5tb2RlX2NoYW5nZWQgPSAh cGlwZV9jb25maWctPnVwZGF0ZV9waXBlOworCiAJCWludGVsX2R1bXBfcGlwZV9jb25maWcodG9f aW50ZWxfY3J0YyhjcnRjKSwKLQkJCQkgICAgICAgcGlwZV9jb25maWcsCi0JCQkJICAgICAgICJb bW9kZXNldF0iKTsKKwkJCQkgICAgICAgcGlwZV9jb25maWcsICJbbW9kZXNldF0iKTsKIAl9CiAK IAlpZiAoYW55X21zKSB7CkBAIC0xMzE2OSw2ICsxMzE5MCw3IEBAIHN0YXRpYyBpbnQgX19pbnRl bF9zZXRfbW9kZShzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCiAJZm9yX2VhY2hfY3J0 Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgewogCQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7CiAKKwkJYW55X21zIHw9IHRv X2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLT51cGRhdGVfcGlwZTsKIAkJaWYgKCFuZWVk c19tb2Rlc2V0KGNydGMtPnN0YXRlKSkKIAkJCWNvbnRpbnVlOwogCkBAIC0xMzQ3OCw4ICsxMzUw MCw2IEBAIHN0YXRpYyBpbnQgaW50ZWxfY3J0Y19zZXRfY29uZmlnKHN0cnVjdCBkcm1fbW9kZV9z ZXQgKnNldCkKIAlpZiAocmV0KQogCQlnb3RvIG91dDsKIAotCWludGVsX3VwZGF0ZV9waXBlX3Np emUodG9faW50ZWxfY3J0YyhzZXQtPmNydGMpKTsKLQogCXJldCA9IGludGVsX3NldF9tb2RlX2No ZWNrZWQoc3RhdGUpOwogCWlmIChyZXQpIHsKIAkJRFJNX0RFQlVHX0tNUygiZmFpbGVkIHRvIHNl dCBtb2RlIG9uIFtDUlRDOiVkXSwgZXJyID0gJWRcbiIsCkBAIC0xMzc1MiwxMCArMTM3NzIsNiBA QCBpbnRlbF9jb21taXRfcHJpbWFyeV9wbGFuZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKIAlp ZiAoIWNydGMtPnN0YXRlLT5hY3RpdmUpCiAJCXJldHVybjsKIAotCWlmIChzdGF0ZS0+dmlzaWJs ZSkKLQkJLyogRklYTUU6IGtpbGwgdGhpcyBmYXN0Ym9vdCBoYWNrICovCi0JCWludGVsX3VwZGF0 ZV9waXBlX3NpemUoaW50ZWxfY3J0Yyk7Ci0KIAlkZXZfcHJpdi0+ZGlzcGxheS51cGRhdGVfcHJp bWFyeV9wbGFuZShjcnRjLCBmYiwgY3J0Yy0+eCwgY3J0Yy0+eSk7CiB9CiAKQEAgLTEzNzc1LDgg KzEzNzkxLDExIEBAIHN0YXRpYyB2b2lkIGludGVsX2JlZ2luX2NydGNfY29tbWl0KHN0cnVjdCBk cm1fY3J0YyAqY3J0YywKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7CiAJc3Ry dWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOworCXN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfaW50ZWxfc3RhdGUgPQorCQl0b19pbnRlbF9jcnRjX3N0 YXRlKG9sZF9jcnRjX3N0YXRlKTsKKwlib29sIG1vZGVzZXQgPSBuZWVkc19tb2Rlc2V0KGNydGMt PnN0YXRlKTsKIAotCWlmICghbmVlZHNfbW9kZXNldChjcnRjLT5zdGF0ZSkpCisJaWYgKCFtb2Rl c2V0KQogCQlpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKGludGVsX2NydGMpOwogCiAJaWYgKGludGVs X2NydGMtPmF0b21pYy51cGRhdGVfd21fcHJlKQpAQCAtMTM3OTAsNyArMTM4MDksMTIgQEAgc3Rh dGljIHZvaWQgaW50ZWxfYmVnaW5fY3J0Y19jb21taXQoc3RydWN0IGRybV9jcnRjICpjcnRjLAog CQkJaW50ZWxfcGlwZV91cGRhdGVfc3RhcnQoaW50ZWxfY3J0YywKIAkJCQkJCSZpbnRlbF9jcnRj LT5hdG9taWMuc3RhcnRfdmJsX2NvdW50KTsKIAotCWlmICghbmVlZHNfbW9kZXNldChjcnRjLT5z dGF0ZSkgJiYgSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkKKwlpZiAobW9kZXNldCkKKwkJcmV0 dXJuOworCisJaWYgKHRvX2ludGVsX2NydGNfc3RhdGUoY3J0Yy0+c3RhdGUpLT51cGRhdGVfcGlw ZSkKKwkJaW50ZWxfdXBkYXRlX3BpcGVfY29uZmlnKGludGVsX2NydGMsIG9sZF9pbnRlbF9zdGF0 ZSk7CisJZWxzZSBpZiAoSU5URUxfSU5GTyhkZXYpLT5nZW4gPj0gOSkKIAkJc2tsX2RldGFjaF9z Y2FsZXJzKGludGVsX2NydGMpOwogfQogCkBAIC0xNTE4MCw2ICsxNTIwNCw5IEBAIHN0YXRpYyB2 b2lkIGludGVsX3Nhbml0aXplX2NydGMoc3RydWN0IGludGVsX2NydGMgKmNydGMpCiAJCWRybV9j YWxjX3RpbWVzdGFtcGluZ19jb25zdGFudHMoJmNydGMtPmJhc2UsICZjcnRjLT5iYXNlLmh3bW9k ZSk7CiAJCXVwZGF0ZV9zY2FubGluZV9vZmZzZXQoY3J0Yyk7CiAJCWRybV9jcnRjX3ZibGFua19v bigmY3J0Yy0+YmFzZSk7CisKKwkJaWYgKElTX0hBU1dFTEwoZGV2KSB8fCBJTlRFTF9JTkZPKGRl diktPmdlbiA+IDcpCisJCQlpbnRlbF9zZXRfcGlwZV9jc2MoJmNydGMtPmJhc2UpOwogCX0KIAog CS8qIFdlIG5lZWQgdG8gc2FuaXRpemUgdGhlIHBsYW5lIC0+IHBpcGUgbWFwcGluZyBmaXJzdCBi ZWNhdXNlIHRoaXMgd2lsbApAQCAtMTUzOTEsOCArMTU0MTgsNiBAQCBzdGF0aWMgdm9pZCBpbnRl bF9tb2Rlc2V0X3JlYWRvdXRfaHdfc3RhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAkJbWVt c2V0KGNydGMtPmNvbmZpZywgMCwgc2l6ZW9mKCpjcnRjLT5jb25maWcpKTsKIAkJY3J0Yy0+Y29u ZmlnLT5iYXNlLmNydGMgPSAmY3J0Yy0+YmFzZTsKIAotCQljcnRjLT5jb25maWctPnF1aXJrcyB8 PSBQSVBFX0NPTkZJR19RVUlSS19JTkhFUklURURfTU9ERTsKLQogCQljcnRjLT5hY3RpdmUgPSBk ZXZfcHJpdi0+ZGlzcGxheS5nZXRfcGlwZV9jb25maWcoY3J0YywKIAkJCQkJCQkJIGNydGMtPmNv bmZpZyk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggOTdiNjU3NDlmNDcyLi41MjVi NDEzNzUyMWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCisr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0zMjksOSArMzI5LDEwIEBA IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlIHsKIAkgKiBhY2NvcmRpbmdseS4KIAkgKi8KICNkZWZp bmUgUElQRV9DT05GSUdfUVVJUktfTU9ERV9TWU5DX0ZMQUdTCSgxPDwwKSAvKiB1bnJlbGlhYmxl IHN5bmMgbW9kZS5mbGFncyAqLwotI2RlZmluZSBQSVBFX0NPTkZJR19RVUlSS19JTkhFUklURURf TU9ERQkoMTw8MSkgLyogbW9kZSBpbmhlcml0ZWQgZnJvbSBmaXJtd2FyZSAqLwogCXVuc2lnbmVk IGxvbmcgcXVpcmtzOwogCisJYm9vbCB1cGRhdGVfcGlwZTsKKwogCS8qIFBpcGUgc291cmNlIHNp emUgKGllLiBwYW5lbCBmaXR0ZXIgaW5wdXQgc2l6ZSkKIAkgKiBBbGwgcGxhbmVzIHdpbGwgYmUg cG9zaXRpb25lZCBpbnNpZGUgdGhpcyBzcGFjZSwKIAkgKiBhbmQgZ2V0IGNsaXBwZWQgYXQgdGhl IGVkZ2VzLiAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYu YyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZiZGV2LmMKaW5kZXggNTJkMjBjZWExODJj Li4yMjAzNzAxNjFhYWMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Zi ZGV2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJkZXYuYwpAQCAtNTc5LDkg KzU3OSw2IEBAIHN0YXRpYyBib29sIGludGVsX2ZiZGV2X2luaXRfYmlvcyhzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2LAogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjOwogCXVuc2lnbmVkIGlu dCBtYXhfc2l6ZSA9IDA7CiAKLQlpZiAoIWk5MTUuZmFzdGJvb3QpCi0JCXJldHVybiBmYWxzZTsK LQogCS8qIEZpbmQgdGhlIGxhcmdlc3QgZmIgKi8KIAlmb3JfZWFjaF9jcnRjKGRldiwgY3J0Yykg ewogCQlzdHJ1Y3QgZHJtX2k5MTVfZ2VtX29iamVjdCAqb2JqID0KLS0gCjIuMS4wCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=