From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH 1/3] drm: Add a new connector atomic property for link status Date: Mon, 5 Dec 2016 12:33:28 -0800 Message-ID: <20161205203328.GC23283@intel.com> References: <1480491033-1923-1-git-send-email-manasi.d.navare@intel.com> <20161202162635.73gudykxzif5acdj@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20161202162635.73gudykxzif5acdj@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBEZWMgMDIsIDIwMTYgYXQgMDU6MjY6MzVQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUdWUsIE5vdiAyOSwgMjAxNiBhdCAxMTozMDozMVBNIC0wODAwLCBNYW5hc2kg TmF2YXJlIHdyb3RlOgo+ID4gQXQgdGhlIHRpbWUgdXNlcnNwYWNlIGRvZXMgc2V0Y3J0Yywgd2Un dmUgYWxyZWFkeSBwcm9taXNlZCB0aGUgbW9kZQo+ID4gd291bGQgd29yay4gVGhlIHByb21pc2Ug aXMgYmFzZWQgb24gdGhlIHRoZW9yZXRpY2FsIGNhcGFiaWxpdGllcyBvZgo+ID4gdGhlIGxpbmss IGJ1dCBpdCdzIHBvc3NpYmxlIHdlIGNhbid0IHJlYWNoIHRoaXMgaW4gcHJhY3RpY2UuIFRoZSBE UAo+ID4gc3BlYyBkZXNjcmliZXMgaG93IHRoZSBsaW5rIHNob3VsZCBiZSByZWR1Y2VkLCBidXQg d2UgY2FuJ3QgcmVkdWNlCj4gPiB0aGUgbGluayBiZWxvdyB0aGUgcmVxdWlyZW1lbnRzIG9mIHRo ZSBtb2RlLiBCbGFjayBzY3JlZW4gZm9sbG93cy4KPiA+IAo+ID4gT25lIGlkZWEgd291bGQgYmUg dG8gaGF2ZSBzZXRjcnRjIHJldHVybiBhIGZhaWx1cmUuIEhvd2V2ZXIsIGl0Cj4gPiBhbHJlYWR5 IHNob3VsZCBub3QgZmFpbCBhcyB0aGUgYXRvbWljIGNoZWNrcyBoYXZlIHBhc3NlZC4gSXQgd291 bGQKPiA+IGFsc28gY29uZmxpY3Qgd2l0aCB0aGUgaWRlYSBvZiBtYWtpbmcgc2V0Y3J0YyBhc3lu Y2hyb25vdXMgaW4gdGhlCj4gPiBmdXR1cmUsIHJldHVybmluZyBiZWZvcmUgdGhlIGFjdHVhbCBt b2RlIHNldHRpbmcgYW5kIGxpbmsgdHJhaW5pbmcuCj4gPiAKPiA+IEFub3RoZXIgaWRlYSBpcyB0 byB0cmFpbiB0aGUgbGluayAidXBmcm9udCIgYXQgaG90cGx1ZyB0aW1lLCBiZWZvcmUKPiA+IHBy dW5pbmcgdGhlIG1vZGUgbGlzdCwgc28gdGhhdCB3ZSBjYW4gZG8gdGhlIHBydW5pbmcgYmFzZWQg b24KPiA+IHByYWN0aWNhbCBub3QgdGhlb3JldGljYWwgY2FwYWJpbGl0aWVzLiBIb3dldmVyLCB0 aGUgY2hhbmdlcyBmb3IgbGluawo+ID4gdHJhaW5pbmcgYXJlIHByZXR0eSBkcmFzdGljLCBhbGwg Zm9yIHRoZSBzYWtlIG9mIGVycm9yIGhhbmRsaW5nIGFuZAo+ID4gRFAgY29tcGxpYW5jZSwgd2hl biB0aGUgbW9zdCBjb21tb24gaGFwcHkgZGF5IHNjZW5hcmlvIGlzIHRoZSBjdXJyZW50Cj4gPiBh cHByb2FjaCBvZiBsaW5rIHRyYWluaW5nIGF0IG1vZGUgc2V0dGluZyB0aW1lLCB1c2luZyB0aGUg b3B0aW1hbAo+ID4gcGFyYW1ldGVycyBmb3IgdGhlIG1vZGUuIEl0IGlzIGFsc28gbm90IGNlcnRh aW4gYWxsIGhhcmR3YXJlIGNvdWxkIGRvCj4gPiB0aGlzIHdpdGhvdXQgdGhlIHBpcGUgb247IG5v dCBldmVuIGFsbCBvdXIgaGFyZHdhcmUgY2FuIGRvIHRoaXMuIFNvbWUKPiA+IG9mIHRoaXMgY2Fu IGJlIHNvbHZlZCwgYnV0IG5vdCB0cml2aWFsbHkuCj4gPiAKPiA+IEJvdGggb2YgdGhlIGFib3Zl IGlkZWFzIGFsc28gZmFpbCB0byBhZGRyZXNzIGxpbmsgZGVncmFkYXRpb24gKmR1cmluZyoKPiA+ IG9wZXJhdGlvbi4KPiA+IAo+ID4gVGhlIHNvbHV0aW9uIGlzIHRvIGFkZCBhIG5ldyAibGluay1z dGF0dXMiIGNvbm5lY3RvciBwcm9wZXJ0eSBpbiBvcmRlcgo+ID4gdG8gYWRkcmVzcyBsaW5rIHRy YWluaW5nIGZhaWx1cmUgaW4gYSB3YXkgdGhhdDoKPiA+IGEpIGNoYW5nZXMgdGhlIGN1cnJlbnQg aGFwcHkgZGF5IHNjZW5hcmlvIGFzIGxpdHRsZSBhcyBwb3NzaWJsZSwgdG8KPiA+IGF2b2lkIHJl Z3Jlc3Npb25zLCBiKSBjYW4gYmUgaW1wbGVtZW50ZWQgdGhlIHNhbWUgd2F5IGJ5IGFsbCBkcm0K PiA+IGRyaXZlcnMsIGMpIGlzIHN0aWxsIG9wdC1pbiBmb3IgdGhlIGRyaXZlcnMgYW5kIHVzZXJz cGFjZSwgYW5kIG9wdGluZwo+ID4gb3V0IGRvZXNuJ3QgcmVncmVzcyB0aGUgdXNlciBleHBlcmll bmNlLCBkKSBkb2Vzbid0IHByZXZlbnQgZHJpdmVycwo+ID4gZnJvbSBpbXBsZW1lbnRpbmcgYmV0 dGVyIG9yIGFsdGVybmF0ZSBhcHByb2FjaGVzLCBwb3NzaWJseSB3aXRob3V0Cj4gPiB1c2Vyc3Bh Y2UgaW52b2x2ZW1lbnQuIEFuZCwgb2YgY291cnNlLCBoYW5kbGVzIGFsbCB0aGUgaXNzdWVzIHBy ZXNlbnRlZC4KPiA+IEluIHRoZSB1c3VhbCBoYXBweSBkYXkgc2NlbmFyaW8sIHRoaXMgaXMgYWx3 YXlzICJnb29kIi4gSWYgc29tZXRoaW5nCj4gPiBmYWlscyBkdXJpbmcgb3IgYWZ0ZXIgYSBtb2Rl IHNldCwgdGhlIGtlcm5lbCBkcml2ZXIgY2FuIHNldCB0aGUgbGluawo+ID4gc3RhdHVzIHRvICJi YWQiIGFuZCBpc3N1ZSBhIGhvdHBsdWcgdWV2ZW50IGZvciB1c2Vyc3BhY2UgdG8gaGF2ZSBpdAo+ ID4gcmUtY2hlY2sgdGhlIHZhbGlkIG1vZGVzIHRocm91Z2ggR0VUX0NPTk5FQ1RPUiBJT0NUTCwg YW5kIHRyeSBtb2Rlc2V0Cj4gPiBhZ2Fpbi4gSWYgdGhlIHRoZW9yZXRpY2FsIGNhcGFiaWxpdGll cyBvZiB0aGUgbGluayBjYW4ndCBiZSByZWFjaGVkLAo+ID4gdGhlIG1vZGUgbGlzdCBpcyB0cmlt bWVkIGJhc2VkIG9uIHRoYXQuCj4gPiAKPiA+IHY0Ogo+ID4gKiBBZGQgY29tbWVudHMgaW4ga2Vy bmVsLWRvYyBmb3JtYXQgKERhbmllbCBWZXR0ZXIpCj4gPiAqIFVwZGF0ZSB0aGUga2VybmVsLWRv YyBmb3IgbGluay1zdGF0dXMgKFNlYW4gUGF1bCkKPiA+IHYzOgo+ID4gKiBGaXhlZCBhIGJ1aWxk IGVycm9yIChKYW5pIFNhYXJpbmVuKQo+ID4gdjI6Cj4gPiAqIFJlbW92ZWQgY29ubmVjdG9yLT5s aW5rX3N0YXR1cyAoRGFuaWVsIFZldHRlcikKPiA+ICogU2V0IGNvbm5lY3Rvci0+c3RhdGUtPmxp bmtfc3RhdHVzIGluIGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfbGlua19zdGF0dXNfcHJvcGVydHkK PiA+IChEYW5pZWwgVmV0dGVyKQo+ID4gKiBTZXQgdGhlIGNvbm5lY3Rvcl9jaGFuZ2VkIGZsYWcg dG8gdHJ1ZSBpZiBjb25uZWN0b3ItPnN0YXRlLT5saW5rX3N0YXR1cyBjaGFuZ2VkLgo+ID4gKiBS ZXNldCBsaW5rX3N0YXR1cyB0byBHT09EIGluIHVwZGF0ZV9vdXRwdXRfc3RhdGUgKERhbmllbCBW ZXR0ZXIpCj4gPiAqIE5ldmVyIGFsbG93IHVzZXJzcGFjZSB0byBzZXQgbGluayBzdGF0dXMgZnJv bSBHb29kIFRvIEJhZCAoRGFuaWVsIFZldHRlcikKPiA+IAo+ID4gQWNrZWQtYnk6IFRvbnkgQ2hl bmcgPHRvbnkuY2hlbmdAYW1kLmNvbT4KPiA+IEFja2VkLWJ5OiBIYXJyeSBXZW50bGFuZCA8aGFy cnkud2VudGxhbmRAYW1kLmNvbT4KPiA+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAbGlu dXguaW50ZWwuY29tPgo+ID4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJAaW50ZWwu Y29tPgo+ID4gQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29t Pgo+ID4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hyaXMtd2lsc29uLmNvLnVrPgo+ID4gQ2M6 IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+ID4gU2lnbmVkLW9mZi1ieTogTWFu YXNpIE5hdmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgICAgICAgIHwgMTAgKysrKysrKwo+ID4gIGRyaXZlcnMv Z3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jIHwgIDggKysrKysrCj4gPiAgZHJpdmVycy9ncHUv ZHJtL2RybV9jb25uZWN0b3IuYyAgICAgfCA1NCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKystCj4gPiAgaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAgICAgICAgfCAxOSAr KysrKysrKysrKysrCj4gPiAgaW5jbHVkZS9kcm0vZHJtX21vZGVfY29uZmlnLmggICAgICAgfCAg NSArKysrCj4gPiAgaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oICAgICAgICAgfCAgNCArKysK PiA+ICA2IGZpbGVzIGNoYW5nZWQsIDk5IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKPiA+ IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJz L2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gPiBpbmRleCA4OTczN2U0Li45OTBmMDEzIDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ID4gKysrIGIvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWMuYwo+ID4gQEAgLTEwODcsNiArMTA4NywxNCBAQCBpbnQgZHJtX2F0 b21pY19jb25uZWN0b3Jfc2V0X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCj4gPiAgCQkgKiBub3c/KSBhdG9taWMgd3JpdGVzIHRvIERQTVMgcHJvcGVydHk6Cj4gPiAg CQkgKi8KPiA+ICAJCXJldHVybiAtRUlOVkFMOwo+ID4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09 IGNvbmZpZy0+bGlua19zdGF0dXNfcHJvcGVydHkpIHsKPiA+ICsJCS8qIE5ldmVyIGRvd25ncmFk ZSBmcm9tIEdPT0QgdG8gQkFEIG9uIHVzZXJzcGFjZSdzIHJlcXVlc3QgaGVyZSwKPiA+ICsJCSAq IG9ubHkgaHcgaXNzdWVzIGNhbiBkbyB0aGF0Lgo+ID4gKwkJICovCj4gPiArCQlpZiAoc3RhdGUt Pmxpbmtfc3RhdHVzID09IERSTV9MSU5LX1NUQVRVU19HT09EKQo+ID4gKwkJCXJldHVybiAwOwo+ ID4gKwkJc3RhdGUtPmxpbmtfc3RhdHVzID0gdmFsOwo+ID4gKwkJcmV0dXJuIDA7Cj4gPiAgCX0g ZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eSkgewo+ID4gIAkJ cmV0dXJuIGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19zZXRfcHJvcGVydHkoY29ubmVjdG9yLAo+ ID4gIAkJCQlzdGF0ZSwgcHJvcGVydHksIHZhbCk7Cj4gPiBAQCAtMTEzNSw2ICsxMTQzLDggQEAg c3RhdGljIHZvaWQgZHJtX2F0b21pY19jb25uZWN0b3JfcHJpbnRfc3RhdGUoc3RydWN0IGRybV9w cmludGVyICpwLAo+ID4gIAkJKnZhbCA9IChzdGF0ZS0+Y3J0YykgPyBzdGF0ZS0+Y3J0Yy0+YmFz ZS5pZCA6IDA7Cj4gPiAgCX0gZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5kcG1zX3Byb3Bl cnR5KSB7Cj4gPiAgCQkqdmFsID0gY29ubmVjdG9yLT5kcG1zOwo+ID4gKwl9IGVsc2UgaWYgKHBy b3BlcnR5ID09IGNvbmZpZy0+bGlua19zdGF0dXNfcHJvcGVydHkpIHsKPiA+ICsJCSp2YWwgPSBz dGF0ZS0+bGlua19zdGF0dXM7Cj4gPiAgCX0gZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+YXRv bWljX2dldF9wcm9wZXJ0eSkgewo+ID4gIAkJcmV0dXJuIGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21p Y19nZXRfcHJvcGVydHkoY29ubmVjdG9yLAo+ID4gIAkJCQlzdGF0ZSwgcHJvcGVydHksIHZhbCk7 Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgYi9k cml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ID4gaW5kZXggNDk0NjgwYy4uOTYy ZWQ2NiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j Cj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ID4gQEAgLTUx OSw2ICs1MTksMTMgQEAgc3RhdGljIGludCBoYW5kbGVfY29uZmxpY3RpbmdfZW5jb2RlcnMoc3Ry dWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ID4gIAkJCQkJICAgICAgIGNvbm5lY3Rvcl9z dGF0ZSk7Cj4gPiAgCQlpZiAocmV0KQo+ID4gIAkJCXJldHVybiByZXQ7Cj4gPiArCQlpZiAoY29u bmVjdG9yLT5zdGF0ZS0+Y3J0Yykgewo+ID4gKwkJCWNydGNfc3RhdGUgPSBkcm1fYXRvbWljX2dl dF9leGlzdGluZ19jcnRjX3N0YXRlKHN0YXRlLAo+ID4gKwkJCQkJCQkJCWNvbm5lY3Rvci0+c3Rh dGUtPmNydGMpOwo+ID4gKwkJCWlmIChjb25uZWN0b3ItPnN0YXRlLT5saW5rX3N0YXR1cyAhPQo+ ID4gKwkJCSAgICBjb25uZWN0b3Jfc3RhdGUtPmxpbmtfc3RhdHVzKQo+ID4gKwkJCQljcnRjX3N0 YXRlLT5jb25uZWN0b3JzX2NoYW5nZWQgPSB0cnVlOwo+ID4gKwkJfQo+IAo+IFNlZSBteSBwcmV2 aW91cyByZXZpZXcsIHRoaXMgbG9va3Mgc2hvdWxkIGltbyBiZSBtb3ZlZCB0byBhIG1vcmUgb2J2 aW91cwo+IHBsYWNlIHRoYW4gaGlkZGVuIGRlZXAgZG93biBpbiB0aGUgY2FsbGNoYWluLgo+IAo+ ID4gIAl9Cj4gPiAgCj4gPiAgCS8qCj4gPiBAQCAtMjI1OCw2ICsyMjY1LDcgQEAgc3RhdGljIGlu dCB1cGRhdGVfb3V0cHV0X3N0YXRlKHN0cnVjdCBkcm1fYXRvbWljX3N0YXRlICpzdGF0ZSwKPiA+ ICAJCQkJCQkJCU5VTEwpOwo+ID4gIAkJCWlmIChyZXQpCj4gPiAgCQkJCXJldHVybiByZXQ7Cj4g PiArCQkJY29ubl9zdGF0ZS0+bGlua19zdGF0dXMgPSBEUk1fTElOS19TVEFUVVNfR09PRDsKPiAK PiBJaXJjIGluIG91ciBkaXNjdXNzaW9uIHdlIHNhaWQgYSBzbWFsbCBjb21tZW50IGhlcmUgd291 bGQgYmUgZ29vZCwgbGlrZQo+IAo+IAkJCS8qIE1ha2Ugc3VyZSBsZWdhY3kgc2V0Q3J0YyBhbHdh eXMgcmUtdHJhaW5zLiAqLwo+IAo+IE1pZ2h0IGFsc28gYmUgZ29vZCB0byB1cGRhdGUgdGhlIGtl cm5lbC1kb2Mgb2YKPiBkcm1fYXRvbWljX2hlbHBlcl9zZXRfY29uZmlnKCkuIFNvbWV0aGluZyBs aWtlCj4gCj4gICogTk9URTogRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggb2xkIHVz ZXJzcGFjZSB0aGlzIGF1dG9tYXRpY2FsbHkKPiAgKiByZXNldHMgdGhlICJsaW5rLXN0YXR1cyIg cHJvcGVydHkgdG8gR09PRCwgdG8gZm9yY2UgYW55IGxpbmsKPiAgKiByZS10cmFpbmluZy4gVGhl IFNFVENSVEMgaW9jdGwgZG9lcyBub3QgZGVmaW5lIHdoZXRoZXIgYW4gdXBkYXRlIGRvZXMKPiAg KiBuZWVkIGEgZnVsbCBtb2Rlc2V0IG9yIGp1c3QgYSBwbGFuZSB1cGRhdGUsIGhlbmNlIHdlJ3Jl IGFsbG93ZWQgdG8gZG8KPiAgKiB0aGF0LiBTZWUgYWxzbyBkcm1fbW9kZV9jb25uZWN0b3Jfc2V0 X2xpbmtfc3RhdHVzX3Byb3BlcnR5KCkuCj4gICogCj4gCj4gPiAgCQl9Cj4gPiAgCX0KPiA+ICAK PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jIGIvZHJpdmVy cy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+ID4gaW5kZXggNWE0NTI2Mi4uODkwMjM2NyAxMDA2 NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiA+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiA+IEBAIC0yNDMsNiArMjQzLDEwIEBAIGlu dCBkcm1fY29ubmVjdG9yX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwKPiA+ICAJZHJtX29i amVjdF9hdHRhY2hfcHJvcGVydHkoJmNvbm5lY3Rvci0+YmFzZSwKPiA+ICAJCQkJICAgICAgY29u ZmlnLT5kcG1zX3Byb3BlcnR5LCAwKTsKPiA+ICAKPiA+ICsJZHJtX29iamVjdF9hdHRhY2hfcHJv cGVydHkoJmNvbm5lY3Rvci0+YmFzZSwKPiA+ICsJCQkJICAgY29uZmlnLT5saW5rX3N0YXR1c19w cm9wZXJ0eSwKPiA+ICsJCQkJICAgMCk7Cj4gPiArCj4gPiAgCWlmIChkcm1fY29yZV9jaGVja19m ZWF0dXJlKGRldiwgRFJJVkVSX0FUT01JQykpIHsKPiA+ICAJCWRybV9vYmplY3RfYXR0YWNoX3By b3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsIGNvbmZpZy0+cHJvcF9jcnRjX2lkLCAwKTsKPiA+ICAJ fQo+ID4gQEAgLTUwNiw2ICs1MTAsMTIgQEAgY29uc3QgY2hhciAqZHJtX2dldF9zdWJwaXhlbF9v cmRlcl9uYW1lKGVudW0gc3VicGl4ZWxfb3JkZXIgb3JkZXIpCj4gPiAgfTsKPiA+ICBEUk1fRU5V TV9OQU1FX0ZOKGRybV9nZXRfZHBtc19uYW1lLCBkcm1fZHBtc19lbnVtX2xpc3QpCj4gPiAgCj4g PiArc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1fcHJvcF9lbnVtX2xpc3QgZHJtX2xpbmtfc3RhdHVz X2VudW1fbGlzdFtdID0gewo+ID4gKwl7IERSTV9NT0RFX0xJTktfU1RBVFVTX0dPT0QsICJHb29k IiB9LAo+ID4gKwl7IERSTV9NT0RFX0xJTktfU1RBVFVTX0JBRCwgIkJhZCIgfSwKPiA+ICt9Owo+ ID4gK0RSTV9FTlVNX05BTUVfRk4oZHJtX2dldF9saW5rX3N0YXR1c19uYW1lLCBkcm1fbGlua19z dGF0dXNfZW51bV9saXN0KQo+ID4gKwo+ID4gIC8qKgo+ID4gICAqIGRybV9kaXNwbGF5X2luZm9f c2V0X2J1c19mb3JtYXRzIC0gc2V0IHRoZSBzdXBwb3J0ZWQgYnVzIGZvcm1hdHMKPiA+ICAgKiBA aW5mbzogZGlzcGxheSBpbmZvIHRvIHN0b3JlIGJ1cyBmb3JtYXRzIGluCj4gPiBAQCAtNjI1LDcg KzYzNSwxMSBAQCBpbnQgZHJtX2Rpc3BsYXlfaW5mb19zZXRfYnVzX2Zvcm1hdHMoc3RydWN0IGRy bV9kaXNwbGF5X2luZm8gKmluZm8sCj4gPiAgICogCXRpbGluZyBhbmQgdmlydHVhbGl6ZSBib3Ro ICZkcm1fY3J0YyBhbmQgJmRybV9wbGFuZSBpZiBuZWVkZWQuIERyaXZlcnMKPiA+ICAgKiAJc2hv dWxkIHVwZGF0ZSB0aGlzIHZhbHVlIHVzaW5nIGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfdGlsZV9w cm9wZXJ0eSgpLgo+ID4gICAqIAlVc2Vyc3BhY2UgY2Fubm90IGNoYW5nZSB0aGlzIHByb3BlcnR5 Lgo+ID4gLSAqCj4gCj4gT25lIG1vcmUgZnJvbSBsYXN0IHJvdW5kOiBQbGVhc2UgbGVhdmUgdGhp cyB3aGl0ZXNwYWNlIGludGFjdCAuLi4KPiAKPiA+ICsgKiBsaW5rLXN0YXR1czoKPiA+ICsgKiAg ICAgIENvbm5lY3RvciBsaW5rLXN0YXR1cyBwcm9wZXJ0eSB0byBpbmRpY2F0ZSB0aGUgc3RhdHVz IG9mIGxpbmsuIFRoZSBkZWZhdWx0Cj4gPiArICogICAgICB2YWx1ZSBvZiBsaW5rLXN0YXR1cyBp cyAiR09PRCIuIElmIHNvbWV0aGluZyBmYWlscyBkdXJpbmcgb3IgYWZ0ZXIgbW9kZXNldCwKPiA+ ICsgKiAgICAgIHRoZSBrZXJuZWwgZHJpdmVyIG1heSBzZXQgdGhpcyB0byAiQkFEIiBhbmQgaXNz dWUgYSBob3RwbHVnIHVldmVudC4gRHJpdmVycwo+ID4gKyAqICAgICAgc2hvdWxkIHVwZGF0ZSB0 aGlzIHZhbHVlIHVzaW5nIGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfbGlua19zdGF0dXNfcHJvcGVy dHkoKS4KPiAKPiAuLi4gYW5kIGFkZCBhbiBlbXB0eSBsaW5lIGhlcmUuCj4gCj4gPiAgICogQ29u bmVjdG9ycyBhbHNvIGhhdmUgb25lIHN0YW5kYXJkaXplZCBhdG9taWMgcHJvcGVydHk6Cj4gPiAg ICoKPiA+ICAgKiBDUlRDX0lEOgo+ID4gQEAgLTY2Niw2ICs2ODAsMTMgQEAgaW50IGRybV9jb25u ZWN0b3JfY3JlYXRlX3N0YW5kYXJkX3Byb3BlcnRpZXMoc3RydWN0IGRybV9kZXZpY2UgKmRldikK PiA+ICAJCXJldHVybiAtRU5PTUVNOwo+ID4gIAlkZXYtPm1vZGVfY29uZmlnLnRpbGVfcHJvcGVy dHkgPSBwcm9wOwo+ID4gIAo+ID4gKwlwcm9wID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9lbnVtKGRl diwgMCwgImxpbmstc3RhdHVzIiwKPiA+ICsJCQkJCWRybV9saW5rX3N0YXR1c19lbnVtX2xpc3Qs Cj4gPiArCQkJCQlBUlJBWV9TSVpFKGRybV9saW5rX3N0YXR1c19lbnVtX2xpc3QpKTsKPiA+ICsJ aWYgKCFwcm9wKQo+ID4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gPiArCWRldi0+bW9kZV9jb25maWcu bGlua19zdGF0dXNfcHJvcGVydHkgPSBwcm9wOwo+ID4gKwo+ID4gIAlyZXR1cm4gMDsKPiA+ICB9 Cj4gPiAgCj4gPiBAQCAtOTk1LDYgKzEwMTYsMzcgQEAgaW50IGRybV9tb2RlX2Nvbm5lY3Rvcl91 cGRhdGVfZWRpZF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4g IH0KPiA+ICBFWFBPUlRfU1lNQk9MKGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9w ZXJ0eSk7Cj4gPiAgCj4gPiArLyoqCj4gPiArICogZHJtX21vZGVfY29ubmVjdG9yX3NldF9saW5r X3N0YXR1c19wcm9wZXJ0eSAtIFNldCBsaW5rIHN0YXR1cyBwcm9wZXJ0eSBvZiBhIGNvbm5lY3Rv cgo+ID4gKyAqIEBjb25uZWN0b3I6IGRybSBjb25uZWN0b3IKPiA+ICsgKiBAbGlua19zdGF0dXM6 IG5ldyB2YWx1ZSBvZiBsaW5rIHN0YXR1cyBwcm9wZXJ0eSAoMDogR29vZCwgMTogQmFkKQo+ID4g KyAqCj4gPiArICogSW4gdXN1YWwgd29ya2luZyBzY2VuYXJpbywgdGhpcyBsaW5rIHN0YXR1cyBw cm9wZXJ0eSB3aWxsIGFsd2F5cyBiZSBzZXQgdG8KPiA+ICsgKiAiR09PRCIuIElmIHNvbWV0aGlu ZyBmYWlscyBkdXJpbmcgb3IgYWZ0ZXIgYSBtb2RlIHNldCwgdGhlIGtlcm5lbCBkcml2ZXIKPiA+ ICsgKiBtYXkgc2V0IHRoaXMgbGluayBzdGF0dXMgcHJvcGVydHkgdG8gIkJBRCIuIFRoZSBjYWxs ZXIgdGhlbiBuZWVkcyB0byBzZW5kIGEKPiA+ICsgKiBob3RwbHVnIHVldmVudCBmb3IgdXNlcnNw YWNlIHRvIHJlLWNoZWNrIHRoZSB2YWxpZCBtb2RlcyB0aHJvdWdoCj4gPiArICogR0VUX0NPTk5F Q1RPUl9JT0NUTCBhbmQgcmV0cnkgbW9kZXNldC4KPiA+ICsgKgo+ID4gKyAqIE5vdGU6IERyaXZl cnMgY2Fubm90IHJlbHkgb24gdXNlcnNwYWNlIHRvIHN1cHBvcnQgdGhpcyBwcm9wZXJ0eSBhbmQK PiA+ICsgKiBpc3N1ZSBhIG1vZGVzZXQuIEFzIHN1Y2gsIHRoZXkgbWF5IGNob29zZSB0byBoYW5k bGUgaXNzdWVzIChsaWtlCj4gPiArICogcmUtdHJhaW5pbmcgYSBsaW5rKSB3aXRob3V0IHVzZXJz cGFjZSdzIGludGVydmVudGlvbi4KPiA+ICsgKgo+ID4gKyAqIFRoZSByZWFzb24gZm9yIGFkZGlu ZyB0aGlzIHByb3BlcnR5IGlzIHRvIGhhbmRsZSBsaW5rIHRyYWluaW5nIGZhaWx1cmVzLCBidXQK PiA+ICsgKiBpdCBpcyBub3QgbGltaXRlZCB0byBEUCBvciBsaW5rIHRyYWluaW5nLiBGb3IgZXhh bXBsZSwgaWYgd2UgaW1wbGVtZW50Cj4gPiArICogYXN5bmNocm9ub3VzIHNldGNydGMsIHRoaXMg cHJvcGVydHkgY2FuIGJlIHVzZWQgdG8gcmVwb3J0IGFueSBmYWlsdXJlcyBpbiB0aGF0Lgo+ID4g KyAqLwo+ID4gK3ZvaWQgZHJtX21vZGVfY29ubmVjdG9yX3NldF9saW5rX3N0YXR1c19wcm9wZXJ0 eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+IAo+IEhtLCB0aW55IG5ldyBiaWtl c2hlZDogSSdkIGRyb3AgdGhlIF9wcm9wZXJ0eSBwb3N0Zml4IGhlcmUuIFRoZSBmdW5jdGlvbgo+ IG5hbWUgaXMgYWxyZWFkeSByZWFsbHkgbG9uZyBhcy1pcywgYW5kIHRoZSBmYWN0IHRoYXQgdGhl IGxpbmsgc3RhdHVzIGlzCj4gZXhwb3NlZCBhcyBhIHByb3BlcnR5IGlzIGtpbmRhIGlycmVsZXZh bnQgZm9yIGtlcm5lbCBkcml2ZXIgd3JpdGVycy4gQnV0Cj4gdXAgdG8geW91Lgo+IC1EYW5pZWwK PgoKSSBkZWNpZGVkIHRvIG5hbWUgaXQgYXMgZHJtX21vZGVfY29ubmVjdG9yX3NldF9saW5rX3N0 YXR1c19wcm9wZXJ0eSgpCmxvb2tpbmcgYXQgbmFtZXMgb2Ygb3RoZXIgc2V0X3Byb3BlcnR5IGZ1 bmN0aW9ucyBsaWtlCmRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eSgpIG9y IGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfcGF0aF9wcm9wZXJ0eSgpLgpUaGF0cyB3aHkgSSB0aGlu ayBpdCBtYWtlcyBzZW5zZSB0byBhcHBlbmQgaXQgd2l0aCBwcm9wZXJ0eSBqdXN0IHRvIGJlIGNv bnNpc3RlbnQuCgpNYW5hc2kKCiAKPiA+ICsJCQkJCQkgdWludDY0X3QgbGlua19zdGF0dXMpCj4g PiArewo+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5kZXY7Cj4gPiAr Cj4gPiArCWRybV9tb2Rlc2V0X2xvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRl eCwgTlVMTCk7Cj4gPiArCWNvbm5lY3Rvci0+c3RhdGUtPmxpbmtfc3RhdHVzID0gbGlua19zdGF0 dXM7Cj4gPiArCWRybV9tb2Rlc2V0X3VubG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9u X211dGV4KTsKPiA+ICsKPiA+ICt9Cj4gPiArRVhQT1JUX1NZTUJPTChkcm1fbW9kZV9jb25uZWN0 b3Jfc2V0X2xpbmtfc3RhdHVzX3Byb3BlcnR5KTsKPiA+ICsKPiA+ICBpbnQgZHJtX21vZGVfY29u bmVjdG9yX3NldF9vYmpfcHJvcChzdHJ1Y3QgZHJtX21vZGVfb2JqZWN0ICpvYmosCj4gPiAgCQkJ CSAgICBzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpwcm9wZXJ0eSwKPiA+ICAJCQkJICAgIHVpbnQ2NF90 IHZhbHVlKQo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBiL2lu Y2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+ID4gaW5kZXggMzRmOTc0MS4uNTNjNWY3MCAxMDA2 NDQKPiA+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+ID4gKysrIGIvaW5jbHVk ZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gPiBAQCAtOTAsNiArOTAsMTcgQEAgZW51bSBzdWJwaXhl bF9vcmRlciB7Cj4gPiAgfTsKPiA+ICAKPiA+ICAvKioKPiA+ICsgKiBlbnVtIGRybV9saW5rX3N0 YXR1cyAtIGNvbm5lY3RvcidzIGxpbmtfc3RhdHVzIHByb3BlcnR5IHZhbHVlCj4gPiArICoKPiA+ ICsgKiBUaGlzIGVudW0gaXMgdXNlZCBhcyB0aGUgY29ubmVjdG9yJ3MgbGluayBzdGF0dXMgcHJv cGVydHkgdmFsdWUuCj4gPiArICogSXQgaXMgc2V0IHRvIHRoZSB2YWx1ZXMgZGVmaW5lZCBpbiB1 YXBpLgo+ID4gKyAqLwo+ID4gK2VudW0gZHJtX2xpbmtfc3RhdHVzIHsKPiA+ICsJRFJNX0xJTktf U1RBVFVTX0dPT0QgPSBEUk1fTU9ERV9MSU5LX1NUQVRVU19HT09ELAo+ID4gKwlEUk1fTElOS19T VEFUVVNfQkFEID0gRFJNX01PREVfTElOS19TVEFUVVNfQkFELAo+ID4gK307Cj4gPiArCj4gPiAr LyoqCj4gPiAgICogc3RydWN0IGRybV9kaXNwbGF5X2luZm8gLSBydW50aW1lIGRhdGEgYWJvdXQg dGhlIGNvbm5lY3RlZCBzaW5rCj4gPiAgICoKPiA+ICAgKiBEZXNjcmliZXMgYSBnaXZlbiBkaXNw bGF5IChlLmcuIENSVCBvciBmbGF0IHBhbmVsKSBhbmQgaXRzIGxpbWl0YXRpb25zLiBGb3IKPiA+ IEBAIC0yMTMsNiArMjI0LDEyIEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlIHsKPiA+ICAK PiA+ICAJc3RydWN0IGRybV9lbmNvZGVyICpiZXN0X2VuY29kZXI7Cj4gPiAgCj4gPiArCS8qKgo+ ID4gKwkgKiBAbGlua19zdGF0dXM6IENvbm5lY3RvciBsaW5rX3N0YXR1cyB0byBrZWVwIHRyYWNr IG9mIHdoZXRoZXIgbGluayBpcwo+ID4gKwkgKiBHT09EIG9yIEJBRCB0byBub3RpZnkgdXNlcnNw YWNlIGlmIHJldHJhaW5pbmcgaXMgbmVjZXNzYXJ5Lgo+ID4gKwkgKi8KPiA+ICsJZW51bSBkcm1f bGlua19zdGF0dXMgbGlua19zdGF0dXM7Cj4gPiArCj4gPiAgCXN0cnVjdCBkcm1fYXRvbWljX3N0 YXRlICpzdGF0ZTsKPiA+ICB9Owo+ID4gIAo+ID4gQEAgLTc3Myw2ICs3OTAsOCBAQCBpbnQgZHJt X21vZGVfY29ubmVjdG9yX3NldF9wYXRoX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpj b25uZWN0b3IsCj4gPiAgaW50IGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfdGlsZV9wcm9wZXJ0eShz dHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPiA+ICBpbnQgZHJtX21vZGVfY29ubmVj dG9yX3VwZGF0ZV9lZGlkX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is Cj4gPiAgCQkJCQkgICAgY29uc3Qgc3RydWN0IGVkaWQgKmVkaWQpOwo+ID4gK3ZvaWQgZHJtX21v ZGVfY29ubmVjdG9yX3NldF9saW5rX3N0YXR1c19wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLAo+ID4gKwkJCQkJCSB1aW50NjRfdCBsaW5rX3N0YXR1cyk7Cj4gPiAgCj4g PiAgLyoqCj4gPiAgICogc3RydWN0IGRybV90aWxlX2dyb3VwIC0gVGlsZSBncm91cCBtZXRhZGF0 YQo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oIGIvaW5jbHVk ZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKPiA+IGluZGV4IGJmOTk5MWIuLjg2ZmFlZTQgMTAwNjQ0 Cj4gPiAtLS0gYS9pbmNsdWRlL2RybS9kcm1fbW9kZV9jb25maWcuaAo+ID4gKysrIGIvaW5jbHVk ZS9kcm0vZHJtX21vZGVfY29uZmlnLmgKPiA+IEBAIC00MzEsNiArNDMxLDExIEBAIHN0cnVjdCBk cm1fbW9kZV9jb25maWcgewo+ID4gIAkgKi8KPiA+ICAJc3RydWN0IGRybV9wcm9wZXJ0eSAqdGls ZV9wcm9wZXJ0eTsKPiA+ICAJLyoqCj4gPiArCSAqIEBsaW5rX3N0YXR1c19wcm9wZXJ0eTogRGVm YXVsdCBjb25uZWN0b3IgcHJvcGVydHkgZm9yIGxpbmsgc3RhdHVzCj4gPiArCSAqIG9mIGEgY29u bmVjdG9yCj4gPiArCSAqLwo+ID4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpsaW5rX3N0YXR1c19w cm9wZXJ0eTsKPiA+ICsJLyoqCj4gPiAgCSAqIEBwbGFuZV90eXBlX3Byb3BlcnR5OiBEZWZhdWx0 IHBsYW5lIHByb3BlcnR5IHRvIGRpZmZlcmVudGlhdGUKPiA+ICAJICogQ1VSU09SLCBQUklNQVJZ IGFuZCBPVkVSTEFZIGxlZ2FjeSB1c2VzIG9mIHBsYW5lcy4KPiA+ICAJICovCj4gPiBkaWZmIC0t Z2l0IGEvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm1f bW9kZS5oCj4gPiBpbmRleCA3Mjg3OTBiLi4zMDljNDc4IDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVk ZS91YXBpL2RybS9kcm1fbW9kZS5oCj4gPiArKysgYi9pbmNsdWRlL3VhcGkvZHJtL2RybV9tb2Rl LmgKPiA+IEBAIC0xMjMsNiArMTIzLDEwIEBACj4gPiAgI2RlZmluZSBEUk1fTU9ERV9ESVJUWV9P TiAgICAgICAxCj4gPiAgI2RlZmluZSBEUk1fTU9ERV9ESVJUWV9BTk5PVEFURSAyCj4gPiAgCj4g PiArLyogTGluayBTdGF0dXMgb3B0aW9ucyAqLwo+ID4gKyNkZWZpbmUgRFJNX01PREVfTElOS19T VEFUVVNfR09PRAkwCj4gPiArI2RlZmluZSBEUk1fTU9ERV9MSU5LX1NUQVRVU19CQUQJMQo+ID4g Kwo+ID4gIHN0cnVjdCBkcm1fbW9kZV9tb2RlaW5mbyB7Cj4gPiAgCV9fdTMyIGNsb2NrOwo+ID4g IAlfX3UxNiBoZGlzcGxheTsKPiA+IC0tIAo+ID4gMS45LjEKPiA+IAo+ID4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IEludGVsLWdmeCBtYWlsaW5n IGxpc3QKPiA+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+IGh0dHBzOi8vbGlz dHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cj4gCj4gLS0gCj4g RGFuaWVsIFZldHRlcgo+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+IGh0 dHA6Ly9ibG9nLmZmd2xsLmNoCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3RzLmZy ZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlz dGluZm8vZHJpLWRldmVsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9w Lm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVs LWdmeAo=