From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Nautiyal, Ankit K" Subject: Re: [PATCH v3 5/8] drm: Handle aspect ratio info in atomic and legacy modeset paths Date: Thu, 8 Feb 2018 09:59:17 +0530 Message-ID: <10dd7fbf-4005-e5b3-8a2c-cbb3536ca19b@intel.com> References: <1515738096-16892-1-git-send-email-ankit.k.nautiyal@intel.com> <1515738096-16892-6-git-send-email-ankit.k.nautiyal@intel.com> <20180129185321.GU5453@intel.com> <2a237194-9136-1b9e-7df2-9f4056dde68d@intel.com> <20180131130911.GJ5453@intel.com> <9cbf55ba-79ac-b2be-7847-84b7a58b7b3c@intel.com> <20180201125437.GN5453@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 737E86E107 for ; Thu, 8 Feb 2018 04:29:20 +0000 (UTC) In-Reply-To: <20180201125437.GN5453@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?VmlsbGUgU3lyasOkbMOk?= Cc: "dri-devel@lists.freedesktop.org" List-Id: dri-devel@lists.freedesktop.org SGkgVmlsbGUsCgpJIHN0aWxsIGhhdmUgc29tZSBxdWVyaWVzIHJlZ2FyZGluZyB0aGUgaGFuZGxp bmcgb2YgYXNwZWN0IHJhdGlvIGZsYWdzIAppbiBnZXRibG9iIGlvY3RsLgoKUGxlYXNlIGZpbmQg YmVsb3cgbXkgcmVzcG9uc2VzIGlubGluZS4KCgpPbiAyLzEvMjAxOCA2OjI0IFBNLCBWaWxsZSBT eXJqw6Rsw6Qgd3JvdGU6Cj4gT24gVGh1LCBGZWIgMDEsIDIwMTggYXQgMDQ6MzU6MjJQTSArMDUz MCwgTmF1dGl5YWwsIEFua2l0IEsgd3JvdGU6Cj4+IEhpIFZpbGxlLAo+Pgo+PiBBcHByZWNpYXRl IHlvdXIgdGltZSBhbmQgdGhlIHN1Z2dlc3Rpb25zLgo+PiBQbGVhc2UgZmluZCBteSByZXNwb25z ZSBpbmxpbmU6Cj4+Cj4+IE9uIDEvMzEvMjAxOCA2OjM5IFBNLCBWaWxsZSBTeXJqw6Rsw6Qgd3Jv dGU6Cj4+PiBPbiBXZWQsIEphbiAzMSwgMjAxOCBhdCAxMjowNDo1MlBNICswNTMwLCBOYXV0aXlh bCwgQW5raXQgSyB3cm90ZToKPj4+PiBPbiAxLzMwLzIwMTggMTI6MjMgQU0sIFZpbGxlIFN5cmrD pGzDpCB3cm90ZToKPj4+Pj4gT24gRnJpLCBKYW4gMTIsIDIwMTggYXQgMTE6NTE6MzNBTSArMDUz MCwgTmF1dGl5YWwsIEFua2l0IEsgd3JvdGU6Cj4+Pj4+PiBGcm9tOiBBbmtpdCBOYXV0aXlhbCA8 YW5raXQuay5uYXV0aXlhbEBpbnRlbC5jb20+Cj4+Pj4+Pgo+Pj4+Pj4gSWYgdGhlIHVzZXIgbW9k ZSBkb2VzIG5vdCBzdXBwb3J0IGFzcGVjdC1yYXRpbywgYW5kIHJlcXVlc3RzIGZvcgo+Pj4+Pj4g YSBtb2Rlc2V0LCB0aGVuIHRoZSBmbGFnIGJpdHMgcmVwcmVzZW50aW5nIGFzcGVjdCByYXRpbyBp biB0aGUKPj4+Pj4+IGdpdmVuIHVzZXItbW9kZSBtdXN0IGJlIHJlamVjdGVkLgo+Pj4+Pj4gU2lt aWxhcmx5LCB3aGlsZSBwcmVwYXJpbmcgYSB1c2VyLW1vZGUgZnJvbSBrZXJuZWwgbW9kZSwgdGhl Cj4+Pj4+PiBhc3BlY3QtcmF0aW8gaW5mbyBtdXN0IG5vdCBiZSBnaXZlbiwgaWYgYXNwZWN0LXJh dGlvIGlzIG5vdAo+Pj4+Pj4gc3VwcG9ydGVkIGJ5IHRoZSB1c2VyLgo+Pj4+Pj4KPj4+Pj4+IFRo aXMgcGF0Y2g6Cj4+Pj4+PiAxLiBhZGRzIGEgbmV3IGJpdCBmaWVsZCBhc3BlY3RfcmF0aW9fYWxs b3dlZCBpbiBkcm1fYXRvbWljX3N0YXRlLAo+Pj4+Pj4gd2hpY2ggaXMgc2V0IG9ubHkgaWYgdGhl IGFzcGVjdC1yYXRpbyBpcyBzdXBwb3J0ZWQgYnkgdGhlIHVzZXIuCj4+Pj4+PiAyLiBkaXNjYXJk cyB0aGUgYXNwZWN0LXJhdGlvIGluZm8gZnJvbSB0aGUgdXNlciBtb2RlIHdoaWxlCj4+Pj4+PiBw cmVwYXJpbmcga2VybmVsIG1vZGUgc3RydWN0dXJlLCBkdXJpbmcgbW9kZXNldCwgaWYgdGhlCj4+ Pj4+PiB1c2VyIGRvZXMgbm90IHN1cHBvcnQgYXNwZWN0IHJhdGlvLgo+Pj4+Pj4gMy4gYXZvaWRz IHNldHRpbmcgdGhlIGFzcGVjdC1yYXRpbyBpbmZvIGluIHVzZXItbW9kZSwgd2hpbGUKPj4+Pj4+ IGNvbnZlcnRpbmcgdXNlci1tb2RlIGZyb20gdGhlIGtlcm5lbC1tb2RlLgo+Pj4+Pj4KPj4+Pj4+ IFNpZ25lZC1vZmYtYnk6IEFua2l0IE5hdXRpeWFsIDxhbmtpdC5rLm5hdXRpeWFsQGludGVsLmNv bT4KPj4+Pj4+Cj4+Pj4+PiBWMzogQWRkcmVzc2VkIHJldmlldyBjb21tZW50cyBmcm9tIFZpbGxl Ogo+Pj4+Pj4gLURvIG5vdCBjb3JydXB0IHRoZSBjdXJyZW50IGNydGMgc3RhdGUgYnkgdXBkYXRp bmcgYXNwZWN0IHJhdGlvCj4+Pj4+PiBvbiB0aGUgZmx5Lgo+Pj4+Pj4gLS0tCj4+Pj4+PiAgICAg ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyB8IDYxICsrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrLS0tCj4+Pj4+PiAgICAgZHJpdmVycy9ncHUvZHJtL2RybV9jcnRj LmMgICB8IDE5ICsrKysrKysrKysrKysrCj4+Pj4+PiAgICAgaW5jbHVkZS9kcm0vZHJtX2F0b21p Yy5oICAgICB8ICAyICsrCj4+Pj4+PiAgICAgMyBmaWxlcyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25z KCspLCAzIGRlbGV0aW9ucygtKQo+Pj4+Pj4KPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+Pj4+Pj4g aW5kZXggNjlmZjc2My4uMzkzMTNlMiAxMDA2NDQKPj4+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljLmMKPj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMK Pj4+Pj4+IEBAIC0zMTYsNiArMzE2LDM1IEBAIHN0YXRpYyBzMzIgX191c2VyICpnZXRfb3V0X2Zl bmNlX2Zvcl9jcnRjKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPj4+Pj4+ICAgICAK Pj4+Pj4+ICAgICAJcmV0dXJuIGZlbmNlX3B0cjsKPj4+Pj4+ICAgICB9Cj4+Pj4+PiArLyoqCj4+ Pj4+PiArICogZHJtX2F0b21pY19hbGxvd19hc3BlY3RfcmF0aW9fZm9yX2ttb2RlCj4+Pj4+PiAr ICogQHN0YXRlOiB0aGUgY3J0YyBzdGF0ZQo+Pj4+Pj4gKyAqIEBtb2RlOiBrZXJuZWwtaW50ZXJu YWwgbW9kZSwgd2hpY2ggaXMgdXNlZCB0byBjcmVhdGUgYSBkdXBsaWNhdGUgbW9kZSwKPj4+Pj4+ ICsgKiB3aXRoIHVwZGF0ZWQgcGljdHVyZSBhc3BlY3QgcmF0aW8uCj4+Pj4+PiArICoKPj4+Pj4+ ICsgKiBBbGxvdyB0aGUgYXNwZWN0IHJhdGlvIGluZm8gaW4gdGhlIGtlcm5lbCBtb2RlIG9ubHkg aWYgYXNwZWN0IHJhdGlvIGlzCj4+Pj4+PiArICogc3VwcG9ydGVkLgo+Pj4+Pj4gKyAqCj4+Pj4+ PiArICogUkVUVVJOUzoKPj4+Pj4+ICsgKiBrZXJuZWwtaW50ZXJuYWwgbW9kZSB3aXRoIHVwZGF0 ZWQgcGljdHVyZSBhc3BlY3QgcmF0aW8gdmFsdWUuCj4+Pj4+PiArICovCj4+Pj4+PiArCj4+Pj4+ PiArc3RydWN0IGRybV9kaXNwbGF5X21vZGUqCj4+Pj4+PiArZHJtX2F0b21pY19hbGxvd19hc3Bl Y3RfcmF0aW9fZm9yX2ttb2RlKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3RhdGUsCj4+Pj4+PiAr CQkJCQljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZSkKPj4+Pj4+ICt7Cj4+Pj4+ PiArCXN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICphdG9taWNfc3RhdGUgPSBzdGF0ZS0+c3RhdGU7 Cj4+Pj4+PiArCXN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICphcl9rbW9kZTsKPj4+Pj4+ICsKPj4+ Pj4+ICsJYXJfa21vZGUgPSBkcm1fbW9kZV9kdXBsaWNhdGUoc3RhdGUtPmNydGMtPmRldiwgbW9k ZSk7Cj4+Pj4+PiArCS8qCj4+Pj4+PiArCSAqIElmIGFzcGVjdCByYXRpbyBpcyBub3Qgc3VwcG9y dGVkLCBzZXQgdGhlIHBpY3R1cmUgYXNwZWN0IHJhdGlvIGFzCj4+Pj4+PiArCSAqIE5PTkUuCj4+ Pj4+PiArCSAqLwo+Pj4+Pj4gKwlpZiAoYXRvbWljX3N0YXRlICYmICFhdG9taWNfc3RhdGUtPmFs bG93X2FzcGVjdF9yYXRpbykKPj4+Pj4+ICsJCWFyX2ttb2RlLT5waWN0dXJlX2FzcGVjdF9yYXRp byA9IEhETUlfUElDVFVSRV9BU1BFQ1RfTk9ORTsKPj4+Pj4+ICsJcmV0dXJuIGFyX2ttb2RlOwo+ Pj4+Pj4gK30KPj4+Pj4+ICAgICAKPj4+Pj4+ICAgICAvKioKPj4+Pj4+ICAgICAgKiBkcm1fYXRv bWljX3NldF9tb2RlX2Zvcl9jcnRjIC0gc2V0IG1vZGUgZm9yIENSVEMKPj4+Pj4+IEBAIC0zNDEs NyArMzcwLDEwIEBAIGludCBkcm1fYXRvbWljX3NldF9tb2RlX2Zvcl9jcnRjKHN0cnVjdCBkcm1f Y3J0Y19zdGF0ZSAqc3RhdGUsCj4+Pj4+PiAgICAgCXN0YXRlLT5tb2RlX2Jsb2IgPSBOVUxMOwo+ Pj4+Pj4gICAgIAo+Pj4+Pj4gICAgIAlpZiAobW9kZSkgewo+Pj4+Pj4gLQkJZHJtX21vZGVfY29u dmVydF90b191bW9kZSgmdW1vZGUsIG1vZGUpOwo+Pj4+Pj4gKwkJc3RydWN0IGRybV9kaXNwbGF5 X21vZGUgKmFyX21vZGU7Cj4+Pj4+PiArCj4+Pj4+PiArCQlhcl9tb2RlID0gZHJtX2F0b21pY19h bGxvd19hc3BlY3RfcmF0aW9fZm9yX2ttb2RlKHN0YXRlLCBtb2RlKTsKPj4+Pj4+ICsJCWRybV9t b2RlX2NvbnZlcnRfdG9fdW1vZGUoJnVtb2RlLCBhcl9tb2RlKTsKPj4+Pj4gVGhpcyBzdGlsbCBs b29rcyBza2V0Y2h5Lgo+Pj4+Pgo+Pj4+PiBJIGJlbGlldmUgdGhlcmUgYXJlIGp1c3QgdHdvIHBs YWNlcyB3aGVyZSB3ZSBuZWVkIHRvIGZpbHRlciBvdXQgdGhlCj4+Pj4+IGFzcGVjdCByYXRpbyBm bGFncyBmcm9tIHRoZSB1bW9kZSwgbmFtZWx5IHRoZSBnZXRibG9iIGFuZCBnZXRjcnRjCj4+Pj4+ IGlvY3Rscy4KPj4+PiBBRkFJSyBUaGUgZ2V0YmxvYiBpb2N0bCBjYW4gYmUgY2FsbGVkIGZvciBl ZGlkIGJsb2IsIGdhbW1hLCBjdG0gYmxvYiwKPj4+PiBldGMuIGFwYXJ0IGZyb20gdGhlIG1vZGUg YmxvYi4KPj4+PiBJcyB0aGVyZSBhbnkgd2F5IHRvIGNoZWNrIGZyb20gYmxvYiBpZCAob3IgYnkg YW55IG90aGVyIG1lYW5zKSwKPj4+PiBpZiB0aGUgZGF0YSBpcyBmb3IgdGhlIG1vZGUsIG9yIGVk aWQsIG9yIGdhbW1hIGV0Yy4KPj4+IEkgdGhpbmsgd2UnZCBoYXZlIHRvIHNvbWVob3cgbWFyayB0 aGUgbW9kZSBibG9icyBhcyBzcGVjaWFsLiBVbnRpbCB3ZQo+Pj4gaGF2ZSBtb3JlIG5lZWQgZm9y IGNsZWFuaW5nIHVwIGJsb2JzIGJlZm9yZSByZXR1cm5pbmcgdGhlbSB0byB1c2Vyc3BhY2UKPj4+ IEkgdGhpbmsgYSBzaW1wbGUgZmxhZyBzaG91bGQgZG8uIElmIHdlIGNvbWUgdXAgd2l0aCBtb3Jl IHVzZXMgbGlrZSB0aGlzCj4+PiB0aGVuIGl0IG1pZ2h0IG1ha2Ugc2Vuc2UgdG8gaW50cm9kdWNl IHNvbWUga2luZCBvZiBvcHRpb25hbCBmaWx0ZXIKPj4+IGZ1bmN0aW9uIGZvciBibG9icy4KPj4g SWYgbXkgdW5kZXJzdGFuZGluZyBpcyBjb3JyZWN0LAo+PiAxLiBUbyBiZSBhYmxlIHRvIGRvIHRo aXMsIHdlIG5lZWQgdG8gY2hhbmdlIGluIHVhcGkuCj4gV2Ugc2hvdWxkIGJlIGZpbmUgd2l0aCBh biBpbnRlcm5hbCBmbGFnLiBPYnZpb3VzbHkgaXQgd29uJ3QgYmUgc2V0Cj4gZm9yIGJsb2JzIGZy ZXNobHkgY3JlYXRlZCBieSB1c2Vyc3BhY2UsIGJ1dCB0aGF0J3MgZmluZSBiZWNhdXNlIHdlCj4g ZG8gbm8gb3RoZXIgZXJyb3IgY2hlY2tpbmcgZm9yIHRoZW0gZWl0aGVyLiBUaGUgZXJyb3IgY2hl Y2tpbmcgd2lsbAo+IGhhcHBlbiB3aGVuIHRoZSB1c2VyIHRyaWVzIHRvIGFjdHVhbGx5IHVzZSB0 aGUgYmxvYi4KCkkgYW0gbm90IHN1cmUgd2h5IGdldGJsb2IgaW9jdGwgc2hvdWxkIGV2ZW4gY29t ZSBpbnRvIHBpY3R1cmUuIChQZXJoYXBzIApJIGFtIG1pc3Npbmcgc29tZXRoaW5nKS4KQXMgcGVy IG15IHVuZGVyc3RhbmRpbmc6CklmIGEgdXNlcnNwYWNlIG5lZWRzIHRvIHNldCBhIG1vZGUsIGl0 IHdpbGwganVzdCBjcmVhdGUgYSBibG9iIHdpdGggCmRybV9tb2RlX21vZGVfaW5mbywKYW5kIGdl dCB0aGUgYmxvYi1pZC4gVGhpcyBibG9iLWlkIHdvdWxkIGJlIHN1cHBsaWVkIHRvIApkcm1fbW9k ZV9hdG9taWNfaW9jdGwgYXMgYSBjcnRjCnByb3BlcnR5IG1vZGVfaWQuCkF0IHRoZSBrZXJuZWwg c2lkZSwgIHRoZSBjcnRjIHByb3BlcnR5IG1vZGVfaWQgaXMgc2V0IGJ5IGxvb2tpbmctdXAgZm9y IAptb2RlIGJsb2IgZnJvbSBibG9iIGlkLgpJIGFtIGRvaW5nIHRoZSBjaGFuZ2UgaW4gdGhlIHVz ZXIgbW9kZSBhc3BlY3QtcmF0aW8gZmxhZ3MgYXQgdGhpcyBqdW5jdGlvbi4KCkFzIGZhciBhcyBn ZXRibG9iIGlvY3RsIGlzIGNvbmNlcm5lZCwgaWYgdGhlIHVzZXIgZG9lcyBjYWxsIGdldGJsb2Ig CmlvY3RsIGZvciBnZXR0aW5nIG1vZGUgYmxvYiBmcm9tCnRoZSBibG9iIGlkLCBpdCB3aWxsIHJl Y2VpdmUgdGhlIHNhbWUgbW9kZSBibG9iLCB3aXRoIHNhbWUgYXNwZWN0IHJhdGlvIAppbmZvIHdo aWNoIHRoZSB1c2VyIGhhZApjcmVhdGVkIHVzaW5nIGNyZWF0ZSBibG9iIGlvY3RsLiBJZiBpdCBk b2VzIHdhbnQgdG8gdXNlIHRoZSBibG9iLCBpdCBoYXMgCnRvIGNvbWUgdGhyb3VnaCB0aGUKZHJt X21vZGVfYXRvbWljX2lvY3RsIHdheSwgd2hlcmUgYXNwZWN0IHJhdGlvIGZsYWdzIGFyZSBoYW5k bGVkLgoKPj4gMi4gV2hlbmV2ZXIgdGhlIHVzZXJzcGFjZSBjcmVhdGVzIGEgYmxvYiBmb3IgbW9k ZSwgdGhlIG5ldyBmbGFnL2NsYXNzCj4+IGZvciBibG9iIHR5cGUgbmVlZHMgdG8gYmUgc2V0Lgo+ Pgo+PiBEbyB5b3UgdGhpbmsgdGhhdCBpdCdzIHdvcnRoIHRoZSBlZmZvcnQ/Cj4+Pj4gSWYgd2Ug Y2FuIGNoZWNrIHRoYXQsIEkgY2FuIG1ha2Ugc3VyZSB0aGF0IGFzcGVjdC1yYXRpbyBmbGFncyBh cmUgdGFrZW4KPj4+PiBjYXJlIG9mLCBpZiB0aGUgYmxvYiBpcyBmb3IgbW9kZSwKPj4+PiBhbmQg dGhlIGFzcGVjdCByYXRpbyBpcyBub3Qgc3VwcG9ydGVkLgo+Pj4+Cj4+Pj4+IEFuZCBmb3IgY2hl Y2tpbmcgdGhlIHVzZXIgaW5wdXQgSSB0aGluayB3ZSBzaG91bGQgcHJvYmFibHkganVzdAo+Pj4+ PiBzdGljayB0aGF0IGludG8gZHJtX21vZGVfY29udmVydF91bW9kZSgpLiBMb29rcyBsaWtlIHdl IG5ldmVyIGNhbGwKPj4+Pj4gdGhhdCBmcm9tIGFueXdoZXJlIGJ1dCB0aGUgYXRvbWljL3NldHBy b3AgYW5kIHNldGNydGMgcGF0aHMgd2l0aAo+Pj4+PiBhIG5vbi1OVUxMIGFyZ3VtZW50Lgo+Pj4+ Pgo+Pj4+PiBJICp0aGluayogdGhvc2UgdGhyZWUgcGxhY2VzIHNob3VsZCBiZSBzdWZmaWNpZW50 IHRvIGNvdmVyIGV2ZXJ5dGhpbmcuCj4+Pj4gQWdyZWVkLiBJbmZhY3QgSSB0cmllZCB0byBkbyB0 aGF0IGZpcnN0LCBidXQgdGhlIG9ubHkgcHJvYmxlbSB3ZSBoYXZlCj4+Pj4gaGVyZSwgaXMgdGhh dCwgdGhlIGZpbGVfcHJpdgo+Pj4+IHdoaWNoIGhhcyB0aGUgYXNwZWN0IHJhdGlvIGNhcGFiaWxp dHkgaW5mb3JtYXRpb24gaXMgbm90IHN1cHBsaWVkIHRvIHRoZQo+Pj4+IGRybV9tb2RlX2NvbnZl cnRfdW1vZGUoKQo+Pj4+IG9yIHRoZSBmdW5jdGlvbnMgY2FsbGluZywgZHJtX21vZGVfY29udmVy X3Vtb2RlKCkuIEF0IGJlc3Qgd2UgaGF2ZQo+Pj4+IGRybV9jcnRjX3N0YXRlLgo+Pj4gU2ltcGx5 IHBhc3NpbmcgdGhlIGZpbGVfcHJpdiBkb3duIHdvdWxkIHNlZW0gbGlrZSB0aGUgbW9zdCBvYnZp b3VzCj4+PiBzb2x1dGlvbi4KPj4gVGhpcyBtZWFucyB3ZSBoYXZlIHRvIG1ha2UgY2hhbmdlIGlu IHZhcmlvdXMgZHJpdmVycyBhbmQgd2UgaGF2ZSB0byBwdWxsCj4+IHRoZSBmaWxlX3ByaXYKPj4g cGFyYW1ldGVyIHRocmVlIGxldmVscyBkb3duLiBTaG91bGQgd2UgdGhpbmsgb2YgYSBiZXR0ZXIg d2F5IGZvciBkb2luZyB0aGlzPwo+IENvY2NpbmVsbGUgaXMgcHJldHR5IGdvb2QgYXQgbW9kaWZ5 aW5nIGZ1bmN0aW9uIHBhcmFtZXRlcnMuCgpUaGFua3MgZm9yIHBvaW50aW5nIG91dCBDb2NjaW5l bGxlLCB3aWxsIGRlZmludGVseSB0cnkgdGhhdCBvdXQuCkJ1dCBteSBxdWVzdGlvbiBoZXJlIGlz IHdoZXRoZXIgd2UgcmVhbGx5IHdhbnQgdG8gZHJhZyB0aGUgZmlsZV9wcml2CmZyb20gZHJtX21v ZGVfYXRvbWljX2lvY3RsIC0tPiBkcm1fbW9kZV9hdG9taWNfc2V0X3Byb3BlcnR5IC0tPgpkcm1f YXRvbWljX2NydGNfc2V0X3Byb3BlcnR5IC0tPiBkcm1fbW9kZV9zZXRfbW9kZV9wcm9wX2Zvcl9j cnRjLS0+CmRybV9tb2RlX2NvbnZlcnRfdW1vZGUuCgpJbnN0ZWFkLCBJIHRyaWVkIHRvIGFkZCBh IG5ldyBmaWVsZCAoYWxsb3dfYXNwZWN0X3JhdGlvKSBpbiAKZHJtX2NydGNfc3RhdGUgd2hpY2gg aXMKYWxyZWFkeSBwYXNzZWQgZnJvbSB0aGUgZHJtX21vZGVfYXRvbWljX2lvY3RsIGFsbCB0aGUg d2F5IHRvCmRybV9tb2RlX2NvbnZlcnRfdW1vZGUuCgoKLVJlZ2FyZHMKQW5raXQKPgo+Pj4+IEkg aGF2ZSBhZGRlZCBhbiBhc3BlY3QgcmF0aW8gYWxsb3dlZCBmbGFnICBpbiBkcm1fY3J0Y19zdGF0 ZS0+c3RhdGUgc28KPj4+PiB0aGF0IGl0cyBhdmFpbGFibGUgaW4gdGhlCj4+Pj4gZnVuY3Rpb25z IGNhbGxpbmcgZHJtX21vZGVfY29udmVydF91bW9kZS4KPj4+Pgo+Pj4+IEkgYW0gb3BlbiB0byBz dWdnZXN0aW9uIHRvIGF2b2lkIGFkZGluZyBhIG5ldyBmbGFnIGluIGRybV9hdG9taWNfc3RhdGUs Cj4+Pj4gaWYgdGhlcmUgaXMgYSBiZXR0ZXIKPj4+PiB3YXkgdG8gbGV0IHRoZSBkcm1fbW9kZV9j b252ZXJ0X3Vtb2RlKCApIGtub3cgdGhhdCB1c2VyIHN1cHBvcnRzIGFzcGVjdAo+Pj4+IHJhdGlv IGNhcGFiaWxpdHkuCj4+Pj4+PiAgICAgCQlzdGF0ZS0+bW9kZV9ibG9iID0KPj4+Pj4+ICAgICAJ CQlkcm1fcHJvcGVydHlfY3JlYXRlX2Jsb2Ioc3RhdGUtPmNydGMtPmRldiwKPj4+Pj4+ICAgICAJ CSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZih1bW9kZSksCj4+Pj4+PiBA QCAtMzQ5LDEwICszODEsMTEgQEAgaW50IGRybV9hdG9taWNfc2V0X21vZGVfZm9yX2NydGMoc3Ry dWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSwKPj4+Pj4+ICAgICAJCWlmIChJU19FUlIoc3RhdGUt Pm1vZGVfYmxvYikpCj4+Pj4+PiAgICAgCQkJcmV0dXJuIFBUUl9FUlIoc3RhdGUtPm1vZGVfYmxv Yik7Cj4+Pj4+PiAgICAgCj4+Pj4+PiAtCQlkcm1fbW9kZV9jb3B5KCZzdGF0ZS0+bW9kZSwgbW9k ZSk7Cj4+Pj4+PiArCQlkcm1fbW9kZV9jb3B5KCZzdGF0ZS0+bW9kZSwgYXJfbW9kZSk7Cj4+Pj4+ PiAgICAgCQlzdGF0ZS0+ZW5hYmxlID0gdHJ1ZTsKPj4+Pj4+ICAgICAJCURSTV9ERUJVR19BVE9N SUMoIlNldCBbTU9ERTolc10gZm9yIENSVEMgc3RhdGUgJXBcbiIsCj4+Pj4+PiAtCQkJCSBtb2Rl LT5uYW1lLCBzdGF0ZSk7Cj4+Pj4+PiArCQkJCSBhcl9tb2RlLT5uYW1lLCBzdGF0ZSk7Cj4+Pj4+ PiArCQlkcm1fbW9kZV9kZXN0cm95KHN0YXRlLT5jcnRjLT5kZXYsIGFyX21vZGUpOwo+Pj4+Pj4g ICAgIAl9IGVsc2Ugewo+Pj4+Pj4gICAgIAkJbWVtc2V0KCZzdGF0ZS0+bW9kZSwgMCwgc2l6ZW9m KHN0YXRlLT5tb2RlKSk7Cj4+Pj4+PiAgICAgCQlzdGF0ZS0+ZW5hYmxlID0gZmFsc2U7Cj4+Pj4+ PiBAQCAtNDM2LDYgKzQ2OSwyNSBAQCBkcm1fYXRvbWljX3JlcGxhY2VfcHJvcGVydHlfYmxvYl9m cm9tX2lkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+Pj4+PiAgICAgfQo+Pj4+Pj4gICAgIAo+ Pj4+Pj4gICAgIC8qKgo+Pj4+Pj4gKyAqIGRybV9hdG9taWNfYWxsb3dfYXNwZWN0X3JhdGlvX2Zv cl91bW9kZQo+Pj4+Pj4gKyAqIEBzdGF0ZTogdGhlIGNydGMgc3RhdGUKPj4+Pj4+ICsgKiBAdW1v ZGU6IHVzZXJzcGFjZSBtb2RlLCB3aG9zZSBhc3BlY3QgcmF0aW8gZmxhZyBiaXRzIGFyZSB0byBi ZSB1cGRhdGVkLgo+Pj4+Pj4gKyAqCj4+Pj4+PiArICogQWxsb3cgdGhlIGFzcGVjdCByYXRpbyBp bmZvIGluIHRoZSB1c2Vyc3BhY2UgbW9kZSBvbmx5IGlmIGFzcGVjdCByYXRpbyBpcwo+Pj4+Pj4g KyAqIHN1cHBvcnRlZC4KPj4+Pj4+ICsgKi8KPj4+Pj4+ICt2b2lkCj4+Pj4+PiArZHJtX2F0b21p Y19hbGxvd19hc3BlY3RfcmF0aW9fZm9yX3Vtb2RlKHN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqc3Rh dGUsCj4+Pj4+PiArCQkJCQlzdHJ1Y3QgZHJtX21vZGVfbW9kZWluZm8gKnVtb2RlKQo+Pj4+Pj4g K3sKPj4+Pj4+ICsJc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKmF0b21pY19zdGF0ZSA9IHN0YXRl LT5zdGF0ZTsKPj4+Pj4+ICsKPj4+Pj4+ICsJLyogUmVzZXQgdGhlIGFzcGVjdCByYXRpbyBmbGFn cyBpZiBhc3BlY3QgcmF0aW8gaXMgbm90IHN1cHBvcnRlZCAqLwo+Pj4+Pj4gKwlpZiAoYXRvbWlj X3N0YXRlICYmICFhdG9taWNfc3RhdGUtPmFsbG93X2FzcGVjdF9yYXRpbykKPj4+Pj4+ICsJCXVt b2RlLT5mbGFncyAmPSAofkRSTV9NT0RFX0ZMQUdfUElDX0FSX01BU0spOwo+Pj4+Pj4gK30KPj4+ Pj4+ICsKPj4+Pj4+ICsvKioKPj4+Pj4+ICAgICAgKiBkcm1fYXRvbWljX2NydGNfc2V0X3Byb3Bl cnR5IC0gc2V0IHByb3BlcnR5IG9uIENSVEMKPj4+Pj4+ICAgICAgKiBAY3J0YzogdGhlIGRybSBD UlRDIHRvIHNldCBhIHByb3BlcnR5IG9uCj4+Pj4+PiAgICAgICogQHN0YXRlOiB0aGUgc3RhdGUg b2JqZWN0IHRvIHVwZGF0ZSB3aXRoIHRoZSBuZXcgcHJvcGVydHkgdmFsdWUKPj4+Pj4+IEBAIC00 NjQsNiArNTE2LDkgQEAgaW50IGRybV9hdG9taWNfY3J0Y19zZXRfcHJvcGVydHkoc3RydWN0IGRy bV9jcnRjICpjcnRjLAo+Pj4+Pj4gICAgIAllbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWctPnBy b3BfbW9kZV9pZCkgewo+Pj4+Pj4gICAgIAkJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICptb2Rl ID0KPj4+Pj4+ICAgICAJCQlkcm1fcHJvcGVydHlfbG9va3VwX2Jsb2IoZGV2LCB2YWwpOwo+Pj4+ Pj4gKwkJZHJtX2F0b21pY19hbGxvd19hc3BlY3RfcmF0aW9fZm9yX3Vtb2RlKHN0YXRlLAo+Pj4+ Pj4gKwkJCQkJKHN0cnVjdCBkcm1fbW9kZV9tb2RlaW5mbyAqKQo+Pj4+Pj4gKwkJCQkJbW9kZS0+ ZGF0YSk7Cj4+Pj4+PiAgICAgCQlyZXQgPSBkcm1fYXRvbWljX3NldF9tb2RlX3Byb3BfZm9yX2Ny dGMoc3RhdGUsIG1vZGUpOwo+Pj4+Pj4gICAgIAkJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KG1vZGUp Owo+Pj4+Pj4gICAgIAkJcmV0dXJuIHJldDsKPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vZHJtX2NydGMuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4+Pj4+PiBpbmRl eCBmMDU1NmU2Li5hMmQzNGZhIDEwMDY0NAo+Pj4+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2Ry bV9jcnRjLmMKPj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fY3J0Yy5jCj4+Pj4+PiBA QCAtNDI1LDYgKzQyNSwxMyBAQCBpbnQgZHJtX21vZGVfZ2V0Y3J0YyhzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LAo+Pj4+Pj4gICAgIAlkcm1fbW9kZXNldF9sb2NrKCZjcnRjLT5tdXRleCwgTlVMTCk7 Cj4+Pj4+PiAgICAgCWlmIChjcnRjLT5zdGF0ZSkgewo+Pj4+Pj4gICAgIAkJaWYgKGNydGMtPnN0 YXRlLT5lbmFibGUpIHsKPj4+Pj4+ICsJCQkvKgo+Pj4+Pj4gKwkJCSAqIElmIHRoZSBhc3BlY3Qt cmF0aW8gaXMgbm90IHJlcXVpcmVkIGJ5IHRoZSwKPj4+Pj4+ICsJCQkgKiB1c2Vyc3BhY2UsIGRv IG5vdCBzZXQgdGhlIGFzcGVjdC1yYXRpbyBmbGFncy4KPj4+Pj4+ICsJCQkgKi8KPj4+Pj4+ICsJ CQlpZiAoIWZpbGVfcHJpdi0+YXNwZWN0X3JhdGlvX2FsbG93ZWQpCj4+Pj4+PiArCQkJCWNydGMt PnN0YXRlLT5tb2RlLnBpY3R1cmVfYXNwZWN0X3JhdGlvID0KPj4+Pj4+ICsJCQkJCUhETUlfUElD VFVSRV9BU1BFQ1RfTk9ORTsKPj4+Pj4gVGhlc2Ugd291bGQgc3RpbGwgY2xvYmJlciB0aGUgY3Vy cmVudCBjcnRjIHN0YXRlLiBTbyBkZWZpbml0ZWx5IGRvbid0Cj4+Pj4+IHdhbnQgdG8gZG8gdGhp cy4KPj4+PiBBbHJpZ2h0LCBzbyBhbHRlcm5hdGl2ZSB3YXkgb2YgZG9pbmcgdGhpcyB3aWxsIGJl Ogo+Pj4+IEF2b2lkIGNoYW5naW5nIHRoZSBjcnRjLT5zdGF0ZS0+bW9kZS5waWN0dXJlX2FzcGVj dF9yYXRpbyBpLmUga2VybmVsCj4+Pj4gbW9kZSBzdHJ1Y3R1cmUsCj4+Pj4gYnV0IHNldCB0aGUg YXNwZWN0IHJhdGlvIGZsYWdzIGluIHRoZSB1c2VybW9kZSB0byBub25lLCBhZnRlciBjYWxsaW5n IHRoZQo+Pj4+IGRybV9tb2RlX2NvbnZlcnRfdG9fdW1vZGUoKS4KPj4+Pgo+Pj4+IFdpbGwgdGFr ZSBjYXJlIG9mIHRoaXMgaW4gdGhlIG5leHQgcGF0Y2hzZXQuCj4+IEkgZ2F2ZSBhIHRob3VnaHQg YWJvdXQgaXQgYWdhaW4uIEFzIHlvdSBoYXZlIG1lbnRpb25lZCBlYXJsaWVyIHRoYXQKPj4gZ2V0 X2NydGMgaXMgb25lIG9mIHRoZQo+PiBwbGFjZSB3aGVyZSB0aGUgdXNlciBtb2RlIGFzcGVjdCBy YXRpbyBmbGFncyBtdXN0IGJlIGZpbHRlcmVkIG91dCwgaXMKPj4gdGhpcyB3aGF0IHlvdSBoYXZl Cj4+IGluIG1pbmQuIEkgaG9wZSBJIGRpZCBub3QgbWlzdW5kZXJzdGFuZC4KPj4KPj4gQ2hhbmdp bmcgdGhlIHVzZXJtb2RlIGFzcGVjdCByYXRpbyBmbGFnIGJpdHMsIHdpdGhvdXQgY2hhbmdlIGlu IHRoZQo+PiBwaWN0dXJlX2FzcGVjdF9yYXRpbwo+PiBrZXJuZWwgbW9kZSB3aWxsIG5vdCByZXN1 bHQgaW4gYm90aCBzdHJ1Y3R1cmVzIG91dCBvZiBzeW5jPwo+IEkgZG9uJ3QgdGhpbmsgdGhhdCBz aG91bGQgcmVhbGx5IG1hdHRlci4gSSBzdXBwb3NlIHdlIG1pZ2h0IGdldCBvbmUKPiBleHRyYSBt b2Rlc2V0IHdoZW4gdGhlIHVzZXIgZmVlZHMgdGhhdCBtb2RlIGJhY2sgdmlhIHNldGNydGMvYXRv bWljLCBidXQKPiBtZWguIEFuZCBhY3R1YWxseSB0aGUgYXNwZWN0IHJhdGlvIHNob3VsZCBvbmx5 IGFmZmVjdCB0aGUgaW5mb2ZyYW1lLCBzbwo+IHdlIHNob3VsZCBiZSBhYmxlIHRvIGV2ZW50dWFs bHkgZWxpbWluYXRlIHRoYXQgZXh0cmEgbW9kZXNldCBhbmQganVzdAo+IHVwZGF0ZSB0aGUgaW5m b2ZyYW1lIGluc3RlYWQuCj4KPj4+Pj4+ICAgICAJCQlkcm1fbW9kZV9jb252ZXJ0X3RvX3Vtb2Rl KCZjcnRjX3Jlc3AtPm1vZGUsICZjcnRjLT5zdGF0ZS0+bW9kZSk7Cj4+Pj4+PiAgICAgCQkJY3J0 Y19yZXNwLT5tb2RlX3ZhbGlkID0gMTsKPj4+Pj4+ICAgICAKPj4+Pj4+IEBAIC00MzUsNiArNDQy LDEzIEBAIGludCBkcm1fbW9kZV9nZXRjcnRjKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4+Pj4+ PiAgICAgCQljcnRjX3Jlc3AtPnggPSBjcnRjLT54Owo+Pj4+Pj4gICAgIAkJY3J0Y19yZXNwLT55 ID0gY3J0Yy0+eTsKPj4+Pj4+ICAgICAJCWlmIChjcnRjLT5lbmFibGVkKSB7Cj4+Pj4+PiArCQkJ LyoKPj4+Pj4+ICsJCQkgKiBJZiB0aGUgYXNwZWN0LXJhdGlvIGlzIG5vdCByZXF1aXJlZCBieSB0 aGUsCj4+Pj4+PiArCQkJICogdXNlcnNwYWNlLCBkbyBub3Qgc2V0IHRoZSBhc3BlY3QtcmF0aW8g ZmxhZ3MuCj4+Pj4+PiArCQkJICovCj4+Pj4+PiArCQkJaWYgKCFmaWxlX3ByaXYtPmFzcGVjdF9y YXRpb19hbGxvd2VkKQo+Pj4+Pj4gKwkJCQljcnRjLT5tb2RlLnBpY3R1cmVfYXNwZWN0X3JhdGlv ID0KPj4+Pj4+ICsJCQkJCUhETUlfUElDVFVSRV9BU1BFQ1RfTk9ORTsKPj4+Pj4+ICAgICAJCQlk cm1fbW9kZV9jb252ZXJ0X3RvX3Vtb2RlKCZjcnRjX3Jlc3AtPm1vZGUsICZjcnRjLT5tb2RlKTsK Pj4+Pj4+ICAgICAJCQljcnRjX3Jlc3AtPm1vZGVfdmFsaWQgPSAxOwo+Pj4+Pj4gICAgIAo+Pj4+ Pj4gQEAgLTYxMCw2ICs2MjQsMTEgQEAgaW50IGRybV9tb2RlX3NldGNydGMoc3RydWN0IGRybV9k ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSwKPj4+Pj4+ICAgICAJCQlnb3RvIG91dDsKPj4+Pj4+ICAg ICAJCX0KPj4+Pj4+ICAgICAKPj4+Pj4+ICsJCS8qIElmIHRoZSB1c2VyIGRvZXMgbm90IGFzayBm b3IgYXNwZWN0IHJhdGlvLCByZXNldCB0aGUgYXNwZWN0Cj4+Pj4+PiArCQkgKiByYXRpbyBiaXRz IGluIHRoZSB1c2VybW9kZS4KPj4+Pj4+ICsJCSAqLwo+Pj4+Pj4gKwkJaWYgKCFmaWxlX3ByaXYt PmFzcGVjdF9yYXRpb19hbGxvd2VkKQo+Pj4+Pj4gKwkJCWNydGNfcmVxLT5tb2RlLmZsYWdzICY9 ICh+RFJNX01PREVfRkxBR19QSUNfQVJfTUFTSyk7Cj4+Pj4+PiAgICAgCQlyZXQgPSBkcm1fbW9k ZV9jb252ZXJ0X3Vtb2RlKG1vZGUsICZjcnRjX3JlcS0+bW9kZSk7Cj4+Pj4+PiAgICAgCQlpZiAo cmV0KSB7Cj4+Pj4+PiAgICAgCQkJRFJNX0RFQlVHX0tNUygiSW52YWxpZCBtb2RlXG4iKTsKPj4+ Pj4+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmggYi9pbmNsdWRlL2RybS9k cm1fYXRvbWljLmgKPj4+Pj4+IGluZGV4IDFjMjc1MjYuLjEzMGRhZDkgMTAwNjQ0Cj4+Pj4+PiAt LS0gYS9pbmNsdWRlL2RybS9kcm1fYXRvbWljLmgKPj4+Pj4+ICsrKyBiL2luY2x1ZGUvZHJtL2Ry bV9hdG9taWMuaAo+Pj4+Pj4gQEAgLTIzNyw2ICsyMzcsNyBAQCBzdHJ1Y3QgX19kcm1fcHJpdmF0 ZV9vYmpzX3N0YXRlIHsKPj4+Pj4+ICAgICAgKiBAcmVmOiBjb3VudCBvZiBhbGwgcmVmZXJlbmNl cyB0byB0aGlzIHN0YXRlICh3aWxsIG5vdCBiZSBmcmVlZCB1bnRpbCB6ZXJvKQo+Pj4+Pj4gICAg ICAqIEBkZXY6IHBhcmVudCBEUk0gZGV2aWNlCj4+Pj4+PiAgICAgICogQGFsbG93X21vZGVzZXQ6 IGFsbG93IGZ1bGwgbW9kZXNldAo+Pj4+Pj4gKyAqIEBhbGxvd19hc3BlY3RfcmF0aW86IGFsbG93 IHRoZSBhc3BlY3QgcmF0aW8gaW5mbyB0byBiZSBwYXNzZXMgdG8gdXNlcgo+Pj4+Pj4gICAgICAq IEBsZWdhY3lfY3Vyc29yX3VwZGF0ZTogaGludCB0byBlbmZvcmNlIGxlZ2FjeSBjdXJzb3IgSU9D VEwgc2VtYW50aWNzCj4+Pj4+PiAgICAgICogQGFzeW5jX3VwZGF0ZTogaGludCBmb3IgYXN5bmNo cm9ub3VzIHBsYW5lIHVwZGF0ZQo+Pj4+Pj4gICAgICAqIEBwbGFuZXM6IHBvaW50ZXIgdG8gYXJy YXkgb2Ygc3RydWN0dXJlcyB3aXRoIHBlci1wbGFuZSBkYXRhCj4+Pj4+PiBAQCAtMjU2LDYgKzI1 Nyw3IEBAIHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlIHsKPj4+Pj4+ICAgICAKPj4+Pj4+ICAgICAJ c3RydWN0IGRybV9kZXZpY2UgKmRldjsKPj4+Pj4+ICAgICAJYm9vbCBhbGxvd19tb2Rlc2V0IDog MTsKPj4+Pj4+ICsJYm9vbCBhbGxvd19hc3BlY3RfcmF0aW8gOiAxOwo+Pj4+Pj4gICAgIAlib29s IGxlZ2FjeV9jdXJzb3JfdXBkYXRlIDogMTsKPj4+Pj4+ICAgICAJYm9vbCBhc3luY191cGRhdGUg OiAxOwo+Pj4+Pj4gICAgIAlzdHJ1Y3QgX19kcm1fcGxhbmVzX3N0YXRlICpwbGFuZXM7Cj4+Pj4+ PiAtLSAKPj4+Pj4+IDIuNy40Cj4+Pj4+Pgo+Pj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KPj4+Pj4+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKPj4+ Pj4+IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPj4+Pj4+IGh0dHBzOi8vbGlzdHMu ZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCj4+IFJlZ2FyZHMsCj4+ IEFua2l0CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK