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: Thu, 7 Jul 2016 13:55:46 +0200 Message-ID: <1467892557-24546-4-git-send-email-maarten.lankhorst@linux.intel.com> References: <1467892557-24546-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 CD0016E239 for ; Thu, 7 Jul 2016 11:56:02 +0000 (UTC) In-Reply-To: <1467892557-24546-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 ZGlzcGxheS5jCmluZGV4IDhlN2Q0NTNkYjQ4Yy4uMTllNTM3OTAwMGI4IDEwMDY0NAotLS0gYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMKKysrIGIvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfZGlzcGxheS5jCkBAIC00NzA0LDYgKzQ3MDQsMTIzIEBAIHN0YXRpYyB2b2lk IGludGVsX2NydGNfZGlzYWJsZV9wbGFuZXMoc3RydWN0IGRybV9jcnRjICpjcnRjLCB1bnNpZ25l ZCBwbGFuZV9tYXNrCiAJaW50ZWxfZnJvbnRidWZmZXJfZmxpcChkZXYsIElOVEVMX0ZST05UQlVG RkVSX0FMTF9NQVNLKHBpcGUpKTsKIH0KIAorc3RhdGljIHZvaWQgaW50ZWxfZW5jb2RlcnNfcHJl X3BsbF9lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAorCQkJCQkgIHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpvbGRfc3RhdGUpCit7CisJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9s ZF9jb25uX3N0YXRlOworCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uOworCWludCBpOworCisJ Zm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKG9sZF9zdGF0ZSwgY29ubiwgb2xkX2Nvbm5fc3Rh dGUsIGkpIHsKKwkJc3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgKmNvbm5fc3RhdGUgPSBjb25u LT5zdGF0ZTsKKwkJc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29kZXIgPQorCQkJdG9faW50ZWxf ZW5jb2Rlcihjb25uX3N0YXRlLT5iZXN0X2VuY29kZXIpOworCisJCWlmIChjb25uX3N0YXRlLT5j cnRjICE9IGNydGMpCisJCQljb250aW51ZTsKKworCQlpZiAoZW5jb2Rlci0+cHJlX3BsbF9lbmFi bGUpCisJCQllbmNvZGVyLT5wcmVfcGxsX2VuYWJsZShlbmNvZGVyKTsKKwl9Cit9CisKK3N0YXRp YyB2b2lkIGludGVsX2VuY29kZXJzX3ByZV9lbmFibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAor CQkJCSAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpvbGRfc3RhdGUpCit7CisJc3RydWN0 IGRybV9jb25uZWN0b3Jfc3RhdGUgKm9sZF9jb25uX3N0YXRlOworCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uOworCWludCBpOworCisJZm9yX2VhY2hfY29ubmVjdG9yX2luX3N0YXRlKG9sZF9z dGF0ZSwgY29ubiwgb2xkX2Nvbm5fc3RhdGUsIGkpIHsKKwkJc3RydWN0IGRybV9jb25uZWN0b3Jf c3RhdGUgKmNvbm5fc3RhdGUgPSBjb25uLT5zdGF0ZTsKKwkJc3RydWN0IGludGVsX2VuY29kZXIg KmVuY29kZXIgPQorCQkJdG9faW50ZWxfZW5jb2Rlcihjb25uX3N0YXRlLT5iZXN0X2VuY29kZXIp OworCisJCWlmIChjb25uX3N0YXRlLT5jcnRjICE9IGNydGMpCisJCQljb250aW51ZTsKKworCQlp ZiAoZW5jb2Rlci0+cHJlX2VuYWJsZSkKKwkJCWVuY29kZXItPnByZV9lbmFibGUoZW5jb2Rlcik7 CisJfQorfQorCitzdGF0aWMgdm9pZCBpbnRlbF9lbmNvZGVyc19lbmFibGUoc3RydWN0IGRybV9j cnRjICpjcnRjLAorCQkJCSAgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKm9sZF9zdGF0ZSkKK3sK KwlzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSAqb2xkX2Nvbm5fc3RhdGU7CisJc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm47CisJaW50IGk7CisKKwlmb3JfZWFjaF9jb25uZWN0b3JfaW5fc3Rh dGUob2xkX3N0YXRlLCBjb25uLCBvbGRfY29ubl9zdGF0ZSwgaSkgeworCQlzdHJ1Y3QgZHJtX2Nv bm5lY3Rvcl9zdGF0ZSAqY29ubl9zdGF0ZSA9IGNvbm4tPnN0YXRlOworCQlzdHJ1Y3QgaW50ZWxf ZW5jb2RlciAqZW5jb2RlciA9CisJCQl0b19pbnRlbF9lbmNvZGVyKGNvbm5fc3RhdGUtPmJlc3Rf ZW5jb2Rlcik7CisKKwkJaWYgKGNvbm5fc3RhdGUtPmNydGMgIT0gY3J0YykKKwkJCWNvbnRpbnVl OworCisJCWVuY29kZXItPmVuYWJsZShlbmNvZGVyKTsKKwkJaW50ZWxfb3ByZWdpb25fbm90aWZ5 X2VuY29kZXIoZW5jb2RlciwgdHJ1ZSk7CisJfQorfQorCitzdGF0aWMgdm9pZCBpbnRlbF9lbmNv ZGVyc19kaXNhYmxlKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKKwkJCQkgICBzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqb2xkX3N0YXRlKQoreworCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpv bGRfY29ubl9zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKKwlpbnQgaTsKKwor CWZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9zdGF0ZShvbGRfc3RhdGUsIGNvbm4sIG9sZF9jb25uX3N0 YXRlLCBpKSB7CisJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0KKwkJCXRvX2ludGVs X2VuY29kZXIob2xkX2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2Rlcik7CisKKwkJaWYgKG9sZF9jb25u X3N0YXRlLT5jcnRjICE9IGNydGMpCisJCQljb250aW51ZTsKKworCQlpbnRlbF9vcHJlZ2lvbl9u b3RpZnlfZW5jb2RlcihlbmNvZGVyLCBmYWxzZSk7CisJCWVuY29kZXItPmRpc2FibGUoZW5jb2Rl cik7CisJfQorfQorCitzdGF0aWMgdm9pZCBpbnRlbF9lbmNvZGVyc19wb3N0X2Rpc2FibGUoc3Ry dWN0IGRybV9jcnRjICpjcnRjLAorCQkJCQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0 YXRlKQoreworCXN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZTsKKwlz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubjsKKwlpbnQgaTsKKworCWZvcl9lYWNoX2Nvbm5lY3Rv cl9pbl9zdGF0ZShvbGRfc3RhdGUsIGNvbm4sIG9sZF9jb25uX3N0YXRlLCBpKSB7CisJCXN0cnVj dCBpbnRlbF9lbmNvZGVyICplbmNvZGVyID0KKwkJCXRvX2ludGVsX2VuY29kZXIob2xkX2Nvbm5f c3RhdGUtPmJlc3RfZW5jb2Rlcik7CisKKwkJaWYgKG9sZF9jb25uX3N0YXRlLT5jcnRjICE9IGNy dGMpCisJCQljb250aW51ZTsKKworCQlpZiAoZW5jb2Rlci0+cG9zdF9kaXNhYmxlKQorCQkJZW5j b2Rlci0+cG9zdF9kaXNhYmxlKGVuY29kZXIpOworCX0KK30KKworc3RhdGljIHZvaWQgaW50ZWxf ZW5jb2RlcnNfcG9zdF9wbGxfZGlzYWJsZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCisJCQkJCSAg ICBzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQoreworCXN0cnVjdCBkcm1fY29u bmVjdG9yX3N0YXRlICpvbGRfY29ubl9zdGF0ZTsKKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bjsKKwlpbnQgaTsKKworCWZvcl9lYWNoX2Nvbm5lY3Rvcl9pbl9zdGF0ZShvbGRfc3RhdGUsIGNv bm4sIG9sZF9jb25uX3N0YXRlLCBpKSB7CisJCXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVy ID0KKwkJCXRvX2ludGVsX2VuY29kZXIob2xkX2Nvbm5fc3RhdGUtPmJlc3RfZW5jb2Rlcik7CisK KwkJaWYgKG9sZF9jb25uX3N0YXRlLT5jcnRjICE9IGNydGMpCisJCQljb250aW51ZTsKKworCQlp ZiAoZW5jb2Rlci0+cG9zdF9wbGxfZGlzYWJsZSkKKwkJCWVuY29kZXItPnBvc3RfcGxsX2Rpc2Fi bGUoZW5jb2Rlcik7CisJfQorfQorCiBzdGF0aWMgdm9pZCBpcm9ubGFrZV9jcnRjX2VuYWJsZShz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJCQkJIHN0cnVjdCBkcm1fYXRv bWljX3N0YXRlICpvbGRfc3RhdGUpCiB7CkBAIC00NzExLDcgKzQ4MjgsNiBAQCBzdGF0aWMgdm9p ZCBpcm9ubGFrZV9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcsCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMtPmRldjsKIAlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGludGVsX2NydGMg KmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwotCXN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyOwogCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+cGlwZTsKIAogCWlmIChXQVJOX09O KGludGVsX2NydGMtPmFjdGl2ZSkpCkBAIC00NzUwLDkgKzQ4NjYsNyBAQCBzdGF0aWMgdm9pZCBp cm9ubGFrZV9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcs CiAKIAlpbnRlbF9jcnRjLT5hY3RpdmUgPSB0cnVlOwogCi0JZm9yX2VhY2hfZW5jb2Rlcl9vbl9j cnRjKGRldiwgY3J0YywgZW5jb2RlcikKLQkJaWYgKGVuY29kZXItPnByZV9lbmFibGUpCi0JCQll bmNvZGVyLT5wcmVfZW5hYmxlKGVuY29kZXIpOworCWludGVsX2VuY29kZXJzX3ByZV9lbmFibGUo Y3J0Yywgb2xkX3N0YXRlKTsKIAogCWlmIChpbnRlbF9jcnRjLT5jb25maWctPmhhc19wY2hfZW5j b2RlcikgewogCQkvKiBOb3RlOiBGREkgUExMIGVuYWJsaW5nIF9tdXN0XyBiZSBkb25lIGJlZm9y ZSB3ZSBlbmFibGUgdGhlCkBAIC00NzgyLDggKzQ4OTYsNyBAQCBzdGF0aWMgdm9pZCBpcm9ubGFr ZV9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJYXNz ZXJ0X3ZibGFua19kaXNhYmxlZChjcnRjKTsKIAlkcm1fY3J0Y192Ymxhbmtfb24oY3J0Yyk7CiAK LQlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQotCQllbmNvZGVy LT5lbmFibGUoZW5jb2Rlcik7CisJaW50ZWxfZW5jb2RlcnNfZW5hYmxlKGNydGMsIG9sZF9zdGF0 ZSk7CiAKIAlpZiAoSEFTX1BDSF9DUFQoZGV2KSkKIAkJY3B0X3ZlcmlmeV9tb2Rlc2V0KGRldiwg aW50ZWxfY3J0Yy0+cGlwZSk7CkBAIC00ODA4LDcgKzQ5MjEsNiBAQCBzdGF0aWMgdm9pZCBoYXN3 ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxf Y3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0Jc3RydWN0IGludGVsX2VuY29kZXIgKmVuY29k ZXI7CiAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlLCBoc3dfd29ya2Fyb3VuZF9waXBlOwog CWVudW0gdHJhbnNjb2RlciBjcHVfdHJhbnNjb2RlciA9IGludGVsX2NydGMtPmNvbmZpZy0+Y3B1 X3RyYW5zY29kZXI7CiAKQEAgLTQ4MTksOSArNDkzMSw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxf Y3J0Y19lbmFibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCQlpbnRl bF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0aW5nKGRldl9wcml2LCBUUkFOU0NPREVSX0Es CiAJCQkJCQkgICAgICBmYWxzZSk7CiAKLQlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBj cnRjLCBlbmNvZGVyKQotCQlpZiAoZW5jb2Rlci0+cHJlX3BsbF9lbmFibGUpCi0JCQllbmNvZGVy LT5wcmVfcGxsX2VuYWJsZShlbmNvZGVyKTsKKwlpbnRlbF9lbmNvZGVyc19wcmVfcGxsX2VuYWJs ZShjcnRjLCBvbGRfc3RhdGUpOwogCiAJaWYgKGludGVsX2NydGMtPmNvbmZpZy0+c2hhcmVkX2Rw bGwpCiAJCWludGVsX2VuYWJsZV9zaGFyZWRfZHBsbChpbnRlbF9jcnRjKTsKQEAgLTQ4NTksMTAg KzQ5NjksNyBAQCBzdGF0aWMgdm9pZCBoYXN3ZWxsX2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAllbHNlCiAJCWludGVsX3NldF9jcHVfZmlmb191bmRl cnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIHRydWUpOwogCi0JZm9yX2VhY2hfZW5jb2Rl cl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikgewotCQlpZiAoZW5jb2Rlci0+cHJlX2VuYWJs ZSkKLQkJCWVuY29kZXItPnByZV9lbmFibGUoZW5jb2Rlcik7Ci0JfQorCWludGVsX2VuY29kZXJz X3ByZV9lbmFibGUoY3J0Yywgb2xkX3N0YXRlKTsKIAogCWlmIChpbnRlbF9jcnRjLT5jb25maWct Pmhhc19wY2hfZW5jb2RlcikKIAkJZGV2X3ByaXYtPmRpc3BsYXkuZmRpX2xpbmtfdHJhaW4oY3J0 Yyk7CkBAIC00OTAzLDEwICs1MDEwLDcgQEAgc3RhdGljIHZvaWQgaGFzd2VsbF9jcnRjX2VuYWJs ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJYXNzZXJ0X3ZibGFua19k aXNhYmxlZChjcnRjKTsKIAlkcm1fY3J0Y192Ymxhbmtfb24oY3J0Yyk7CiAKLQlmb3JfZWFjaF9l bmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKSB7Ci0JCWVuY29kZXItPmVuYWJsZShl bmNvZGVyKTsKLQkJaW50ZWxfb3ByZWdpb25fbm90aWZ5X2VuY29kZXIoZW5jb2RlciwgdHJ1ZSk7 Ci0JfQorCWludGVsX2VuY29kZXJzX2VuYWJsZShjcnRjLCBvbGRfc3RhdGUpOwogCiAJaWYgKGlu dGVsX2NydGMtPmNvbmZpZy0+aGFzX3BjaF9lbmNvZGVyKSB7CiAJCWludGVsX3dhaXRfZm9yX3Zi bGFuayhkZXYsIHBpcGUpOwpAQCAtNDk0Nyw3ICs1MDUxLDYgQEAgc3RhdGljIHZvaWQgaXJvbmxh a2VfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwK IAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50 ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0Jc3RydWN0IGludGVsX2VuY29kZXIgKmVu Y29kZXI7CiAJaW50IHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwogCiAJLyoKQEAgLTQ5NjAsOCAr NTA2Myw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2NydGNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJCWludGVsX3NldF9wY2hfZmlmb191bmRlcnJ1 bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIGZhbHNlKTsKIAl9CiAKLQlmb3JfZWFjaF9lbmNv ZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQotCQllbmNvZGVyLT5kaXNhYmxlKGVuY29k ZXIpOworCWludGVsX2VuY29kZXJzX2Rpc2FibGUoY3J0Yywgb2xkX3N0YXRlKTsKIAogCWRybV9j cnRjX3ZibGFua19vZmYoY3J0Yyk7CiAJYXNzZXJ0X3ZibGFua19kaXNhYmxlZChjcnRjKTsKQEAg LTQ5NzMsOSArNTA3NSw3IEBAIHN0YXRpYyB2b2lkIGlyb25sYWtlX2NydGNfZGlzYWJsZShzdHJ1 Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3RhdGUsCiAJaWYgKGludGVsX2NydGMtPmNv bmZpZy0+aGFzX3BjaF9lbmNvZGVyKQogCQlpcm9ubGFrZV9mZGlfZGlzYWJsZShjcnRjKTsKIAot CWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpCi0JCWlmIChlbmNv ZGVyLT5wb3N0X2Rpc2FibGUpCi0JCQllbmNvZGVyLT5wb3N0X2Rpc2FibGUoZW5jb2Rlcik7CisJ aW50ZWxfZW5jb2RlcnNfcG9zdF9kaXNhYmxlKGNydGMsIG9sZF9zdGF0ZSk7CiAKIAlpZiAoaW50 ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIpIHsKIAkJaXJvbmxha2VfZGlzYWJsZV9w Y2hfdHJhbnNjb2RlcihkZXZfcHJpdiwgcGlwZSk7CkBAIC01MDEyLDE3ICs1MTEyLDEzIEBAIHN0 YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpv bGRfY3J0Y19zdGF0ZSwKIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY3J0Yy0+ZGV2OwogCXN0 cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKIAlzdHJ1Y3Qg aW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9IHRvX2ludGVsX2NydGMoY3J0Yyk7Ci0Jc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXI7CiAJZW51bSB0cmFuc2NvZGVyIGNwdV90cmFuc2NvZGVyID0g aW50ZWxfY3J0Yy0+Y29uZmlnLT5jcHVfdHJhbnNjb2RlcjsKIAogCWlmIChpbnRlbF9jcnRjLT5j b25maWctPmhhc19wY2hfZW5jb2RlcikKIAkJaW50ZWxfc2V0X3BjaF9maWZvX3VuZGVycnVuX3Jl cG9ydGluZyhkZXZfcHJpdiwgVFJBTlNDT0RFUl9BLAogCQkJCQkJICAgICAgZmFsc2UpOwogCi0J Zm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikgewotCQlpbnRlbF9v cHJlZ2lvbl9ub3RpZnlfZW5jb2RlcihlbmNvZGVyLCBmYWxzZSk7Ci0JCWVuY29kZXItPmRpc2Fi bGUoZW5jb2Rlcik7Ci0JfQorCWludGVsX2VuY29kZXJzX2Rpc2FibGUoY3J0Yywgb2xkX3N0YXRl KTsKIAogCWRybV9jcnRjX3ZibGFua19vZmYoY3J0Yyk7CiAJYXNzZXJ0X3ZibGFua19kaXNhYmxl ZChjcnRjKTsKQEAgLTUwNDUsOSArNTE0MSw3IEBAIHN0YXRpYyB2b2lkIGhhc3dlbGxfY3J0Y19k aXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0ZSwKIAlpZiAoIXRy YW5zY29kZXJfaXNfZHNpKGNwdV90cmFuc2NvZGVyKSkKIAkJaW50ZWxfZGRpX2Rpc2FibGVfcGlw ZV9jbG9jayhpbnRlbF9jcnRjKTsKIAotCWZvcl9lYWNoX2VuY29kZXJfb25fY3J0YyhkZXYsIGNy dGMsIGVuY29kZXIpCi0JCWlmIChlbmNvZGVyLT5wb3N0X2Rpc2FibGUpCi0JCQllbmNvZGVyLT5w b3N0X2Rpc2FibGUoZW5jb2Rlcik7CisJaW50ZWxfZW5jb2RlcnNfcG9zdF9kaXNhYmxlKGNydGMs IG9sZF9zdGF0ZSk7CiAKIAlpZiAoaW50ZWxfY3J0Yy0+Y29uZmlnLT5oYXNfcGNoX2VuY29kZXIp IHsKIAkJbHB0X2Rpc2FibGVfcGNoX3RyYW5zY29kZXIoZGV2X3ByaXYpOwpAQCAtNjEyNyw3ICs2 MjIxLDYgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxf Y3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNydGMt PmRldjsKIAlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7 CiAJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMpOwot CXN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNvZGVyOwogCWludCBwaXBlID0gaW50ZWxfY3J0Yy0+ cGlwZTsKIAogCWlmIChXQVJOX09OKGludGVsX2NydGMtPmFjdGl2ZSkpCkBAIC02MTUyLDkgKzYy NDUsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NydGNfZW5hYmxlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAogCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9y ZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIHRydWUpOwogCi0JZm9yX2VhY2hfZW5jb2Rlcl9vbl9j cnRjKGRldiwgY3J0YywgZW5jb2RlcikKLQkJaWYgKGVuY29kZXItPnByZV9wbGxfZW5hYmxlKQot CQkJZW5jb2Rlci0+cHJlX3BsbF9lbmFibGUoZW5jb2Rlcik7CisJaW50ZWxfZW5jb2RlcnNfcHJl X3BsbF9lbmFibGUoY3J0Yywgb2xkX3N0YXRlKTsKIAogCWlmIChJU19DSEVSUllWSUVXKGRldikp IHsKIAkJY2h2X3ByZXBhcmVfcGxsKGludGVsX2NydGMsIGludGVsX2NydGMtPmNvbmZpZyk7CkBA IC02MTY0LDkgKzYyNTUsNyBAQCBzdGF0aWMgdm9pZCB2YWxsZXl2aWV3X2NydGNfZW5hYmxlKHN0 cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpwaXBlX2NvbmZpZywKIAkJdmx2X2VuYWJsZV9wbGwoaW50 ZWxfY3J0YywgaW50ZWxfY3J0Yy0+Y29uZmlnKTsKIAl9CiAKLQlmb3JfZWFjaF9lbmNvZGVyX29u X2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQotCQlpZiAoZW5jb2Rlci0+cHJlX2VuYWJsZSkKLQkJ CWVuY29kZXItPnByZV9lbmFibGUoZW5jb2Rlcik7CisJaW50ZWxfZW5jb2RlcnNfcHJlX2VuYWJs ZShjcnRjLCBvbGRfc3RhdGUpOwogCiAJaTl4eF9wZml0X2VuYWJsZShpbnRlbF9jcnRjKTsKIApA QCAtNjE3OCw4ICs2MjY3LDcgQEAgc3RhdGljIHZvaWQgdmFsbGV5dmlld19jcnRjX2VuYWJsZShz dHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJYXNzZXJ0X3ZibGFua19kaXNh YmxlZChjcnRjKTsKIAlkcm1fY3J0Y192Ymxhbmtfb24oY3J0Yyk7CiAKLQlmb3JfZWFjaF9lbmNv ZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQotCQllbmNvZGVyLT5lbmFibGUoZW5jb2Rl cik7CisJaW50ZWxfZW5jb2RlcnNfZW5hYmxlKGNydGMsIG9sZF9zdGF0ZSk7CiB9CiAKIHN0YXRp YyB2b2lkIGk5eHhfc2V0X3BsbF9kaXZpZGVycyhzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YykKQEAg LTYxOTgsNyArNjI4Niw2IEBAIHN0YXRpYyB2b2lkIGk5eHhfY3J0Y19lbmFibGUoc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKnBpcGVfY29uZmlnLAogCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj cnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShk ZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9faW50ZWxfY3J0YyhjcnRj KTsKLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKIAllbnVtIHBpcGUgcGlwZSA9IGlu dGVsX2NydGMtPnBpcGU7CiAKIAlpZiAoV0FSTl9PTihpbnRlbF9jcnRjLT5hY3RpdmUpKQpAQCAt NjIxOSw5ICs2MzA2LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50 ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJaWYgKCFJU19HRU4yKGRldikpCiAJCWludGVs X3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUsIHRydWUpOwog Ci0JZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2RlcikKLQkJaWYgKGVu Y29kZXItPnByZV9lbmFibGUpCi0JCQllbmNvZGVyLT5wcmVfZW5hYmxlKGVuY29kZXIpOworCWlu dGVsX2VuY29kZXJzX3ByZV9lbmFibGUoY3J0Yywgb2xkX3N0YXRlKTsKIAogCWk5eHhfZW5hYmxl X3BsbChpbnRlbF9jcnRjKTsKIApAQCAtNjIzNSw4ICs2MzIwLDcgQEAgc3RhdGljIHZvaWQgaTl4 eF9jcnRjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25maWcsCiAJYXNz ZXJ0X3ZibGFua19kaXNhYmxlZChjcnRjKTsKIAlkcm1fY3J0Y192Ymxhbmtfb24oY3J0Yyk7CiAK LQlmb3JfZWFjaF9lbmNvZGVyX29uX2NydGMoZGV2LCBjcnRjLCBlbmNvZGVyKQotCQllbmNvZGVy LT5lbmFibGUoZW5jb2Rlcik7CisJaW50ZWxfZW5jb2RlcnNfZW5hYmxlKGNydGMsIG9sZF9zdGF0 ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGk5eHhfcGZpdF9kaXNhYmxlKHN0cnVjdCBpbnRlbF9jcnRj ICpjcnRjKQpAQCAtNjI2MSw3ICs2MzQ1LDYgQEAgc3RhdGljIHZvaWQgaTl4eF9jcnRjX2Rpc2Fi bGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7CiAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShkZXYpOwogCXN0cnVjdCBpbnRlbF9jcnRjICppbnRlbF9jcnRjID0gdG9f aW50ZWxfY3J0YyhjcnRjKTsKLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlcjsKIAlpbnQg cGlwZSA9IGludGVsX2NydGMtPnBpcGU7CiAKIAkvKgpAQCAtNjI3MSw4ICs2MzU0LDcgQEAgc3Rh dGljIHZvaWQgaTl4eF9jcnRjX2Rpc2FibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9j cnRjX3N0YXRlLAogCWlmIChJU19HRU4yKGRldikpCiAJCWludGVsX3dhaXRfZm9yX3ZibGFuayhk ZXYsIHBpcGUpOwogCi0JZm9yX2VhY2hfZW5jb2Rlcl9vbl9jcnRjKGRldiwgY3J0YywgZW5jb2Rl cikKLQkJZW5jb2Rlci0+ZGlzYWJsZShlbmNvZGVyKTsKKwlpbnRlbF9lbmNvZGVyc19kaXNhYmxl KGNydGMsIG9sZF9zdGF0ZSk7CiAKIAlkcm1fY3J0Y192Ymxhbmtfb2ZmKGNydGMpOwogCWFzc2Vy dF92YmxhbmtfZGlzYWJsZWQoY3J0Yyk7CkBAIC02MjgxLDkgKzYzNjMsNyBAQCBzdGF0aWMgdm9p ZCBpOXh4X2NydGNfZGlzYWJsZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqb2xkX2NydGNfc3Rh dGUsCiAKIAlpOXh4X3BmaXRfZGlzYWJsZShpbnRlbF9jcnRjKTsKIAotCWZvcl9lYWNoX2VuY29k ZXJfb25fY3J0YyhkZXYsIGNydGMsIGVuY29kZXIpCi0JCWlmIChlbmNvZGVyLT5wb3N0X2Rpc2Fi bGUpCi0JCQllbmNvZGVyLT5wb3N0X2Rpc2FibGUoZW5jb2Rlcik7CisJaW50ZWxfZW5jb2RlcnNf cG9zdF9kaXNhYmxlKGNydGMsIG9sZF9zdGF0ZSk7CiAKIAlpZiAoIWludGVsX2NydGNfaGFzX3R5 cGUoaW50ZWxfY3J0Yy0+Y29uZmlnLCBJTlRFTF9PVVRQVVRfRFNJKSkgewogCQlpZiAoSVNfQ0hF UlJZVklFVyhkZXYpKQpAQCAtNjI5NCw5ICs2Mzc0LDcgQEAgc3RhdGljIHZvaWQgaTl4eF9jcnRj X2Rpc2FibGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlLAogCQkJaTl4 eF9kaXNhYmxlX3BsbChpbnRlbF9jcnRjKTsKIAl9CiAKLQlmb3JfZWFjaF9lbmNvZGVyX29uX2Ny dGMoZGV2LCBjcnRjLCBlbmNvZGVyKQotCQlpZiAoZW5jb2Rlci0+cG9zdF9wbGxfZGlzYWJsZSkK LQkJCWVuY29kZXItPnBvc3RfcGxsX2Rpc2FibGUoZW5jb2Rlcik7CisJaW50ZWxfZW5jb2RlcnNf cG9zdF9wbGxfZGlzYWJsZShjcnRjLCBvbGRfc3RhdGUpOwogCiAJaWYgKCFJU19HRU4yKGRldikp CiAJCWludGVsX3NldF9jcHVfZmlmb191bmRlcnJ1bl9yZXBvcnRpbmcoZGV2X3ByaXYsIHBpcGUs IGZhbHNlKTsKLS0gCjIuNS41CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVz a3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9p bnRlbC1nZngK