From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: [PATCH v2 2/3] drm/i915: Use atomic helpers for suspend, v2. Date: Tue, 16 Feb 2016 10:06:14 +0100 Message-ID: <56C2E686.5060803@linux.intel.com> References: <20160203163408.GF23290@intel.com> <1455022343-15222-1-git-send-email-maarten.lankhorst@linux.intel.com> <1455022343-15222-2-git-send-email-maarten.lankhorst@linux.intel.com> <20160209133747.GN23290@intel.com> <56B9F23F.9080502@linux.intel.com> <20160209145834.GQ23290@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTP id 3310E6E76B for ; Tue, 16 Feb 2016 09:06:18 +0000 (UTC) In-Reply-To: <20160209145834.GQ23290@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T3AgMDktMDItMTYgb20gMTU6NTggc2NocmVlZiBWaWxsZSBTeXJqw6Rsw6Q6Cj4gT24gVHVlLCBG ZWIgMDksIDIwMTYgYXQgMDM6MDU6NTFQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9yc3Qgd3JvdGU6 Cj4+IE9wIDA5LTAyLTE2IG9tIDE0OjM3IHNjaHJlZWYgVmlsbGUgU3lyasOkbMOkOgo+Pj4gT24g VHVlLCBGZWIgMDksIDIwMTYgYXQgMDE6NTI6MjJQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9yc3Qg d3JvdGU6Cj4+Pj4gSW5zdGVhZCBvZiBkdXBsaWNhdGluZyB0aGUgZnVuY3Rpb25hbGl0eSBub3cg dGhhdCB3ZSBubyBsb25nZXIgbmVlZAo+Pj4+IHRvIHByZXNlcnZlIGRwbGwgc3RhdGUgd2UgY2Fu IG1vdmUgdG8gdXNpbmcgdGhlIHVwc3RyZWFtIHN1c3BlbmQgaGVscGVyLgo+Pj4+Cj4+Pj4gU2ln bmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0QGxpbnV4Lmlu dGVsLmNvbT4KPj4+PiAtLS0KPj4+PiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVy LmMgIHwgICAzICsKPj4+PiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyAgICAgIHwg ICA4IC0tLQo+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICAgICAgfCAgIDEg Kwo+Pj4+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxMTcgKysrKysr KysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+PiAgNCBmaWxlcyBjaGFuZ2VkLCA0MiBp bnNlcnRpb25zKCspLCA4NyBkZWxldGlvbnMoLSkKPj4+Pgo+Pj4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljX2hlbHBlci5jCj4+Pj4gaW5kZXggMmI0MzBiMDVmMzVkLi5hMmQzYjA5NGYyN2MgMTAwNjQ0 Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPj4+PiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+Pj4+IEBAIC0yMTAyLDYgKzIx MDIsOSBAQCBpbnQgZHJtX2F0b21pY19oZWxwZXJfcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpk ZXYsCj4+Pj4gIAllcnIgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7Cj4+Pj4gIAlkcm1fbW9k ZXNldF91bmxvY2tfYWxsKGRldik7Cj4+Pj4gIAo+Pj4+ICsJaWYgKGVycikKPj4+PiArCQlkcm1f YXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+Pj4+ICsKPj4+PiAgCXJldHVybiBlcnI7Cj4+Pj4g IH0KPj4+PiAgRVhQT1JUX1NZTUJPTChkcm1fYXRvbWljX2hlbHBlcl9yZXN1bWUpOwo+Pj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9kcnYuYwo+Pj4+IGluZGV4IDExZDg0MTRlZGJiZS4uZmM5YjU1MmJmY2Qx IDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPj4+PiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4+Pj4gQEAgLTYwMCwxMyArNjAw LDcgQEAgc3RhdGljIGludCBpOTE1X2RybV9zdXNwZW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Cj4+Pj4gIAo+Pj4+ICAJaW50ZWxfc3VzcGVuZF9ndF9wb3dlcnNhdmUoZGV2KTsKPj4+PiAgCj4+ Pj4gLQkvKgo+Pj4+IC0JICogRGlzYWJsZSBDUlRDcyBkaXJlY3RseSBzaW5jZSB3ZSB3YW50IHRv IHByZXNlcnZlIHN3IHN0YXRlCj4+Pj4gLQkgKiBmb3IgX3RoYXcuIEFsc28sIHBvd2VyIGdhdGUg dGhlIENSVEMgcG93ZXIgd2VsbHMuCj4+Pj4gLQkgKi8KPj4+PiAtCWRybV9tb2Rlc2V0X2xvY2tf YWxsKGRldik7Cj4+Pj4gIAlpbnRlbF9kaXNwbGF5X3N1c3BlbmQoZGV2KTsKPj4+PiAtCWRybV9t b2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKPj4+PiAgCj4+Pj4gIAlpbnRlbF9kcF9tc3Rfc3VzcGVu ZChkZXYpOwo+Pj4+ICAKPj4+PiBAQCAtNzYxLDkgKzc1NSw3IEBAIHN0YXRpYyBpbnQgaTkxNV9k cm1fcmVzdW1lKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+Pj4gIAkJZGV2X3ByaXYtPmRpc3Bs YXkuaHBkX2lycV9zZXR1cChkZXYpOwo+Pj4+ICAJc3Bpbl91bmxvY2tfaXJxKCZkZXZfcHJpdi0+ aXJxX2xvY2spOwo+Pj4+ICAKPj4+PiAtCWRybV9tb2Rlc2V0X2xvY2tfYWxsKGRldik7Cj4+Pj4g IAlpbnRlbF9kaXNwbGF5X3Jlc3VtZShkZXYpOwo+Pj4+IC0JZHJtX21vZGVzZXRfdW5sb2NrX2Fs bChkZXYpOwo+Pj4+ICAKPj4+PiAgCWludGVsX2RwX21zdF9yZXN1bWUoZGV2KTsKPj4+PiAgCj4+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+Pj4gaW5kZXggODIxNjY2NTQwNWViLi5lZjI4OTUx NGI5N2UgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+ Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+PiBAQCAtMTg0OCw2 ICsxODQ4LDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+Pj4+ICAKPj4+PiAgCWVudW0g bW9kZXNldF9yZXN0b3JlIG1vZGVzZXRfcmVzdG9yZTsKPj4+PiAgCXN0cnVjdCBtdXRleCBtb2Rl c2V0X3Jlc3RvcmVfbG9jazsKPj4+PiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICptb2Rlc2V0 X3Jlc3RvcmVfc3RhdGU7Cj4+Pj4gIAo+Pj4+ICAJc3RydWN0IGxpc3RfaGVhZCB2bV9saXN0OyAv KiBHbG9iYWwgbGlzdCBvZiBhbGwgYWRkcmVzcyBzcGFjZXMgKi8KPj4+PiAgCXN0cnVjdCBpOTE1 X2d0dCBndHQ7IC8qIFZNIHJlcHJlc2VudGluZyB0aGUgZ2xvYmFsIGFkZHJlc3Mgc3BhY2UgKi8K Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlzcGxheS5jCj4+Pj4gaW5kZXggZTQ5NmMxMzAz NjRkLi40YzkxZmQxYzUyMjIgMTAwNjQ0Cj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZGlzcGxheS5jCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZGlz cGxheS5jCj4+Pj4gQEAgLTYzOTMsNTggKzYzOTMsMTkgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0 Y19kaXNhYmxlX25vYXRvbWljKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKPj4+PiAgICovCj4+Pj4g IGludCBpbnRlbF9kaXNwbGF5X3N1c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4+PiAg ewo+Pj4+IC0Jc3RydWN0IGRybV9tb2RlX2NvbmZpZyAqY29uZmlnID0gJmRldi0+bW9kZV9jb25m aWc7Cj4+Pj4gLQlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggKmN0eCA9IGNvbmZpZy0+ YWNxdWlyZV9jdHg7Cj4+Pj4gLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGU7Cj4+Pj4g LQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7Cj4+Pj4gLQl1bnNpZ25lZCBjcnRjX21hc2sgPSAwOwo+ Pj4+IC0JaW50IHJldCA9IDA7Cj4+Pj4gLQo+Pj4+IC0JaWYgKFdBUk5fT04oIWN0eCkpCj4+Pj4g LQkJcmV0dXJuIDA7Cj4+Pj4gLQo+Pj4+IC0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmY3R4LT53d19j dHgpOwo+Pj4+IC0Jc3RhdGUgPSBkcm1fYXRvbWljX3N0YXRlX2FsbG9jKGRldik7Cj4+Pj4gLQlp ZiAoV0FSTl9PTighc3RhdGUpKQo+Pj4+IC0JCXJldHVybiAtRU5PTUVNOwo+Pj4+IC0KPj4+PiAt CXN0YXRlLT5hY3F1aXJlX2N0eCA9IGN0eDsKPj4+PiAtCXN0YXRlLT5hbGxvd19tb2Rlc2V0ID0g dHJ1ZTsKPj4+PiAtCj4+Pj4gLQlmb3JfZWFjaF9jcnRjKGRldiwgY3J0Yykgewo+Pj4+IC0JCXN0 cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9Cj4+Pj4gLQkJCWRybV9hdG9taWNfZ2V0 X2NydGNfc3RhdGUoc3RhdGUsIGNydGMpOwo+Pj4+IC0KPj4+PiAtCQlyZXQgPSBQVFJfRVJSX09S X1pFUk8oY3J0Y19zdGF0ZSk7Cj4+Pj4gLQkJaWYgKHJldCkKPj4+PiAtCQkJZ290byBmcmVlOwo+ Pj4+IC0KPj4+PiAtCQlpZiAoIWNydGNfc3RhdGUtPmFjdGl2ZSkKPj4+PiAtCQkJY29udGludWU7 Cj4+Pj4gLQo+Pj4+IC0JCWNydGNfc3RhdGUtPmFjdGl2ZSA9IGZhbHNlOwo+Pj4+IC0JCWNydGNf bWFzayB8PSAxIDw8IGRybV9jcnRjX2luZGV4KGNydGMpOwo+Pj4+IC0JfQo+Pj4+IC0KPj4+PiAt CWlmIChjcnRjX21hc2spIHsKPj4+PiAtCQlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7 Cj4+Pj4gLQo+Pj4+IC0JCWlmICghcmV0KSB7Cj4+Pj4gLQkJCWZvcl9lYWNoX2NydGMoZGV2LCBj cnRjKQo+Pj4+IC0JCQkJaWYgKGNydGNfbWFzayAmICgxIDw8IGRybV9jcnRjX2luZGV4KGNydGMp KSkKPj4+PiAtCQkJCQljcnRjLT5zdGF0ZS0+YWN0aXZlID0gdHJ1ZTsKPj4+PiAtCj4+Pj4gLQkJ CXJldHVybiByZXQ7Cj4+Pj4gLQkJfQo+Pj4+IC0JfQo+Pj4+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+Pj4+ICsJaW50IHJldDsKPj4+PiAgCj4+ Pj4gLWZyZWU6Cj4+Pj4gLQlpZiAocmV0KQo+Pj4+ICsJZGV2X3ByaXYtPm1vZGVzZXRfcmVzdG9y ZV9zdGF0ZSA9IGRybV9hdG9taWNfaGVscGVyX3N1c3BlbmQoZGV2KTsKPj4+PiArCXJldCA9IFBU Ul9FUlJfT1JfWkVSTyhkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3JlX3N0YXRlKTsKPj4+PiArCWlm IChyZXQpIHsKPj4+PiAgCQlEUk1fRVJST1IoIlN1c3BlbmRpbmcgY3J0YydzIGZhaWxlZCB3aXRo ICVpXG4iLCByZXQpOwo+Pj4+IC0JZHJtX2F0b21pY19zdGF0ZV9mcmVlKHN0YXRlKTsKPj4+PiAr CQlkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3JlX3N0YXRlID0gTlVMTDsKPj4+PiArCX0KPj4+IEkg d291bGQgdXNlIGEgbG9jYWwgc3RhdGUgcG9pbnRlciBhbmQgb25seSBhc3NpZ24gaXQgdG8KPj4+ IG1vZGVzZXRfcmVzdG9yZV9zdGF0ZSBvbmNlIHdlIGtub3cgaXQncyBnb29kLgo+Pj4KPj4+PiAg CXJldHVybiByZXQ7Cj4+Pj4gIH0KPj4+PiAgCj4+Pj4gKwo+Pj4gU3B1cmlvdXMgbmV3bGluZS4K Pj4+Cj4+Pj4gIHZvaWQgaW50ZWxfZW5jb2Rlcl9kZXN0cm95KHN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jb2RlcikKPj4+PiAgewo+Pj4+ICAJc3RydWN0IGludGVsX2VuY29kZXIgKmludGVsX2VuY29k ZXIgPSB0b19pbnRlbF9lbmNvZGVyKGVuY29kZXIpOwo+Pj4+IEBAIC0xNTkwOSw1MSArMTU4NzAs NDkgQEAgaW50ZWxfbW9kZXNldF9zZXR1cF9od19zdGF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 KQo+Pj4+ICAKPj4+PiAgdm9pZCBpbnRlbF9kaXNwbGF5X3Jlc3VtZShzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2KQo+Pj4+ICB7Cj4+Pj4gLQlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBk cm1fYXRvbWljX3N0YXRlX2FsbG9jKGRldik7Cj4+Pj4gLQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uOwo+Pj4+IC0Jc3RydWN0IGludGVsX3BsYW5lICpwbGFuZTsKPj4+PiArCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPj4+PiArCXN0cnVjdCBk cm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGRldl9wcml2LT5tb2Rlc2V0X3Jlc3RvcmVfc3RhdGU7 Cj4+Pj4gKwlzdHJ1Y3QgZHJtX21vZGVzZXRfYWNxdWlyZV9jdHggY3R4Owo+Pj4+ICAJc3RydWN0 IGRybV9jcnRjICpjcnRjOwo+Pj4+IC0JaW50IHJldDsKPj4+PiArCXN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqY3J0Y19zdGF0ZTsKPj4+PiArCWludCByZXQsIGk7Cj4+Pj4gKwo+Pj4+ICsJaW50ZWxf bW9kZXNldF9zZXR1cF9od19zdGF0ZShkZXYpOwo+Pj4gSXNuJ3Qgc29tZXRoaW5nIGluIHRoZXJl IGdvaW5nIHRvIHNjcmVhbSBhYm91dCBsb2NraW5nPwo+PiBJIHdhcyBob3BpbmcgdG8gZmluZCBv dXQgYnkgcnVubmluZyBpdCB0aHJvdWdoIENJLi4KPj4KPj4gSSBkb24ndCBzZWUgd2hhdCBwb3Nz aWJseSBjb3VsZCBzY3JlYW0gaG93ZXZlciwgZnJvbSBhIGdsYW5jZSBpdCBzZWVtcyBub3RoaW5n IGRlcGVuZHMgb24gaXQuCj4+Pj4gKwlpOTE1X3JlZGlzYWJsZV92Z2EoZGV2KTsKPj4+PiArCWRl dl9wcml2LT5tb2Rlc2V0X3Jlc3RvcmVfc3RhdGUgPSBOVUxMOwo+Pj4+ICAKPj4+PiAgCWlmICgh c3RhdGUpCj4+Pj4gIAkJcmV0dXJuOwo+Pj4+ICAKPj4+PiAtCXN0YXRlLT5hY3F1aXJlX2N0eCA9 IGRldi0+bW9kZV9jb25maWcuYWNxdWlyZV9jdHg7Cj4+Pj4gLQo+Pj4+IC0JZm9yX2VhY2hfY3J0 YyhkZXYsIGNydGMpIHsKPj4+PiAtCQlzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGUg PQo+Pj4+IC0JCQlkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRlLCBjcnRjKTsKPj4+PiAt Cj4+Pj4gLQkJcmV0ID0gUFRSX0VSUl9PUl9aRVJPKGNydGNfc3RhdGUpOwo+Pj4+IC0JCWlmIChy ZXQpCj4+Pj4gLQkJCWdvdG8gZXJyOwo+Pj4+ICsJZHJtX21vZGVzZXRfYWNxdWlyZV9pbml0KCZj dHgsIDApOwo+Pj4+ICsJc3RhdGUtPmFjcXVpcmVfY3R4ID0gJmN0eDsKPj4+PiAgCj4+Pj4gLQkJ LyogZm9yY2UgYSByZXN0b3JlICovCj4+Pj4gKwlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRl LCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7Cj4+Pj4gKwkJLyoKPj4+PiArCQkgKiBGb3JjZSByZWNh bGN1bGF0aW9uIGV2ZW4gaWYgd2UgcmVzdG9yZQo+Pj4+ICsJCSAqIGN1cnJlbnQgc3RhdGUuIFdp dGggZmFzdCBtb2Rlc2V0IHRoaXMgbWF5IG5vdCByZXN1bHQKPj4+PiArCQkgKiBpbiBhIG1vZGVz ZXQgd2hlbiB0aGUgc3RhdGUgaXMgY29tcGF0aWJsZS4KPj4+PiArCQkgKi8KPj4+PiAgCQljcnRj X3N0YXRlLT5tb2RlX2NoYW5nZWQgPSB0cnVlOwo+Pj4+ICAJfQo+Pj4gSG1tLiBXaHkgZG8gd2Ug bmVlZCB0byBzZXQgdGhhdCBleGFjdGx5PyBJZiB0aGUgY3VycmVudCBzdGF0ZSBkb2Vzbid0Cj4+ PiBtYXRjaCB0aGUgInRvIGJlIHJlc3RvcmVkIiBzdGF0ZSwgc2hvdWxkbid0IHNvbWV0aGluZyBz b21ld2hlcmUgZmlndXJlCj4+PiBvdXQgdGhhdCB3ZSByZWFsbHkgbmVlZCBhIG1vZGVzZXQ/Cj4+ IFdlIGhhdmUgYSB3aG9sZSBidW5jaCBvZiBodyBzdGF0ZSBmcm9tIHN1c3BlbmQgdGhhdCBtYXkg YmUgZGlmZmVyZW50IGZyb20gdGhlIGh3IHJlYWRvdXQgaW4gcmVzdW1lLiBUaGlzIGlzIG5vdCBo YW5kbGVkIGJ5IHRoZSBjb3JlIGJlY2F1c2UgaXQgZG9lc24ndCBrbm93IGFib3V0IGRyaXZlciBz cGVjaWZpYyBwbGwncyBldGMuIFNvIHRoYXQncyB3aGF0IHRoZSBtb2RlX2NoYW5nZWQgPSB0cnVl IGlzIGZvci4gSXQncyBhIGhpbnQgdG8gaW50ZWxfYXRvbWljX2NoZWNrIHRoYXQgbWlnaHQgZ2V0 IGRvd25ncmFkZWQgdG8gdXBkYXRlX3BpcGUgaWYgaTkxNS5mYXN0Ym9vdCBpcyB0cnVlIGFuZCB0 aGUgaHcgcmVhZG91dCBhbmQgcmVzdW1lIHN0YXRlcyBhcmUgY29tcGF0aWJsZS4KPiBIbW0uIFNv IGl0J3MgYSBiaXQgb2YgYSB3b3JrYXJvdW5kIGR1ZSB0byB0aGUgZmFjdCB0aGF0Cj4gaW50ZWxf YXRvbWljX2NoZWNrKCkgZG9lc24ndCBhY3R1YWxseSBjaGVjay91cGRhdGUgZXZlcnl0aGluZywg YW5kCj4gaW5zdGVhZCB0cmllcyB0byBza2lwIGEgYnVuY2ggb2Ygc3R1ZmYgaWYgdGhlIGNvcmUg ZGlkbid0IGRldGVjdCBhbnkKPiBtZWFuaW5nZnVsIGNoYW5nZXM/IEkgZ3Vlc3MgdGhhdCBtYWtl cyBzb21lIHNlbnNlIGFzIGFuIG9wdGltaXphdGlvbi4KPiBUaGF0IGlzLCB0aGVyZSdzIG5vIG5l ZWQgdG8gY2hlY2sgc3R1ZmYgaWYgbm90aGluZyB1c2VyIHZpc2libGUgCj4gY2hhbmdlZCBhbnl3 YXkgYmVjYXVzZSB3ZSBzaG91bGQgYW55d2F5IGVuZCB1cCB3aXRoIHRoZSBzYW1lIHN0YXRlCj4g dGhhdCB3ZSBoYWQgc2hvdWxkIHdlIGRvIGEgZnVsbCByZWNvbXB1dGUuCj4KSG93IGFib3V0IHRo aXM/IHdpdGggLS1zY2lzc29ycwoKLS0tPjgtLS0tCgpJbnN0ZWFkIG9mIGR1cGxpY2F0aW5nIHRo ZSBmdW5jdGlvbmFsaXR5IG5vdyB0aGF0IHdlIG5vIGxvbmdlciBuZWVkCnRvIHByZXNlcnZlIGRw bGwgc3RhdGUgd2UgY2FuIG1vdmUgdG8gdXNpbmcgdGhlIHVwc3RyZWFtIHN1c3BlbmQgaGVscGVy LgoKQ2hhbmdlcyBzaW5jZSB2MToKLSBDYWxsIGh3IHJlYWRvdXQgd2l0aCBhbGwgbXV0ZXhlcyBo ZWxkLgotIFJld29yayBpbnRlbF9kaXNwbGF5X3N1c3BlbmQgdG8gb25seSBhc3NpZ24gbW9kZXNl dF9yZXN0b3JlX3N0YXRlCiAgb24gc3VjY2Vzcy4KClNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFu a2hvcnN0IDxtYWFydGVuLmxhbmtob3JzdEBsaW51eC5pbnRlbC5jb20+Ci0tLQpkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMKaW5kZXggNDQ5MTJlY2ViYzFhLi4yMGU4MjAwOGI4YjYgMTAwNjQ0Ci0tLSBh L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuYwpAQCAtNjAzLDEzICs2MDMsNyBAQCBzdGF0aWMgaW50IGk5MTVfZHJtX3N1 c3BlbmQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKIAogCWludGVsX3N1c3BlbmRfZ3RfcG93ZXJz YXZlKGRldik7CiAKLQkvKgotCSAqIERpc2FibGUgQ1JUQ3MgZGlyZWN0bHkgc2luY2Ugd2Ugd2Fu dCB0byBwcmVzZXJ2ZSBzdyBzdGF0ZQotCSAqIGZvciBfdGhhdy4gQWxzbywgcG93ZXIgZ2F0ZSB0 aGUgQ1JUQyBwb3dlciB3ZWxscy4KLQkgKi8KLQlkcm1fbW9kZXNldF9sb2NrX2FsbChkZXYpOwog CWludGVsX2Rpc3BsYXlfc3VzcGVuZChkZXYpOwotCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2 KTsKIAogCWludGVsX2RwX21zdF9zdXNwZW5kKGRldik7CiAKQEAgLTc2NCw5ICs3NTgsNyBAQCBz dGF0aWMgaW50IGk5MTVfZHJtX3Jlc3VtZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogCQlkZXZf cHJpdi0+ZGlzcGxheS5ocGRfaXJxX3NldHVwKGRldik7CiAJc3Bpbl91bmxvY2tfaXJxKCZkZXZf cHJpdi0+aXJxX2xvY2spOwogCi0JZHJtX21vZGVzZXRfbG9ja19hbGwoZGV2KTsKIAlpbnRlbF9k aXNwbGF5X3Jlc3VtZShkZXYpOwotCWRybV9tb2Rlc2V0X3VubG9ja19hbGwoZGV2KTsKIAogCWlu dGVsX2RwX21zdF9yZXN1bWUoZGV2KTsKIApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaTkxNV9kcnYuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggMjBk OWRiZDlmOWNmLi42NjQ0YzJlMzU0YzEgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtMTg0 OCw2ICsxODQ4LDcgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewogCiAJZW51bSBtb2Rlc2V0 X3Jlc3RvcmUgbW9kZXNldF9yZXN0b3JlOwogCXN0cnVjdCBtdXRleCBtb2Rlc2V0X3Jlc3RvcmVf bG9jazsKKwlzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqbW9kZXNldF9yZXN0b3JlX3N0YXRlOwog CiAJc3RydWN0IGxpc3RfaGVhZCB2bV9saXN0OyAvKiBHbG9iYWwgbGlzdCBvZiBhbGwgYWRkcmVz cyBzcGFjZXMgKi8KIAlzdHJ1Y3QgaTkxNV9ndHQgZ3R0OyAvKiBWTSByZXByZXNlbnRpbmcgdGhl IGdsb2JhbCBhZGRyZXNzIHNwYWNlICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9kaXNwbGF5LmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMK aW5kZXggYTE4YmQxMjk2Y2U4Li5lYWZmMzJmNTk5NTMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9kaXNwbGF5LmMKQEAgLTYzOTMsNTUgKzYzOTMsMTYgQEAgc3RhdGljIHZvaWQgaW50ZWxfY3J0 Y19kaXNhYmxlX25vYXRvbWljKHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKICAqLwogaW50IGludGVs X2Rpc3BsYXlfc3VzcGVuZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQogewotCXN0cnVjdCBkcm1f bW9kZV9jb25maWcgKmNvbmZpZyA9ICZkZXYtPm1vZGVfY29uZmlnOwotCXN0cnVjdCBkcm1fbW9k ZXNldF9hY3F1aXJlX2N0eCAqY3R4ID0gY29uZmlnLT5hY3F1aXJlX2N0eDsKKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7CiAJc3RydWN0IGRybV9hdG9t aWNfc3RhdGUgKnN0YXRlOwotCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKLQl1bnNpZ25lZCBjcnRj X21hc2sgPSAwOwotCWludCByZXQgPSAwOwotCi0JaWYgKFdBUk5fT04oIWN0eCkpCi0JCXJldHVy biAwOwotCi0JbG9ja2RlcF9hc3NlcnRfaGVsZCgmY3R4LT53d19jdHgpOwotCXN0YXRlID0gZHJt X2F0b21pY19zdGF0ZV9hbGxvYyhkZXYpOwotCWlmIChXQVJOX09OKCFzdGF0ZSkpCi0JCXJldHVy biAtRU5PTUVNOwotCi0Jc3RhdGUtPmFjcXVpcmVfY3R4ID0gY3R4OwotCXN0YXRlLT5hbGxvd19t b2Rlc2V0ID0gdHJ1ZTsKLQotCWZvcl9lYWNoX2NydGMoZGV2LCBjcnRjKSB7Ci0JCXN0cnVjdCBk cm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9Ci0JCQlkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRl KHN0YXRlLCBjcnRjKTsKLQotCQlyZXQgPSBQVFJfRVJSX09SX1pFUk8oY3J0Y19zdGF0ZSk7Ci0J CWlmIChyZXQpCi0JCQlnb3RvIGZyZWU7Ci0KLQkJaWYgKCFjcnRjX3N0YXRlLT5hY3RpdmUpCi0J CQljb250aW51ZTsKLQotCQljcnRjX3N0YXRlLT5hY3RpdmUgPSBmYWxzZTsKLQkJY3J0Y19tYXNr IHw9IDEgPDwgZHJtX2NydGNfaW5kZXgoY3J0Yyk7Ci0JfQotCi0JaWYgKGNydGNfbWFzaykgewot CQlyZXQgPSBkcm1fYXRvbWljX2NvbW1pdChzdGF0ZSk7Ci0KLQkJaWYgKCFyZXQpIHsKLQkJCWZv cl9lYWNoX2NydGMoZGV2LCBjcnRjKQotCQkJCWlmIChjcnRjX21hc2sgJiAoMSA8PCBkcm1fY3J0 Y19pbmRleChjcnRjKSkpCi0JCQkJCWNydGMtPnN0YXRlLT5hY3RpdmUgPSB0cnVlOwotCi0JCQly ZXR1cm4gcmV0OwotCQl9Ci0JfQorCWludCByZXQ7CiAKLWZyZWU6CisJc3RhdGUgPSBkcm1fYXRv bWljX2hlbHBlcl9zdXNwZW5kKGRldik7CisJcmV0ID0gUFRSX0VSUl9PUl9aRVJPKHN0YXRlKTsK IAlpZiAocmV0KQogCQlEUk1fRVJST1IoIlN1c3BlbmRpbmcgY3J0YydzIGZhaWxlZCB3aXRoICVp XG4iLCByZXQpOwotCWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7CisJZWxzZQorCQlkZXZf cHJpdi0+bW9kZXNldF9yZXN0b3JlX3N0YXRlID0gc3RhdGU7CiAJcmV0dXJuIHJldDsKIH0KIApA QCAtMTU5MTQsNTEgKzE1ODc1LDU3IEBAIGludGVsX21vZGVzZXRfc2V0dXBfaHdfc3RhdGUoc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKIAogdm9pZCBpbnRlbF9kaXNwbGF5X3Jlc3VtZShzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KQogewotCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSA9IGRy bV9hdG9taWNfc3RhdGVfYWxsb2MoZGV2KTsKLQlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u OwotCXN0cnVjdCBpbnRlbF9wbGFuZSAqcGxhbmU7Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjOwor CXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKKwlzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUgPSBkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3JlX3N0 YXRlOworCXN0cnVjdCBkcm1fbW9kZXNldF9hY3F1aXJlX2N0eCBjdHg7CiAJaW50IHJldDsKKwli b29sIHNldHVwID0gZmFsc2U7CiAKLQlpZiAoIXN0YXRlKQotCQlyZXR1cm47CisJZGV2X3ByaXYt Pm1vZGVzZXRfcmVzdG9yZV9zdGF0ZSA9IE5VTEw7CiAKLQlzdGF0ZS0+YWNxdWlyZV9jdHggPSBk ZXYtPm1vZGVfY29uZmlnLmFjcXVpcmVfY3R4OworCWRybV9tb2Rlc2V0X2FjcXVpcmVfaW5pdCgm Y3R4LCAwKTsKIAotCWZvcl9lYWNoX2NydGMoZGV2LCBjcnRjKSB7Ci0JCXN0cnVjdCBkcm1fY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9Ci0JCQlkcm1fYXRvbWljX2dldF9jcnRjX3N0YXRlKHN0YXRl LCBjcnRjKTsKK3JldHJ5OgorCXJldCA9IGRybV9tb2Rlc2V0X2xvY2tfYWxsX2N0eChkZXYsICZj dHgpOwogCi0JCXJldCA9IFBUUl9FUlJfT1JfWkVSTyhjcnRjX3N0YXRlKTsKLQkJaWYgKHJldCkK LQkJCWdvdG8gZXJyOworCWlmIChyZXQgPT0gMCAmJiAhc2V0dXApIHsKKwkJc2V0dXAgPSB0cnVl OwogCi0JCS8qIGZvcmNlIGEgcmVzdG9yZSAqLwotCQljcnRjX3N0YXRlLT5tb2RlX2NoYW5nZWQg PSB0cnVlOworCQlpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKGRldik7CisJCWk5MTVfcmVk aXNhYmxlX3ZnYShkZXYpOwogCX0KIAotCWZvcl9lYWNoX2ludGVsX3BsYW5lKGRldiwgcGxhbmUp IHsKLQkJcmV0ID0gUFRSX0VSUl9PUl9aRVJPKGRybV9hdG9taWNfZ2V0X3BsYW5lX3N0YXRlKHN0 YXRlLCAmcGxhbmUtPmJhc2UpKTsKLQkJaWYgKHJldCkKLQkJCWdvdG8gZXJyOwotCX0KKwlpZiAo cmV0ID09IDAgJiYgc3RhdGUpIHsKKwkJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRl OworCQlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7CisJCWludCBpOwogCi0JZm9yX2VhY2hfaW50ZWxf Y29ubmVjdG9yKGRldiwgY29ubikgewotCQlyZXQgPSBQVFJfRVJSX09SX1pFUk8oZHJtX2F0b21p Y19nZXRfY29ubmVjdG9yX3N0YXRlKHN0YXRlLCAmY29ubi0+YmFzZSkpOwotCQlpZiAocmV0KQot CQkJZ290byBlcnI7CisJCXN0YXRlLT5hY3F1aXJlX2N0eCA9ICZjdHg7CisKKwkJZm9yX2VhY2hf Y3J0Y19pbl9zdGF0ZShzdGF0ZSwgY3J0YywgY3J0Y19zdGF0ZSwgaSkgeworCQkJLyoKKwkJCSAq IEZvcmNlIHJlY2FsY3VsYXRpb24gZXZlbiBpZiB3ZSByZXN0b3JlCisJCQkgKiBjdXJyZW50IHN0 YXRlLiBXaXRoIGZhc3QgbW9kZXNldCB0aGlzIG1heSBub3QgcmVzdWx0CisJCQkgKiBpbiBhIG1v ZGVzZXQgd2hlbiB0aGUgc3RhdGUgaXMgY29tcGF0aWJsZS4KKwkJCSAqLworCQkJY3J0Y19zdGF0 ZS0+bW9kZV9jaGFuZ2VkID0gdHJ1ZTsKKwkJfQorCisJCXJldCA9IGRybV9hdG9taWNfY29tbWl0 KHN0YXRlKTsKIAl9CiAKLQlpbnRlbF9tb2Rlc2V0X3NldHVwX2h3X3N0YXRlKGRldik7CisJaWYg KHJldCA9PSAtRURFQURMSykgeworCQlkcm1fbW9kZXNldF9iYWNrb2ZmKCZjdHgpOworCQlnb3Rv IHJldHJ5OworCX0KIAotCWk5MTVfcmVkaXNhYmxlX3ZnYShkZXYpOwotCXJldCA9IGRybV9hdG9t aWNfY29tbWl0KHN0YXRlKTsKLQlpZiAoIXJldCkKLQkJcmV0dXJuOworCWRybV9tb2Rlc2V0X2Ry b3BfbG9ja3MoJmN0eCk7CisJZHJtX21vZGVzZXRfYWNxdWlyZV9maW5pKCZjdHgpOwogCi1lcnI6 Ci0JRFJNX0VSUk9SKCJSZXN0b3Jpbmcgb2xkIHN0YXRlIGZhaWxlZCB3aXRoICVpXG4iLCByZXQp OwotCWRybV9hdG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7CisJaWYgKHJldCkgeworCQlEUk1fRVJS T1IoIlJlc3RvcmluZyBvbGQgc3RhdGUgZmFpbGVkIHdpdGggJWlcbiIsIHJldCk7CisJCWRybV9h dG9taWNfc3RhdGVfZnJlZShzdGF0ZSk7CisJfQogfQogCiB2b2lkIGludGVsX21vZGVzZXRfZ2Vt X2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldikKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=