From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v10 1/2] drm: Add connector property to limit max bpc Date: Thu, 4 Oct 2018 09:52:16 +0200 Message-ID: <20181004075216.GG31561@phenom.ffwll.local> References: <20180924210815.21815-1-radhakrishna.sripada@intel.com> <20181001072338.GL11082@phenom.ffwll.local> <20181003222440.wmskgbrig356osv6@InViCtUs> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20181003222440.wmskgbrig356osv6@InViCtUs> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Radhakrishna Sripada Cc: Stanislav Lisovskiy , Sunpeng Li , Daniel Vetter , intel-gfx@lists.freedesktop.org, Kishore Kadiyala , Manasi Navare , dri-devel@lists.freedesktop.org, Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org T24gV2VkLCBPY3QgMDMsIDIwMTggYXQgMDM6MjQ6NDBQTSAtMDcwMCwgUmFkaGFrcmlzaG5hIFNy aXBhZGEgd3JvdGU6Cj4gT24gTW9uLCBPY3QgMDEsIDIwMTggYXQgMDk6MjM6MzhBTSArMDIwMCwg RGFuaWVsIFZldHRlciB3cm90ZToKPiA+IE9uIE1vbiwgU2VwIDI0LCAyMDE4IGF0IDAyOjA4OjE0 UE0gLTA3MDAsIFJhZGhha3Jpc2huYSBTcmlwYWRhIHdyb3RlOgo+ID4gPiBBdCB0aW1lcyAxMmJw YyBIRE1JIGNhbm5vdCBiZSBkcml2ZW4gZHVlIHRvIGZhdWx0eSBjYWJsZXMsIGRvbmdsZXMKPiA+ ID4gbGV2ZWwgc2hpZnRlcnMgZXRjLiBUbyB3b3JrYXJvdW5kIHRoZW0gd2UgbWF5IG5lZWQgdG8g ZHJpdmUgdGhlIG91dHB1dAo+ID4gPiBhdCBhIGxvd2VyIGJwYy4gQ3VycmVudGx5IHRoZSB1c2Vy IHNwYWNlIGRvZXMgbm90IGhhdmUgYSB3YXkgdG8gbGltaXQKPiA+ID4gdGhlIGJwYy4gVGhlIGRl ZmF1bHQgYnBjIHRvIGJlIHByb2dyYW1tZWQgaXMgZGVjaWRlZCBieSB0aGUgZHJpdmVyIGFuZAo+ ID4gPiBpcyBydW4gYWdhaW5zdCBjb25uZWN0b3IgbGltaXRhdGlvbnMuCj4gPiA+IAo+ID4gPiBD cmVhdGluZyBhIG5ldyBjb25uZWN0b3IgcHJvcGVydHkgIm1heCBicGMiIGluIG9yZGVyIHRvIGxp bWl0IHRoZSBicGMuCj4gPiA+IHhyYW5kciBjYW4gbWFrZSB1c2Ugb2YgdGhpcyBjb25uZWN0b3Ig cHJvcGVydHkgdG8gbWFrZSBzdXJlIHRoYXQgYnBjIGRvZXMKPiA+ID4gbm90IGV4Y2VlZCB0aGUg Y29uZmlndXJlZCB2YWx1ZS4gVGhpcyBwcm9wZXJ0eSBjYW4gYmUgdXNlZCBieSB1c2Vyc3BhY2Ug dG8KPiA+ID4gc2V0IHRoZSBicGMuCj4gPiA+IAo+ID4gPiBWMjogSW5pdGlhbGl6ZSBtYXhfYnBj IHRvIHNhdGlzZnkga21zX3Byb3BlcnRpZXMKPiA+ID4gVjM6IE1vdmUgdGhlIHByb3BlcnR5IHRv IGRybV9jb25uZWN0b3IKPiA+ID4gVjQ6IFNwbGl0IGRybSBhbmQgaTkxNSBjb21wb25lbnRzKFZp bGxlKQo+ID4gPiBWNTogTWFrZSB0aGUgcHJvcGVydHkgcGVyIGNvbm5lY3RvcihWaWxsZSkKPiA+ ID4gVjY6IENvbXBhcmUgdGhlIHJlcXVlc3RlZCBicGMgdG8gY29ubmVjdG9yIGJwYyhEYW5pZWwp Cj4gPiA+ICAgICBNb3ZlIHRoZSBhdHRhY2hfcHJvcGVydHkgZnVuY3Rpb24gdG8gY29yZShWaWxs ZSkKPiA+ID4gVjc6IEZpeCBjaGVja3BhdGNoIHdhcm5pbmdzCj4gPiA+IFY4OiBTaW1wbGlmeSB0 aGUgY29ubmVjdG9yIGNoZWNrIGNvZGUoVmlsbGUpCj4gPiA+IFY5OiBDb25zdCBkaXNwbGF5X2lu Zm8oVmlsbGUpCj4gPiA+IFYxMDogRml4IENJIGlzc3Vlcy4KPiA+ID4gCj4gPiA+IENjOiBWaWxs ZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+ID4gPiBDYzogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KPiA+ID4gQ2M6IEtpc2hvcmUgS2Fk aXlhbGEgPGtpc2hvcmUua2FkaXlhbGFAaW50ZWwuY29tPgo+ID4gPiBDYzogUm9kcmlnbyBWaXZp IDxyb2RyaWdvLnZpdmlAaW50ZWwuY29tPgo+ID4gPiBDYzogTWFuYXNpIE5hdmFyZSA8bWFuYXNp LmQubmF2YXJlQGludGVsLmNvbT4KPiA+ID4gQ2M6IFN0YW5pc2xhdiBMaXNvdnNraXkgPHN0YW5p c2xhdi5saXNvdnNraXlAaW50ZWwuY29tPgo+ID4gPiBDYzogU3VucGVuZyBMaSA8c3VucGVuZy5s aUBhbWQuY29tPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBSYWRoYWtyaXNobmEgU3JpcGFkYSA8cmFk aGFrcmlzaG5hLnNyaXBhZGFAaW50ZWwuY29tPgo+ID4gCj4gPiBTa2ltbWluZyB0aGlzLCBJIHRo aW5rIGl0IGxvb2tzIGdvb2Qgbm93IGF0IGEgaGlnaC1sZXZlbC4KPiA+IAo+ID4gV2hhdCdzIG1p c3NpbmcgaXMgbm93IGtlcm5lbC1kb2MgZm9yIHRoZXNlIG5ldyBwcm9ydGllcywgbmVlZHMgdG8g YmUgYWRkZWQKPiA+IGhlcmU6Cj4gPiAKPiA+IGh0dHBzOi8vZHJpLmZyZWVkZXNrdG9wLm9yZy9k b2NzL2RybS9ncHUvZHJtLWttcy5odG1sI3N0YW5kYXJkLWNvbm5lY3Rvci1wcm9wZXJ0aWVzCj4g PiAKPiA+IFdpdGggdGhhdCBJJ20gaGFwcHkgd2l0aCB0aGUgaGlnaC1sZXZlbCBkZXNpZ246Cj4g PiAKPiA+IEFja2VkLWJ5OiBEYW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+ ID4gCj4gPiBObyBmdWxsIHJldmlldyBzaW5jZSBJIGRpZG4ndCBsb29rIGF0IHRoZSBpZ3Qgc2lk ZSBmb3IgdGhpcy4gVXNlcnNwYWNlIEkKPiA+IHRoaW5rIGlzIG9rLCBzaW5jZSBpdCdzIGp1c3Qg YW5vdGhlciBjb25uZWN0b3IgcHJvcC4KPiBrbXNfcHJvcGVydGllcyB3b3VsZCB0ZXN0IHRoaXMg bmV3bHkgYWRkZWQgcHJvcGVydHkgYXMgcGFydCBvZiB0aGUgY29ubmVjdG9yIHByb3BlcnRpZXMu Cj4gRG8geW91IHN1Z2dlc3QgbWUgdG8gYWRkIGEgbmV3IHN1YnRlc3QgdG8gdHJ5IGNoZWNraW5n IHRoZSBkaWZmZXJlbnQgdmFsdWVzIGZvciB0aGUgCj4gbmV3bHkgYWRkZWQgcHJvcGVydHk/Cgpr bXNfcHJvcGVydGllcyBtb3N0IGRlZmluaXRlbHkgZG9lc24ndCBkbyBhbnkga2luZCBvZiBmdW5j dGlvbmFsIHRlc3RpbmcKaGVyZS4gV2hpY2ggbWVhbnMgaXQncyBub3QgdmFsaWRhdGVkIGluIGFu IGF1dG9tYXRpYyB3YXkuCgpTbyB5ZXMsIHdlIG1vc3QgZGVmaW5pdGVseSB3YW50IGEgcmVhbCB0 ZXN0Y2FzZSBoZXJlLiBDb21pbmcgdXAgd2l0aCBhCnByb3BlciB2YWxpZGF0aW9uIHN0cmF0ZWd5 IGhlcmUgaXMgZ29pbmcgdG8gYmUgc29tZXdoYXQgY2hhbGxlbmdpbmcKdGhvdWdoLgoKVGhhbmtz LCBEYW5pZWwKCj4gCj4gLS1SYWRoYWtyaXNobmEgU3JpcGFkYQo+ID4gLURhbmllbAo+ID4gCj4g PiA+IC0tLQo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAgfCAgNSAr KysrKwo+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgfCAgNCArKysr Cj4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMgICB8ICA0ICsrKysKPiA+ ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMgICAgIHwgMzMgKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrCj4gPiA+ICBpbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmgg ICAgICAgICB8IDIwICsrKysrKysrKysrKysrKysrKysrCj4gPiA+ICA1IGZpbGVzIGNoYW5nZWQs IDY2IGluc2VydGlvbnMoKykKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pYy5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ID4gPiBpbmRl eCAyODcwYWUyMDUyMzcuLmYzMjhiY2NhODRhOCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWMuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21p Yy5jCj4gPiA+IEBAIC0zOTAsNiArMzkwLDcgQEAgc3RhdGljIGludCBkcm1fYXRvbWljX2Nvbm5l Y3Rvcl9jaGVjayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gPiAgewo+ID4g PiAgCXN0cnVjdCBkcm1fY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZTsKPiA+ID4gIAlzdHJ1Y3QgZHJt X3dyaXRlYmFja19qb2IgKndyaXRlYmFja19qb2IgPSBzdGF0ZS0+d3JpdGViYWNrX2pvYjsKPiA+ ID4gKwljb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbyA9ICZjb25uZWN0b3ItPmRp c3BsYXlfaW5mbzsKPiA+ID4gIAo+ID4gPiAgCWlmICgoY29ubmVjdG9yLT5jb25uZWN0b3JfdHlw ZSAhPSBEUk1fTU9ERV9DT05ORUNUT1JfV1JJVEVCQUNLKSB8fCAhd3JpdGViYWNrX2pvYikKPiA+ ID4gIAkJcmV0dXJuIDA7Cj4gPiA+IEBAIC00MTcsNiArNDE4LDEwIEBAIHN0YXRpYyBpbnQgZHJt X2F0b21pY19jb25uZWN0b3JfY2hlY2soc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwK PiA+ID4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ICAJfQo+ID4gPiAgCj4gPiA+ICsJc3RhdGUt Pm1heF9icGMgPSBpbmZvLT5icGMgPyBpbmZvLT5icGMgOiA4Owo+ID4gPiArCWlmIChjb25uZWN0 b3ItPm1heF9icGNfcHJvcGVydHkpCj4gPiA+ICsJCXN0YXRlLT5tYXhfYnBjID0gbWluKHN0YXRl LT5tYXhfYnBjLCBzdGF0ZS0+bWF4X3JlcXVlc3RlZF9icGMpOwo+ID4gPiArCj4gPiA+ICAJcmV0 dXJuIDA7Cj4gPiA+ICB9Cj4gPiA+ICAKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYXRvbWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVy LmMKPiA+ID4gaW5kZXggZTQ5YjIyMzgxMDQ4Li43NWFlY2EzNWY2ZDkgMTAwNjQ0Cj4gPiA+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gPiA+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS9kcm1fYXRvbWljX2hlbHBlci5jCj4gPiA+IEBAIC02MzksNiArNjM5LDEwIEBA IGRybV9hdG9taWNfaGVscGVyX2NoZWNrX21vZGVzZXQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwK PiA+ID4gIAkJCWlmIChvbGRfY29ubmVjdG9yX3N0YXRlLT5saW5rX3N0YXR1cyAhPQo+ID4gPiAg CQkJICAgIG5ld19jb25uZWN0b3Jfc3RhdGUtPmxpbmtfc3RhdHVzKQo+ID4gPiAgCQkJCW5ld19j cnRjX3N0YXRlLT5jb25uZWN0b3JzX2NoYW5nZWQgPSB0cnVlOwo+ID4gPiArCj4gPiA+ICsJCQlp ZiAob2xkX2Nvbm5lY3Rvcl9zdGF0ZS0+bWF4X3JlcXVlc3RlZF9icGMgIT0KPiA+ID4gKwkJCSAg ICBuZXdfY29ubmVjdG9yX3N0YXRlLT5tYXhfcmVxdWVzdGVkX2JwYykKPiA+ID4gKwkJCQluZXdf Y3J0Y19zdGF0ZS0+Y29ubmVjdG9yc19jaGFuZ2VkID0gdHJ1ZTsKPiA+ID4gIAkJfQo+ID4gPiAg Cj4gPiA+ICAJCWlmIChmdW5jcy0+YXRvbWljX2NoZWNrKQo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfdWFwaS5jCj4gPiA+IGluZGV4IGQ1YjdmMzE1MDk4Yy4uODZhYzMzOTIyYjA5IDEwMDY0NAo+ ID4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY191YXBpLmMKPiA+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gPiA+IEBAIC03NDAsNiArNzQwLDgg QEAgc3RhdGljIGludCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9zZXRfcHJvcGVydHkoc3RydWN0IGRy bV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ID4gIAo+ID4gPiAgCQlyZXR1cm4gc2V0X291dF9m ZW5jZV9mb3JfY29ubmVjdG9yKHN0YXRlLT5zdGF0ZSwgY29ubmVjdG9yLAo+ID4gPiAgCQkJCQkJ ICAgZmVuY2VfcHRyKTsKPiA+ID4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09IGNvbm5lY3Rvci0+ bWF4X2JwY19wcm9wZXJ0eSkgewo+ID4gPiArCQlzdGF0ZS0+bWF4X3JlcXVlc3RlZF9icGMgPSB2 YWw7Cj4gPiA+ICAJfSBlbHNlIGlmIChjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3Bl cnR5KSB7Cj4gPiA+ICAJCXJldHVybiBjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfc2V0X3Byb3Bl cnR5KGNvbm5lY3RvciwKPiA+ID4gIAkJCQlzdGF0ZSwgcHJvcGVydHksIHZhbCk7Cj4gPiA+IEBA IC04MDQsNiArODA2LDggQEAgZHJtX2F0b21pY19jb25uZWN0b3JfZ2V0X3Byb3BlcnR5KHN0cnVj dCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiA+ICAJCSp2YWwgPSAwOwo+ID4gPiAgCX0g ZWxzZSBpZiAocHJvcGVydHkgPT0gY29uZmlnLT53cml0ZWJhY2tfb3V0X2ZlbmNlX3B0cl9wcm9w ZXJ0eSkgewo+ID4gPiAgCQkqdmFsID0gMDsKPiA+ID4gKwl9IGVsc2UgaWYgKHByb3BlcnR5ID09 IGNvbm5lY3Rvci0+bWF4X2JwY19wcm9wZXJ0eSkgewo+ID4gPiArCQkqdmFsID0gc3RhdGUtPm1h eF9yZXF1ZXN0ZWRfYnBjOwo+ID4gPiAgCX0gZWxzZSBpZiAoY29ubmVjdG9yLT5mdW5jcy0+YXRv bWljX2dldF9wcm9wZXJ0eSkgewo+ID4gPiAgCQlyZXR1cm4gY29ubmVjdG9yLT5mdW5jcy0+YXRv bWljX2dldF9wcm9wZXJ0eShjb25uZWN0b3IsCj4gPiA+ICAJCQkJc3RhdGUsIHByb3BlcnR5LCB2 YWwpOwo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYyBi L2RyaXZlcnMvZ3B1L2RybS9kcm1fY29ubmVjdG9yLmMKPiA+ID4gaW5kZXggMWU0MGU1ZGVjYmU5 Li42NWUyMmMxYjM3YTUgMTAwNjQ0Cj4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fY29u bmVjdG9yLmMKPiA+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+ID4g PiBAQCAtMTU4Myw2ICsxNTgzLDM5IEBAIHZvaWQgZHJtX2Nvbm5lY3Rvcl9zZXRfbGlua19zdGF0 dXNfcHJvcGVydHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiA+ID4gIEVYUE9S VF9TWU1CT0woZHJtX2Nvbm5lY3Rvcl9zZXRfbGlua19zdGF0dXNfcHJvcGVydHkpOwo+ID4gPiAg Cj4gPiA+ICAvKioKPiA+ID4gKyAqIGRybV9jb25uZWN0b3JfYXR0YWNoX21heF9icGNfcHJvcGVy dHkgLSBhdHRhY2ggIm1heCBicGMiIHByb3BlcnR5Cj4gPiA+ICsgKiBAY29ubmVjdG9yOiBjb25u ZWN0b3IgdG8gYXR0YWNoIG1heCBicGMgcHJvcGVydHkgb24uCj4gPiA+ICsgKiBAbWluOiBUaGUg bWluaW11bSBiaXQgZGVwdGggc3VwcG9ydGVkIGJ5IHRoZSBjb25uZWN0b3IuCj4gPiA+ICsgKiBA bWF4OiBUaGUgbWF4aW11bSBiaXQgZGVwdGggc3VwcG9ydGVkIGJ5IHRoZSBjb25uZWN0b3IuCj4g PiA+ICsgKgo+ID4gPiArICogVGhpcyBpcyB1c2VkIHRvIGFkZCBzdXBwb3J0IGZvciBsaW1pdGlu ZyB0aGUgYml0IGRlcHRoIG9uIGEgY29ubmVjdG9yLgo+ID4gPiArICoKPiA+ID4gKyAqIFJldHVy bnM6Cj4gPiA+ICsgKiBaZXJvIG9uIHN1Y2Nlc3MsIG5lZ2F0aXZlIGVycm5vIG9uIGZhaWx1cmUu Cj4gPiA+ICsgKi8KPiA+ID4gK2ludCBkcm1fY29ubmVjdG9yX2F0dGFjaF9tYXhfYnBjX3Byb3Bl cnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiA+ICsJCQkJCSAgaW50IG1p biwgaW50IG1heCkKPiA+ID4gK3sKPiA+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29u bmVjdG9yLT5kZXY7Cj4gPiA+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqcHJvcDsKPiA+ID4gKwo+ ID4gPiArCXByb3AgPSBjb25uZWN0b3ItPm1heF9icGNfcHJvcGVydHk7Cj4gPiA+ICsJaWYgKCFw cm9wKSB7Cj4gPiA+ICsJCXByb3AgPSBkcm1fcHJvcGVydHlfY3JlYXRlX3JhbmdlKGRldiwgMCwg Im1heCBicGMiLCBtaW4sIG1heCk7Cj4gPiA+ICsJCWlmICghcHJvcCkKPiA+ID4gKwkJCXJldHVy biAtRU5PTUVNOwo+ID4gPiArCj4gPiA+ICsJCWNvbm5lY3Rvci0+bWF4X2JwY19wcm9wZXJ0eSA9 IHByb3A7Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJZHJtX29iamVjdF9hdHRhY2hfcHJvcGVy dHkoJmNvbm5lY3Rvci0+YmFzZSwgcHJvcCwgbWF4KTsKPiA+ID4gKwljb25uZWN0b3ItPnN0YXRl LT5tYXhfcmVxdWVzdGVkX2JwYyA9IG1heDsKPiA+ID4gKwo+ID4gPiArCXJldHVybiAwOwo+ID4g PiArfQo+ID4gPiArRVhQT1JUX1NZTUJPTChkcm1fY29ubmVjdG9yX2F0dGFjaF9tYXhfYnBjX3By b3BlcnR5KTsKPiA+ID4gKwo+ID4gPiArLyoqCj4gPiA+ICAgKiBkcm1fY29ubmVjdG9yX2luaXRf cGFuZWxfb3JpZW50YXRpb25fcHJvcGVydHkgLQo+ID4gPiAgICoJaW5pdGlhbGl6ZSB0aGUgY29u bmVjdGVycyBwYW5lbF9vcmllbnRhdGlvbiBwcm9wZXJ0eQo+ID4gPiAgICogQGNvbm5lY3Rvcjog Y29ubmVjdG9yIGZvciB3aGljaCB0byBpbml0IHRoZSBwYW5lbC1vcmllbnRhdGlvbiBwcm9wZXJ0 eS4KPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCBiL2luY2x1 ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+ID4gPiBpbmRleCA5MWE4NzdmYTAwY2IuLmJmYzNlNjk4 Y2RhNiAxMDA2NDQKPiA+ID4gLS0tIGEvaW5jbHVkZS9kcm0vZHJtX2Nvbm5lY3Rvci5oCj4gPiA+ ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+ID4gPiBAQCAtNDYxLDYgKzQ2MSwx OCBAQCBzdHJ1Y3QgZHJtX2Nvbm5lY3Rvcl9zdGF0ZSB7Cj4gPiA+ICAJICogZHJtX3dyaXRlYmFj a19zaWduYWxfY29tcGxldGlvbigpCj4gPiA+ICAJICovCj4gPiA+ICAJc3RydWN0IGRybV93cml0 ZWJhY2tfam9iICp3cml0ZWJhY2tfam9iOwo+ID4gPiArCj4gPiA+ICsJLyoqCj4gPiA+ICsJICog QG1heF9yZXF1ZXN0ZWRfYnBjOiBDb25uZWN0b3IgcHJvcGVydHkgdG8gbGltaXQgdGhlIG1heGlt dW0gYml0Cj4gPiA+ICsJICogZGVwdGggb2YgdGhlIHBpeGVscy4KPiA+ID4gKwkgKi8KPiA+ID4g Kwl1OCBtYXhfcmVxdWVzdGVkX2JwYzsKPiA+ID4gKwo+ID4gPiArCS8qKgo+ID4gPiArCSAqIEBt YXhfYnBjOiBDb25uZWN0b3IgbWF4X2JwYyBiYXNlZCBvbiB0aGUgcmVxdWVzdGVkIG1heF9icGMg cHJvcGVydHkKPiA+ID4gKwkgKiBhbmQgdGhlIGNvbm5lY3RvciBicGMgbGltaXRhdGlvbnMgb2J0 YWluZWQgZnJvbSBlZGlkLgo+ID4gPiArCSAqLwo+ID4gPiArCXU4IG1heF9icGM7Cj4gPiA+ICB9 Owo+ID4gPiAgCj4gPiA+ICAvKioKPiA+ID4gQEAgLTkyNCw2ICs5MzYsMTIgQEAgc3RydWN0IGRy bV9jb25uZWN0b3Igewo+ID4gPiAgCSAqLwo+ID4gPiAgCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxv YiAqcGF0aF9ibG9iX3B0cjsKPiA+ID4gIAo+ID4gPiArCS8qKgo+ID4gPiArCSAqIEBtYXhfYnBj X3Byb3BlcnR5OiBEZWZhdWx0IGNvbm5lY3RvciBwcm9wZXJ0eSBmb3IgdGhlIG1heCBicGMgdG8g YmUKPiA+ID4gKwkgKiBkcml2ZW4gb3V0IG9mIHRoZSBjb25uZWN0b3IuCj4gPiA+ICsJICovCj4g PiA+ICsJc3RydWN0IGRybV9wcm9wZXJ0eSAqbWF4X2JwY19wcm9wZXJ0eTsKPiA+ID4gKwo+ID4g PiAgI2RlZmluZSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEICgxIDw8IDApCj4gPiA+ICAjZGVmaW5l IERSTV9DT05ORUNUT1JfUE9MTF9DT05ORUNUICgxIDw8IDEpCj4gPiA+ICAjZGVmaW5lIERSTV9D T05ORUNUT1JfUE9MTF9ESVNDT05ORUNUICgxIDw8IDIpCj4gPiA+IEBAIC0xMjAxLDYgKzEyMTks OCBAQCB2b2lkIGRybV9jb25uZWN0b3Jfc2V0X2xpbmtfc3RhdHVzX3Byb3BlcnR5KHN0cnVjdCBk cm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gPiA+ICAJCQkJCSAgICB1aW50NjRfdCBsaW5rX3N0 YXR1cyk7Cj4gPiA+ICBpbnQgZHJtX2Nvbm5lY3Rvcl9pbml0X3BhbmVsX29yaWVudGF0aW9uX3By b3BlcnR5KAo+ID4gPiAgCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsIGludCB3aWR0 aCwgaW50IGhlaWdodCk7Cj4gPiA+ICtpbnQgZHJtX2Nvbm5lY3Rvcl9hdHRhY2hfbWF4X2JwY19w cm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gPiArCQkJCQkgIGlu dCBtaW4sIGludCBtYXgpOwo+ID4gPiAgCj4gPiA+ICAvKioKPiA+ID4gICAqIHN0cnVjdCBkcm1f dGlsZV9ncm91cCAtIFRpbGUgZ3JvdXAgbWV0YWRhdGEKPiA+ID4gLS0gCj4gPiA+IDIuOS4zCj4g PiA+IAo+ID4gCj4gPiAtLSAKPiA+IERhbmllbCBWZXR0ZXIKPiA+IFNvZnR3YXJlIEVuZ2luZWVy LCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKCi0tIApEYW5pZWwg VmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5m ZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpk cmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0 cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK