From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 1/3] drm/i915: Do not acquire crtc state to check clock during modeset, v2. Date: Tue, 27 Oct 2015 15:29:17 +0200 Message-ID: <20151027132917.GC4437@intel.com> References: <1445514996-18733-3-git-send-email-maarten.lankhorst@linux.intel.com> <1445952393-25283-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 mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id CE1C26EADB for ; Tue, 27 Oct 2015 06:29:30 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1445952393-25283-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: Maarten Lankhorst Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMjcsIDIwMTUgYXQgMDI6MjY6MzFQTSArMDEwMCwgTWFhcnRlbiBMYW5raG9y c3Qgd3JvdGU6Cj4gUGFyYWxsZWwgbW9kZXNldHMgYXJlIHN0aWxsIG5vdCBhbGxvd2VkLCBidXQg dGhpcyB3aWxsIGFsbG93IHVwZGF0aW5nCj4gYSBkaWZmZXJlbnQgY3J0YyBkdXJpbmcgYSBtb2Rl c2V0IGlmIHRoZSBjbG9jayBpcyBub3QgY2hhbmdlZC4KPiAKPiBBZGRpdGlvbmFsbHkgd2hlbiBh bGwgcGlwZXMgYXJlIERQTVMgb2ZmIHRoZSBjZGNsayB3aWxsIGJlIGxvd2VyZWQKPiB0byB0aGUg bWluaW11bSBhbGxvd2VkLgo+IAo+IENoYW5nZXMgc2luY2UgdjE6Cj4gLSBBZGQgZGV2X3ByaXYt PmFjdGl2ZV9jcnRjcyBmb3IgdHJhY2tpbmcgd2hpY2ggY3J0Y3MgYXJlIGFjdGl2ZS4KPiAtIFJl bmFtZSBtaW5fY2RjbGsgdG8gbWluX3BpeGNsayBhbmQgbW92ZSB0byBkZXZfcHJpdi4KPiAtIEFk ZCBhIGFjdGl2ZV9jcnRjcyBtYXNrIHdoaWNoIGlzIHVwZGF0ZWQgYXRvbWljYWxseS4KPiAtIEFk ZCBpbnRlbF9hdG9taWNfc3RhdGUtPm1vZGVzZXQgd2hpY2ggaXMgc2V0IG9uIG1vZGVzZXRzLgo+ IC0gQ29tbWl0IG5ldyBwaXhjbGsvYWN0aXZlX2NydGNzIHJpZ2h0IGFmdGVyIHN0YXRlIHN3YXAu Cj4gCj4gU2lnbmVkLW9mZi1ieTogTWFhcnRlbiBMYW5raG9yc3QgPG1hYXJ0ZW4ubGFua2hvcnN0 QGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCAgICAgIHwgICA1ICsrCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jICB8 ICAgMiArLQo+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kaXNwbGF5LmMgfCAxNjAgKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmggICAgIHwgICA3ICstCj4gIDQgZmlsZXMgY2hhbmdlZCwgMTI1IGluc2VydGlv bnMoKyksIDQ5IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+IGluZGV4 IDU5Yzk0OTI5ZjI1Yi4uMzdlZWY4NmU0YTBhIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5o Cj4gQEAgLTE4MzcsOCArMTgzNywxMyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7Cj4gIAlz dHJ1Y3QgaW50ZWxfcGlwZV9jcmMgcGlwZV9jcmNbSTkxNV9NQVhfUElQRVNdOwo+ICAjZW5kaWYK PiAgCj4gKwkvKiBkcGxsIGFuZCBjZGNsayBzdGF0ZSBpcyBwcm90ZWN0ZWQgYnkgY29ubmVjdGlv bl9tdXRleCAqLwo+ICAJaW50IG51bV9zaGFyZWRfZHBsbDsKPiAgCXN0cnVjdCBpbnRlbF9zaGFy ZWRfZHBsbCBzaGFyZWRfZHBsbHNbSTkxNV9OVU1fUExMU107Cj4gKwo+ICsJdW5zaWduZWQgaW50 IGFjdGl2ZV9jcnRjczsKPiArCXVuc2lnbmVkIGludCBtaW5fcGl4Y2xrW0k5MTVfTUFYX1BJUEVT XTsKPiArCj4gIAlpbnQgZHBpb19waHlfaW9zZl9wb3J0W0k5MTVfTlVNX1BIWVNfVkxWXTsKPiAg Cj4gIAlzdHJ1Y3QgaTkxNV93b3JrYXJvdW5kcyB3b3JrYXJvdW5kczsKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9hdG9taWMuYwo+IGluZGV4IDI1YTg5MWFhMzgyNC4uY2I4ZmNmNGZlN2YyIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F0b21pYy5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfYXRvbWljLmMKPiBAQCAtMzA1LDUgKzMwNSw1IEBAIHZv aWQgaW50ZWxfYXRvbWljX3N0YXRlX2NsZWFyKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzKQo+ ICB7Cj4gIAlzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICpzdGF0ZSA9IHRvX2ludGVsX2F0b21p Y19zdGF0ZShzKTsKPiAgCWRybV9hdG9taWNfc3RhdGVfZGVmYXVsdF9jbGVhcigmc3RhdGUtPmJh c2UpOwo+IC0Jc3RhdGUtPmRwbGxfc2V0ID0gZmFsc2U7Cj4gKwlzdGF0ZS0+ZHBsbF9zZXQgPSBz dGF0ZS0+bW9kZXNldCA9IGZhbHNlOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3Bs YXkuYwo+IGluZGV4IDAyMmU2MjhiODUyMC4uYTA1MDhkNWU5ZTEzIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rpc3BsYXkuYwo+IEBAIC01MjM3LDYgKzUyMzcsNyBAQCBzdGF0aWMgdm9p ZCBtb2Rlc2V0X3B1dF9wb3dlcl9kb21haW5zKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKPiAgCj4gIHN0YXRpYyB2b2lkIG1vZGVzZXRfdXBkYXRlX2NydGNfcG93ZXJfZG9tYWlu cyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIHsKPiArCXN0cnVjdCBpbnRlbF9h dG9taWNfc3RhdGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsK PiAgCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owo+ICAJc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAgCXVuc2lnbmVkIGxv bmcgcHV0X2RvbWFpbnNbSTkxNV9NQVhfUElQRVNdID0ge307Cj4gQEAgLTUyNDUsMTMgKzUyNDYs MTggQEAgc3RhdGljIHZvaWQgbW9kZXNldF91cGRhdGVfY3J0Y19wb3dlcl9kb21haW5zKHN0cnVj dCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSkKPiAgCWludCBpOwo+ICAKPiAgCWZvcl9lYWNoX2Ny dGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKPiAtCQlpZiAobmVlZHNf bW9kZXNldChjcnRjLT5zdGF0ZSkpCj4gLQkJCXB1dF9kb21haW5zW3RvX2ludGVsX2NydGMoY3J0 YyktPnBpcGVdID0KPiAtCQkJCW1vZGVzZXRfZ2V0X2NydGNfcG93ZXJfZG9tYWlucyhjcnRjKTsK PiArCQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YyA9Cj4gKwkJCXRvX2ludGVsX2NydGMo Y3J0Yyk7Cj4gKwkJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9jcnRjLT5waXBlOwo+ICsKPiArCQlp ZiAoIW5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpKQo+ICsJCQljb250aW51ZTsKPiArCj4gKwkJ cHV0X2RvbWFpbnNbcGlwZV0gPSBtb2Rlc2V0X2dldF9jcnRjX3Bvd2VyX2RvbWFpbnMoY3J0Yyk7 Cj4gIAl9Cj4gIAo+ICAJaWYgKGRldl9wcml2LT5kaXNwbGF5Lm1vZGVzZXRfY29tbWl0X2NkY2xr KSB7Cj4gLQkJdW5zaWduZWQgaW50IGNkY2xrID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRl KS0+Y2RjbGs7Cj4gKwkJdW5zaWduZWQgaW50IGNkY2xrID0gaW50ZWxfc3RhdGUtPmNkY2xrOwo+ ICAKPiAgCQlpZiAoY2RjbGsgIT0gZGV2X3ByaXYtPmNkY2xrX2ZyZXEgJiYKPiAgCQkgICAgIVdB Uk5fT04oIXN0YXRlLT5hbGxvd19tb2Rlc2V0KSkKPiBAQCAtNTkzOCwyMyArNTk0NCwzMiBAQCBz dGF0aWMgaW50IGJyb3h0b25fY2FsY19jZGNsayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYsCj4gIHN0YXRpYyBpbnQgaW50ZWxfbW9kZV9tYXhfcGl4Y2xrKHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gIAkJCQkgc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICB7Cj4g LQlzdHJ1Y3QgaW50ZWxfY3J0YyAqaW50ZWxfY3J0YzsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjX3N0 YXRlICpjcnRjX3N0YXRlOwo+IC0JaW50IG1heF9waXhjbGsgPSAwOwo+ICsJc3RydWN0IGludGVs X2F0b21pY19zdGF0ZSAqaW50ZWxfc3RhdGUgPSB0b19pbnRlbF9hdG9taWNfc3RhdGUoc3RhdGUp Owo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiArCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZTsKPiArCXVuc2lnbmVkIG1heF9waXhlbF9yYXRlID0gMCwgaTsKPiArCWVudW0g cGlwZSBwaXBlOwo+ICAKPiAtCWZvcl9lYWNoX2ludGVsX2NydGMoZGV2LCBpbnRlbF9jcnRjKSB7 Cj4gLQkJY3J0Y19zdGF0ZSA9IGludGVsX2F0b21pY19nZXRfY3J0Y19zdGF0ZShzdGF0ZSwgaW50 ZWxfY3J0Yyk7Cj4gLQkJaWYgKElTX0VSUihjcnRjX3N0YXRlKSkKPiAtCQkJcmV0dXJuIFBUUl9F UlIoY3J0Y19zdGF0ZSk7Cj4gKwltZW1jcHkoaW50ZWxfc3RhdGUtPm1pbl9waXhjbGssIGRldl9w cml2LT5taW5fcGl4Y2xrLAo+ICsJICAgICAgIHNpemVvZihpbnRlbF9zdGF0ZS0+bWluX3BpeGNs aykpOwo+ICAKPiAtCQlpZiAoIWNydGNfc3RhdGUtPmJhc2UuZW5hYmxlKQo+IC0JCQljb250aW51 ZTsKPiArCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkp IHsKPiArCQlpbnQgcGl4Y2xrID0gMDsKPiAgCj4gLQkJbWF4X3BpeGNsayA9IG1heChtYXhfcGl4 Y2xrLAo+IC0JCQkJIGNydGNfc3RhdGUtPmJhc2UuYWRqdXN0ZWRfbW9kZS5jcnRjX2Nsb2NrKTsK PiArCQlpZiAoY3J0Y19zdGF0ZS0+ZW5hYmxlKQo+ICsJCQlwaXhjbGsgPSBjcnRjX3N0YXRlLT5h ZGp1c3RlZF9tb2RlLmNydGNfY2xvY2s7Cj4gKwo+ICsJCWludGVsX3N0YXRlLT5taW5fcGl4Y2xr W2ldID0gcGl4Y2xrOwo+ICAJfQo+ICAKPiAtCXJldHVybiBtYXhfcGl4Y2xrOwo+ICsJaWYgKCFp bnRlbF9zdGF0ZS0+YWN0aXZlX2NydGNzKQo+ICsJCXJldHVybiAwOwo+ICsKPiArCWZvcl9lYWNo X3BpcGUoZGV2X3ByaXYsIHBpcGUpCj4gKwkJbWF4X3BpeGVsX3JhdGUgPSBtYXgoaW50ZWxfc3Rh dGUtPm1pbl9waXhjbGtbcGlwZV0sIG1heF9waXhlbF9yYXRlKTsKPiArCj4gKwlyZXR1cm4gbWF4 X3BpeGVsX3JhdGU7Cj4gIH0KPiAgCj4gIHN0YXRpYyBpbnQgdmFsbGV5dmlld19tb2Rlc2V0X2Nh bGNfY2RjbGsoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+IEBAIC02MjU1LDYgKzYy NzAsOSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9jcnRjX2Rpc2FibGVfbm9hdG9taWMoc3RydWN0IGRy bV9jcnRjICpjcnRjKQo+ICAJZm9yX2VhY2hfcG93ZXJfZG9tYWluKGRvbWFpbiwgZG9tYWlucykK PiAgCQlpbnRlbF9kaXNwbGF5X3Bvd2VyX3B1dChkZXZfcHJpdiwgZG9tYWluKTsKPiAgCWludGVs X2NydGMtPmVuYWJsZWRfcG93ZXJfZG9tYWlucyA9IDA7Cj4gKwo+ICsJZGV2X3ByaXYtPmFjdGl2 ZV9jcnRjcyAmPSB+KDEgPDwgaW50ZWxfY3J0Yy0+cGlwZSk7Cj4gKwlkZXZfcHJpdi0+bWluX3Bp eGNsa1tpbnRlbF9jcnRjLT5waXBlXSA9IDA7Cj4gIH0KPiAgCj4gIC8qCj4gQEAgLTk0OTAsMjkg Kzk1MDgsMzkgQEAgc3RhdGljIHZvaWQgYnJveHRvbl9tb2Rlc2V0X2NvbW1pdF9jZGNsayhzdHJ1 Y3QgZHJtX2F0b21pY19zdGF0ZSAqb2xkX3N0YXRlKQo+ICAvKiBjb21wdXRlIHRoZSBtYXggcmF0 ZSBmb3IgbmV3IGNvbmZpZ3VyYXRpb24gKi8KPiAgc3RhdGljIGludCBpbGtfbWF4X3BpeGVsX3Jh dGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICB7Cj4gLQlzdHJ1Y3QgaW50ZWxf Y3J0YyAqaW50ZWxfY3J0YzsKPiAtCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRl Owo+IC0JaW50IG1heF9waXhlbF9yYXRlID0gMDsKPiArCXN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsKPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHN0YXRlLT5kZXYtPmRldl9wcml2YXRlOwo+ ICsJc3RydWN0IGRybV9jcnRjICpjcnRjOwo+ICsJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRj X3N0YXRlOwo+ICsJdW5zaWduZWQgbWF4X3BpeGVsX3JhdGUgPSAwLCBpOwo+ICsJZW51bSBwaXBl IHBpcGU7Cj4gIAo+IC0JZm9yX2VhY2hfaW50ZWxfY3J0YyhzdGF0ZS0+ZGV2LCBpbnRlbF9jcnRj KSB7Cj4gLQkJaW50IHBpeGVsX3JhdGU7Cj4gKwltZW1jcHkoaW50ZWxfc3RhdGUtPm1pbl9waXhj bGssIGRldl9wcml2LT5taW5fcGl4Y2xrLAo+ICsJICAgICAgIHNpemVvZihpbnRlbF9zdGF0ZS0+ bWluX3BpeGNsaykpOwo+ICAKPiAtCQljcnRjX3N0YXRlID0gaW50ZWxfYXRvbWljX2dldF9jcnRj X3N0YXRlKHN0YXRlLCBpbnRlbF9jcnRjKTsKPiAtCQlpZiAoSVNfRVJSKGNydGNfc3RhdGUpKQo+ IC0JCQlyZXR1cm4gUFRSX0VSUihjcnRjX3N0YXRlKTsKPiArCWZvcl9lYWNoX2NydGNfaW5fc3Rh dGUoc3RhdGUsIGNydGMsIGNydGNfc3RhdGUsIGkpIHsKPiArCQlpbnQgcGl4Y2xrID0gMDsKPiAg Cj4gLQkJaWYgKCFjcnRjX3N0YXRlLT5iYXNlLmVuYWJsZSkKPiAtCQkJY29udGludWU7Cj4gKwkJ aWYgKGNydGNfc3RhdGUtPmVuYWJsZSkgewo+ICsJCQlzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq aW50ZWxfY3J0Y19zdGF0ZSA9Cj4gKwkJCQl0b19pbnRlbF9jcnRjX3N0YXRlKGNydGNfc3RhdGUp Owo+ICAKPiAtCQlwaXhlbF9yYXRlID0gaWxrX3BpcGVfcGl4ZWxfcmF0ZShjcnRjX3N0YXRlKTsK PiArCQkJcGl4Y2xrID0gaWxrX3BpcGVfcGl4ZWxfcmF0ZShpbnRlbF9jcnRjX3N0YXRlKTsKCkNv dWxkIHlvdSBhdm9pZCB0aGUgcmVpbmRlbnQgYW5kIHJlbmFtZXMgcGxlYXNlPwoKPiAgCj4gLQkJ LyogcGl4ZWwgcmF0ZSBtdXN0bid0IGV4Y2VlZCA5NSUgb2YgY2RjbGsgd2l0aCBJUFMgb24gQkRX ICovCj4gLQkJaWYgKElTX0JST0FEV0VMTChzdGF0ZS0+ZGV2KSAmJiBjcnRjX3N0YXRlLT5pcHNf ZW5hYmxlZCkKPiAtCQkJcGl4ZWxfcmF0ZSA9IERJVl9ST1VORF9VUChwaXhlbF9yYXRlICogMTAw LCA5NSk7Cj4gKwkJCS8qIHBpeGVsIHJhdGUgbXVzdG4ndCBleGNlZWQgOTUlIG9mIGNkY2xrIHdp dGggSVBTIG9uIEJEVyAqLwo+ICsJCQlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSAmJiBpbnRl bF9jcnRjX3N0YXRlLT5pcHNfZW5hYmxlZCkKPiArCQkJCXBpeGNsayA9IERJVl9ST1VORF9VUChw aXhjbGsgKiAxMDAsIDk1KTsKPiArCQl9Cj4gIAo+IC0JCW1heF9waXhlbF9yYXRlID0gbWF4KG1h eF9waXhlbF9yYXRlLCBwaXhlbF9yYXRlKTsKPiArCQlpbnRlbF9zdGF0ZS0+bWluX3BpeGNsa1tp XSA9IHBpeGNsazsKPiAgCX0KPiAgCj4gKwlpZiAoIWludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3Mp Cj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJZm9yX2VhY2hfcGlwZShkZXZfcHJpdiwgcGlwZSkKPiAr CQltYXhfcGl4ZWxfcmF0ZSA9IG1heChpbnRlbF9zdGF0ZS0+bWluX3BpeGNsa1twaXBlXSwgbWF4 X3BpeGVsX3JhdGUpOwo+ICsKPiAgCXJldHVybiBtYXhfcGl4ZWxfcmF0ZTsKPiAgfQo+ICAKPiBA QCAtMTI5NzcsMTUgKzEzMDA1LDI3IEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNldF9hbGxfcGlw ZXMoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAKPiAgc3RhdGljIGludCBpbnRl bF9tb2Rlc2V0X2NoZWNrcyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUpCj4gIHsKPiAt CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBzdGF0ZS0+ZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCWludCByZXQ7Cj4gKwlz dHJ1Y3QgaW50ZWxfYXRvbWljX3N0YXRlICppbnRlbF9zdGF0ZSA9IHRvX2ludGVsX2F0b21pY19z dGF0ZShzdGF0ZSk7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBzdGF0 ZS0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1fY3J0YyAqY3J0YzsKPiArCXN0cnVj dCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiArCWludCByZXQgPSAwLCBpOwo+ICAKPiAg CWlmICghY2hlY2tfZGlnaXRhbF9wb3J0X2NvbmZsaWN0cyhzdGF0ZSkpIHsKPiAgCQlEUk1fREVC VUdfS01TKCJyZWplY3RpbmcgY29uZmxpY3RpbmcgZGlnaXRhbCBwb3J0IGNvbmZpZ3VyYXRpb25c biIpOwo+ICAJCXJldHVybiAtRUlOVkFMOwo+ICAJfQo+ICAKPiArCWludGVsX3N0YXRlLT5tb2Rl c2V0ID0gdHJ1ZTsKPiArCWludGVsX3N0YXRlLT5hY3RpdmVfY3J0Y3MgPSBkZXZfcHJpdi0+YWN0 aXZlX2NydGNzOwo+ICsKPiArCWZvcl9lYWNoX2NydGNfaW5fc3RhdGUoc3RhdGUsIGNydGMsIGNy dGNfc3RhdGUsIGkpIHsKPiArCQlpZiAoY3J0Y19zdGF0ZS0+YWN0aXZlKQo+ICsJCQlpbnRlbF9z dGF0ZS0+YWN0aXZlX2NydGNzIHw9IDEgPDwgaTsKPiArCQllbHNlCj4gKwkJCWludGVsX3N0YXRl LT5hY3RpdmVfY3J0Y3MgJj0gfigxIDw8IGkpOwo+ICsJfQo+ICsKPiAgCS8qCj4gIAkgKiBTZWUg aWYgdGhlIGNvbmZpZyByZXF1aXJlcyBhbnkgYWRkaXRpb25hbCBwcmVwYXJhdGlvbiwgZS5nLgo+ ICAJICogdG8gYWRqdXN0IGdsb2JhbCBzdGF0ZSB3aXRoIHBpcGVzIG9mZi4gIFdlIG5lZWQgdG8g ZG8gdGhpcwo+IEBAIC0xMzAwOSw3ICsxMzA0OSw3IEBAIHN0YXRpYyBpbnQgaW50ZWxfbW9kZXNl dF9jaGVja3Moc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKQo+ICAKPiAgCWludGVsX21v ZGVzZXRfY2xlYXJfcGxscyhzdGF0ZSk7Cj4gIAo+IC0JaWYgKElTX0hBU1dFTEwoZGV2KSkKPiAr CWlmIChJU19IQVNXRUxMKGRldl9wcml2KSkKPiAgCQlyZXR1cm4gaGFzd2VsbF9tb2RlX3NldF9w bGFuZXNfd29ya2Fyb3VuZChzdGF0ZSk7Cj4gIAo+ICAJcmV0dXJuIDA7Cj4gQEAgLTEzMTc5LDEy ICsxMzIxOSwxMyBAQCBzdGF0aWMgaW50IGludGVsX2F0b21pY19jb21taXQoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwKPiAgCQkJICAgICAgIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwK PiAgCQkJICAgICAgIGJvb2wgYXN5bmMpCj4gIHsKPiArCXN0cnVjdCBpbnRlbF9hdG9taWNfc3Rh dGUgKmludGVsX3N0YXRlID0gdG9faW50ZWxfYXRvbWljX3N0YXRlKHN0YXRlKTsKPiAgCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gIAlzdHJ1 Y3QgZHJtX2NydGNfc3RhdGUgKmNydGNfc3RhdGU7Cj4gIAlzdHJ1Y3QgZHJtX2NydGMgKmNydGM7 Cj4gIAlpbnQgcmV0ID0gMDsKPiAgCWludCBpOwo+IC0JYm9vbCBhbnlfbXMgPSBmYWxzZTsKPiAr CWJvb2wgaHdfY2hlY2sgPSBpbnRlbF9zdGF0ZS0+bW9kZXNldDsKPiAgCj4gIAlyZXQgPSBpbnRl bF9hdG9taWNfcHJlcGFyZV9jb21taXQoZGV2LCBzdGF0ZSwgYXN5bmMpOwo+ICAJaWYgKHJldCkg ewo+IEBAIC0xMzE5NCwxMyArMTMyMzUsMTggQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29t bWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAo+ICAJZHJtX2F0b21pY19oZWxwZXJfc3dh cF9zdGF0ZShkZXYsIHN0YXRlKTsKPiAgCj4gKwlpZiAoaW50ZWxfc3RhdGUtPm1vZGVzZXQpIHsK PiArCQltZW1jcHkoZGV2X3ByaXYtPm1pbl9waXhjbGssIGludGVsX3N0YXRlLT5taW5fcGl4Y2xr LAo+ICsJCSAgICAgICBzaXplb2YoaW50ZWxfc3RhdGUtPm1pbl9waXhjbGspKTsKPiArCQlkZXZf cHJpdi0+YWN0aXZlX2NydGNzID0gaW50ZWxfc3RhdGUtPmFjdGl2ZV9jcnRjczsKPiArCX0KPiAr Cj4gIAlmb3JfZWFjaF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBjcnRjX3N0YXRlLCBpKSB7 Cj4gIAkJc3RydWN0IGludGVsX2NydGMgKmludGVsX2NydGMgPSB0b19pbnRlbF9jcnRjKGNydGMp Owo+ICAKPiAgCQlpZiAoIW5lZWRzX21vZGVzZXQoY3J0Yy0+c3RhdGUpKQo+ICAJCQljb250aW51 ZTsKPiAgCj4gLQkJYW55X21zID0gdHJ1ZTsKPiAgCQlpbnRlbF9wcmVfcGxhbmVfdXBkYXRlKGlu dGVsX2NydGMpOwo+ICAKPiAgCQlpZiAoY3J0Y19zdGF0ZS0+YWN0aXZlKSB7Cj4gQEAgLTEzMjE1 LDcgKzEzMjYxLDcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYsCj4gIAkgKiB1cGRhdGUgdGhlIHRoZSBvdXRwdXQgY29uZmlndXJhdGlvbi4g Ki8KPiAgCWludGVsX21vZGVzZXRfdXBkYXRlX2NydGNfc3RhdGUoc3RhdGUpOwo+ICAKPiAtCWlm IChhbnlfbXMpIHsKPiArCWlmIChpbnRlbF9zdGF0ZS0+bW9kZXNldCkgewo+ICAJCWludGVsX3No YXJlZF9kcGxsX2NvbW1pdChzdGF0ZSk7Cj4gIAo+ICAJCWRybV9hdG9taWNfaGVscGVyX3VwZGF0 ZV9sZWdhY3lfbW9kZXNldF9zdGF0ZShzdGF0ZS0+ZGV2LCBzdGF0ZSk7Cj4gQEAgLTEzMjM5LDcg KzEzMjg1LDcgQEAgc3RhdGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2 aWNlICpkZXYsCj4gIAkJCXB1dF9kb21haW5zID0gbW9kZXNldF9nZXRfY3J0Y19wb3dlcl9kb21h aW5zKGNydGMpOwo+ICAKPiAgCQkJLyogbWFrZSBzdXJlIGludGVsX21vZGVzZXRfY2hlY2tfc3Rh dGUgcnVucyAqLwo+IC0JCQlhbnlfbXMgPSB0cnVlOwo+ICsJCQlod19jaGVjayA9IHRydWU7Cj4g IAkJfQo+ICAKPiAgCQlpZiAoIW1vZGVzZXQpCj4gQEAgLTEzMjYzLDcgKzEzMzA5LDcgQEAgc3Rh dGljIGludCBpbnRlbF9hdG9taWNfY29tbWl0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gIAlk cm1fYXRvbWljX2hlbHBlcl9jbGVhbnVwX3BsYW5lcyhkZXYsIHN0YXRlKTsKPiAgCW11dGV4X3Vu bG9jaygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ICAKPiAtCWlmIChhbnlfbXMpCj4gKwlpZiAoaHdf Y2hlY2spCj4gIAkJaW50ZWxfbW9kZXNldF9jaGVja19zdGF0ZShkZXYsIHN0YXRlKTsKPiAgCj4g IAlkcm1fYXRvbWljX3N0YXRlX2ZyZWUoc3RhdGUpOwo+IEBAIC0xNTI2MywxNiArMTUzMDksMzYg QEAgc3RhdGljIHZvaWQgaW50ZWxfbW9kZXNldF9yZWFkb3V0X2h3X3N0YXRlKHN0cnVjdCBkcm1f ZGV2aWNlICpkZXYpCj4gIAlzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3I7Cj4gIAlp bnQgaTsKPiAgCj4gKwlkZXZfcHJpdi0+YWN0aXZlX2NydGNzID0gMDsKPiArCj4gIAlmb3JfZWFj aF9pbnRlbF9jcnRjKGRldiwgY3J0Yykgewo+IC0JCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19k ZXN0cm95X3N0YXRlKCZjcnRjLT5iYXNlLCBjcnRjLT5iYXNlLnN0YXRlKTsKPiAtCQltZW1zZXQo Y3J0Yy0+Y29uZmlnLCAwLCBzaXplb2YoKmNydGMtPmNvbmZpZykpOwo+IC0JCWNydGMtPmNvbmZp Zy0+YmFzZS5jcnRjID0gJmNydGMtPmJhc2U7Cj4gKwkJc3RydWN0IGludGVsX2NydGNfc3RhdGUg KmNydGNfc3RhdGUgPSBjcnRjLT5jb25maWc7Cj4gKwkJaW50IHBpeGNsayA9IDA7Cj4gIAo+IC0J CWNydGMtPmFjdGl2ZSA9IGRldl9wcml2LT5kaXNwbGF5LmdldF9waXBlX2NvbmZpZyhjcnRjLAo+ IC0JCQkJCQkJCSBjcnRjLT5jb25maWcpOwo+ICsJCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19k ZXN0cm95X3N0YXRlKCZjcnRjLT5iYXNlLCAmY3J0Y19zdGF0ZS0+YmFzZSk7Cj4gKwkJbWVtc2V0 KGNydGNfc3RhdGUsIDAsIHNpemVvZigqY3J0Y19zdGF0ZSkpOwo+ICsJCWNydGNfc3RhdGUtPmJh c2UuY3J0YyA9ICZjcnRjLT5iYXNlOwo+ICAKPiAtCQljcnRjLT5iYXNlLnN0YXRlLT5hY3RpdmUg PSBjcnRjLT5hY3RpdmU7Cj4gLQkJY3J0Yy0+YmFzZS5lbmFibGVkID0gY3J0Yy0+YWN0aXZlOwo+ ICsJCWNydGNfc3RhdGUtPmJhc2UuYWN0aXZlID0gY3J0Y19zdGF0ZS0+YmFzZS5lbmFibGUgPQo+ ICsJCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfcGlwZV9jb25maWcoY3J0YywgY3J0Y19zdGF0ZSk7 Cj4gKwo+ICsJCWNydGMtPmJhc2UuZW5hYmxlZCA9IGNydGNfc3RhdGUtPmJhc2UuZW5hYmxlOwo+ ICsJCWNydGMtPmFjdGl2ZSA9IGNydGNfc3RhdGUtPmJhc2UuYWN0aXZlOwo+ICsKPiArCQlpZiAo Y3J0Y19zdGF0ZS0+YmFzZS5hY3RpdmUpIHsKPiArCQkJZGV2X3ByaXYtPmFjdGl2ZV9jcnRjcyB8 PSAxIDw8IGNydGMtPnBpcGU7Cj4gKwo+ICsJCQlpZiAoSVNfQlJPQURXRUxMKGRldl9wcml2KSkg ewo+ICsJCQkJcGl4Y2xrID0gaWxrX3BpcGVfcGl4ZWxfcmF0ZShjcnRjX3N0YXRlKTsKPiArCj4g KwkJCQkvKiBwaXhlbCByYXRlIG11c3RuJ3QgZXhjZWVkIDk1JSBvZiBjZGNsayB3aXRoIElQUyBv biBCRFcgKi8KPiArCQkJCWlmIChjcnRjX3N0YXRlLT5pcHNfZW5hYmxlZCkKPiArCQkJCQlwaXhj bGsgPSBESVZfUk9VTkRfVVAocGl4Y2xrICogMTAwLCA5NSk7Cj4gKwkJCX0gZWxzZSBpZiAoSVNf QlJPWFRPTihkZXZfcHJpdikgfHwgSVNfVkFMTEVZVklFVyhkZXZfcHJpdikpCj4gKwkJCQlwaXhj bGsgPSBjcnRjX3N0YXRlLT5iYXNlLmFkanVzdGVkX21vZGUuY3J0Y19jbG9jazsKPiArCQl9Cj4g Kwo+ICsJCWRldl9wcml2LT5taW5fcGl4Y2xrW2NydGMtPnBpcGVdID0gcGl4Y2xrOwo+ICAKPiAg CQlyZWFkb3V0X3BsYW5lX3N0YXRlKGNydGMpOwo+ICAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYu aAo+IGluZGV4IDY4MmY3MGY5NWUxNy4uNTc4YWZjN2FjNGJkIDEwMDY0NAo+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZHJ2LmgKPiBAQCAtMjQ4LDcgKzI0OCwxMiBAQCBzdHJ1Y3QgaW50ZWxfYXRvbWljX3N0 YXRlIHsKPiAgCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlIGJhc2U7Cj4gIAo+ICAJdW5zaWduZWQg aW50IGNkY2xrOwo+IC0JYm9vbCBkcGxsX3NldDsKPiArCj4gKwlib29sIGRwbGxfc2V0LCBtb2Rl c2V0Owo+ICsKPiArCXVuc2lnbmVkIGludCBhY3RpdmVfY3J0Y3M7Cj4gKwl1bnNpZ25lZCBpbnQg bWluX3BpeGNsa1tJOTE1X01BWF9QSVBFU107Cj4gKwo+ICAJc3RydWN0IGludGVsX3NoYXJlZF9k cGxsX2NvbmZpZyBzaGFyZWRfZHBsbFtJOTE1X05VTV9QTExTXTsKPiAgfTsKPiAgCj4gLS0gCj4g Mi4xLjAKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==