From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH v13 08/10] drm: Expose modes with aspect ratio, only if requested Date: Mon, 7 May 2018 15:28:41 +0300 Message-ID: <20180507122841.GD23723@intel.com> References: <1525243822-19308-1-git-send-email-ankit.k.nautiyal@intel.com> <1525243822-19308-9-git-send-email-ankit.k.nautiyal@intel.com> <20180503062625.GD12521@phenom.ffwll.local> <20180504201945.GC23723@intel.com> <042d7a32-35ae-95fa-3cbc-3ccf327b3a8d@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <042d7a32-35ae-95fa-3cbc-3ccf327b3a8d@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Nautiyal, Ankit K" Cc: "intel-gfx@lists.freedesktop.org" , "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org T24gTW9uLCBNYXkgMDcsIDIwMTggYXQgMTA6MzQ6NTNBTSArMDUzMCwgTmF1dGl5YWwsIEFua2l0 IEsgd3JvdGU6Cj4gCj4gCj4gT24gNS81LzIwMTggMTo0OSBBTSwgVmlsbGUgU3lyasOkbMOkIHdy b3RlOgo+ID4gT24gVGh1LCBNYXkgMDMsIDIwMTggYXQgMDg6MjY6MjZBTSArMDIwMCwgRGFuaWVs IFZldHRlciB3cm90ZToKPiA+PiBPbiBXZWQsIE1heSAwMiwgMjAxOCBhdCAxMjoyMDoyMFBNICsw NTMwLCBOYXV0aXlhbCwgQW5raXQgSyB3cm90ZToKPiA+Pj4gRnJvbTogQW5raXQgTmF1dGl5YWwg PGFua2l0LmsubmF1dGl5YWxAaW50ZWwuY29tPgo+ID4+Pgo+ID4+PiBXZSBwYXJzZSB0aGUgRURJ RCBhbmQgYWRkIGFsbCB0aGUgbW9kZXMgaW4gdGhlIGNvbm5lY3RvcidzIG1vZGVsaXN0Lgo+ID4+ PiBUaGlzIGFkZHMgQ0VBIG1vZGVzIHdpdGggYXNwZWN0IHJhdGlvIGluZm9ybWF0aW9uIHRvbywg cmVnYXJkbGVzcyBvZgo+ID4+PiB3aGV0aGVyIHVzZXIgc3BhY2UgcmVxdWVzdGVkIHRoaXMgaW5m b3JtYXRpb24gb3Igbm90Lgo+ID4+Pgo+ID4+PiBUaGlzIHBhdGNoOgo+ID4+PiAtcHJ1bmVzIHRo ZSBtb2RlcyB3aXRoIGFzcGVjdC1yYXRpbyBpbmZvcm1hdGlvbiwgZnJvbSBhCj4gPj4+ICAgY29u bmVjdG9yJ3MgbW9kZWxpc3QsIGlmIHRoZSB1c2VyLXNwYWNlIGhhcyBub3Qgc2V0IHRoZSBhc3Bl Y3QgcmF0aW8KPiA+Pj4gICBEUk0gY2xpZW50IGNhcC4gSG93ZXZlciBpZiBzdWNoIGEgbW9kZSBp cyB1bmlxdWUgaW4gdGhlIGxpc3QsIGl0IGlzCj4gPj4+ICAga2VwdCBpbiB0aGUgbGlzdCwgd2l0 aCBhc3BlY3QtcmF0aW8gZmxhZ3MgcmVzZXQuCj4gPj4+IC1wcmVwYXJlcyBhIGxpc3Qgb2YgZXhw b3NlZCBtb2Rlcywgd2hpY2ggaXMgdXNlZCB0byBmaW5kIHVuaXF1ZSBtb2Rlcwo+ID4+PiAgIGlm IGFzcGVjdC1yYXRpbyBpcyBub3QgYWxsb3dlZC4KPiA+Pj4gLWFkZHMgYSBuZXcgbGlzdF9oZWFk ICdleHBvc2VkX2hlYWQnIGluIGRybV9tb2RlX2Rpc3BsYXksIHRvIHRyYXZlcnNlCj4gPj4+ICAg dGhlIGxpc3Qgb2YgZXhwb3NlZCBtb2Rlcy4KPiA+Pj4KPiA+Pj4gQ2M6IFZpbGxlIFN5cmphbGEg PHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4+PiBDYzogU2hhc2hhbmsgU2hhcm1h IDxzaGFzaGFuay5zaGFybWFAaW50ZWwuY29tPgo+ID4+PiBDYzogSm9zZSBBYnJldSA8am9zZS5h YnJldUBzeW5vcHN5cy5jb20+Cj4gPj4+Cj4gPj4+IFNpZ25lZC1vZmYtYnk6IEFua2l0IE5hdXRp eWFsIDxhbmtpdC5rLm5hdXRpeWFsQGludGVsLmNvbT4KPiA+Pj4KPiA+Pj4gVjM6IEFzIHN1Z2dl c3RlZCBieSBWaWxsZSwgbW9kaWZpZWQgdGhlIG1lY2hhbmlzbSBvZiBwcnVuaW5nIG9mIG1vZGVz Cj4gPj4+ICAgICAgd2l0aCBhc3BlY3QtcmF0aW8sIGlmIHRoZSBhc3BlY3QtcmF0aW8gaXMgbm90 IHN1cHBvcnRlZC4gSW5zdGVhZAo+ID4+PiAgICAgIG9mIHN0cmFpZ2h0IGF3YXkgcHJ1bmluZyBz dWNoIGEgbW9kZSwgdGhlIG1vZGUgaXMgcmV0YWluZWQgd2l0aAo+ID4+PiAgICAgIGFzcGVjdCBy YXRpbyBiaXRzIHNldCB0byB6ZXJvLCBwcm92aWRlZCBpdCBpcyB1bmlxdWUuCj4gPj4+IFY0OiBy ZWJhc2UKPiA+Pj4gVjU6IEFkZHJlc3NlZCByZXZpZXcgY29tbWVudHMgZnJvbSBWaWxsZToKPiA+ Pj4gICAgICAtdXNlZCBhIHBvaW50ZXIgdG8gc3RvcmUgbGFzdCB2YWxpZCBtb2RlLgo+ID4+PiAg ICAgIC1hdm9pZGVkLCBtb2RpZnlpbmcgb2YgcGljdHVyZV9hc3BlY3RfcmF0aW8gaW4ga2VybmVs IG1vZGUsCj4gPj4+ICAgICAgIGluc3RlYWQgb25seSBmbGFncyBiaXRzIG9mIHVzZXIgbW9kZSBh cmUgcmVzZXQgKGlmIGFzcGVjdC1yYXRpbwo+ID4+PiAgICAgICBpcyBub3Qgc3VwcG9ydGVkKS4K PiA+Pj4gVjY6IEFzIHN1Z2dlc3RlZCBieSBWaWxsZSwgY29ycmVjdGVkIHRoZSBtb2RlIHBydW5p bmcgbG9naWMgYW5kCj4gPj4+ICAgICAgZWxhYm9yYXRlZCB0aGUgbW9kZSBwcnVuaW5nIGxvZ2lj IGFuZCB0aGUgYXNzdW1wdGlvbnMgdGFrZW4uCj4gPj4+IFY3OiByZWJhc2UKPiA+Pj4gVjg6IHJl YmFzZQo+ID4+PiBWOTogcmViYXNlCj4gPj4+IFYxMDogcmViYXNlCj4gPj4+IFYxMTogRml4ZWQg dGhlIGlzc3VlIGNhdXNlZCBpbiBrbXNfM2QgdGVzdCwgYW5kIGVuaGFuY2VkIHRoZSBwcnVuaW5n Cj4gPj4+ICAgICAgIGxvZ2ljIHRvIGNvcnJlY3RseSBpZGVudGlmeSBhbmQgcHJ1bmUgbW9kZXMg d2l0aCBhc3BlY3QtcmF0aW8sCj4gPj4+ICAgICAgIGlmIGFzcGVjdC1yYXRpbyBjYXAgaXMgbm90 IHNldC4KPiA+Pj4gVjEyOiBBcyBzdWdnZXN0ZWQgYnkgVmlsbGUsIGFkZGVkIGFub3RoZXIgbGlz dF9oZWFkIGluCj4gPj4+ICAgICAgIGRybV9tb2RlX2Rpc3BsYXkgdG8gdHJhdmVyc2UgdGhlIGxp c3Qgb2YgZXhwb3NlZCBtb2RlcyBhbmQKPiA+Pj4gICAgICAgYXZvaWRlZCBkdXBsaWNhdGlvbiBv ZiBtb2Rlcy4KPiA+Pj4gVjEzOiBNaW5vciBtb2RpZmljYXRpb25zLCBhcyBzdWdnZXN0ZWQgYnkg VmlsbGUuCj4gPj4+IC0tLQo+ID4+PiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMg fCA0NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQo+ID4+PiAgIGlu Y2x1ZGUvZHJtL2RybV9tb2Rlcy5oICAgICAgICAgfCAxMyArKysrKysrKysrKysKPiA+Pj4gICAy IGZpbGVzIGNoYW5nZWQsIDUxIGluc2VydGlvbnMoKyksIDcgZGVsZXRpb25zKC0pCj4gPj4+Cj4g Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+ID4+PiBpbmRleCBkZmM4Y2ExLi44Y2ExMTQ5IDEw MDY0NAo+ID4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4gPj4+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiA+Pj4gQEAgLTE1MzEsMTUgKzE1 MzEsMzYgQEAgc3RhdGljIHN0cnVjdCBkcm1fZW5jb2RlciAqZHJtX2Nvbm5lY3Rvcl9nZXRfZW5j b2RlcihzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmUKPiA+Pj4gICAJcmV0dXJuIGNvbm5lY3Rv ci0+ZW5jb2RlcjsKPiA+Pj4gICB9Cj4gPj4+ICAgCj4gPj4+IC1zdGF0aWMgYm9vbCBkcm1fbW9k ZV9leHBvc2VfdG9fdXNlcnNwYWNlKGNvbnN0IHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2Rl LAo+ID4+PiAtCQkJCQkgY29uc3Qgc3RydWN0IGRybV9maWxlICpmaWxlX3ByaXYpCj4gPj4+ICtz dGF0aWMgYm9vbAo+ID4+PiArZHJtX21vZGVfZXhwb3NlX3RvX3VzZXJzcGFjZShjb25zdCBzdHJ1 Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSwKPiA+Pj4gKwkJCSAgICAgY29uc3Qgc3RydWN0IGxp c3RfaGVhZCAqZXhwb3J0X2xpc3QsCj4gPj4+ICsJCQkgICAgIGNvbnN0IHN0cnVjdCBkcm1fZmls ZSAqZmlsZV9wcml2KQo+ID4+PiAgIHsKPiA+Pj4gICAJLyoKPiA+Pj4gICAJICogSWYgdXNlci1z cGFjZSBoYXNuJ3QgY29uZmlndXJlZCB0aGUgZHJpdmVyIHRvIGV4cG9zZSB0aGUgc3RlcmVvIDNE Cj4gPj4+ICAgCSAqIG1vZGVzLCBkb24ndCBleHBvc2UgdGhlbS4KPiA+Pj4gICAJICovCj4gPj4+ ICsKPiA+Pj4gICAJaWYgKCFmaWxlX3ByaXYtPnN0ZXJlb19hbGxvd2VkICYmIGRybV9tb2RlX2lz X3N0ZXJlbyhtb2RlKSkKPiA+Pj4gICAJCXJldHVybiBmYWxzZTsKPiA+Pj4gKwkvKgo+ID4+PiAr CSAqIElmIHVzZXItc3BhY2UgaGFzbid0IGNvbmZpZ3VyZWQgdGhlIGRyaXZlciB0byBleHBvc2Ug dGhlIG1vZGVzCj4gPj4+ICsJICogd2l0aCBhc3BlY3QtcmF0aW8sIGRvbid0IGV4cG9zZSB0aGVt LiBIb3dldmVyIGlmIHN1Y2ggYSBtb2RlCj4gPj4+ICsJICogaXMgdW5pcXVlLCBsZXQgaXQgYmUg ZXhwb3NlZCwgYnV0IHJlc2V0IHRoZSBhc3BlY3QtcmF0aW8gZmxhZ3MKPiA+Pj4gKwkgKiB3aGls ZSBwcmVwYXJpbmcgdGhlIGxpc3Qgb2YgdXNlci1tb2Rlcy4KPiA+Pj4gKwkgKi8KPiA+Pj4gKwlp ZiAoIWZpbGVfcHJpdi0+YXNwZWN0X3JhdGlvX2FsbG93ZWQgJiYKPiA+Pj4gKwkgICAgbW9kZS0+ cGljdHVyZV9hc3BlY3RfcmF0aW8gIT0gSERNSV9QSUNUVVJFX0FTUEVDVF9OT05FKSB7Cj4gPj4+ ICsJCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlX2l0cjsKPiA+Pj4gKwo+ID4+PiArCQls aXN0X2Zvcl9lYWNoX2VudHJ5KG1vZGVfaXRyLCBleHBvcnRfbGlzdCwgZXhwb3J0X2hlYWQpCj4g Pj4gQnkgd2Fsa2luZyB0aGUgbGlzdCBvZiBvbmx5IHRoZSBtb2RlcyBhbHJlYWR5IGFkZGVkIHRv IHRoZSBleHBvcnQgbGlzdCB3ZQo+ID4+IHJlbHkgb24gQVNQRUNUX05PTkUgYmVpbmcgZmlyc3Qg aWYgcHJlc2VudC4gVGhhdCBzZWVtcyB0byBiZSBhIGJpdAo+ID4+IGZyYWdpbGUuIElmIHdlIGlu c3RlYWQgd2FsayBvdmVyIGFsbCBwcmVzZW50IG1vZGVzIChpLmUuIGNvbm5lY3Rvci0+bW9kZXMp Cj4gPj4gdGhlbiBJIHRoaW5rIHRoYXQncyBhdm9pZGVkLgo+ID4gSSBkb24ndCB0aGluayB0aGF0 IHdvdWxkIHdvcmsuIElmIHdlIGp1c3Qgd2FsayBvdmVyIGFsbCB0aGUgbW9kZXMgdGhlbgo+ID4g d291bGRuJ3Qgd2UgYWx3YXlzIGZpbmQgYSBkdXBsaWNhdGUgd2hlbiB0aGUgc2FtZSBtb2RlIHdp dGggdHdvIGRpZmZlcmVudAo+ID4gYXNwZWN0IHJhdGlvcyBpcyBvbiB0aGUgbGlzdD8gQW5kIHRo ZW4gd2UnZCBleHBvcnQgbmVpdGhlcj8gT3IgbWF5YmUgSQo+ID4gbWlzdW5kZXJzdG9vZCB3aGF0 IHlvdSBtZWFuIGhlcmUuCj4gPgo+ID4gVG8gbWUgaXQgc2VlbXMgbGlrZSB0aGUgY29ycmVjdCBv cHRpb24gaXMgdG8gY2hlY2sgYWdhaW5zdCB0aGUKPiA+IGV4cG9ydF9saXN0IHVuY29uZGl0aW9u YWxseSwgbm8gbWF0dGVyIHdoZXRoZXIgdGhlIGN1cnJlbnQgbW9kZSBoYXMgdGhlCj4gPiBhc3Bl Y3QgcmF0aW8gc2V0IG9yIG5vdC4gSWYgYW4gaWRlbnRpY2FsIG1vZGUgaXMgYWxyZWFkeSBvbiB0 aGUgbGlzdAo+ID4gd2UgZG9uJ3QgZXhwb3J0IGFnYWluLCBpZiBpdCdzIG5vdCB0aGVyZSB0aGVu IHdlIGV4cG9ydC4KPiAKPiBBZ3JlZWQuIFRoZSBjdXJyZW50IGNvZGUgZG9lcyBoYXZlIGEgcHJv YmxlbSByaWdodGx5IHBvaW50ZWQgYnkgRGFuaWVsIAo+IFZldHRlciBhbmQgdGhlIG1haW4gcmVh c29uCj4gZm9yIHRoYXQgaXMgLSB3ZSBhcmUgY2hlY2tpbmcgZm9yIGR1cGxpY2F0ZXMgb25seSBp ZiB0aGUgbW9kZSBoYXMgc29tZSAKPiBhc3BlY3QtcmF0aW8uCj4gQXMgeW91IGhhdmUgc3VnZ2Vz dGVkLCBJZiB3ZSBjYW4gZG8gYXdheSB3aXRoIHRoZSBjb25kaXRpb24gdG8gY2hlY2sgZm9yIAo+ IGR1cGxpY2F0ZXMgZm9yIG9ubHkKPiAibW9kZXMgaGF2aW5nIGFzcGVjdCByYXRpbyIsIGl0IHdp bGwgc29sdmUgdGhlIHByb2JsZW0uCj4gSW4gdGhhdCBjYXNlLCBpZiB0aGUgYXNwZWN0LXJhdGlv IGNhcCBpcyBub3Qgc2V0LCB3ZSB3aWxsIGJlIHJlbW92aW5nIAo+IHRoZSBkdXBsaWNhdGVzIGZv ciBhbGwgbW9kZXMsIGlycmVzcGVjdGl2ZQo+IG9mIGhhdmluZyBhc3BlY3QtcmF0aW8gaW5mb3Jt YXRpb24gb3Igbm90LCBidXQgaWYgYXNwZWN0LXJhdGlvIGlzIAo+IGFsbG93ZWQsIHdlIHdvdWxk IGRvIG5vIHN1Y2ggY2hlY2tpbmcuCj4gCj4gT3IgZG8geW91IHN1Z2dlc3QgdGhhdCB3ZSByZW1v dmUgZHVwbGljYXRlcyBpbiBhbnkgY2FzZSwgd2hldGhlciAKPiBhc3BlY3QtcmF0aW8gY2FwIGlz IHNldCBieSB0aGUgdXNlciBvciBub3Q/CgpJZiB0aGVyZSBhcmUgZHVwbGljYXRlcyBvbiB0aGUg Y29ubmVjdG9yIG1vZGUgbGlzdCB3ZSd2ZSBkb25lIHNvbWV0aGluZwp3cm9uZyB3aGVuIHBvcHVs YXRpbmcgdGhlIGxpc3QuIFNvIG5vLCB3ZSBzaG91bGQgbm90IGhhdmUgdG8gY2hlY2sgZm9yCmR1 cGxpY2F0ZXMgaW4gdGhhdCBjYXNlLgoKPiAKPiA+Cj4gPj4gV2l0aCB0aGF0IGNoYW5nZWQ6Cj4g Pj4KPiA+PiBSZXZpZXdlZC1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5j aD4KPiA+Pgo+ID4+PiArCQkJaWYgKGRybV9tb2RlX21hdGNoKG1vZGVfaXRyLCBtb2RlLAo+ID4+ PiArCQkJCQkgICBEUk1fTU9ERV9NQVRDSF9USU1JTkdTIHwKPiA+Pj4gKwkJCQkJICAgRFJNX01P REVfTUFUQ0hfQ0xPQ0sgfAo+ID4+PiArCQkJCQkgICBEUk1fTU9ERV9NQVRDSF9GTEFHUyB8Cj4g Pj4+ICsJCQkJCSAgIERSTV9NT0RFX01BVENIXzNEX0ZMQUdTKSkKPiA+Pj4gKwkJCQlyZXR1cm4g ZmFsc2U7Cj4gPj4+ICsJfQo+ID4+PiAgIAo+ID4+PiAgIAlyZXR1cm4gdHJ1ZTsKPiA+Pj4gICB9 Cj4gPj4+IEBAIC0xNTU5LDYgKzE1ODAsNyBAQCBpbnQgZHJtX21vZGVfZ2V0Y29ubmVjdG9yKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gPj4+ICAgCXN0cnVjdCBkcm1fbW9k ZV9tb2RlaW5mbyB1X21vZGU7Cj4gPj4+ICAgCXN0cnVjdCBkcm1fbW9kZV9tb2RlaW5mbyBfX3Vz ZXIgKm1vZGVfcHRyOwo+ID4+PiAgIAl1aW50MzJfdCBfX3VzZXIgKmVuY29kZXJfcHRyOwo+ID4+ PiArCUxJU1RfSEVBRChleHBvcnRfbGlzdCk7Cj4gPj4+ICAgCj4gPj4+ICAgCWlmICghZHJtX2Nv cmVfY2hlY2tfZmVhdHVyZShkZXYsIERSSVZFUl9NT0RFU0VUKSkKPiA+Pj4gICAJCXJldHVybiAt RUlOVkFMOwo+ID4+PiBAQCAtMTYwNywyMSArMTYyOSwzMCBAQCBpbnQgZHJtX21vZGVfZ2V0Y29u bmVjdG9yKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEsCj4gPj4+ICAgCj4gPj4+ ICAgCS8qIGRlbGF5ZWQgc28gd2UgZ2V0IG1vZGVzIHJlZ2FyZGxlc3Mgb2YgcHJlLWZpbGxfbW9k ZXMgc3RhdGUgKi8KPiA+Pj4gICAJbGlzdF9mb3JfZWFjaF9lbnRyeShtb2RlLCAmY29ubmVjdG9y LT5tb2RlcywgaGVhZCkKPiA+Pj4gLQkJaWYgKGRybV9tb2RlX2V4cG9zZV90b191c2Vyc3BhY2Uo bW9kZSwgZmlsZV9wcml2KSkKPiA+Pj4gKwkJaWYgKGRybV9tb2RlX2V4cG9zZV90b191c2Vyc3Bh Y2UobW9kZSwgJmV4cG9ydF9saXN0LAo+ID4+PiArCQkJCQkJIGZpbGVfcHJpdikpIHsKPiA+Pj4g KwkJCWxpc3RfYWRkX3RhaWwoJm1vZGUtPmV4cG9ydF9oZWFkLCAmZXhwb3J0X2xpc3QpOwo+ID4+ PiAgIAkJCW1vZGVfY291bnQrKzsKPiA+Pj4gKwkJfQo+ID4+PiAgIAo+ID4+PiAgIAkvKgo+ID4+ PiAgIAkgKiBUaGlzIGlvY3RsIGlzIGNhbGxlZCB0d2ljZSwgb25jZSB0byBkZXRlcm1pbmUgaG93 IG11Y2ggc3BhY2UgaXMKPiA+Pj4gICAJICogbmVlZGVkLCBhbmQgdGhlIDJuZCB0aW1lIHRvIGZp bGwgaXQuCj4gPj4+ICsJICogVGhlIG1vZGVzIHRoYXQgbmVlZCB0byBiZSBleHBvc2VkIHRvIHRo ZSB1c2VyIGFyZSBtYWludGFpbmVkIGluIHRoZQo+ID4+PiArCSAqICdleHBvcnRfbGlzdCcuIFdo ZW4gdGhlIGlvY3RsIGlzIGNhbGxlZCBmaXJzdCB0aW1lIHRvIGRldGVybWluZSB0aGUsCj4gPj4+ ICsJICogc3BhY2UsIHRoZSBleHBvcnRfbGlzdCBnZXRzIGZpbGxlZCwgdG8gZmluZCB0aGUgbm8u b2YgbW9kZXMuIEluIHRoZQo+ID4+PiArCSAqIDJuZCB0aW1lLCB0aGUgdXNlciBtb2RlcyBhcmUg ZmlsbGVkLCBvbmUgYnkgb25lIGZyb20gdGhlIGV4cG9ydF9saXN0Lgo+ID4+PiAgIAkgKi8KPiA+ Pj4gICAJaWYgKChvdXRfcmVzcC0+Y291bnRfbW9kZXMgPj0gbW9kZV9jb3VudCkgJiYgbW9kZV9j b3VudCkgewo+ID4+PiAgIAkJY29waWVkID0gMDsKPiA+Pj4gICAJCW1vZGVfcHRyID0gKHN0cnVj dCBkcm1fbW9kZV9tb2RlaW5mbyBfX3VzZXIgKikodW5zaWduZWQgbG9uZylvdXRfcmVzcC0+bW9k ZXNfcHRyOwo+ID4+PiAtCQlsaXN0X2Zvcl9lYWNoX2VudHJ5KG1vZGUsICZjb25uZWN0b3ItPm1v ZGVzLCBoZWFkKSB7Cj4gPj4+IC0JCQlpZiAoIWRybV9tb2RlX2V4cG9zZV90b191c2Vyc3BhY2Uo bW9kZSwgZmlsZV9wcml2KSkKPiA+Pj4gLQkJCQljb250aW51ZTsKPiA+Pj4gLQo+ID4+PiArCQls aXN0X2Zvcl9lYWNoX2VudHJ5KG1vZGUsICZleHBvcnRfbGlzdCwgZXhwb3J0X2hlYWQpIHsKPiA+ Pj4gICAJCQlkcm1fbW9kZV9jb252ZXJ0X3RvX3Vtb2RlKCZ1X21vZGUsIG1vZGUpOwo+ID4+PiAr CQkJLyoKPiA+Pj4gKwkJCSAqIFJlc2V0IGFzcGVjdCByYXRpbyBmbGFncyBvZiB1c2VyLW1vZGUs IGlmIG1vZGVzIHdpdGgKPiA+Pj4gKwkJCSAqIGFzcGVjdC1yYXRpbyBhcmUgbm90IHN1cHBvcnRl ZC4KPiA+Pj4gKwkJCSAqLwo+ID4+PiArCQkJZHJtX21vZGVfZmlsdGVyX2FzcGVjdF9yYXRpb19m bGFncyhmaWxlX3ByaXYsICZ1X21vZGUpOwo+ID4+PiAgIAkJCWlmIChjb3B5X3RvX3VzZXIobW9k ZV9wdHIgKyBjb3BpZWQsCj4gPj4+ICAgCQkJCQkgJnVfbW9kZSwgc2l6ZW9mKHVfbW9kZSkpKSB7 Cj4gPj4+ICAgCQkJCXJldCA9IC1FRkFVTFQ7Cj4gPj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2Ry bS9kcm1fbW9kZXMuaCBiL2luY2x1ZGUvZHJtL2RybV9tb2Rlcy5oCj4gPj4+IGluZGV4IDJmNzhi N2UuLmIxNTlmZTAgMTAwNjQ0Cj4gPj4+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9tb2Rlcy5oCj4g Pj4+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9tb2Rlcy5oCj4gPj4+IEBAIC00MTEsNiArNDExLDE5 IEBAIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlIHsKPiA+Pj4gICAJICogRmllbGQgZm9yIHNldHRp bmcgdGhlIEhETUkgcGljdHVyZSBhc3BlY3QgcmF0aW8gb2YgYSBtb2RlLgo+ID4+PiAgIAkgKi8K PiA+Pj4gICAJZW51bSBoZG1pX3BpY3R1cmVfYXNwZWN0IHBpY3R1cmVfYXNwZWN0X3JhdGlvOwo+ ID4+PiArCj4gPj4+ICsJLyoqCj4gPj4+ICsJICogQGV4cG9ydF9oZWFkOgo+ID4+PiArCSAqCj4g Pj4+ICsJICogc3RydWN0IGxpc3RfaGVhZCBmb3IgbW9kZXMgdG8gYmUgZXhwb3NlZCB0byB0aGUg dXNlcnNwYWNlLgo+ID4+PiArCSAqIFRoaXMgaXMgdG8gbWFpbnRhaW4gYSBsaXN0IG9mIGV4cG9z ZWQgbW9kZXMgd2hpbGUgcHJlcGFyaW5nCj4gPj4+ICsJICogdXNlci1tb2RlJ3MgbGlzdCBpbiBk cm1fbW9kZV9nZXRjb25uZWN0b3IgaW9jdGwuIFRoZSBwdXJwb3NlIG9mIHRoaXMKPiA+Pj4gKwkg KiBsaXN0X2hlYWQgb25seSBsaWVzIGluIHRoZSBpb2N0bCBmdW5jdGlvbiwgYW5kIGlzIG5vdCBl eHBlY3RlZCB0byBiZQo+ID4+PiArCSAqIHVzZWQgb3V0c2lkZSB0aGUgZnVuY3Rpb24uCj4gPj4+ ICsJICogT25jZSB1c2VkLCB0aGUgc3RhbGUgcG9pbnRlcnMgYXJlIG5vdCByZXNldCwgYnV0IGxl ZnQgYXMgaXQgaXMsIHRvCj4gPj4+ICsJICogYXZvaWQgb3ZlcmhlYWQgb2YgcHJvdGVjdGluZyBp dCBieSBtb2RlX2NvbmZpZy5tdXRleC4KPiA+Pj4gKwkgKi8KPiA+Pj4gKwlzdHJ1Y3QgbGlzdF9o ZWFkIGV4cG9ydF9oZWFkOwo+ID4+PiAgIH07Cj4gPj4+ICAgCj4gPj4+ICAgLyoqCj4gPj4+IC0t IAo+ID4+PiAyLjcuNAo+ID4+Pgo+ID4+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwo+ID4+PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPj4+IGRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+Pj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwKPiA+PiAtLSAKPiA+PiBEYW5pZWwgVmV0 dGVyCj4gPj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gPj4gaHR0cDov L2Jsb2cuZmZ3bGwuY2gKPiA+PiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwo+ID4+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+PiBkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCj4gPj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9kcmktZGV2ZWwKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwKX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxp bmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJl ZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==