From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH 04/15] drm/i915: Walk over encoders in crtc enable/disable using atomic state. Date: Tue, 9 Aug 2016 17:04:03 +0200 Message-ID: <1470755054-32699-5-git-send-email-maarten.lankhorst@linux.intel.com> References: <1470755054-32699-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 [IPv6:2a02:2308::216:3eff:fe92:dfa3]) by gabe.freedesktop.org (Postfix) with ESMTPS id 5E45E6E08A for ; Tue, 9 Aug 2016 15:04:19 +0000 (UTC) In-Reply-To: <1470755054-32699-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 VGhpcyBjbGVhbnMgdXAgYW5vdGhlciBwb3NzaWJsZSB1c2Ugb2YgdGhlIGNvbm5lY3RvciBsaXN0 LAplbmNvZGVyLT5jcnRjIGlzIGxlZ2FjeSBzdGF0ZSBhbmQgc2hvdWxkIG5vdCBiZSB1c2VkLgoK V2l0aCB0aGUgYXRvbWljIHN0YXRlIGFzIGFyZ3VtZW50IGl0J3MgZWFzeSB0byBmaW5kIHRoZSBl bmNvZGVyIGZyb20KdGhlIGNvbm5lY3RvciBpdCBiZWxvbmdzIHRvLgoKaW50ZWxfb3ByZWdpb25f bm90aWZ5X2VuY29kZXIgaXMgYSBub29wIGZvciAhSEFTX0RESSwgc28gaXQncyBoYXJtbGVzcwp0 byB1bmNvbmRpdGlvbmFsbHkgaW5jbHVkZSBpdCBpbiBlbmNvZGVyIGVuYWJsZS9kaXNhYmxlLgoK U2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4 LmludGVsLmNvbT4KLS0tCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAx OTAgKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAx MzQgaW5zZXJ0aW9ucygrKSwgNTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf ZGlzcGxheS5jCmluZGV4IGFlNTU1YjQyNDBjNi4uODIxZGZmNzE5ZWM4IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC00Njk0LDYgKzQ2OTQsMTIzIEBAIHN0YXRpYyB2b2lk IGludGVsX2NydGNfZGlzYWJsZV9wbGFuZXMoc3RydWN0IGRybV9jcnRjICpjcnRjLCB1bnNpZ25l ZCBwbGFuZV9tYXNrCiAJaW50ZWxfZnJvbnRidWZmZXJfZmxpcCh0b19pOTE1KGRldiksIElOVEVM X0ZST05UQlVGRkVSX0FMTF9NQVNLKHBpcGUpKTsKIH0KIAorc3RhdGljIHZvaWQgaW50ZWxfZW5j b2RlcnNfcHJlX3BsbF9lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCQkgIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCit7CisJc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKm9sZF9jb25uX3N0YXRlOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOworCWlu dCBpOworCisJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKG9sZF9zdGF0ZSwgY29ubiwgb2xk X2Nvbm5fc3RhdGUsIGkpIHsKKwkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3Rh dGUgPSBjb25uLT5zdGF0ZTsKKwkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPQorCQkJ dG9faW50ZWxfZW5jb2Rlcihjb25uX3N0YXRlLT5iZXN0X2VuY29kZXIpOworCisJCWlmIChjb25u X3N0YXRlLT5jcnRjICE9IGNydGMpCisJCQljb250aW51ZTsKKworCQlpZiAoZW5jb2Rlci0+cHJl X3BsbF9lbmFibGUpCisJCQllbmNvZGVyLT5wcmVfcGxsX2VuYWJsZShlbmNvZGVyKTsKKwl9Cit9 CisKK3N0YXRpYyB2b2lkIGludGVsX2VuY29kZXJzX3ByZV9lbmFibGUoc3RydWN0IGRybV9jcnRj ICpjcnRjLAorCQkJCSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCit7 CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlOworCXN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uOworCWludCBpOworCisJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0 YXRlKG9sZF9zdGF0ZSwgY29ubiwgb2xkX2Nvbm5fc3RhdGUsIGkpIHsKKwkJc3RydWN0IGRybV9j b25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUgPSBjb25uLT5zdGF0ZTsKKwkJc3RydWN0IGludGVs X2VuY29kZXIgKmVuY29kZXIgPQorCQkJdG9faW50ZWxfZW5jb2Rlcihjb25uX3N0YXRlLT5iZXN0 X2VuY29kZXIpOworCisJCWlmIChjb25uX3N0YXRlLT5jcnRjICE9IGNydGMpCisJCQljb250aW51 ZTsKKworCQlpZiAoZW5jb2Rlci0+cHJlX2VuYWJsZSkKKwkJCWVuY29kZXItPnByZV9lbmFibGUo ZW5jb2Rlcik7CisJfQorfQorCitzdGF0aWMgdm9pZCBpbnRlbF9lbmNvZGVyc19lbmFibGUoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAorCQkJCSAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9z dGF0ZSkKK3sKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGU7CisJ c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm47CisJaW50IGk7CisKKwlmb3JfZWFjaF9jb25uZWN0 b3JfaW5fc3RhdGUob2xkX3N0YXRlLCBjb25uLCBvbGRfY29ubl9zdGF0ZSwgaSkgeworCQlzdHJ1 Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSA9IGNvbm4tPnN0YXRlOworCQlzdHJ1 Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9CisJCQl0b19pbnRlbF9lbmNvZGVyKGNvbm5fc3Rh dGUtPmJlc3RfZW5jb2Rlcik7CisKKwkJaWYgKGNvbm5fc3RhdGUtPmNydGMgIT0gY3J0YykKKwkJ CWNvbnRpbnVlOworCisJCWVuY29kZXItPmVuYWJsZShlbmNvZGVyKTsKKwkJaW50ZWxfb3ByZWdp b25fbm90aWZ5X2VuY29kZXIoZW5jb2RlciwgdHJ1ZSk7CisJfQorfQorCitzdGF0aWMgdm9pZCBp bnRlbF9lbmNvZGVyc19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkgICBzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQoreworCXN0cnVjdCBkcm1fY29ubmVjdG9y X3N0YXRlICpvbGRfY29ubl9zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKKwlp bnQgaTsKKworCWZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9zdGF0ZShvbGRfc3RhdGUsIGNvbm4sIG9s ZF9jb25uX3N0YXRlLCBpKSB7CisJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0KKwkJ CXRvX2ludGVsX2VuY29kZXIob2xkX2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2Rlcik7CisKKwkJaWYg KG9sZF9jb25uX3N0YXRlLT5jcnRjICE9IGNydGMpCisJCQljb250aW51ZTsKKworCQlpbnRlbF9v cHJlZ2lvbl9ub3RpZnlfZW5jb2RlcihlbmNvZGVyLCBmYWxzZSk7CisJCWVuY29kZXItPmRpc2Fi bGUoZW5jb2Rlcik7CisJfQorfQorCitzdGF0aWMgdm9pZCBpbnRlbF9lbmNvZGVyc19wb3N0X2Rp c2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0 ZSAqb2xkX3N0YXRlKQoreworCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9z dGF0ZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKKwlpbnQgaTsKKworCWZvcl9lYWNo X2Nvbm5lY3Rvcl9pbl9zdGF0ZShvbGRfc3RhdGUsIGNvbm4sIG9sZF9jb25uX3N0YXRlLCBpKSB7 CisJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0KKwkJCXRvX2ludGVsX2VuY29kZXIo b2xkX2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2Rlcik7CisKKwkJaWYgKG9sZF9jb25uX3N0YXRlLT5j cnRjICE9IGNydGMpCisJCQljb250aW51ZTsKKworCQlpZiAoZW5jb2Rlci0+cG9zdF9kaXNhYmxl KQorCQkJZW5jb2Rlci0+cG9zdF9kaXNhYmxlKGVuY29kZXIpOworCX0KK30KKworc3RhdGljIHZv aWQgaW50ZWxfZW5jb2RlcnNfcG9zdF9wbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMs CisJCQkJCSAgICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQoreworCXN0cnVj dCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5l Y3RvciAqY29ubjsKKwlpbnQgaTsKKworCWZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9zdGF0ZShvbGRf c3RhdGUsIGNvbm4sIG9sZF9jb25uX3N0YXRlLCBpKSB7CisJCXN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyID0KKwkJCXRvX2ludGVsX2VuY29kZXIob2xkX2Nvbm5fc3RhdGUtPmJlc3RfZW5j b2Rlcik7CisKKwkJaWYgKG9sZF9jb25uX3N0YXRlLT5jcnRjICE9IGNydGMpCisJCQljb250aW51 ZTsKKworCQlpZiAoZW5jb2Rlci0+cG9zdF9wbGxfZGlzYWJsZSkKKwkJCWVuY29kZXItPnBvc3Rf cGxsX2Rpc2FibGUoZW5jb2Rlcik7CisJfQorfQorCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRj X2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkJIHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCiB7CkBAIC00NzAxLDcgKzQ4MTgsNiBAQCBz dGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq cGlwZV9jb25maWcsCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGlu dGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwotCXN0cnVjdCBpbnRl bF9lbmNvZGVyICplbmNvZGVyOwogCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKIAogCWlm IChXQVJOX09OKGludGVsX2NydGMtPmFjdGl2ZSkpCkBAIC00NzQwLDkgKzQ4NTYsNyBAQCBzdGF0 aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlw ZV9jb25maWcsCiAKIAlpbnRlbF9jcnRjLT5hY3RpdmUgPSB0cnVlOwogCi0JZm9yX2VhY2hfZW5j b2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikKLQkJaWYgKGVuY29kZXItPnByZV9lbmFi bGUpCi0JCQllbmNvZGVyLT5wcmVfZW5hYmxlKGVuY29kZXIpOworCWludGVsX2VuY29kZXJzX3By ZV9lbmFibGUoY3J0Yywgb2xkX3N0YXRlKTsKIAogCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmhh c19wY2hfZW5jb2RlcikgewogCQkvKiBOb3RlOiBGREkgUExMIGVuYWJsaW5nIF9tdXN0XyBiZSBk b25lIGJlZm9yZSB3ZSBlbmFibGUgdGhlCkBAIC00NzcyLDggKzQ4ODYsNyBAQCBzdGF0aWMgdm9p ZCBpcm9ubGFrZV9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcsCiAJYXNzZXJ0X3ZibGFua19kaXNhYmxlZChjcnRjKTsKIAlkcm1fY3J0Y192Ymxhbmtfb24o Y3J0Yyk7CiAKLQlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQot CQllbmNvZGVyLT5lbmFibGUoZW5jb2Rlcik7CisJaW50ZWxfZW5jb2RlcnNfZW5hYmxlKGNydGMs IG9sZF9zdGF0ZSk7CiAKIAlpZiAoSEFTX1BDSF9DUFQoZGV2KSkKIAkJY3B0X3ZlcmlmeV9tb2Rl c2V0KGRldiwgaW50ZWxfY3J0Yy0+cGlwZSk7CkBAIC00Nzk4LDcgKzQ5MTEsNiBAQCBzdGF0aWMg dm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2Nv bmZpZywKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0 YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0Jc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXI7CiAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlLCBoc3dfd29ya2Fyb3Vu ZF9waXBlOwogCWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGludGVsX2NydGMtPmNv bmZpZy0+Y3B1X3RyYW5zY29kZXI7CiAKQEAgLTQ4MDksOSArNDkyMSw3IEBAIHN0YXRpYyB2b2lk IGhhc3dlbGxfY3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmln LAogCQlpbnRlbF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBUUkFO U0NPREVSX0EsCiAJCQkJCQkgICAgICBmYWxzZSk7CiAKLQlmb3JfZWFjaF9lbmNvZGVyX29uX2Ny dGMoZGV2LCBjcnRjLCBlbmNvZGVyKQotCQlpZiAoZW5jb2Rlci0+cHJlX3BsbF9lbmFibGUpCi0J CQllbmNvZGVyLT5wcmVfcGxsX2VuYWJsZShlbmNvZGVyKTsKKwlpbnRlbF9lbmNvZGVyc19wcmVf cGxsX2VuYWJsZShjcnRjLCBvbGRfc3RhdGUpOwogCiAJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+ c2hhcmVkX2RwbGwpCiAJCWludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChpbnRlbF9jcnRjKTsKQEAg LTQ4NDksMTAgKzQ5NTksNyBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAllbHNlCiAJCWludGVsX3NldF9jcHVf Zmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIHRydWUpOwogCi0JZm9yX2Vh Y2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikgewotCQlpZiAoZW5jb2Rlci0+ cHJlX2VuYWJsZSkKLQkJCWVuY29kZXItPnByZV9lbmFibGUoZW5jb2Rlcik7Ci0JfQorCWludGVs X2VuY29kZXJzX3ByZV9lbmFibGUoY3J0Yywgb2xkX3N0YXRlKTsKIAogCWlmIChpbnRlbF9jcnRj LT5jb25maWctPmhhc19wY2hfZW5jb2RlcikKIAkJZGV2X3ByaXYtPmRpc3BsYXkuZmRpX2xpbmtf dHJhaW4oY3J0Yyk7CkBAIC00ODkzLDEwICs1MDAwLDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9j cnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJYXNzZXJ0 X3ZibGFua19kaXNhYmxlZChjcnRjKTsKIAlkcm1fY3J0Y192Ymxhbmtfb24oY3J0Yyk7CiAKLQlm b3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKSB7Ci0JCWVuY29kZXIt PmVuYWJsZShlbmNvZGVyKTsKLQkJaW50ZWxfb3ByZWdpb25fbm90aWZ5X2VuY29kZXIoZW5jb2Rl ciwgdHJ1ZSk7Ci0JfQorCWludGVsX2VuY29kZXJzX2VuYWJsZShjcnRjLCBvbGRfc3RhdGUpOwog CiAJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKSB7CiAJCWludGVsX3dh aXRfZm9yX3ZibGFuayhkZXYsIHBpcGUpOwpAQCAtNDkzNyw3ICs1MDQxLDYgQEAgc3RhdGljIHZv aWQgaXJvbmxha2VfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0 Y19zdGF0ZSwKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0Jc3RydWN0IGludGVsX2Vu Y29kZXIgKmVuY29kZXI7CiAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwogCiAJLyoKQEAg LTQ5NTAsOCArNTA1Myw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2NydGNfZGlzYWJsZShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJCWludGVsX3NldF9wY2hfZmlm b191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIGZhbHNlKTsKIAl9CiAKLQlmb3Jf ZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQotCQllbmNvZGVyLT5kaXNh YmxlKGVuY29kZXIpOworCWludGVsX2VuY29kZXJzX2Rpc2FibGUoY3J0Yywgb2xkX3N0YXRlKTsK IAogCWRybV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7CiAJYXNzZXJ0X3ZibGFua19kaXNhYmxlZChj cnRjKTsKQEAgLTQ5NjMsOSArNTA2NSw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2NydGNfZGlz YWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJaWYgKGludGVs X2NydGMtPmNvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKQogCQlpcm9ubGFrZV9mZGlfZGlzYWJsZShj cnRjKTsKIAotCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpCi0J CWlmIChlbmNvZGVyLT5wb3N0X2Rpc2FibGUpCi0JCQllbmNvZGVyLT5wb3N0X2Rpc2FibGUoZW5j b2Rlcik7CisJaW50ZWxfZW5jb2RlcnNfcG9zdF9kaXNhYmxlKGNydGMsIG9sZF9zdGF0ZSk7CiAK IAlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIpIHsKIAkJaXJvbmxha2Vf ZGlzYWJsZV9wY2hfdHJhbnNjb2RlcihkZXZfcHJpdiwgcGlwZSk7CkBAIC01MDAyLDE3ICs1MTAy LDEzIEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRj X3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsK IAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0J c3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFu c2NvZGVyID0gaW50ZWxfY3J0Yy0+Y29uZmlnLT5jcHVfdHJhbnNjb2RlcjsKIAogCWlmIChpbnRl bF9jcnRjLT5jb25maWctPmhhc19wY2hfZW5jb2RlcikKIAkJaW50ZWxfc2V0X3BjaF9maWZvX3Vu ZGVycnVuX3JlcG9ydGluZyhkZXZfcHJpdiwgVFJBTlNDT0RFUl9BLAogCQkJCQkJICAgICAgZmFs c2UpOwogCi0JZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2Rlcikgewot CQlpbnRlbF9vcHJlZ2lvbl9ub3RpZnlfZW5jb2RlcihlbmNvZGVyLCBmYWxzZSk7Ci0JCWVuY29k ZXItPmRpc2FibGUoZW5jb2Rlcik7Ci0JfQorCWludGVsX2VuY29kZXJzX2Rpc2FibGUoY3J0Yywg b2xkX3N0YXRlKTsKIAogCWRybV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7CiAJYXNzZXJ0X3ZibGFu a19kaXNhYmxlZChjcnRjKTsKQEAgLTUwMzUsOSArNTEzMSw3IEBAIHN0YXRpYyB2b2lkIGhhc3dl bGxfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwK IAlpZiAoIXRyYW5zY29kZXJfaXNfZHNpKGNwdV90cmFuc2NvZGVyKSkKIAkJaW50ZWxfZGRpX2Rp c2FibGVfcGlwZV9jbG9jayhpbnRlbF9jcnRjKTsKIAotCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0 YyhkZXYsIGNydGMsIGVuY29kZXIpCi0JCWlmIChlbmNvZGVyLT5wb3N0X2Rpc2FibGUpCi0JCQll bmNvZGVyLT5wb3N0X2Rpc2FibGUoZW5jb2Rlcik7CisJaW50ZWxfZW5jb2RlcnNfcG9zdF9kaXNh YmxlKGNydGMsIG9sZF9zdGF0ZSk7CiAKIAlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNo X2VuY29kZXIpIHsKIAkJbHB0X2Rpc2FibGVfcGNoX3RyYW5zY29kZXIoZGV2X3ByaXYpOwpAQCAt NjEwOSw3ICs2MjAzLDYgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRj KGNydGMpOwotCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwogCWludCBwaXBlID0gaW50 ZWxfY3J0Yy0+cGlwZTsKIAogCWlmIChXQVJOX09OKGludGVsX2NydGMtPmFjdGl2ZSkpCkBAIC02 MTM0LDkgKzYyMjcsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NydGNfZW5hYmxlKHN0cnVj dCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAogCWludGVsX3NldF9jcHVfZmlmb191 bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIHRydWUpOwogCi0JZm9yX2VhY2hfZW5j b2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikKLQkJaWYgKGVuY29kZXItPnByZV9wbGxf ZW5hYmxlKQotCQkJZW5jb2Rlci0+cHJlX3BsbF9lbmFibGUoZW5jb2Rlcik7CisJaW50ZWxfZW5j b2RlcnNfcHJlX3BsbF9lbmFibGUoY3J0Yywgb2xkX3N0YXRlKTsKIAogCWlmIChJU19DSEVSUllW SUVXKGRldikpIHsKIAkJY2h2X3ByZXBhcmVfcGxsKGludGVsX2NydGMsIGludGVsX2NydGMtPmNv bmZpZyk7CkBAIC02MTQ2LDkgKzYyMzcsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NydGNf ZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJdmx2X2VuYWJs ZV9wbGwoaW50ZWxfY3J0YywgaW50ZWxfY3J0Yy0+Y29uZmlnKTsKIAl9CiAKLQlmb3JfZWFjaF9l bmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQotCQlpZiAoZW5jb2Rlci0+cHJlX2Vu YWJsZSkKLQkJCWVuY29kZXItPnByZV9lbmFibGUoZW5jb2Rlcik7CisJaW50ZWxfZW5jb2RlcnNf cHJlX2VuYWJsZShjcnRjLCBvbGRfc3RhdGUpOwogCiAJaTl4eF9wZml0X2VuYWJsZShpbnRlbF9j cnRjKTsKIApAQCAtNjE2MCw4ICs2MjQ5LDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRj X2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJYXNzZXJ0X3Zi bGFua19kaXNhYmxlZChjcnRjKTsKIAlkcm1fY3J0Y192Ymxhbmtfb24oY3J0Yyk7CiAKLQlmb3Jf ZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQotCQllbmNvZGVyLT5lbmFi bGUoZW5jb2Rlcik7CisJaW50ZWxfZW5jb2RlcnNfZW5hYmxlKGNydGMsIG9sZF9zdGF0ZSk7CiB9 CiAKIHN0YXRpYyB2b2lkIGk5eHhfc2V0X3BsbF9kaXZpZGVycyhzdHJ1Y3QgaW50ZWxfY3J0YyAq Y3J0YykKQEAgLTYxODAsNyArNjI2OCw2IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19lbmFibGUo c3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxf Y3J0YyhjcnRjKTsKLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKIAllbnVtIHBpcGUg cGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAKIAlpZiAoV0FSTl9PTihpbnRlbF9jcnRjLT5hY3Rp dmUpKQpAQCAtNjIwMSw5ICs2Mjg4LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2VuYWJsZShz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJaWYgKCFJU19HRU4yKGRldikp CiAJCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUs IHRydWUpOwogCi0JZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikK LQkJaWYgKGVuY29kZXItPnByZV9lbmFibGUpCi0JCQllbmNvZGVyLT5wcmVfZW5hYmxlKGVuY29k ZXIpOworCWludGVsX2VuY29kZXJzX3ByZV9lbmFibGUoY3J0Yywgb2xkX3N0YXRlKTsKIAogCWk5 eHhfZW5hYmxlX3BsbChpbnRlbF9jcnRjKTsKIApAQCAtNjIxNyw4ICs2MzAyLDcgQEAgc3RhdGlj IHZvaWQgaTl4eF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcsCiAJYXNzZXJ0X3ZibGFua19kaXNhYmxlZChjcnRjKTsKIAlkcm1fY3J0Y192Ymxhbmtfb24o Y3J0Yyk7CiAKLQlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQot CQllbmNvZGVyLT5lbmFibGUoZW5jb2Rlcik7CisJaW50ZWxfZW5jb2RlcnNfZW5hYmxlKGNydGMs IG9sZF9zdGF0ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGk5eHhfcGZpdF9kaXNhYmxlKHN0cnVjdCBp bnRlbF9jcnRjICpjcnRjKQpAQCAtNjI0Myw3ICs2MzI3LDYgQEAgc3RhdGljIHZvaWQgaTl4eF9j cnRjX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9j cnRjID0gdG9faW50ZWxfY3J0YyhjcnRjKTsKLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2Rl cjsKIAlpbnQgcGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAKIAkvKgpAQCAtNjI1Myw4ICs2MzM2 LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGNfc3Rh dGUgKm9sZF9jcnRjX3N0YXRlLAogCWlmIChJU19HRU4yKGRldikpCiAJCWludGVsX3dhaXRfZm9y X3ZibGFuayhkZXYsIHBpcGUpOwogCi0JZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0 YywgZW5jb2RlcikKLQkJZW5jb2Rlci0+ZGlzYWJsZShlbmNvZGVyKTsKKwlpbnRlbF9lbmNvZGVy c19kaXNhYmxlKGNydGMsIG9sZF9zdGF0ZSk7CiAKIAlkcm1fY3J0Y192Ymxhbmtfb2ZmKGNydGMp OwogCWFzc2VydF92YmxhbmtfZGlzYWJsZWQoY3J0Yyk7CkBAIC02MjYzLDkgKzYzNDUsNyBAQCBz dGF0aWMgdm9pZCBpOXh4X2NydGNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xk X2NydGNfc3RhdGUsCiAKIAlpOXh4X3BmaXRfZGlzYWJsZShpbnRlbF9jcnRjKTsKIAotCWZvcl9l YWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpCi0JCWlmIChlbmNvZGVyLT5w b3N0X2Rpc2FibGUpCi0JCQllbmNvZGVyLT5wb3N0X2Rpc2FibGUoZW5jb2Rlcik7CisJaW50ZWxf ZW5jb2RlcnNfcG9zdF9kaXNhYmxlKGNydGMsIG9sZF9zdGF0ZSk7CiAKIAlpZiAoIWludGVsX2Ny dGNfaGFzX3R5cGUoaW50ZWxfY3J0Yy0+Y29uZmlnLCBJTlRFTF9PVVRQVVRfRFNJKSkgewogCQlp ZiAoSVNfQ0hFUlJZVklFVyhkZXYpKQpAQCAtNjI3Niw5ICs2MzU2LDcgQEAgc3RhdGljIHZvaWQg aTl4eF9jcnRjX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRl LAogCQkJaTl4eF9kaXNhYmxlX3BsbChpbnRlbF9jcnRjKTsKIAl9CiAKLQlmb3JfZWFjaF9lbmNv ZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQotCQlpZiAoZW5jb2Rlci0+cG9zdF9wbGxf ZGlzYWJsZSkKLQkJCWVuY29kZXItPnBvc3RfcGxsX2Rpc2FibGUoZW5jb2Rlcik7CisJaW50ZWxf ZW5jb2RlcnNfcG9zdF9wbGxfZGlzYWJsZShjcnRjLCBvbGRfc3RhdGUpOwogCiAJaWYgKCFJU19H RU4yKGRldikpCiAJCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3By aXYsIHBpcGUsIGZhbHNlKTsKLS0gCjIuNy40CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK