From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maarten Lankhorst Subject: Re: [PATCH 08/14] drm/i915: Complete crtc hw/uapi split, v3. Date: Mon, 28 Oct 2019 10:20:14 +0100 Message-ID: References: <20191024124805.26840-1-maarten.lankhorst@linux.intel.com> <20191024124805.26840-8-maarten.lankhorst@linux.intel.com> <20191024152150.GD1208@intel.com> <20191025101341.GE1208@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1142F6E508 for ; Mon, 28 Oct 2019 09:20:17 +0000 (UTC) In-Reply-To: <20191025101341.GE1208@intel.com> Content-Language: en-US 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 T3AgMjUtMTAtMjAxOSBvbSAxMjoxMyBzY2hyZWVmIFZpbGxlIFN5cmrDpGzDpDoKPiBPbiBGcmks IE9jdCAyNSwgMjAxOSBhdCAxMTowMDowNkFNICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToKPj4gT3AgMjQtMTAtMjAxOSBvbSAxNzoyMSBzY2hyZWVmIFZpbGxlIFN5cmrDpGzDpDoKPj4+ IE9uIFRodSwgT2N0IDI0LCAyMDE5IGF0IDAyOjQ3OjU5UE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hv cnN0IHdyb3RlOgo+Pj4+IE5vdyB0aGF0IHdlIHNlcGFyYXRlZCBldmVyeXRoaW5nIGludG8gdWFw aSBhbmQgaHcsIGl0J3MKPj4+PiB0aW1lIHRvIG1ha2UgdGhlIHNwbGl0IGRlZmluaXRpdmUuIFJl bW92ZSB0aGUgdW5pb24gYW5kCj4+Pj4gbWFrZSBhIGNvcHkgb2YgdGhlIGh3IHN0YXRlIG9uIG1v ZGVzZXQgYW5kIGZhc3RzZXQuCj4+Pj4KPj4+PiBDb2xvciBibG9icyBhcmUgY29waWVkIGluIGNy dGMgYXRvbWljX2NoZWNrKCksIHJpZ2h0Cj4+Pj4gYmVmb3JlIGNvbG9yIG1hbmFnZW1lbnQgaXMg Y2hlY2tlZC4KPj4+Pgo+Pj4+IENoYW5nZXMgc2luY2UgdjE6Cj4+Pj4gLSBDb3B5IGFsbCBibG9i cyBpbW1lZGlhdGVseSBhZnRlciBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19tb2Rlc2V0KCkuCj4+ Pj4gLSBDbGVhciBjcnRjX3N0YXRlLT5odyBvbiBkaXNhYmxlLCBpbnN0ZWFkIG9mIHVzaW5nIGNs ZWFyX2ludGVsX2NydGNfc3RhdGUoKS4KPj4+PiBDaGFuZ2VzIHNpbmNlIHYyOgo+Pj4+IC0gVXNl IGludGVsX2NydGNfZnJlZV9od19zdGF0ZSArIGNsZWFyIGluIGludGVsX2NydGNfZGlzYWJsZV9u b2F0b21pYygpLgo+Pj4+IC0gTWFrZSBhIGludGVsX2NydGNfcHJlcGFyZV9zdGF0ZSgpIGZ1bmN0 aW9uIHRoYXQgY2xlYXJzIHRoZSBjcnRjX3N0YXRlCj4+Pj4gICBhbmQgY29waWVzIGh3IG1lbWJl cnMuCj4+Pj4gLSBSZW1vdmUgc2V0dGluZyB1YXBpLmFkanVzdGVkX21vZGUsIHdlIG5vdyBoYXZl IGEgZGlyZWN0IGNhbGwgdG8KPj4+PiAgIGRybV9jYWxjX3RpbWVzdGFtcGluZ19jb25zdGFudHMo KS4KPj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxh bmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4+Pj4gLS0tCj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMgICB8IDQ0ICsrKysrKysrKysrKysrKwo+Pj4+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5oICAgfCAgMiArCj4+Pj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jICB8IDU2ICsrKysr KysrKysrKysrKy0tLS0KPj4+PiAgLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90 eXBlcy5oICAgIHwgIDkgKy0tCj4+Pj4gIDQgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygr KSwgMTYgZGVsZXRpb25zKC0pCj4+Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfYXRvbWljLmMKPj4+PiBpbmRleCA3Y2YxM2I5YzdkMzguLjI2NmQwY2U5ZDAzZCAx MDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21p Yy5jCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMu Ywo+Pj4+IEBAIC0xOTUsNiArMTk1LDE0IEBAIGludGVsX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykKPj4+PiAgCj4+Pj4gIAlfX2RybV9hdG9taWNfaGVscGVyX2Ny dGNfZHVwbGljYXRlX3N0YXRlKGNydGMsICZjcnRjX3N0YXRlLT51YXBpKTsKPj4+PiAgCj4+Pj4g KwkvKiBjb3B5IGNvbG9yIGJsb2JzICovCj4+Pj4gKwlpZiAoY3J0Y19zdGF0ZS0+aHcuZGVnYW1t YV9sdXQpCj4+Pj4gKwkJZHJtX3Byb3BlcnR5X2Jsb2JfZ2V0KGNydGNfc3RhdGUtPmh3LmRlZ2Ft bWFfbHV0KTsKPj4+PiArCWlmIChjcnRjX3N0YXRlLT5ody5jdG0pCj4+Pj4gKwkJZHJtX3Byb3Bl cnR5X2Jsb2JfZ2V0KGNydGNfc3RhdGUtPmh3LmN0bSk7Cj4+Pj4gKwlpZiAoY3J0Y19zdGF0ZS0+ aHcuZ2FtbWFfbHV0KQo+Pj4+ICsJCWRybV9wcm9wZXJ0eV9ibG9iX2dldChjcnRjX3N0YXRlLT5o dy5nYW1tYV9sdXQpOwo+Pj4+ICsKPj4+PiAgCWNydGNfc3RhdGUtPnVwZGF0ZV9waXBlID0gZmFs c2U7Cj4+Pj4gIAljcnRjX3N0YXRlLT5kaXNhYmxlX2xwX3dtID0gZmFsc2U7Cj4+Pj4gIAljcnRj X3N0YXRlLT5kaXNhYmxlX2N4c3IgPSBmYWxzZTsKPj4+PiBAQCAtMjA4LDYgKzIxNiw0MSBAQCBp bnRlbF9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4+Pj4gIAly ZXR1cm4gJmNydGNfc3RhdGUtPnVhcGk7Cj4+Pj4gIH0KPj4+PiAgCj4+Pj4gK3N0YXRpYyB2b2lk IGludGVsX2NydGNfcHV0X2NvbG9yX2Jsb2JzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQo+Pj4+ICt7Cj4+Pj4gKwlkcm1fcHJvcGVydHlfYmxvYl9wdXQoY3J0Y19zdGF0ZS0+ aHcuZGVnYW1tYV9sdXQpOwo+Pj4+ICsJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KGNydGNfc3RhdGUt Pmh3LmdhbW1hX2x1dCk7Cj4+Pj4gKwlkcm1fcHJvcGVydHlfYmxvYl9wdXQoY3J0Y19zdGF0ZS0+ aHcuY3RtKTsKPj4+PiArfQo+Pj4+ICsKPj4+PiArdm9pZCBpbnRlbF9jcnRjX2ZyZWVfaHdfc3Rh dGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+Pj4gK3sKPj4+PiArCWlu dGVsX2NydGNfcHV0X2NvbG9yX2Jsb2JzKGNydGNfc3RhdGUpOwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ ICt2b2lkIGludGVsX2NydGNfY29weV9jb2xvcl9ibG9icyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKPj4+IFRoaXMgaXMgb25seSB1c2VkIGluIGludGVsX2Rpc3BsYXkuYyBz byBzaG91bGQgcGVyaGFwcyBsaXZlIHRoZXJlPwo+Pj4KPj4+PiArewo+Pj4+ICsJaW50ZWxfY3J0 Y19wdXRfY29sb3JfYmxvYnMoY3J0Y19zdGF0ZSk7Cj4+Pj4gKwo+Pj4+ICsJaWYgKGNydGNfc3Rh dGUtPnVhcGkuZGVnYW1tYV9sdXQpCj4+Pj4gKwkJY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQg PQo+Pj4+ICsJCQlkcm1fcHJvcGVydHlfYmxvYl9nZXQoY3J0Y19zdGF0ZS0+dWFwaS5kZWdhbW1h X2x1dCk7Cj4+Pj4gKwllbHNlCj4+Pj4gKwkJY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQgPSBO VUxMOwo+Pj4+ICsKPj4+PiArCWlmIChjcnRjX3N0YXRlLT51YXBpLmdhbW1hX2x1dCkKPj4+PiAr CQljcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQgPQo+Pj4+ICsJCQlkcm1fcHJvcGVydHlfYmxvYl9n ZXQoY3J0Y19zdGF0ZS0+dWFwaS5nYW1tYV9sdXQpOwo+Pj4+ICsJZWxzZQo+Pj4+ICsJCWNydGNf c3RhdGUtPmh3LmdhbW1hX2x1dCA9IE5VTEw7Cj4+Pj4gKwo+Pj4+ICsJaWYgKGNydGNfc3RhdGUt PnVhcGkuY3RtKQo+Pj4+ICsJCWNydGNfc3RhdGUtPmh3LmN0bSA9Cj4+Pj4gKwkJCWRybV9wcm9w ZXJ0eV9ibG9iX2dldChjcnRjX3N0YXRlLT51YXBpLmN0bSk7Cj4+Pj4gKwllbHNlCj4+Pj4gKwkJ Y3J0Y19zdGF0ZS0+aHcuY3RtID0gTlVMTDsKPj4+PiArfQo+Pj4+ICsKPj4+PiAgLyoqCj4+Pj4g ICAqIGludGVsX2NydGNfZGVzdHJveV9zdGF0ZSAtIGRlc3Ryb3kgY3J0YyBzdGF0ZQo+Pj4+ICAg KiBAY3J0YzogZHJtIGNydGMKPj4+PiBAQCAtMjIzLDYgKzI2Niw3IEBAIGludGVsX2NydGNfZGVz dHJveV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+Pj4gIAlzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoc3RhdGUpOwo+Pj4+ICAK Pj4+PiAgCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKCZjcnRjX3N0YXRl LT51YXBpKTsKPj4+PiArCWludGVsX2NydGNfZnJlZV9od19zdGF0ZShjcnRjX3N0YXRlKTsKPj4+ PiAgCWtmcmVlKGNydGNfc3RhdGUpOwo+Pj4+ICB9Cj4+Pj4gIAo+Pj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuaAo+Pj4+IGluZGV4IDU4MDY1ZDMxNjFhMy4u NDJiZTkxZTA3NzJhIDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfYXRvbWljLmgKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2F0b21pYy5oCj4+Pj4gQEAgLTM1LDYgKzM1LDggQEAgaW50ZWxfZGlnaXRhbF9jb25u ZWN0b3JfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ Pj4+ICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmludGVsX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4+Pj4gIHZvaWQgaW50ZWxfY3J0Y19kZXN0cm95X3N0YXRl KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPj4+PiAgCQkJICAgICAgIHN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqc3RhdGUpOwo+Pj4+ICt2b2lkIGludGVsX2NydGNfZnJlZV9od19zdGF0ZShzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4+Pj4gK3ZvaWQgaW50ZWxfY3J0Y19jb3B5 X2NvbG9yX2Jsb2JzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPj4+PiAg c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKmludGVsX2F0b21pY19zdGF0ZV9hbGxvYyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKPj4+PiAgdm9pZCBpbnRlbF9hdG9taWNfc3RhdGVfY2xlYXIoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPj4+PiAgCj4+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPj4+PiBpbmRleCAxMWRkN2ExODI1NDMu LjJkYmMxZGY5NTA1YSAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXkuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheS5jCj4+Pj4gQEAgLTcxMTAsNiArNzExMCw4IEBAIHN0YXRpYyB2b2lk IGludGVsX2NydGNfZGlzYWJsZV9ub2F0b21pYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+Pj4g IAljcnRjLT5lbmFibGVkID0gZmFsc2U7Cj4+Pj4gIAljcnRjLT5zdGF0ZS0+Y29ubmVjdG9yX21h c2sgPSAwOwo+Pj4+ICAJY3J0Yy0+c3RhdGUtPmVuY29kZXJfbWFzayA9IDA7Cj4+Pj4gKwlpbnRl bF9jcnRjX2ZyZWVfaHdfc3RhdGUoY3J0Y19zdGF0ZSk7Cj4+Pj4gKwltZW1zZXQoJmNydGNfc3Rh dGUtPmh3LCAwLCBzaXplb2YoY3J0Y19zdGF0ZS0+aHcpKTsKPj4+PiAgCj4+Pj4gIAlmb3JfZWFj aF9lbmNvZGVyX29uX2NydGMoY3J0Yy0+ZGV2LCBjcnRjLCBlbmNvZGVyKQo+Pj4+ICAJCWVuY29k ZXItPmJhc2UuY3J0YyA9IE5VTEw7Cj4+Pj4gQEAgLTEyNDgyLDIyICsxMjQ4NCw1MCBAQCBzdGF0 aWMgYm9vbCBjaGVja19kaWdpdGFsX3BvcnRfY29uZmxpY3RzKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlKQo+Pj4+ICAJcmV0dXJuIHJldDsKPj4+PiAgfQo+Pj4+ICAKPj4+PiArc3Rh dGljIHZvaWQKPj4+PiAraW50ZWxfY3J0Y19jb3B5X3VhcGlfdG9faHdfc3RhdGUoc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+Pj4gK3sKPj4+PiArCWNydGNfc3RhdGUtPmh3 LmVuYWJsZSA9IGNydGNfc3RhdGUtPnVhcGkuZW5hYmxlOwo+Pj4+ICsJY3J0Y19zdGF0ZS0+aHcu YWN0aXZlID0gY3J0Y19zdGF0ZS0+dWFwaS5hY3RpdmU7Cj4+Pj4gKwljcnRjX3N0YXRlLT5ody5t b2RlID0gY3J0Y19zdGF0ZS0+dWFwaS5tb2RlOwo+Pj4+ICsJY3J0Y19zdGF0ZS0+aHcuYWRqdXN0 ZWRfbW9kZSA9IGNydGNfc3RhdGUtPnVhcGkuYWRqdXN0ZWRfbW9kZTsKPj4+PiArCWludGVsX2Ny dGNfY29weV9jb2xvcl9ibG9icyhjcnRjX3N0YXRlKTsKPj4+PiArfQo+Pj4+ICsKPj4+PiArc3Rh dGljIHZvaWQgY29weV9od190b191YXBpX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+Pj4+ICt7Cj4+Pj4gKwljcnRjX3N0YXRlLT51YXBpLmVuYWJsZSA9IGNydGNf c3RhdGUtPmh3LmVuYWJsZTsKPj4+PiArCWNydGNfc3RhdGUtPnVhcGkuYWN0aXZlID0gY3J0Y19z dGF0ZS0+aHcuYWN0aXZlOwo+Pj4+ICsJY3J0Y19zdGF0ZS0+dWFwaS5tb2RlID0gY3J0Y19zdGF0 ZS0+aHcubW9kZTsKPj4+PiArCWNydGNfc3RhdGUtPnVhcGkuYWRqdXN0ZWRfbW9kZSA9IGNydGNf c3RhdGUtPmh3LmFkanVzdGVkX21vZGU7Cj4+PiBXaHkgYXJlIHdlIG5vdCBjb3B5aW5nIHRoZSBj b2xvciBibG9icz8KPj4gSG1tLCB3ZSBwcm9iYWJseSBzaG91bGQgYXQgbGVhc3QgY29weSB0aGUg Z2FtbWEgYmxvYiwgYnV0IHByb2JhYmx5IGFsbC4gOikKPj4KPj4gTWlzc2VkIHRoYXQgYmVjYXVz ZSB0aGlzIHBhdGNoIGxpbmdlcmVkIG9uIHRoZSBtbCBmb3Igc28gbG9uZyB3ZSBhZGRlZCBodyBy ZWFkb3V0IGluIHRoZSBtZWFuIHRpbWUuCj4+Cj4+Pj4gK30KPj4+PiArCj4+Pj4gIHN0YXRpYyBp bnQKPj4+PiAtY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKPj4+PiAraW50ZWxfY3J0Y19wcmVwYXJlX3N0YXRlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+Pj4gSG1tLiBJIHdhcyBob3Bpbmcgd2UgY291bGQgbWFr ZSB0aGlzIGV2ZW4gc2ltcGxlciwgYnV0IG1heWJlIEknbSBhIGJpdAo+Pj4gbmFpdmUuIEkgZ3Vl c3Mgd2UgcmVhbGx5IGRvIG5lZWQgdG8gY29uc2lkZXIgbmVlZHNfbW9kZXNldCgpIHNvIGFzIHRv Cj4+PiBub3QgY2xvYmJlciB0aGUgYWxyZWFkeSBjb21wdXRlZCBodyBzdGF0ZSB3aGVuIHdlJ3Jl IG5vdCBnb2luZyB0byB0YWtlCj4+PiB0aGUgZnVsbCAuY29tcHV0ZV9jb25maWcoKSBwYXRoLgo+ Pj4KPj4+PiAgewo+Pj4+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPj4+ PiAgCQl0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKPj4+PiAgCXN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpzYXZlZF9zdGF0ZTsKPj4+PiAgCj4+Pj4gKwlpZiAoIW5lZWRzX21v ZGVzZXQoY3J0Y19zdGF0ZSkpIHsKPj4+PiArCQkvKiBPbmx5IG5lZWQgdG8gdXBkYXRlIGNydGNf c3RhdGUtPmh3IGNvbG9yIGJsb2JzICovCj4+PiBUaGF0IGNvbW1lbnQgaXMgbGlrZWx5IHRvIGdl dCBvdXQgb2YgZGF0ZS4gTm90IHN1cmUgaG93IHRvIHdvcmQgaXQgaW4gYQo+Pj4gbmljZSB3YXkg dGhvdWdoLiBFc3NlbnRpYWxseSB3ZSBqdXN0IHdhbnQgdG8gY29weSB0aGUgcGFydCBvZiB0aGUg c3RhdGUKPj4+IHRoYXQgZG9lc24ndCBjbG9iYmVyIGFueXRoaW5nIHNldCB1cCBieSAuY29tcHV0 ZV9jb25maWcoKSAmIGNvLgo+Pj4KPj4+IEl0IHdvdWxkIGJlIG5pY2UgaWYgd2UgaGFkIHRoZSBz YW1lIGxldmVsIG9mIGFic3RyYWN0aW9uIGZvciB0aGlzIGNhc2UKPj4+IGFzIGZvciB0aGUgZnVs bCBtb2Rlc2V0IGNhc2UuIEVnLiBpbnRlbF9jcnRjX2NvcHlfaHdfc3RhdGVfbm9uX21vZGVzZXQo KQo+Pj4gb3Igc29tZXRoaW5nLiBBIGJpdCB1Z2x5IHRoYXQgbmFtZSB0aG91Z2guIE1pZ2h0IGhh dmUgdGhpbmsgb2Ygc29tZXRoaW5nCj4+PiBiZXR0ZXIuCj4+Pgo+Pj4gQW5vdGhlciB0aGluZyB0 aGF0J3MgYSBiaXQgY29uZnVzaW5nIGlzIHRoYXQgd2UgbmVlZCB0byBkbyB0aGUKPj4+IGludGVs X2NydGNfZnJlZV9od19zdGF0ZSgpIGZvciB0aGUgZnVsbCBtb2Rlc2V0IHBhdGgsIGJ1dCB3ZSBk b24ndAo+Pj4gbmVlZCBpdCBmb3IgdGhlIG5vbi1tb2Rlc2V0IHBhdGguIFdvdWxkIGJlIG5pY2Ug aXQgdGhlIHR3byBwYXRocwo+Pj4gYmVoYXZlZCBtb3JlIHVuaWZvcm1seS4gCj4+IFdlJ2QgaGF2 ZSB0byBnZXQgcmlkIG9mIHRoZSBjcnRjX3N0YXRlIGNsZWFyaW5nIGZvciB0aGF0LiA6KAo+IEkg d2FzIGp1c3QgdGhpbmtpbmcgd2UnZCBoYXZlIHNvbWV0aGluZyBsaWtlOgo+IGNydGNfc3RhdGVf ZnJlZV9saXRlKCkgKyBjcnRjX3N0YXRlX2NvcHlfbGl0ZSgpCj4gYW5kCj4gY3J0Y19zdGF0ZV9m cmVlX2Z1bGwoKSArIGNydGNfc3RhdGVfY29weV9mdWxsKCkKPgo+IFdpdGggYmV0dGVyIG5hbWVz IHByb2JhYmx5IDopCj4KPiBUaGVuIGJvdGggcGF0aHMgd291bGQgZG8gdGhlIHNhbWUga2luZCBv ZiBmcmVlK2NvcHkgYW5kIHRoZSByZWFkZXIKPiB3b3VsZG4ndCBoYXZlIHRvIHdvbmRlciB3aHkg dGhleSBsb29rIHNvIGRpZmZlcmVudC4KPgo+Pj4+ICsJCWludGVsX2NydGNfY29weV9jb2xvcl9i bG9icyhjcnRjX3N0YXRlKTsKPj4+PiArCQlyZXR1cm4gMDsKPj4+PiArCX0KPj4+PiArCj4+Pj4g IAlzYXZlZF9zdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpzYXZlZF9zdGF0ZSksIEdGUF9LRVJORUwp Owo+Pj4+ICAJaWYgKCFzYXZlZF9zdGF0ZSkKPj4+PiAgCQlyZXR1cm4gLUVOT01FTTsKPj4+PiAg Cj4+Pj4gKwkvKiBmcmVlIHRoZSBvbGQgY3J0Y19zdGF0ZS0+aHcgbWVtYmVycyAqLwo+Pj4+ICsJ aW50ZWxfY3J0Y19mcmVlX2h3X3N0YXRlKGNydGNfc3RhdGUpOwo+Pj4+ICsKPj4+PiAgCS8qIEZJ WE1FOiBiZWZvcmUgdGhlIHN3aXRjaCB0byBhdG9taWMgc3RhcnRlZCwgYSBuZXcgcGlwZV9jb25m aWcgd2FzCj4+Pj4gIAkgKiBremFsbG9jJ2QuIENvZGUgdGhhdCBkZXBlbmRzIG9uIGFueSBmaWVs ZCBiZWluZyB6ZXJvIHNob3VsZCBiZQo+Pj4+ICAJICogZml4ZWQsIHNvIHRoYXQgdGhlIGNydGNf c3RhdGUgY2FuIGJlIHNhZmVseSBkdXBsaWNhdGVkLiBGb3Igbm93LAo+Pj4+ICAJICogb25seSBm aWVsZHMgdGhhdCBhcmUga25vdyB0byBub3QgY2F1c2UgcHJvYmxlbXMgYXJlIHByZXNlcnZlZC4g Ki8KPj4+PiAgCj4+Pj4gKwlzYXZlZF9zdGF0ZS0+dWFwaSA9IGNydGNfc3RhdGUtPnVhcGk7Cj4+ Pj4gIAlzYXZlZF9zdGF0ZS0+c2NhbGVyX3N0YXRlID0gY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRl Owo+Pj4+ICAJc2F2ZWRfc3RhdGUtPnNoYXJlZF9kcGxsID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2Rw bGw7Cj4+Pj4gIAlzYXZlZF9zdGF0ZS0+ZHBsbF9od19zdGF0ZSA9IGNydGNfc3RhdGUtPmRwbGxf aHdfc3RhdGU7Cj4+Pj4gQEAgLTEyNTE1LDE0ICsxMjU0NSwxMSBAQCBjbGVhcl9pbnRlbF9jcnRj X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+Pj4+ICAJCXNhdmVk X3N0YXRlLT5zeW5jX21vZGVfc2xhdmVzX21hc2sgPQo+Pj4+ICAJCQljcnRjX3N0YXRlLT5zeW5j X21vZGVfc2xhdmVzX21hc2s7Cj4+Pj4gIAo+Pj4+IC0JLyogS2VlcCBiYXNlIGRybV9jcnRjX3N0 YXRlIGludGFjdCwgb25seSBjbGVhciBvdXIgZXh0ZW5kZWQgc3RydWN0ICovCj4+Pj4gLQlCVUlM RF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGludGVsX2NydGNfc3RhdGUsIGJhc2UpKTsKPj4+PiAt CUJVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSwgdWFwaSkpOwo+ Pj4+IC0JQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlLCBodykp Owo+Pj4+IC0JbWVtY3B5KCZjcnRjX3N0YXRlLT51YXBpICsgMSwgJnNhdmVkX3N0YXRlLT51YXBp ICsgMSwKPj4+PiAtCSAgICAgICBzaXplb2YoKmNydGNfc3RhdGUpIC0gc2l6ZW9mKGNydGNfc3Rh dGUtPnVhcGkpKTsKPj4+PiAtCj4+Pj4gKwltZW1jcHkoY3J0Y19zdGF0ZSwgc2F2ZWRfc3RhdGUs IHNpemVvZigqY3J0Y19zdGF0ZSkpOwo+Pj4+ICAJa2ZyZWUoc2F2ZWRfc3RhdGUpOwo+Pj4+ICsK Pj4+PiArCWludGVsX2NydGNfY29weV91YXBpX3RvX2h3X3N0YXRlKGNydGNfc3RhdGUpOwo+Pj4+ ICsKPj4+PiAgCXJldHVybiAwOwo+Pj4+ICB9Cj4+Pj4gIAo+Pj4+IEBAIC0xMjUzOCwxMCArMTI1 NjUsNiBAQCBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZykKPj4+PiAgCWludCBpOwo+Pj4+ICAJYm9vbCByZXRyeSA9IHRydWU7Cj4+ Pj4gIAo+Pj4+IC0JcmV0ID0gY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShwaXBlX2NvbmZpZyk7Cj4+ Pj4gLQlpZiAocmV0KQo+Pj4+IC0JCXJldHVybiByZXQ7Cj4+Pj4gLQo+Pj4+ICAJcGlwZV9jb25m aWctPmNwdV90cmFuc2NvZGVyID0KPj4+PiAgCQkoZW51bSB0cmFuc2NvZGVyKSB0b19pbnRlbF9j cnRjKGNydGMpLT5waXBlOwo+Pj4+ICAKPj4+PiBAQCAtMTMzNjEsNiArMTMzODQsOCBAQCB2ZXJp ZnlfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPj4+PiAgCj4+Pj4gIAlzdGF0 ZSA9IG9sZF9jcnRjX3N0YXRlLT51YXBpLnN0YXRlOwo+Pj4+ICAJX19kcm1fYXRvbWljX2hlbHBl cl9jcnRjX2Rlc3Ryb3lfc3RhdGUoJm9sZF9jcnRjX3N0YXRlLT51YXBpKTsKPj4+PiArCWludGVs X2NydGNfZnJlZV9od19zdGF0ZShvbGRfY3J0Y19zdGF0ZSk7Cj4+Pj4gKwo+Pj4+ICAJcGlwZV9j b25maWcgPSBvbGRfY3J0Y19zdGF0ZTsKPj4+PiAgCW1lbXNldChwaXBlX2NvbmZpZywgMCwgc2l6 ZW9mKCpwaXBlX2NvbmZpZykpOwo+Pj4+ICAJcGlwZV9jb25maWctPnVhcGkuY3J0YyA9ICZjcnRj LT5iYXNlOwo+Pj4+IEBAIC0xMzgyMyw2ICsxMzg0OCwxMCBAQCBzdGF0aWMgaW50IGludGVsX2F0 b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+Pj4+ICAKPj4+PiAgCWZvcl9lYWNo X29sZG5ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwK Pj4+PiAgCQkJCQkgICAgbmV3X2NydGNfc3RhdGUsIGkpIHsKPj4+PiArCQlyZXQgPSBpbnRlbF9j cnRjX3ByZXBhcmVfc3RhdGUobmV3X2NydGNfc3RhdGUpOwo+Pj4+ICsJCWlmIChyZXQpCj4+Pj4g KwkJCXJldHVybiByZXQ7Cj4+PiBJIGhhdmUgYSBmZWVsaW5nIHRoaXMgc2hvdWxkIGJlIGl0cyBv d24gbG9vcCBpbiBjYXNlIHdlIG5lZWQKPj4+IHRvIGluc2VydCBnbG9iYWwgc3R1ZmYgYWZ0ZXIg dGhpcy4KPj4+Cj4+PiBGb3IgZXhhbXBsZSwgSSB0aGluayB0aGUgcG9ydCBzeW5jIHN0dWZmIHNo b3VsZCBiZSB0aGVyZSBidXQKPj4+IEkgY2FuJ3Qgc2VlIGl0IG5vdy4gQWgsIGZvciBzb21lIHJl YXNvbiBpdCdzIGJ1cmllZCBkZWVwIGluc2lkZQo+Pj4gaW50ZWxfbW9kZXNldF9waXBlX2NvbmZp ZygpIHdoaWNoIHNlZW1zIHdyb25nLiBJZiBhbnkgKG9yIGF0Cj4+PiBsZWFzdCB0aGUgbWFzdGVy KSBvZiB0aGUgZ2VubG9ja2VkIHBpcGVzIGRvZXMgYSBmdWxsIG1vZGVzZXQKPj4+IHdlIG5lZWQg dG8gZG8gYSBmdWxsIG1vZGVzZXQgb24gYWxsIG9mIHRoZW0sIHdoaWNoIHNob3VsZCBhbHNvCj4+ PiBtZWFuIGEgZnVsbCAuY29tcHV0ZV9jb25maWcoKSBvbiBldmVyeXRoaW5nLgo+Pj4KPj4+IEht bS4gQW5kIGlmIHdlIGRvIHRoYXQgdGhlbiBjb21iaW5pbmcgdGhlIHVhcGktPmh3IGNvcHkgYW5k Cj4+PiBjbGVhcl9pbnRlbF9jcnRjX3N0YXRlKCkgbGlrZSB0aGlzIGlzIG5vdCBnb2luZyB0byB3 b3JrLgo+PiBHZW5sb2NrIHdvdWxkIGJlIG1lc3N5IGVpdGhlciB3YXksIHdpdGggZmFzdHNldCB2 cyBtb2Rlc2V0LiBJdCB3b3VsZCBuZWVkIGl0cyBvd24gc2Vjb25kIGxvb3AgdG8gaGFuZGxlIGNv cnJlY3RseS4KPiBIbW0uIFllYWgsIHRoaXMgZmFzdHNldCB2cy4gcG9ydCBzeW5jIGlzIHBhcnRp Y3VsYXJseSB0cm91Ymxlc29tZQo+IGJlY2F1c2Ugd2Ugbm93IGNvcHkgc29tZSBzdGF0ZSBiYWNr IGZyb20gdGhlIG9sZCBzdGF0ZS4KPgo+IE5vdCByZWFsbHkgc3VyZSB3aGF0IHRvIGRvIGFib3V0 IHRoYXQgb3RoZXIgdGhhbjoKPiBhKSBkb24ndCBkbyBmYXN0c2V0IHdpdGggcG9ydCBzeW5jICh3 b3VsZCBiZSBhIHNoYW1lKQo+IGIpIHJlZG8gLmNvbXB1dGVfY29uZmlnKCkgZm9yIGFsbCB0aWxl cyBpZiBhdCBsZWFzdCBvbmUgb2YKPiAgICB0aGVtIHN0aWxsIGluc2lzdHMgb24gYSBmdWxsIG1v ZGVzZXQgYWZ0ZXIgYWxsIGhhdmUgZ29uZQo+ICAgIHRocm91Z2ggdGhlIGZhc3RzZXQgY2hlY2sg KGEgYml0IHl1Y2t5KQo+IGMpIGNvcHkgZXZlbiBtb3JlIHN0YXRlIHRvIG1ha2Ugc3VyZSBpdCdz IGFsbCB0b3RhbGx5IGNvbnNpc3RlbnQKPiAgICAoc2hvdWxkIHJlYWxseSBkbyB0aGlzIGFueXdh eSksIGFuZCB0aGVuIGp1c3QgZm9yY2UgYSBtb2Rlc2V0Cj4gICAgb24gYWxsIHRpbGVzIGlmIG9u ZSBuZWVkcyBpdCBidXQgd2l0aG91dCByZWRvaW5nIGFueQo+ICAgIC5jb21wdXRlX2NvbmZpZygp IHN0dWZmIChpZS4gZG8gdGhlIG1vZGVzZXQgd2l0aCB0aGUgZmFzdHNldAo+ICAgIGFkanVzdGVk IHN0YXRlKQo+Cj4gSSBtYXliZSBsaWtlIGMpIGJlc3QuIGIpIHdvdWxkIHBlcmhhcHMgYWxsb3cg dXMgdG8gbm90IGRvIGFueSBwb3J0IHN5bmMKPiB0aGluZ3MgYmVmb3JlIHRoZSAuY29tcHV0ZV9j b25maWcoKSBsb29wIHNpbmNlIHdlJ2QgcmVkbyBpdCBhbnl3YXkgaWYKPiBhbnl0aGluZyBhZmZl Y3RlZCBuZWRzIGEgbW9kZXNldC4gQnV0IGhhdmluZyBhIHJldHJ5IGxvb3Agd291bGQgYmUgYQo+ IGxpdHRsZSBhbm5veWluZy4gQWx0aG91Z2ggd2UncmUgZ29pbmcgdG8gbmVlZCBzb21lIGtpbmQg b2YgcmV0cnkgbG9vcAo+IGZvciBlZy4gTVNUIGJhbmR3aWR0aCB2cy4gYnBjIHN0dWZmIGFueXdh eS4KClBvcnQgc3luYyBzaG91bGQgcHJvYmFibHkgaGF2ZSBpdHMgb3duIGhhbmRsaW5nIGluIGlu dGVsX21vZGVzZXRfY2hlY2tzKCkuCgpJIHRoaW5rIGl0J3MgYmVzdCB0byBqdXN0IGRvIGEgc3Bs aXQsIHBlcmhhcHMgY2xlYW4gdXAgdjIgYXMgd2Ugbm8gbG9uZ2VyIHBhc3MgQkFULCBhbmQgd29y cnkgYWJvdXQgZml4aW5nIHRoaXMgbWVzcyBsYXRlciwgZWxzZSB0aGluZ3MgbmV2ZXIgbW92ZSBm b3J3YXJkLgoKfk1hYXJ0ZW4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeA== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 36771CA9EBD for ; Mon, 28 Oct 2019 09:20:19 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 14E2021D7F for ; Mon, 28 Oct 2019 09:20:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 14E2021D7F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=intel-gfx-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id A078A6E4FF; Mon, 28 Oct 2019 09:20:18 +0000 (UTC) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1142F6E508 for ; Mon, 28 Oct 2019 09:20:17 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 28 Oct 2019 02:20:16 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.68,239,1569308400"; d="scan'208";a="399390116" Received: from vslinko-mobl.ccr.corp.intel.com (HELO [10.252.56.7]) ([10.252.56.7]) by fmsmga005.fm.intel.com with ESMTP; 28 Oct 2019 02:20:15 -0700 To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= References: <20191024124805.26840-1-maarten.lankhorst@linux.intel.com> <20191024124805.26840-8-maarten.lankhorst@linux.intel.com> <20191024152150.GD1208@intel.com> <20191025101341.GE1208@intel.com> From: Maarten Lankhorst Message-ID: Date: Mon, 28 Oct 2019 10:20:14 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <20191025101341.GE1208@intel.com> Content-Language: en-US Subject: Re: [Intel-gfx] [PATCH 08/14] drm/i915: Complete crtc hw/uapi split, v3. X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: intel-gfx@lists.freedesktop.org Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" Message-ID: <20191028092014.-Du2kOiKTy9qc1uluNVJJqessU7s9zGqgfe0I-CqKYw@z> T3AgMjUtMTAtMjAxOSBvbSAxMjoxMyBzY2hyZWVmIFZpbGxlIFN5cmrDpGzDpDoKPiBPbiBGcmks IE9jdCAyNSwgMjAxOSBhdCAxMTowMDowNkFNICswMjAwLCBNYWFydGVuIExhbmtob3JzdCB3cm90 ZToKPj4gT3AgMjQtMTAtMjAxOSBvbSAxNzoyMSBzY2hyZWVmIFZpbGxlIFN5cmrDpGzDpDoKPj4+ IE9uIFRodSwgT2N0IDI0LCAyMDE5IGF0IDAyOjQ3OjU5UE0gKzAyMDAsIE1hYXJ0ZW4gTGFua2hv cnN0IHdyb3RlOgo+Pj4+IE5vdyB0aGF0IHdlIHNlcGFyYXRlZCBldmVyeXRoaW5nIGludG8gdWFw aSBhbmQgaHcsIGl0J3MKPj4+PiB0aW1lIHRvIG1ha2UgdGhlIHNwbGl0IGRlZmluaXRpdmUuIFJl bW92ZSB0aGUgdW5pb24gYW5kCj4+Pj4gbWFrZSBhIGNvcHkgb2YgdGhlIGh3IHN0YXRlIG9uIG1v ZGVzZXQgYW5kIGZhc3RzZXQuCj4+Pj4KPj4+PiBDb2xvciBibG9icyBhcmUgY29waWVkIGluIGNy dGMgYXRvbWljX2NoZWNrKCksIHJpZ2h0Cj4+Pj4gYmVmb3JlIGNvbG9yIG1hbmFnZW1lbnQgaXMg Y2hlY2tlZC4KPj4+Pgo+Pj4+IENoYW5nZXMgc2luY2UgdjE6Cj4+Pj4gLSBDb3B5IGFsbCBibG9i cyBpbW1lZGlhdGVseSBhZnRlciBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19tb2Rlc2V0KCkuCj4+ Pj4gLSBDbGVhciBjcnRjX3N0YXRlLT5odyBvbiBkaXNhYmxlLCBpbnN0ZWFkIG9mIHVzaW5nIGNs ZWFyX2ludGVsX2NydGNfc3RhdGUoKS4KPj4+PiBDaGFuZ2VzIHNpbmNlIHYyOgo+Pj4+IC0gVXNl IGludGVsX2NydGNfZnJlZV9od19zdGF0ZSArIGNsZWFyIGluIGludGVsX2NydGNfZGlzYWJsZV9u b2F0b21pYygpLgo+Pj4+IC0gTWFrZSBhIGludGVsX2NydGNfcHJlcGFyZV9zdGF0ZSgpIGZ1bmN0 aW9uIHRoYXQgY2xlYXJzIHRoZSBjcnRjX3N0YXRlCj4+Pj4gICBhbmQgY29waWVzIGh3IG1lbWJl cnMuCj4+Pj4gLSBSZW1vdmUgc2V0dGluZyB1YXBpLmFkanVzdGVkX21vZGUsIHdlIG5vdyBoYXZl IGEgZGlyZWN0IGNhbGwgdG8KPj4+PiAgIGRybV9jYWxjX3RpbWVzdGFtcGluZ19jb25zdGFudHMo KS4KPj4+Pgo+Pj4+IFNpZ25lZC1vZmYtYnk6IE1hYXJ0ZW4gTGFua2hvcnN0IDxtYWFydGVuLmxh bmtob3JzdEBsaW51eC5pbnRlbC5jb20+Cj4+Pj4gLS0tCj4+Pj4gIGRyaXZlcnMvZ3B1L2RybS9p OTE1L2Rpc3BsYXkvaW50ZWxfYXRvbWljLmMgICB8IDQ0ICsrKysrKysrKysrKysrKwo+Pj4+ICBk cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5oICAgfCAgMiArCj4+Pj4g IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jICB8IDU2ICsrKysr KysrKysrKysrKy0tLS0KPj4+PiAgLi4uL2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheV90 eXBlcy5oICAgIHwgIDkgKy0tCj4+Pj4gIDQgZmlsZXMgY2hhbmdlZCwgOTUgaW5zZXJ0aW9ucygr KSwgMTYgZGVsZXRpb25zKC0pCj4+Pj4KPj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfYXRvbWljLmMKPj4+PiBpbmRleCA3Y2YxM2I5YzdkMzguLjI2NmQwY2U5ZDAzZCAx MDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21p Yy5jCj4+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMu Ywo+Pj4+IEBAIC0xOTUsNiArMTk1LDE0IEBAIGludGVsX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0YykKPj4+PiAgCj4+Pj4gIAlfX2RybV9hdG9taWNfaGVscGVyX2Ny dGNfZHVwbGljYXRlX3N0YXRlKGNydGMsICZjcnRjX3N0YXRlLT51YXBpKTsKPj4+PiAgCj4+Pj4g KwkvKiBjb3B5IGNvbG9yIGJsb2JzICovCj4+Pj4gKwlpZiAoY3J0Y19zdGF0ZS0+aHcuZGVnYW1t YV9sdXQpCj4+Pj4gKwkJZHJtX3Byb3BlcnR5X2Jsb2JfZ2V0KGNydGNfc3RhdGUtPmh3LmRlZ2Ft bWFfbHV0KTsKPj4+PiArCWlmIChjcnRjX3N0YXRlLT5ody5jdG0pCj4+Pj4gKwkJZHJtX3Byb3Bl cnR5X2Jsb2JfZ2V0KGNydGNfc3RhdGUtPmh3LmN0bSk7Cj4+Pj4gKwlpZiAoY3J0Y19zdGF0ZS0+ aHcuZ2FtbWFfbHV0KQo+Pj4+ICsJCWRybV9wcm9wZXJ0eV9ibG9iX2dldChjcnRjX3N0YXRlLT5o dy5nYW1tYV9sdXQpOwo+Pj4+ICsKPj4+PiAgCWNydGNfc3RhdGUtPnVwZGF0ZV9waXBlID0gZmFs c2U7Cj4+Pj4gIAljcnRjX3N0YXRlLT5kaXNhYmxlX2xwX3dtID0gZmFsc2U7Cj4+Pj4gIAljcnRj X3N0YXRlLT5kaXNhYmxlX2N4c3IgPSBmYWxzZTsKPj4+PiBAQCAtMjA4LDYgKzIxNiw0MSBAQCBp bnRlbF9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMpCj4+Pj4gIAly ZXR1cm4gJmNydGNfc3RhdGUtPnVhcGk7Cj4+Pj4gIH0KPj4+PiAgCj4+Pj4gK3N0YXRpYyB2b2lk IGludGVsX2NydGNfcHV0X2NvbG9yX2Jsb2JzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRj X3N0YXRlKQo+Pj4+ICt7Cj4+Pj4gKwlkcm1fcHJvcGVydHlfYmxvYl9wdXQoY3J0Y19zdGF0ZS0+ aHcuZGVnYW1tYV9sdXQpOwo+Pj4+ICsJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KGNydGNfc3RhdGUt Pmh3LmdhbW1hX2x1dCk7Cj4+Pj4gKwlkcm1fcHJvcGVydHlfYmxvYl9wdXQoY3J0Y19zdGF0ZS0+ aHcuY3RtKTsKPj4+PiArfQo+Pj4+ICsKPj4+PiArdm9pZCBpbnRlbF9jcnRjX2ZyZWVfaHdfc3Rh dGUoc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+Pj4gK3sKPj4+PiArCWlu dGVsX2NydGNfcHV0X2NvbG9yX2Jsb2JzKGNydGNfc3RhdGUpOwo+Pj4+ICt9Cj4+Pj4gKwo+Pj4+ ICt2b2lkIGludGVsX2NydGNfY29weV9jb2xvcl9ibG9icyhzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0 ZSAqY3J0Y19zdGF0ZSkKPj4+IFRoaXMgaXMgb25seSB1c2VkIGluIGludGVsX2Rpc3BsYXkuYyBz byBzaG91bGQgcGVyaGFwcyBsaXZlIHRoZXJlPwo+Pj4KPj4+PiArewo+Pj4+ICsJaW50ZWxfY3J0 Y19wdXRfY29sb3JfYmxvYnMoY3J0Y19zdGF0ZSk7Cj4+Pj4gKwo+Pj4+ICsJaWYgKGNydGNfc3Rh dGUtPnVhcGkuZGVnYW1tYV9sdXQpCj4+Pj4gKwkJY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQg PQo+Pj4+ICsJCQlkcm1fcHJvcGVydHlfYmxvYl9nZXQoY3J0Y19zdGF0ZS0+dWFwaS5kZWdhbW1h X2x1dCk7Cj4+Pj4gKwllbHNlCj4+Pj4gKwkJY3J0Y19zdGF0ZS0+aHcuZGVnYW1tYV9sdXQgPSBO VUxMOwo+Pj4+ICsKPj4+PiArCWlmIChjcnRjX3N0YXRlLT51YXBpLmdhbW1hX2x1dCkKPj4+PiAr CQljcnRjX3N0YXRlLT5ody5nYW1tYV9sdXQgPQo+Pj4+ICsJCQlkcm1fcHJvcGVydHlfYmxvYl9n ZXQoY3J0Y19zdGF0ZS0+dWFwaS5nYW1tYV9sdXQpOwo+Pj4+ICsJZWxzZQo+Pj4+ICsJCWNydGNf c3RhdGUtPmh3LmdhbW1hX2x1dCA9IE5VTEw7Cj4+Pj4gKwo+Pj4+ICsJaWYgKGNydGNfc3RhdGUt PnVhcGkuY3RtKQo+Pj4+ICsJCWNydGNfc3RhdGUtPmh3LmN0bSA9Cj4+Pj4gKwkJCWRybV9wcm9w ZXJ0eV9ibG9iX2dldChjcnRjX3N0YXRlLT51YXBpLmN0bSk7Cj4+Pj4gKwllbHNlCj4+Pj4gKwkJ Y3J0Y19zdGF0ZS0+aHcuY3RtID0gTlVMTDsKPj4+PiArfQo+Pj4+ICsKPj4+PiAgLyoqCj4+Pj4g ICAqIGludGVsX2NydGNfZGVzdHJveV9zdGF0ZSAtIGRlc3Ryb3kgY3J0YyBzdGF0ZQo+Pj4+ICAg KiBAY3J0YzogZHJtIGNydGMKPj4+PiBAQCAtMjIzLDYgKzI2Niw3IEBAIGludGVsX2NydGNfZGVz dHJveV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+Pj4gIAlzdHJ1Y3QgaW50ZWxfY3J0 Y19zdGF0ZSAqY3J0Y19zdGF0ZSA9IHRvX2ludGVsX2NydGNfc3RhdGUoc3RhdGUpOwo+Pj4+ICAK Pj4+PiAgCV9fZHJtX2F0b21pY19oZWxwZXJfY3J0Y19kZXN0cm95X3N0YXRlKCZjcnRjX3N0YXRl LT51YXBpKTsKPj4+PiArCWludGVsX2NydGNfZnJlZV9od19zdGF0ZShjcnRjX3N0YXRlKTsKPj4+ PiAgCWtmcmVlKGNydGNfc3RhdGUpOwo+Pj4+ICB9Cj4+Pj4gIAo+Pj4+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX2F0b21pYy5oIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9hdG9taWMuaAo+Pj4+IGluZGV4IDU4MDY1ZDMxNjFhMy4u NDJiZTkxZTA3NzJhIDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfYXRvbWljLmgKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5 L2ludGVsX2F0b21pYy5oCj4+Pj4gQEAgLTM1LDYgKzM1LDggQEAgaW50ZWxfZGlnaXRhbF9jb25u ZWN0b3JfZHVwbGljYXRlX3N0YXRlKHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IpOwo+ Pj4+ICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUgKmludGVsX2NydGNfZHVwbGljYXRlX3N0YXRlKHN0 cnVjdCBkcm1fY3J0YyAqY3J0Yyk7Cj4+Pj4gIHZvaWQgaW50ZWxfY3J0Y19kZXN0cm95X3N0YXRl KHN0cnVjdCBkcm1fY3J0YyAqY3J0YywKPj4+PiAgCQkJICAgICAgIHN0cnVjdCBkcm1fY3J0Y19z dGF0ZSAqc3RhdGUpOwo+Pj4+ICt2b2lkIGludGVsX2NydGNfZnJlZV9od19zdGF0ZShzdHJ1Y3Qg aW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSk7Cj4+Pj4gK3ZvaWQgaW50ZWxfY3J0Y19jb3B5 X2NvbG9yX2Jsb2JzKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKTsKPj4+PiAg c3RydWN0IGRybV9hdG9taWNfc3RhdGUgKmludGVsX2F0b21pY19zdGF0ZV9hbGxvYyhzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2KTsKPj4+PiAgdm9pZCBpbnRlbF9hdG9taWNfc3RhdGVfY2xlYXIoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlKTsKPj4+PiAgCj4+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfZGlzcGxheS5jIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvZGlzcGxheS9pbnRlbF9kaXNwbGF5LmMKPj4+PiBpbmRleCAxMWRkN2ExODI1NDMu LjJkYmMxZGY5NTA1YSAxMDA2NDQKPj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNw bGF5L2ludGVsX2Rpc3BsYXkuYwo+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3Bs YXkvaW50ZWxfZGlzcGxheS5jCj4+Pj4gQEAgLTcxMTAsNiArNzExMCw4IEBAIHN0YXRpYyB2b2lk IGludGVsX2NydGNfZGlzYWJsZV9ub2F0b21pYyhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4+Pj4g IAljcnRjLT5lbmFibGVkID0gZmFsc2U7Cj4+Pj4gIAljcnRjLT5zdGF0ZS0+Y29ubmVjdG9yX21h c2sgPSAwOwo+Pj4+ICAJY3J0Yy0+c3RhdGUtPmVuY29kZXJfbWFzayA9IDA7Cj4+Pj4gKwlpbnRl bF9jcnRjX2ZyZWVfaHdfc3RhdGUoY3J0Y19zdGF0ZSk7Cj4+Pj4gKwltZW1zZXQoJmNydGNfc3Rh dGUtPmh3LCAwLCBzaXplb2YoY3J0Y19zdGF0ZS0+aHcpKTsKPj4+PiAgCj4+Pj4gIAlmb3JfZWFj aF9lbmNvZGVyX29uX2NydGMoY3J0Yy0+ZGV2LCBjcnRjLCBlbmNvZGVyKQo+Pj4+ICAJCWVuY29k ZXItPmJhc2UuY3J0YyA9IE5VTEw7Cj4+Pj4gQEAgLTEyNDgyLDIyICsxMjQ4NCw1MCBAQCBzdGF0 aWMgYm9vbCBjaGVja19kaWdpdGFsX3BvcnRfY29uZmxpY3RzKHN0cnVjdCBpbnRlbF9hdG9taWNf c3RhdGUgKnN0YXRlKQo+Pj4+ICAJcmV0dXJuIHJldDsKPj4+PiAgfQo+Pj4+ICAKPj4+PiArc3Rh dGljIHZvaWQKPj4+PiAraW50ZWxfY3J0Y19jb3B5X3VhcGlfdG9faHdfc3RhdGUoc3RydWN0IGlu dGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4+Pj4gK3sKPj4+PiArCWNydGNfc3RhdGUtPmh3 LmVuYWJsZSA9IGNydGNfc3RhdGUtPnVhcGkuZW5hYmxlOwo+Pj4+ICsJY3J0Y19zdGF0ZS0+aHcu YWN0aXZlID0gY3J0Y19zdGF0ZS0+dWFwaS5hY3RpdmU7Cj4+Pj4gKwljcnRjX3N0YXRlLT5ody5t b2RlID0gY3J0Y19zdGF0ZS0+dWFwaS5tb2RlOwo+Pj4+ICsJY3J0Y19zdGF0ZS0+aHcuYWRqdXN0 ZWRfbW9kZSA9IGNydGNfc3RhdGUtPnVhcGkuYWRqdXN0ZWRfbW9kZTsKPj4+PiArCWludGVsX2Ny dGNfY29weV9jb2xvcl9ibG9icyhjcnRjX3N0YXRlKTsKPj4+PiArfQo+Pj4+ICsKPj4+PiArc3Rh dGljIHZvaWQgY29weV9od190b191YXBpX3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpj cnRjX3N0YXRlKQo+Pj4+ICt7Cj4+Pj4gKwljcnRjX3N0YXRlLT51YXBpLmVuYWJsZSA9IGNydGNf c3RhdGUtPmh3LmVuYWJsZTsKPj4+PiArCWNydGNfc3RhdGUtPnVhcGkuYWN0aXZlID0gY3J0Y19z dGF0ZS0+aHcuYWN0aXZlOwo+Pj4+ICsJY3J0Y19zdGF0ZS0+dWFwaS5tb2RlID0gY3J0Y19zdGF0 ZS0+aHcubW9kZTsKPj4+PiArCWNydGNfc3RhdGUtPnVhcGkuYWRqdXN0ZWRfbW9kZSA9IGNydGNf c3RhdGUtPmh3LmFkanVzdGVkX21vZGU7Cj4+PiBXaHkgYXJlIHdlIG5vdCBjb3B5aW5nIHRoZSBj b2xvciBibG9icz8KPj4gSG1tLCB3ZSBwcm9iYWJseSBzaG91bGQgYXQgbGVhc3QgY29weSB0aGUg Z2FtbWEgYmxvYiwgYnV0IHByb2JhYmx5IGFsbC4gOikKPj4KPj4gTWlzc2VkIHRoYXQgYmVjYXVz ZSB0aGlzIHBhdGNoIGxpbmdlcmVkIG9uIHRoZSBtbCBmb3Igc28gbG9uZyB3ZSBhZGRlZCBodyBy ZWFkb3V0IGluIHRoZSBtZWFuIHRpbWUuCj4+Cj4+Pj4gK30KPj4+PiArCj4+Pj4gIHN0YXRpYyBp bnQKPj4+PiAtY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAq Y3J0Y19zdGF0ZSkKPj4+PiAraW50ZWxfY3J0Y19wcmVwYXJlX3N0YXRlKHN0cnVjdCBpbnRlbF9j cnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+Pj4gSG1tLiBJIHdhcyBob3Bpbmcgd2UgY291bGQgbWFr ZSB0aGlzIGV2ZW4gc2ltcGxlciwgYnV0IG1heWJlIEknbSBhIGJpdAo+Pj4gbmFpdmUuIEkgZ3Vl c3Mgd2UgcmVhbGx5IGRvIG5lZWQgdG8gY29uc2lkZXIgbmVlZHNfbW9kZXNldCgpIHNvIGFzIHRv Cj4+PiBub3QgY2xvYmJlciB0aGUgYWxyZWFkeSBjb21wdXRlZCBodyBzdGF0ZSB3aGVuIHdlJ3Jl IG5vdCBnb2luZyB0byB0YWtlCj4+PiB0aGUgZnVsbCAuY29tcHV0ZV9jb25maWcoKSBwYXRoLgo+ Pj4KPj4+PiAgewo+Pj4+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KPj4+ PiAgCQl0b19pOTE1KGNydGNfc3RhdGUtPnVhcGkuY3J0Yy0+ZGV2KTsKPj4+PiAgCXN0cnVjdCBp bnRlbF9jcnRjX3N0YXRlICpzYXZlZF9zdGF0ZTsKPj4+PiAgCj4+Pj4gKwlpZiAoIW5lZWRzX21v ZGVzZXQoY3J0Y19zdGF0ZSkpIHsKPj4+PiArCQkvKiBPbmx5IG5lZWQgdG8gdXBkYXRlIGNydGNf c3RhdGUtPmh3IGNvbG9yIGJsb2JzICovCj4+PiBUaGF0IGNvbW1lbnQgaXMgbGlrZWx5IHRvIGdl dCBvdXQgb2YgZGF0ZS4gTm90IHN1cmUgaG93IHRvIHdvcmQgaXQgaW4gYQo+Pj4gbmljZSB3YXkg dGhvdWdoLiBFc3NlbnRpYWxseSB3ZSBqdXN0IHdhbnQgdG8gY29weSB0aGUgcGFydCBvZiB0aGUg c3RhdGUKPj4+IHRoYXQgZG9lc24ndCBjbG9iYmVyIGFueXRoaW5nIHNldCB1cCBieSAuY29tcHV0 ZV9jb25maWcoKSAmIGNvLgo+Pj4KPj4+IEl0IHdvdWxkIGJlIG5pY2UgaWYgd2UgaGFkIHRoZSBz YW1lIGxldmVsIG9mIGFic3RyYWN0aW9uIGZvciB0aGlzIGNhc2UKPj4+IGFzIGZvciB0aGUgZnVs bCBtb2Rlc2V0IGNhc2UuIEVnLiBpbnRlbF9jcnRjX2NvcHlfaHdfc3RhdGVfbm9uX21vZGVzZXQo KQo+Pj4gb3Igc29tZXRoaW5nLiBBIGJpdCB1Z2x5IHRoYXQgbmFtZSB0aG91Z2guIE1pZ2h0IGhh dmUgdGhpbmsgb2Ygc29tZXRoaW5nCj4+PiBiZXR0ZXIuCj4+Pgo+Pj4gQW5vdGhlciB0aGluZyB0 aGF0J3MgYSBiaXQgY29uZnVzaW5nIGlzIHRoYXQgd2UgbmVlZCB0byBkbyB0aGUKPj4+IGludGVs X2NydGNfZnJlZV9od19zdGF0ZSgpIGZvciB0aGUgZnVsbCBtb2Rlc2V0IHBhdGgsIGJ1dCB3ZSBk b24ndAo+Pj4gbmVlZCBpdCBmb3IgdGhlIG5vbi1tb2Rlc2V0IHBhdGguIFdvdWxkIGJlIG5pY2Ug aXQgdGhlIHR3byBwYXRocwo+Pj4gYmVoYXZlZCBtb3JlIHVuaWZvcm1seS4gCj4+IFdlJ2QgaGF2 ZSB0byBnZXQgcmlkIG9mIHRoZSBjcnRjX3N0YXRlIGNsZWFyaW5nIGZvciB0aGF0LiA6KAo+IEkg d2FzIGp1c3QgdGhpbmtpbmcgd2UnZCBoYXZlIHNvbWV0aGluZyBsaWtlOgo+IGNydGNfc3RhdGVf ZnJlZV9saXRlKCkgKyBjcnRjX3N0YXRlX2NvcHlfbGl0ZSgpCj4gYW5kCj4gY3J0Y19zdGF0ZV9m cmVlX2Z1bGwoKSArIGNydGNfc3RhdGVfY29weV9mdWxsKCkKPgo+IFdpdGggYmV0dGVyIG5hbWVz IHByb2JhYmx5IDopCj4KPiBUaGVuIGJvdGggcGF0aHMgd291bGQgZG8gdGhlIHNhbWUga2luZCBv ZiBmcmVlK2NvcHkgYW5kIHRoZSByZWFkZXIKPiB3b3VsZG4ndCBoYXZlIHRvIHdvbmRlciB3aHkg dGhleSBsb29rIHNvIGRpZmZlcmVudC4KPgo+Pj4+ICsJCWludGVsX2NydGNfY29weV9jb2xvcl9i bG9icyhjcnRjX3N0YXRlKTsKPj4+PiArCQlyZXR1cm4gMDsKPj4+PiArCX0KPj4+PiArCj4+Pj4g IAlzYXZlZF9zdGF0ZSA9IGt6YWxsb2Moc2l6ZW9mKCpzYXZlZF9zdGF0ZSksIEdGUF9LRVJORUwp Owo+Pj4+ICAJaWYgKCFzYXZlZF9zdGF0ZSkKPj4+PiAgCQlyZXR1cm4gLUVOT01FTTsKPj4+PiAg Cj4+Pj4gKwkvKiBmcmVlIHRoZSBvbGQgY3J0Y19zdGF0ZS0+aHcgbWVtYmVycyAqLwo+Pj4+ICsJ aW50ZWxfY3J0Y19mcmVlX2h3X3N0YXRlKGNydGNfc3RhdGUpOwo+Pj4+ICsKPj4+PiAgCS8qIEZJ WE1FOiBiZWZvcmUgdGhlIHN3aXRjaCB0byBhdG9taWMgc3RhcnRlZCwgYSBuZXcgcGlwZV9jb25m aWcgd2FzCj4+Pj4gIAkgKiBremFsbG9jJ2QuIENvZGUgdGhhdCBkZXBlbmRzIG9uIGFueSBmaWVs ZCBiZWluZyB6ZXJvIHNob3VsZCBiZQo+Pj4+ICAJICogZml4ZWQsIHNvIHRoYXQgdGhlIGNydGNf c3RhdGUgY2FuIGJlIHNhZmVseSBkdXBsaWNhdGVkLiBGb3Igbm93LAo+Pj4+ICAJICogb25seSBm aWVsZHMgdGhhdCBhcmUga25vdyB0byBub3QgY2F1c2UgcHJvYmxlbXMgYXJlIHByZXNlcnZlZC4g Ki8KPj4+PiAgCj4+Pj4gKwlzYXZlZF9zdGF0ZS0+dWFwaSA9IGNydGNfc3RhdGUtPnVhcGk7Cj4+ Pj4gIAlzYXZlZF9zdGF0ZS0+c2NhbGVyX3N0YXRlID0gY3J0Y19zdGF0ZS0+c2NhbGVyX3N0YXRl Owo+Pj4+ICAJc2F2ZWRfc3RhdGUtPnNoYXJlZF9kcGxsID0gY3J0Y19zdGF0ZS0+c2hhcmVkX2Rw bGw7Cj4+Pj4gIAlzYXZlZF9zdGF0ZS0+ZHBsbF9od19zdGF0ZSA9IGNydGNfc3RhdGUtPmRwbGxf aHdfc3RhdGU7Cj4+Pj4gQEAgLTEyNTE1LDE0ICsxMjU0NSwxMSBAQCBjbGVhcl9pbnRlbF9jcnRj X3N0YXRlKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlKQo+Pj4+ICAJCXNhdmVk X3N0YXRlLT5zeW5jX21vZGVfc2xhdmVzX21hc2sgPQo+Pj4+ICAJCQljcnRjX3N0YXRlLT5zeW5j X21vZGVfc2xhdmVzX21hc2s7Cj4+Pj4gIAo+Pj4+IC0JLyogS2VlcCBiYXNlIGRybV9jcnRjX3N0 YXRlIGludGFjdCwgb25seSBjbGVhciBvdXIgZXh0ZW5kZWQgc3RydWN0ICovCj4+Pj4gLQlCVUlM RF9CVUdfT04ob2Zmc2V0b2Yoc3RydWN0IGludGVsX2NydGNfc3RhdGUsIGJhc2UpKTsKPj4+PiAt CUJVSUxEX0JVR19PTihvZmZzZXRvZihzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSwgdWFwaSkpOwo+ Pj4+IC0JQlVJTERfQlVHX09OKG9mZnNldG9mKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlLCBodykp Owo+Pj4+IC0JbWVtY3B5KCZjcnRjX3N0YXRlLT51YXBpICsgMSwgJnNhdmVkX3N0YXRlLT51YXBp ICsgMSwKPj4+PiAtCSAgICAgICBzaXplb2YoKmNydGNfc3RhdGUpIC0gc2l6ZW9mKGNydGNfc3Rh dGUtPnVhcGkpKTsKPj4+PiAtCj4+Pj4gKwltZW1jcHkoY3J0Y19zdGF0ZSwgc2F2ZWRfc3RhdGUs IHNpemVvZigqY3J0Y19zdGF0ZSkpOwo+Pj4+ICAJa2ZyZWUoc2F2ZWRfc3RhdGUpOwo+Pj4+ICsK Pj4+PiArCWludGVsX2NydGNfY29weV91YXBpX3RvX2h3X3N0YXRlKGNydGNfc3RhdGUpOwo+Pj4+ ICsKPj4+PiAgCXJldHVybiAwOwo+Pj4+ICB9Cj4+Pj4gIAo+Pj4+IEBAIC0xMjUzOCwxMCArMTI1 NjUsNiBAQCBpbnRlbF9tb2Rlc2V0X3BpcGVfY29uZmlnKHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZykKPj4+PiAgCWludCBpOwo+Pj4+ICAJYm9vbCByZXRyeSA9IHRydWU7Cj4+ Pj4gIAo+Pj4+IC0JcmV0ID0gY2xlYXJfaW50ZWxfY3J0Y19zdGF0ZShwaXBlX2NvbmZpZyk7Cj4+ Pj4gLQlpZiAocmV0KQo+Pj4+IC0JCXJldHVybiByZXQ7Cj4+Pj4gLQo+Pj4+ICAJcGlwZV9jb25m aWctPmNwdV90cmFuc2NvZGVyID0KPj4+PiAgCQkoZW51bSB0cmFuc2NvZGVyKSB0b19pbnRlbF9j cnRjKGNydGMpLT5waXBlOwo+Pj4+ICAKPj4+PiBAQCAtMTMzNjEsNiArMTMzODQsOCBAQCB2ZXJp ZnlfY3J0Y19zdGF0ZShzdHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YywKPj4+PiAgCj4+Pj4gIAlzdGF0 ZSA9IG9sZF9jcnRjX3N0YXRlLT51YXBpLnN0YXRlOwo+Pj4+ICAJX19kcm1fYXRvbWljX2hlbHBl cl9jcnRjX2Rlc3Ryb3lfc3RhdGUoJm9sZF9jcnRjX3N0YXRlLT51YXBpKTsKPj4+PiArCWludGVs X2NydGNfZnJlZV9od19zdGF0ZShvbGRfY3J0Y19zdGF0ZSk7Cj4+Pj4gKwo+Pj4+ICAJcGlwZV9j b25maWcgPSBvbGRfY3J0Y19zdGF0ZTsKPj4+PiAgCW1lbXNldChwaXBlX2NvbmZpZywgMCwgc2l6 ZW9mKCpwaXBlX2NvbmZpZykpOwo+Pj4+ICAJcGlwZV9jb25maWctPnVhcGkuY3J0YyA9ICZjcnRj LT5iYXNlOwo+Pj4+IEBAIC0xMzgyMyw2ICsxMzg0OCwxMCBAQCBzdGF0aWMgaW50IGludGVsX2F0 b21pY19jaGVjayhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+Pj4+ICAKPj4+PiAgCWZvcl9lYWNo X29sZG5ld19pbnRlbF9jcnRjX2luX3N0YXRlKHN0YXRlLCBjcnRjLCBvbGRfY3J0Y19zdGF0ZSwK Pj4+PiAgCQkJCQkgICAgbmV3X2NydGNfc3RhdGUsIGkpIHsKPj4+PiArCQlyZXQgPSBpbnRlbF9j cnRjX3ByZXBhcmVfc3RhdGUobmV3X2NydGNfc3RhdGUpOwo+Pj4+ICsJCWlmIChyZXQpCj4+Pj4g KwkJCXJldHVybiByZXQ7Cj4+PiBJIGhhdmUgYSBmZWVsaW5nIHRoaXMgc2hvdWxkIGJlIGl0cyBv d24gbG9vcCBpbiBjYXNlIHdlIG5lZWQKPj4+IHRvIGluc2VydCBnbG9iYWwgc3R1ZmYgYWZ0ZXIg dGhpcy4KPj4+Cj4+PiBGb3IgZXhhbXBsZSwgSSB0aGluayB0aGUgcG9ydCBzeW5jIHN0dWZmIHNo b3VsZCBiZSB0aGVyZSBidXQKPj4+IEkgY2FuJ3Qgc2VlIGl0IG5vdy4gQWgsIGZvciBzb21lIHJl YXNvbiBpdCdzIGJ1cmllZCBkZWVwIGluc2lkZQo+Pj4gaW50ZWxfbW9kZXNldF9waXBlX2NvbmZp ZygpIHdoaWNoIHNlZW1zIHdyb25nLiBJZiBhbnkgKG9yIGF0Cj4+PiBsZWFzdCB0aGUgbWFzdGVy KSBvZiB0aGUgZ2VubG9ja2VkIHBpcGVzIGRvZXMgYSBmdWxsIG1vZGVzZXQKPj4+IHdlIG5lZWQg dG8gZG8gYSBmdWxsIG1vZGVzZXQgb24gYWxsIG9mIHRoZW0sIHdoaWNoIHNob3VsZCBhbHNvCj4+ PiBtZWFuIGEgZnVsbCAuY29tcHV0ZV9jb25maWcoKSBvbiBldmVyeXRoaW5nLgo+Pj4KPj4+IEht bS4gQW5kIGlmIHdlIGRvIHRoYXQgdGhlbiBjb21iaW5pbmcgdGhlIHVhcGktPmh3IGNvcHkgYW5k Cj4+PiBjbGVhcl9pbnRlbF9jcnRjX3N0YXRlKCkgbGlrZSB0aGlzIGlzIG5vdCBnb2luZyB0byB3 b3JrLgo+PiBHZW5sb2NrIHdvdWxkIGJlIG1lc3N5IGVpdGhlciB3YXksIHdpdGggZmFzdHNldCB2 cyBtb2Rlc2V0LiBJdCB3b3VsZCBuZWVkIGl0cyBvd24gc2Vjb25kIGxvb3AgdG8gaGFuZGxlIGNv cnJlY3RseS4KPiBIbW0uIFllYWgsIHRoaXMgZmFzdHNldCB2cy4gcG9ydCBzeW5jIGlzIHBhcnRp Y3VsYXJseSB0cm91Ymxlc29tZQo+IGJlY2F1c2Ugd2Ugbm93IGNvcHkgc29tZSBzdGF0ZSBiYWNr IGZyb20gdGhlIG9sZCBzdGF0ZS4KPgo+IE5vdCByZWFsbHkgc3VyZSB3aGF0IHRvIGRvIGFib3V0 IHRoYXQgb3RoZXIgdGhhbjoKPiBhKSBkb24ndCBkbyBmYXN0c2V0IHdpdGggcG9ydCBzeW5jICh3 b3VsZCBiZSBhIHNoYW1lKQo+IGIpIHJlZG8gLmNvbXB1dGVfY29uZmlnKCkgZm9yIGFsbCB0aWxl cyBpZiBhdCBsZWFzdCBvbmUgb2YKPiAgICB0aGVtIHN0aWxsIGluc2lzdHMgb24gYSBmdWxsIG1v ZGVzZXQgYWZ0ZXIgYWxsIGhhdmUgZ29uZQo+ICAgIHRocm91Z2ggdGhlIGZhc3RzZXQgY2hlY2sg KGEgYml0IHl1Y2t5KQo+IGMpIGNvcHkgZXZlbiBtb3JlIHN0YXRlIHRvIG1ha2Ugc3VyZSBpdCdz IGFsbCB0b3RhbGx5IGNvbnNpc3RlbnQKPiAgICAoc2hvdWxkIHJlYWxseSBkbyB0aGlzIGFueXdh eSksIGFuZCB0aGVuIGp1c3QgZm9yY2UgYSBtb2Rlc2V0Cj4gICAgb24gYWxsIHRpbGVzIGlmIG9u ZSBuZWVkcyBpdCBidXQgd2l0aG91dCByZWRvaW5nIGFueQo+ICAgIC5jb21wdXRlX2NvbmZpZygp IHN0dWZmIChpZS4gZG8gdGhlIG1vZGVzZXQgd2l0aCB0aGUgZmFzdHNldAo+ICAgIGFkanVzdGVk IHN0YXRlKQo+Cj4gSSBtYXliZSBsaWtlIGMpIGJlc3QuIGIpIHdvdWxkIHBlcmhhcHMgYWxsb3cg dXMgdG8gbm90IGRvIGFueSBwb3J0IHN5bmMKPiB0aGluZ3MgYmVmb3JlIHRoZSAuY29tcHV0ZV9j b25maWcoKSBsb29wIHNpbmNlIHdlJ2QgcmVkbyBpdCBhbnl3YXkgaWYKPiBhbnl0aGluZyBhZmZl Y3RlZCBuZWRzIGEgbW9kZXNldC4gQnV0IGhhdmluZyBhIHJldHJ5IGxvb3Agd291bGQgYmUgYQo+ IGxpdHRsZSBhbm5veWluZy4gQWx0aG91Z2ggd2UncmUgZ29pbmcgdG8gbmVlZCBzb21lIGtpbmQg b2YgcmV0cnkgbG9vcAo+IGZvciBlZy4gTVNUIGJhbmR3aWR0aCB2cy4gYnBjIHN0dWZmIGFueXdh eS4KClBvcnQgc3luYyBzaG91bGQgcHJvYmFibHkgaGF2ZSBpdHMgb3duIGhhbmRsaW5nIGluIGlu dGVsX21vZGVzZXRfY2hlY2tzKCkuCgpJIHRoaW5rIGl0J3MgYmVzdCB0byBqdXN0IGRvIGEgc3Bs aXQsIHBlcmhhcHMgY2xlYW4gdXAgdjIgYXMgd2Ugbm8gbG9uZ2VyIHBhc3MgQkFULCBhbmQgd29y cnkgYWJvdXQgZml4aW5nIHRoaXMgbWVzcyBsYXRlciwgZWxzZSB0aGluZ3MgbmV2ZXIgbW92ZSBm b3J3YXJkLgoKfk1hYXJ0ZW4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNr dG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeA==