From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH RFC v3] drm: Add a new connector atomic property for link status Date: Mon, 28 Nov 2016 17:07:52 -0800 Message-ID: <20161129010752.GC22681@intel.com> References: <1479955123-743-1-git-send-email-manasi.d.navare@intel.com> <1479972501-18334-1-git-send-email-manasi.d.navare@intel.com> <20161124075135.vs7tn2kjvbpefjwt@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: <20161124075135.vs7tn2kjvbpefjwt@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Daniel Vetter , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gVGh1LCBOb3YgMjQsIDIwMTYgYXQgMDg6NTE6MzVBTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBXZWQsIE5vdiAyMywgMjAxNiBhdCAxMToyODoyMVBNIC0wODAwLCBNYW5hc2kg TmF2YXJlIHdyb3RlOgo+ID4gVGhpcyBpcyBSRkMgcGF0Y2ggZm9yIGFkZGluZyBhIGNvbm5lY3Rv ciBsaW5rLXN0YXR1cyBwcm9wZXJ0eQo+ID4gYW5kIG1ha2luZyBpdCBhdG9taWMgYnkgYWRkaW5n IGl0IHRvIHRoZSBkcm1fY29ubmVjdG9yX3N0YXRlLgo+ID4gVGhpcyBpcyB0byBtYWtlIHN1cmUg aXRzIHdpcmVkIHByb3Blcmx5IGluIGRybV9hdG9taWNfY29ubmVjdG9yX3NldF9wcm9wZXJ0eQo+ ID4gYW5kIGRybV9hdG9taWNfY29ubmVjdG9yX2dldF9wcm9wZXJ0eSBmdW5jdGlvbnMuCj4gPiAK PiA+IHYzOgo+ID4gKiBGaXhlZCBhIGJ1aWxkIGVycm9yIChKYW5pIFNhYXJpbmVuKQo+ID4gdjI6 Cj4gPiAqIFJlbW92ZWQgY29ubmVjdG9yLT5saW5rX3N0YXR1cyAoRGFuaWVsIFZldHRlcikKPiA+ ICogU2V0IGNvbm5lY3Rvci0+c3RhdGUtPmxpbmtfc3RhdHVzIGluIGRybV9tb2RlX2Nvbm5lY3Rv cl9zZXRfbGlua19zdGF0dXNfcHJvcGVydHkKPiA+IChEYW5pZWwgVmV0dGVyKQo+ID4gKiBTZXQg dGhlIGNvbm5lY3Rvcl9jaGFuZ2VkIGZsYWcgdG8gdHJ1ZSBpZiBjb25uZWN0b3ItPnN0YXRlLT5s aW5rX3N0YXR1cyBjaGFuZ2VkLgo+ID4gKiBSZXNldCBsaW5rX3N0YXR1cyB0byBHT09EIGluIHVw ZGF0ZV9vdXRwdXRfc3RhdGUgKERhbmllbCBWZXR0ZXIpCj4gPiAqIE5ldmVyIGFsbG93IHVzZXJz cGFjZSB0byBzZXQgbGluayBzdGF0dXMgZnJvbSBHb29kIFRvIEJhZCAoRGFuaWVsIFZldHRlcikK PiA+IAo+ID4gQ2M6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+Cj4g PiBDYzogRGFuaWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBpbnRlbC5jb20+Cj4gPiBDYzogVmls bGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiBDYzogQ2hyaXMg V2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gPiBDYzogU2VhbiBQYXVsIDxzZWFu cGF1bEBjaHJvbWl1bS5vcmc+Cj4gCj4gWW91IGxvc3QgYWxsIHRoZSBhY2tlZC1ieSBmcm9tIEFN RCBhYm91dCB0aGUgbGluay1zdGF0dXMgcHJvcGVydHkuIFdlIG5lZWQKPiB0aG9zZS4KPiAKPiA+ IFNpZ25lZC1vZmYtYnk6IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+ Cj4gCj4gWWVhaCBJIHRoaW5rIHRoaXMgc2hvdWxkIHdvcmssIGJ1dCBvYnZpb3VzbHkgdGVzdGlu ZyBoYXMgdGhlIGZpbmFsIHNheS4KPiBTb21lIG5pdHBpY2tzIGJlbG93LCB0aGVuIGl0J3Mgci1i OiBtZS4gQnV0IEkgdGhpbmsgd2UgYWxzbyBuZWVkIHRvIHBvbGlzaAo+IHRoZSBrZXJuZWwtZG9j IGEgYml0IG1vcmUgdG8gYWRkcmVzcyBTZWFuIFBhdWwncyBxdWVzdGlvbnMuCj4gLURhbmllbAo+ CgpJIHRlc3RlZCBpdCB3aXRoIFNOQSBkcml2ZXIgd2l0aCBDaHJpcydzIGNoYW5nZXMgdG8gcmVh ZCB0aGUgbGluay1zdGF0dXMKcHJvcGVydHksIGJ1dCBJdCBpcyBub3QgYWJsZSB0byBkZXRlY3Qg dGhlIGxpbmstc3RhdHVzIHByb3BlcnR5IGJlaW5nIHNldCB0byBCQUQKYW5kIGhlbmNlIGl0IGRv ZXMgbm90IHRyaWdnZXIgYSBuZXcgbW9kZXNldC4KRG8gd2UgbmVlZCB0byBtYWtlIGFueSBjaGFu Z2VzIHRvIHRoZSBTTkEgZHJpdmVyIG5vdyB0aGF0IHRoaXMgaXMgbWFkZSBhIEFUT01JQwpwcm9w ZXJ0eSBzbyB0aGF0IEdFVENPTk5FQ1RPUiBJT0NUTCBjYW4gc3RpbGwgcmVhZCB0aGUgY29ycmVj dCB2YWx1ZQpvZiB0aGlzIHByb3BlcnR5IHRocm91Z2h0IGRybV9hdG9taWNfZ2V0X3Byb3BlcnR5 KCkgaW50ZXJmYWNlPwoKQ2hyaXMsIERhbmllbCwgYW55IHRob3VnaHRzPyAKCk1hbmFzaQo+ID4g LS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAgfCAxMCArKysrKysK PiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8ICA4ICsrKysrCj4gPiAg ZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyAgICAgfCA2MSArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKystCj4gPiAgaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oICAg ICAgICAgfCAxOCArKysrKysrKysrLQo+ID4gIGluY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5o ICAgICAgIHwgIDUgKysrCj4gPiAgaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oICAgICAgICAg fCAgNCArKysKPiA+ICA2IGZpbGVzIGNoYW5nZWQsIDEwNCBpbnNlcnRpb25zKCspLCAyIGRlbGV0 aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMu YyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMKPiA+IGluZGV4IDg5NzM3ZTQuLjk5MGYw MTMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pYy5jCj4gPiBAQCAtMTA4Nyw2ICsxMDg3LDE0IEBA IGludCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvciwKPiA+ICAJCSAqIG5vdz8pIGF0b21pYyB3cml0ZXMgdG8gRFBNUyBwcm9w ZXJ0eToKPiA+ICAJCSAqLwo+ID4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gPiArCX0gZWxzZSBpZiAo cHJvcGVydHkgPT0gY29uZmlnLT5saW5rX3N0YXR1c19wcm9wZXJ0eSkgewo+ID4gKwkJLyogTmV2 ZXIgZG93bmdyYWRlIGZyb20gR09PRCB0byBCQUQgb24gdXNlcnNwYWNlJ3MgcmVxdWVzdCBoZXJl LAo+ID4gKwkJICogb25seSBodyBpc3N1ZXMgY2FuIGRvIHRoYXQuCj4gPiArCQkgKi8KPiA+ICsJ CWlmIChzdGF0ZS0+bGlua19zdGF0dXMgPT0gRFJNX0xJTktfU1RBVFVTX0dPT0QpCj4gPiArCQkJ cmV0dXJuIDA7Cj4gPiArCQlzdGF0ZS0+bGlua19zdGF0dXMgPSB2YWw7Cj4gPiArCQlyZXR1cm4g MDsKPiA+ICAJfSBlbHNlIGlmIChjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3BlcnR5 KSB7Cj4gPiAgCQlyZXR1cm4gY29ubmVjdG9yLT5mdW5jcy0+YXRvbWljX3NldF9wcm9wZXJ0eShj b25uZWN0b3IsCj4gPiAgCQkJCXN0YXRlLCBwcm9wZXJ0eSwgdmFsKTsKPiA+IEBAIC0xMTM1LDYg KzExNDMsOCBAQCBzdGF0aWMgdm9pZCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9wcmludF9zdGF0ZShz dHJ1Y3QgZHJtX3ByaW50ZXIgKnAsCj4gPiAgCQkqdmFsID0gKHN0YXRlLT5jcnRjKSA/IHN0YXRl LT5jcnRjLT5iYXNlLmlkIDogMDsKPiA+ICAJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25maWct PmRwbXNfcHJvcGVydHkpIHsKPiA+ICAJCSp2YWwgPSBjb25uZWN0b3ItPmRwbXM7Cj4gPiArCX0g ZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT5saW5rX3N0YXR1c19wcm9wZXJ0eSkgewo+ID4g KwkJKnZhbCA9IHN0YXRlLT5saW5rX3N0YXR1czsKPiA+ICAJfSBlbHNlIGlmIChjb25uZWN0b3It PmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KSB7Cj4gPiAgCQlyZXR1cm4gY29ubmVjdG9yLT5m dW5jcy0+YXRvbWljX2dldF9wcm9wZXJ0eShjb25uZWN0b3IsCj4gPiAgCQkJCXN0YXRlLCBwcm9w ZXJ0eSwgdmFsKTsKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19o ZWxwZXIuYyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gPiBpbmRleCA0 OTQ2ODBjLi45NjJlZDY2IDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfaGVscGVyLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5j Cj4gPiBAQCAtNTE5LDYgKzUxOSwxMyBAQCBzdGF0aWMgaW50IGhhbmRsZV9jb25mbGljdGluZ19l bmNvZGVycyhzdHJ1Y3QgZHJtX2F0b21pY19zdGF0ZSAqc3RhdGUsCj4gPiAgCQkJCQkgICAgICAg Y29ubmVjdG9yX3N0YXRlKTsKPiA+ICAJCWlmIChyZXQpCj4gPiAgCQkJcmV0dXJuIHJldDsKPiA+ ICsJCWlmIChjb25uZWN0b3ItPnN0YXRlLT5jcnRjKSB7Cj4gPiArCQkJY3J0Y19zdGF0ZSA9IGRy bV9hdG9taWNfZ2V0X2V4aXN0aW5nX2NydGNfc3RhdGUoc3RhdGUsCj4gPiArCQkJCQkJCQkJY29u bmVjdG9yLT5zdGF0ZS0+Y3J0Yyk7Cj4gPiArCQkJaWYgKGNvbm5lY3Rvci0+c3RhdGUtPmxpbmtf c3RhdHVzICE9Cj4gPiArCQkJICAgIGNvbm5lY3Rvcl9zdGF0ZS0+bGlua19zdGF0dXMpCj4gPiAr CQkJCWNydGNfc3RhdGUtPmNvbm5lY3RvcnNfY2hhbmdlZCA9IHRydWU7Cj4gPiArCQl9Cj4gCj4g V2h5IGhpZGUgdGhpcyBoZXJlIGluIGhhbmRsZV9jb25mbGljdGluZ19lbmNvZGVycz8gVGhpcyBp cyBhIGJpdAo+IGNvbmZ1c2luZy4gSSdkIG1vdmUgaXQgaW50byB0aGUgY29ubmVjdG9yIGxvb3Ag aW4KPiBkcm1fYXRvbWljX2hlbHBlcl9jaGVja19tb2Rlc2V0KCkuCj4gPiAgCX0KPiA+ICAKPiA+ ICAJLyoKPiA+IEBAIC0yMjU4LDYgKzIyNjUsNyBAQCBzdGF0aWMgaW50IHVwZGF0ZV9vdXRwdXRf c3RhdGUoc3RydWN0IGRybV9hdG9taWNfc3RhdGUgKnN0YXRlLAo+ID4gIAkJCQkJCQkJTlVMTCk7 Cj4gPiAgCQkJaWYgKHJldCkKPiA+ICAJCQkJcmV0dXJuIHJldDsKPiA+ICsJCQljb25uX3N0YXRl LT5saW5rX3N0YXR1cyA9IERSTV9MSU5LX1NUQVRVU19HT09EOwo+ID4gIAkJfQo+ID4gIAl9Cj4g PiAgCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyBiL2Ry aXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiA+IGluZGV4IDVhNDUyNjIuLmNkNTNjMzkg MTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4gPiBAQCAtMjQzLDYgKzI0MywxMCBA QCBpbnQgZHJtX2Nvbm5lY3Rvcl9pbml0KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsCj4gPiAgCWRy bV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCj4gPiAgCQkJCSAgICAg IGNvbmZpZy0+ZHBtc19wcm9wZXJ0eSwgMCk7Cj4gPiAgCj4gPiArCWRybV9vYmplY3RfYXR0YWNo X3Byb3BlcnR5KCZjb25uZWN0b3ItPmJhc2UsCj4gPiArCQkJCSAgIGNvbmZpZy0+bGlua19zdGF0 dXNfcHJvcGVydHksCj4gPiArCQkJCSAgIDApOwo+ID4gKwo+ID4gIAlpZiAoZHJtX2NvcmVfY2hl Y2tfZmVhdHVyZShkZXYsIERSSVZFUl9BVE9NSUMpKSB7Cj4gPiAgCQlkcm1fb2JqZWN0X2F0dGFj aF9wcm9wZXJ0eSgmY29ubmVjdG9yLT5iYXNlLCBjb25maWctPnByb3BfY3J0Y19pZCwgMCk7Cj4g PiAgCX0KPiA+IEBAIC01MDYsNiArNTEwLDEyIEBAIGNvbnN0IGNoYXIgKmRybV9nZXRfc3VicGl4 ZWxfb3JkZXJfbmFtZShlbnVtIHN1YnBpeGVsX29yZGVyIG9yZGVyKQo+ID4gIH07Cj4gPiAgRFJN X0VOVU1fTkFNRV9GTihkcm1fZ2V0X2RwbXNfbmFtZSwgZHJtX2RwbXNfZW51bV9saXN0KQo+ID4g IAo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3Byb3BfZW51bV9saXN0IGRybV9saW5rX3N0 YXR1c19lbnVtX2xpc3RbXSA9IHsKPiA+ICsJeyBEUk1fTU9ERV9MSU5LX1NUQVRVU19HT09ELCAi R29vZCIgfSwKPiA+ICsJeyBEUk1fTU9ERV9MSU5LX1NUQVRVU19CQUQsICJCYWQiIH0sCj4gPiAr fTsKPiA+ICtEUk1fRU5VTV9OQU1FX0ZOKGRybV9nZXRfbGlua19zdGF0dXNfbmFtZSwgZHJtX2xp bmtfc3RhdHVzX2VudW1fbGlzdCkKPiA+ICsKPiA+ICAvKioKPiA+ICAgKiBkcm1fZGlzcGxheV9p bmZvX3NldF9idXNfZm9ybWF0cyAtIHNldCB0aGUgc3VwcG9ydGVkIGJ1cyBmb3JtYXRzCj4gPiAg ICogQGluZm86IGRpc3BsYXkgaW5mbyB0byBzdG9yZSBidXMgZm9ybWF0cyBpbgo+ID4gQEAgLTYy NSw3ICs2MzUsMTQgQEAgaW50IGRybV9kaXNwbGF5X2luZm9fc2V0X2J1c19mb3JtYXRzKHN0cnVj dCBkcm1fZGlzcGxheV9pbmZvICppbmZvLAo+ID4gICAqIAl0aWxpbmcgYW5kIHZpcnR1YWxpemUg Ym90aCAmZHJtX2NydGMgYW5kICZkcm1fcGxhbmUgaWYgbmVlZGVkLiBEcml2ZXJzCj4gPiAgICog CXNob3VsZCB1cGRhdGUgdGhpcyB2YWx1ZSB1c2luZyBkcm1fbW9kZV9jb25uZWN0b3Jfc2V0X3Rp bGVfcHJvcGVydHkoKS4KPiA+ICAgKiAJVXNlcnNwYWNlIGNhbm5vdCBjaGFuZ2UgdGhpcyBwcm9w ZXJ0eS4KPiA+IC0gKgo+ID4gKyAqIGxpbmstc3RhdHVzOgo+ID4gKyAqICAgICAgQ29ubmVjdG9y IGxpbmstc3RhdHVzIHByb3BlcnR5IHRvIGluZGljYXRlIHRoZSBzdGF0dXMgb2YgbGluayBkdXJp bmcKPiA+ICsgKiAgICAgIHRoZSBtb2Rlc2V0LiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiBsaW5rLXN0 YXR1cyBpcyAiR09PRCIuIElmIHNvbWV0aGluZwo+ID4gKyAqICAgICAgZmFpbHMgZHVyaW5nIG1v ZGVzZXQsIHRoZSBrZXJuZWwgZHJpdmVyIGNhbiBzZXQgdGhpcyB0byAiQkFEIiwgcHJ1bmUKPiA+ ICsgKiAgICAgIHRoZSBtb2RlIGxpc3QgYmFzZWQgb24gbmV3IGxpbmsgcGFyYW1ldGVycyBhbmQg c2VuZCBhIGhvdHBsdWcgdWV2ZW50Cj4gPiArICogICAgICB0byBub3RpZnkgdXNlcnNwYWNlIHRv IHJlLWNoZWNrIHRoZSB2YWxpZCBtb2RlcyB0aHJvdWdoIEdFVF9DT05ORUNUT1IKPiA+ICsgKiAg ICAgIElPQ1RMIGFuZCByZWRvIGEgbW9kZXNldC4gRHJpdmVycyBzaG91bGQgdXBkYXRlIHRoaXMg dmFsdWUgdXNpbmcKPiA+ICsgKiAgICAgIGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfbGlua19zdGF0 dXNfcHJvcGVydHkoKS4KPiAKPiBQbGVhc2UgbGVhdmUgdGhlIGVtcHR5IGxpbmUgaGVyZSBhZnRl ciB0aGUgZGVmaW5pdGlvbiBsaXN0LCBmb3IgYmV0dGVyCj4gbGF5b3V0LiBBbHNvIEkgdGhvdWdo dCB0aGVyZSB3ZXJlIHNvbWUgY29tbWVudHMgZnJvbSBTZWFuIFBhdWwgdGhhdCB0aGUKPiBrZXJu ZWwtZG9jIHdhcyBjb25mdXNpbmcsIGhhdmUgeW91IHdvcmtlZCB0b2dldGhlciB3aXRoIGhpbSB0 byBhZGRyZXNzCj4gdGhpcz8KPiAKPiA+ICAgKiBDb25uZWN0b3JzIGFsc28gaGF2ZSBvbmUgc3Rh bmRhcmRpemVkIGF0b21pYyBwcm9wZXJ0eToKPiA+ICAgKgo+ID4gICAqIENSVENfSUQ6Cj4gPiBA QCAtNjY2LDYgKzY4MywxMyBAQCBpbnQgZHJtX2Nvbm5lY3Rvcl9jcmVhdGVfc3RhbmRhcmRfcHJv cGVydGllcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+ID4gIAkJcmV0dXJuIC1FTk9NRU07Cj4g PiAgCWRldi0+bW9kZV9jb25maWcudGlsZV9wcm9wZXJ0eSA9IHByb3A7Cj4gPiAgCj4gPiArCXBy b3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX2VudW0oZGV2LCBEUk1fTU9ERV9QUk9QX0FUT01JQywg Imxpbmstc3RhdHVzIiwKPiA+ICsJCQkJCWRybV9saW5rX3N0YXR1c19lbnVtX2xpc3QsCj4gPiAr CQkJCQlBUlJBWV9TSVpFKGRybV9saW5rX3N0YXR1c19lbnVtX2xpc3QpKTsKPiA+ICsJaWYgKCFw cm9wKQo+ID4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gPiArCWRldi0+bW9kZV9jb25maWcubGlua19z dGF0dXNfcHJvcGVydHkgPSBwcm9wOwo+ID4gKwo+ID4gIAlyZXR1cm4gMDsKPiA+ICB9Cj4gPiAg Cj4gPiBAQCAtOTk1LDYgKzEwMTksNDEgQEAgaW50IGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVf ZWRpZF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gIH0KPiA+ ICBFWFBPUlRfU1lNQk9MKGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eSk7 Cj4gPiAgCj4gPiArLyoqCj4gPiArICogZHJtX21vZGVfY29ubmVjdG9yX3NldF9saW5rX3N0YXR1 c19wcm9wZXJ0eSAtIFNldCBsaW5rIHN0YXR1cyBwcm9wZXJ0eSBvZiBhIGNvbm5lY3Rvcgo+ID4g KyAqIEBjb25uZWN0b3I6IGRybSBjb25uZWN0b3IKPiA+ICsgKiBAbGlua19zdGF0dXM6IG5ldyB2 YWx1ZSBvZiBsaW5rIHN0YXR1cyBwcm9wZXJ0eSAoMDogR29vZCwgMTogQmFkKQo+ID4gKyAqCj4g PiArICogSW4gdXN1YWwgd29ya2luZyBzY2VuYXJpbywgdGhpcyBsaW5rIHN0YXR1cyBwcm9wZXJ0 eSB3aWxsIGFsd2F5cyBiZSBzZXQgdG8KPiA+ICsgKiAiR09PRCIuIElmIHNvbWV0aGluZyBmYWls cyBkdXJpbmcgb3IgYWZ0ZXIgYSBtb2RlIHNldCwgdGhlIGtlcm5lbCBkcml2ZXIgc2hvdWxkCj4g PiArICogc2V0IHRoaXMgbGluayBzdGF0dXMgcHJvcGVydHkgdG8gIkJBRCIgYW5kIHBydW5lIHRo ZSBtb2RlIGxpc3QgYmFzZWQgb24gbmV3Cj4gPiArICogaW5mb3JtYXRpb24uIFRoZSBjYWxsZXIg dGhlbiBuZWVkcyB0byBzZW5kIGEgaG90cGx1ZyB1ZXZlbnQgZm9yIHVzZXJzcGFjZSB0bwo+ID4g KyAqICByZS1jaGVjayB0aGUgdmFsaWQgbW9kZXMgdGhyb3VnaCBHRVRfQ09OTkVDVE9SX0lPQ1RM IGFuZCByZXRyeSBtb2Rlc2V0Lgo+ID4gKyAqCj4gPiArICogTm90ZSB0aGF0IGEgbG90IG9mIGV4 aXN0aW5nIHVzZXJzcGFjZSBkbyBub3QgaGFuZGxlIHRoaXMgcHJvcGVydHkuCj4gPiArICogRHJp dmVycyBjYW4gdGhlcmVmb3JlIG5vdCByZWx5IG9uIHVzZXJzcGFjZSB0byBmaXggdXAgZXZlcnl0 aGluZyBhbmQKPiA+ICsgKiBzaG91bGQgdHJ5IHRvIGhhbmRsZSBpc3N1ZXMgKGxpa2UganVzdCBy ZS10cmFpbmluZyBhIGxpbmspIHdpdGhvdXQKPiA+ICsgKiB1c2Vyc3BhY2UncyBpbnRlcnZlbnRp b24uIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCB3aGVuIHRoZSBjdXJyZW50IG1vZGUKPiA+ICsg KiBmYWlscyBhbmQgdXNlcnNwYWNlIG11c3Qgc2VsZWN0IGEgZGlmZmVyZW50IGRpc3BsYXkgbW9k ZS4KPiA+ICsgKiBUaGUgRFJNIGRyaXZlciBjYW4gY2hvc2UgdG8gbm90IG1vZGlmeSBwcm9wZXJ0 eSBhbmQga2VlcCBsaW5rIHN0YXR1cwo+ID4gKyAqIGFzICJHT09EIiBhbHdheXMgdG8ga2VlcCB0 aGUgdXNlciBleHBlcmllbmNlIHNhbWUgYXMgaXQgY3VycmVudGx5IGlzLgo+ID4gKyAqCj4gPiAr ICogVGhlIHJlYXNvbiBmb3IgYWRkaW5nIHRoaXMgcHJvcGVydHkgaXMgdG8gaGFuZGxlIGxpbmsg dHJhaW5pbmcgZmFpbHVyZXMsIGJ1dAo+ID4gKyAqIGl0IGlzIG5vdCBsaW1pdGVkIHRvIERQIG9y IGxpbmsgdHJhaW5pbmcuIEZvciBleGFtcGxlLCBpZiB3ZSBpbXBsZW1lbnQKPiA+ICsgKiBhc3lu Y2hyb25vdXMgc2V0Y3J0YywgdGhpcyBwcm9wZXJ0eSBjYW4gYmUgdXNlZCB0byByZXBvcnQgYW55 IGZhaWx1cmVzIGluIHRoYXQuCj4gPiArICovCj4gPiArdm9pZCBkcm1fbW9kZV9jb25uZWN0b3Jf c2V0X2xpbmtfc3RhdHVzX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3Is Cj4gPiArCQkJCQkJIHVpbnQ2NF90IGxpbmtfc3RhdHVzKQo+ID4gK3sKPiA+ICsJc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+ZGV2Owo+ID4gKwo+ID4gKwlkcm1fbW9kZXNldF9s b2NrKCZkZXYtPm1vZGVfY29uZmlnLmNvbm5lY3Rpb25fbXV0ZXgsIE5VTEwpOwo+ID4gKwljb25u ZWN0b3ItPnN0YXRlLT5saW5rX3N0YXR1cyA9IGxpbmtfc3RhdHVzOwo+ID4gKwlkcm1fbW9kZXNl dF91bmxvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCk7Cj4gPiArCj4gPiAr fQo+ID4gK0VYUE9SVF9TWU1CT0woZHJtX21vZGVfY29ubmVjdG9yX3NldF9saW5rX3N0YXR1c19w cm9wZXJ0eSk7Cj4gPiArCj4gPiAgaW50IGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfb2JqX3Byb3Ao c3RydWN0IGRybV9tb2RlX29iamVjdCAqb2JqLAo+ID4gIAkJCQkgICAgc3RydWN0IGRybV9wcm9w ZXJ0eSAqcHJvcGVydHksCj4gPiAgCQkJCSAgICB1aW50NjRfdCB2YWx1ZSkKPiA+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggYi9pbmNsdWRlL2RybS9kcm1fY29ubmVj dG9yLmgKPiA+IGluZGV4IDM0Zjk3NDEuLmJhMjJlZDEgMTAwNjQ0Cj4gPiAtLS0gYS9pbmNsdWRl L2RybS9kcm1fY29ubmVjdG9yLmgKPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3Iu aAo+ID4gQEAgLTkwLDYgKzkwLDE3IEBAIGVudW0gc3VicGl4ZWxfb3JkZXIgewo+ID4gIH07Cj4g PiAgCj4gPiAgLyoqCj4gPiArICogZW51bSBkcm1fbGlua19zdGF0dXMgLSBjb25uZWN0b3IncyBs aW5rX3N0YXR1cyBwcm9wZXJ0eSB2YWx1ZQo+ID4gKyAqCj4gPiArICogVGhpcyBlbnVtIGlzIHVz ZWQgYXMgdGhlIGNvbm5lY3RvcidzIGxpbmsgc3RhdHVzIHByb3BlcnR5IHZhbHVlLgo+ID4gKyAq IEl0IGlzIHNldCB0byB0aGUgdmFsdWVzIGRlZmluZWQgaW4gdWFwaS4KPiA+ICsgKi8KPiA+ICtl bnVtIGRybV9saW5rX3N0YXR1cyB7Cj4gPiArCURSTV9MSU5LX1NUQVRVU19HT09EID0gRFJNX01P REVfTElOS19TVEFUVVNfR09PRCwKPiA+ICsJRFJNX0xJTktfU1RBVFVTX0JBRCA9IERSTV9NT0RF X0xJTktfU1RBVFVTX0JBRCwKPiA+ICt9Owo+ID4gKwo+ID4gKy8qKgo+ID4gICAqIHN0cnVjdCBk cm1fZGlzcGxheV9pbmZvIC0gcnVudGltZSBkYXRhIGFib3V0IHRoZSBjb25uZWN0ZWQgc2luawo+ ID4gICAqCj4gPiAgICogRGVzY3JpYmVzIGEgZ2l2ZW4gZGlzcGxheSAoZS5nLiBDUlQgb3IgZmxh dCBwYW5lbCkgYW5kIGl0cyBsaW1pdGF0aW9ucy4gRm9yCj4gPiBAQCAtMjEzLDYgKzIyNCw5IEBA IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlIHsKPiA+ICAKPiA+ICAJc3RydWN0IGRybV9lbmNv ZGVyICpiZXN0X2VuY29kZXI7Cj4gPiAgCj4gPiArCS8qIENvbm5lY3RvciBMaW5rIHN0YXR1cyAq Lwo+ID4gKwllbnVtIGRybV9saW5rX3N0YXR1cyBsaW5rX3N0YXR1czsKPiAKPiBtYWtlIGh0bWxk b2NzIHNob3VsZCBjb21wbGFpbiBhYm91dCB0aGUgbWlzc2luZyBrZXJuZWwtZG9jIGhlcmUuIEp1 c3QKPiBjb252ZXJ0IHlvdXIgaW5saW5lIGNvbW1lbnQgaW50byBhIHByb3BlciBrZXJuZWwtZG9j Ogo+IAo+IAkvKioKPiAJICogQGxpbmtfc3RhdHVzOiBDb25uZWN0b3IgbGluayBzdGF0dXMKPiAJ ICovCj4gCj4gQWxzbyBpbiBnZW5lcmFsIGEgY29tbWVudCB0aGF0IGxpdGVyYWxseSBzYXlzIHRo ZSBzYW1lIGFzIHRoZSBjb2RlIGlzbid0Cj4gdXNlZnVsLiBDb21tZW50cyBzaG91bGQgZXhwbGFp biB3aHkgdGhlIGNvZGUgZG9lcyBzb21ldGhpbmcsIG5vdCB3aGF0Cj4gZXhhY3RseSBpdCBkb2Vz IC0gdGhhdCBzaG91bGQgYmUgc2VsZi1ldmlkZW50Lgo+ID4gKwo+ID4gIAlzdHJ1Y3QgZHJtX2F0 b21pY19zdGF0ZSAqc3RhdGU7Cj4gPiAgfTsKPiA+ICAKPiA+IEBAIC02OTUsNiArNzA5LDcgQEAg c3RydWN0IGRybV9jb25uZWN0b3Igewo+ID4gIAl1aW50OF90IG51bV9oX3RpbGUsIG51bV92X3Rp bGU7Cj4gPiAgCXVpbnQ4X3QgdGlsZV9oX2xvYywgdGlsZV92X2xvYzsKPiA+ICAJdWludDE2X3Qg dGlsZV9oX3NpemUsIHRpbGVfdl9zaXplOwo+ID4gKwo+IAo+IFNwdXJpb3VzIHdoaXRlc3BhY2Ug Y2hhbmdlLCBwbHMgY2hlY2sgZm9yIHRoZXNlIGJlZm9yZSBzdWJtaXR0aW5nLiBJIHRoaW5rCj4g dGhpcyBvbmUgaGVyZSBpcyBuZXcuCj4gCj4gPiAgfTsKPiA+ICAKPiA+ICAjZGVmaW5lIG9ial90 b19jb25uZWN0b3IoeCkgY29udGFpbmVyX29mKHgsIHN0cnVjdCBkcm1fY29ubmVjdG9yLCBiYXNl KQo+ID4gQEAgLTc2NywxMiArNzgyLDEzIEBAIGludCBkcm1fbW9kZV9jcmVhdGVfdHZfcHJvcGVy dGllcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ID4gIGludCBkcm1fbW9kZV9jcmVhdGVfc2Nh bGluZ19tb2RlX3Byb3BlcnR5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gIGludCBkcm1f bW9kZV9jcmVhdGVfYXNwZWN0X3JhdGlvX3Byb3BlcnR5KHN0cnVjdCBkcm1fZGV2aWNlICpkZXYp Owo+ID4gIGludCBkcm1fbW9kZV9jcmVhdGVfc3VnZ2VzdGVkX29mZnNldF9wcm9wZXJ0aWVzKHN0 cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4gLQo+IAo+IFNhbWUuCj4gCj4gPiAgaW50IGRybV9t b2RlX2Nvbm5lY3Rvcl9zZXRfcGF0aF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29u bmVjdG9yLAo+ID4gIAkJCQkJIGNvbnN0IGNoYXIgKnBhdGgpOwo+ID4gIGludCBkcm1fbW9kZV9j b25uZWN0b3Jfc2V0X3RpbGVfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3Rv cik7Cj4gPiAgaW50IGRybV9tb2RlX2Nvbm5lY3Rvcl91cGRhdGVfZWRpZF9wcm9wZXJ0eShzdHJ1 Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gIAkJCQkJICAgIGNvbnN0IHN0cnVjdCBl ZGlkICplZGlkKTsKPiA+ICt2b2lkIGRybV9tb2RlX2Nvbm5lY3Rvcl9zZXRfbGlua19zdGF0dXNf cHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ICsJCQkJCQkgdWlu dDY0X3QgbGlua19zdGF0dXMpOwo+ID4gIAo+ID4gIC8qKgo+ID4gICAqIHN0cnVjdCBkcm1fdGls ZV9ncm91cCAtIFRpbGUgZ3JvdXAgbWV0YWRhdGEKPiA+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2Ry bS9kcm1fbW9kZV9jb25maWcuaCBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCj4gPiBp bmRleCBiZjk5OTFiLi44NmZhZWU0IDEwMDY0NAo+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX21v ZGVfY29uZmlnLmgKPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9tb2RlX2NvbmZpZy5oCj4gPiBA QCAtNDMxLDYgKzQzMSwxMSBAQCBzdHJ1Y3QgZHJtX21vZGVfY29uZmlnIHsKPiA+ICAJICovCj4g PiAgCXN0cnVjdCBkcm1fcHJvcGVydHkgKnRpbGVfcHJvcGVydHk7Cj4gPiAgCS8qKgo+ID4gKwkg KiBAbGlua19zdGF0dXNfcHJvcGVydHk6IERlZmF1bHQgY29ubmVjdG9yIHByb3BlcnR5IGZvciBs aW5rIHN0YXR1cwo+ID4gKwkgKiBvZiBhIGNvbm5lY3Rvcgo+ID4gKwkgKi8KPiA+ICsJc3RydWN0 IGRybV9wcm9wZXJ0eSAqbGlua19zdGF0dXNfcHJvcGVydHk7Cj4gPiArCS8qKgo+ID4gIAkgKiBA cGxhbmVfdHlwZV9wcm9wZXJ0eTogRGVmYXVsdCBwbGFuZSBwcm9wZXJ0eSB0byBkaWZmZXJlbnRp YXRlCj4gPiAgCSAqIENVUlNPUiwgUFJJTUFSWSBhbmQgT1ZFUkxBWSBsZWdhY3kgdXNlcyBvZiBw bGFuZXMuCj4gPiAgCSAqLwo+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21v ZGUuaCBiL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAo+ID4gaW5kZXggNzI4NzkwYi4uMzA5 YzQ3OCAxMDA2NDQKPiA+IC0tLSBhL2luY2x1ZGUvdWFwaS9kcm0vZHJtX21vZGUuaAo+ID4gKysr IGIvaW5jbHVkZS91YXBpL2RybS9kcm1fbW9kZS5oCj4gPiBAQCAtMTIzLDYgKzEyMywxMCBAQAo+ ID4gICNkZWZpbmUgRFJNX01PREVfRElSVFlfT04gICAgICAgMQo+ID4gICNkZWZpbmUgRFJNX01P REVfRElSVFlfQU5OT1RBVEUgMgo+ID4gIAo+ID4gKy8qIExpbmsgU3RhdHVzIG9wdGlvbnMgKi8K PiA+ICsjZGVmaW5lIERSTV9NT0RFX0xJTktfU1RBVFVTX0dPT0QJMAo+ID4gKyNkZWZpbmUgRFJN X01PREVfTElOS19TVEFUVVNfQkFECTEKPiA+ICsKPiA+ICBzdHJ1Y3QgZHJtX21vZGVfbW9kZWlu Zm8gewo+ID4gIAlfX3UzMiBjbG9jazsKPiA+ICAJX191MTYgaGRpc3BsYXk7Cj4gPiAtLSAKPiA+ IDEuOS4xCj4gPiAKPiA+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCj4gPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gPiBkcmktZGV2ZWxAbGlzdHMuZnJl ZWRlc2t0b3Aub3JnCj4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2RyaS1kZXZlbAo+IAo+IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdp bmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBs aXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK