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: Mon, 1 Oct 2018 09:23:38 +0200 Message-ID: <20181001072338.GL11082@phenom.ffwll.local> References: <20180924210815.21815-1-radhakrishna.sripada@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: <20180924210815.21815-1-radhakrishna.sripada@intel.com> 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 T24gTW9uLCBTZXAgMjQsIDIwMTggYXQgMDI6MDg6MTRQTSAtMDcwMCwgUmFkaGFrcmlzaG5hIFNy aXBhZGEgd3JvdGU6Cj4gQXQgdGltZXMgMTJicGMgSERNSSBjYW5ub3QgYmUgZHJpdmVuIGR1ZSB0 byBmYXVsdHkgY2FibGVzLCBkb25nbGVzCj4gbGV2ZWwgc2hpZnRlcnMgZXRjLiBUbyB3b3JrYXJv dW5kIHRoZW0gd2UgbWF5IG5lZWQgdG8gZHJpdmUgdGhlIG91dHB1dAo+IGF0IGEgbG93ZXIgYnBj LiBDdXJyZW50bHkgdGhlIHVzZXIgc3BhY2UgZG9lcyBub3QgaGF2ZSBhIHdheSB0byBsaW1pdAo+ IHRoZSBicGMuIFRoZSBkZWZhdWx0IGJwYyB0byBiZSBwcm9ncmFtbWVkIGlzIGRlY2lkZWQgYnkg dGhlIGRyaXZlciBhbmQKPiBpcyBydW4gYWdhaW5zdCBjb25uZWN0b3IgbGltaXRhdGlvbnMuCj4g Cj4gQ3JlYXRpbmcgYSBuZXcgY29ubmVjdG9yIHByb3BlcnR5ICJtYXggYnBjIiBpbiBvcmRlciB0 byBsaW1pdCB0aGUgYnBjLgo+IHhyYW5kciBjYW4gbWFrZSB1c2Ugb2YgdGhpcyBjb25uZWN0b3Ig cHJvcGVydHkgdG8gbWFrZSBzdXJlIHRoYXQgYnBjIGRvZXMKPiBub3QgZXhjZWVkIHRoZSBjb25m aWd1cmVkIHZhbHVlLiBUaGlzIHByb3BlcnR5IGNhbiBiZSB1c2VkIGJ5IHVzZXJzcGFjZSB0bwo+ IHNldCB0aGUgYnBjLgo+IAo+IFYyOiBJbml0aWFsaXplIG1heF9icGMgdG8gc2F0aXNmeSBrbXNf cHJvcGVydGllcwo+IFYzOiBNb3ZlIHRoZSBwcm9wZXJ0eSB0byBkcm1fY29ubmVjdG9yCj4gVjQ6 IFNwbGl0IGRybSBhbmQgaTkxNSBjb21wb25lbnRzKFZpbGxlKQo+IFY1OiBNYWtlIHRoZSBwcm9w ZXJ0eSBwZXIgY29ubmVjdG9yKFZpbGxlKQo+IFY2OiBDb21wYXJlIHRoZSByZXF1ZXN0ZWQgYnBj IHRvIGNvbm5lY3RvciBicGMoRGFuaWVsKQo+ICAgICBNb3ZlIHRoZSBhdHRhY2hfcHJvcGVydHkg ZnVuY3Rpb24gdG8gY29yZShWaWxsZSkKPiBWNzogRml4IGNoZWNrcGF0Y2ggd2FybmluZ3MKPiBW ODogU2ltcGxpZnkgdGhlIGNvbm5lY3RvciBjaGVjayBjb2RlKFZpbGxlKQo+IFY5OiBDb25zdCBk aXNwbGF5X2luZm8oVmlsbGUpCj4gVjEwOiBGaXggQ0kgaXNzdWVzLgo+IAo+IENjOiBWaWxsZSBT eXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwuY29tPgo+IENjOiBEYW5pZWwgVmV0 dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgo+IENjOiBLaXNob3JlIEthZGl5YWxhIDxraXNo b3JlLmthZGl5YWxhQGludGVsLmNvbT4KPiBDYzogUm9kcmlnbyBWaXZpIDxyb2RyaWdvLnZpdmlA aW50ZWwuY29tPgo+IENjOiBNYW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29t Pgo+IENjOiBTdGFuaXNsYXYgTGlzb3Zza2l5IDxzdGFuaXNsYXYubGlzb3Zza2l5QGludGVsLmNv bT4KPiBDYzogU3VucGVuZyBMaSA8c3VucGVuZy5saUBhbWQuY29tPgo+IFNpZ25lZC1vZmYtYnk6 IFJhZGhha3Jpc2huYSBTcmlwYWRhIDxyYWRoYWtyaXNobmEuc3JpcGFkYUBpbnRlbC5jb20+CgpT a2ltbWluZyB0aGlzLCBJIHRoaW5rIGl0IGxvb2tzIGdvb2Qgbm93IGF0IGEgaGlnaC1sZXZlbC4K CldoYXQncyBtaXNzaW5nIGlzIG5vdyBrZXJuZWwtZG9jIGZvciB0aGVzZSBuZXcgcHJvcnRpZXMs IG5lZWRzIHRvIGJlIGFkZGVkCmhlcmU6CgpodHRwczovL2RyaS5mcmVlZGVza3RvcC5vcmcvZG9j cy9kcm0vZ3B1L2RybS1rbXMuaHRtbCNzdGFuZGFyZC1jb25uZWN0b3ItcHJvcGVydGllcwoKV2l0 aCB0aGF0IEknbSBoYXBweSB3aXRoIHRoZSBoaWdoLWxldmVsIGRlc2lnbjoKCkFja2VkLWJ5OiBE YW5pZWwgVmV0dGVyIDxkYW5pZWwudmV0dGVyQGZmd2xsLmNoPgoKTm8gZnVsbCByZXZpZXcgc2lu Y2UgSSBkaWRuJ3QgbG9vayBhdCB0aGUgaWd0IHNpZGUgZm9yIHRoaXMuIFVzZXJzcGFjZSBJCnRo aW5rIGlzIG9rLCBzaW5jZSBpdCdzIGp1c3QgYW5vdGhlciBjb25uZWN0b3IgcHJvcC4KLURhbmll bAoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYyAgICAgICAgfCAgNSArKysr Kwo+ICBkcml2ZXJzL2dwdS9kcm0vZHJtX2F0b21pY19oZWxwZXIuYyB8ICA0ICsrKysKPiAgZHJp dmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jICAgfCAgNCArKysrCj4gIGRyaXZlcnMvZ3B1 L2RybS9kcm1fY29ubmVjdG9yLmMgICAgIHwgMzMgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrCj4gIGluY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaCAgICAgICAgIHwgMjAgKysrKysr KysrKysrKysrKysrKysKPiAgNSBmaWxlcyBjaGFuZ2VkLCA2NiBpbnNlcnRpb25zKCspCj4gCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljLmMgYi9kcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pYy5jCj4gaW5kZXggMjg3MGFlMjA1MjM3Li5mMzI4YmNjYTg0YTggMTAwNjQ0 Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljLmMKPiBAQCAtMzkwLDYgKzM5MCw3IEBAIHN0YXRpYyBpbnQgZHJtX2F0 b21pY19jb25uZWN0b3JfY2hlY2soc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAg ewo+ICAJc3RydWN0IGRybV9jcnRjX3N0YXRlICpjcnRjX3N0YXRlOwo+ICAJc3RydWN0IGRybV93 cml0ZWJhY2tfam9iICp3cml0ZWJhY2tfam9iID0gc3RhdGUtPndyaXRlYmFja19qb2I7Cj4gKwlj b25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfaW5mbyAqaW5mbyA9ICZjb25uZWN0b3ItPmRpc3BsYXlf aW5mbzsKPiAgCj4gIAlpZiAoKGNvbm5lY3Rvci0+Y29ubmVjdG9yX3R5cGUgIT0gRFJNX01PREVf Q09OTkVDVE9SX1dSSVRFQkFDSykgfHwgIXdyaXRlYmFja19qb2IpCj4gIAkJcmV0dXJuIDA7Cj4g QEAgLTQxNyw2ICs0MTgsMTAgQEAgc3RhdGljIGludCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9jaGVj ayhzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAJCXJldHVybiAtRUlOVkFMOwo+ ICAJfQo+ICAKPiArCXN0YXRlLT5tYXhfYnBjID0gaW5mby0+YnBjID8gaW5mby0+YnBjIDogODsK PiArCWlmIChjb25uZWN0b3ItPm1heF9icGNfcHJvcGVydHkpCj4gKwkJc3RhdGUtPm1heF9icGMg PSBtaW4oc3RhdGUtPm1heF9icGMsIHN0YXRlLT5tYXhfcmVxdWVzdGVkX2JwYyk7Cj4gKwo+ICAJ cmV0dXJuIDA7Cj4gIH0KPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRv bWljX2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMKPiBpbmRl eCBlNDliMjIzODEwNDguLjc1YWVjYTM1ZjZkOSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vZHJtX2F0b21pY19oZWxwZXIuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWlj X2hlbHBlci5jCj4gQEAgLTYzOSw2ICs2MzksMTAgQEAgZHJtX2F0b21pY19oZWxwZXJfY2hlY2tf bW9kZXNldChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LAo+ICAJCQlpZiAob2xkX2Nvbm5lY3Rvcl9z dGF0ZS0+bGlua19zdGF0dXMgIT0KPiAgCQkJICAgIG5ld19jb25uZWN0b3Jfc3RhdGUtPmxpbmtf c3RhdHVzKQo+ICAJCQkJbmV3X2NydGNfc3RhdGUtPmNvbm5lY3RvcnNfY2hhbmdlZCA9IHRydWU7 Cj4gKwo+ICsJCQlpZiAob2xkX2Nvbm5lY3Rvcl9zdGF0ZS0+bWF4X3JlcXVlc3RlZF9icGMgIT0K PiArCQkJICAgIG5ld19jb25uZWN0b3Jfc3RhdGUtPm1heF9yZXF1ZXN0ZWRfYnBjKQo+ICsJCQkJ bmV3X2NydGNfc3RhdGUtPmNvbm5lY3RvcnNfY2hhbmdlZCA9IHRydWU7Cj4gIAkJfQo+ICAKPiAg CQlpZiAoZnVuY3MtPmF0b21pY19jaGVjaykKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L2RybV9hdG9taWNfdWFwaS5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4g aW5kZXggZDViN2YzMTUwOThjLi44NmFjMzM5MjJiMDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfdWFwaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2RybV9hdG9t aWNfdWFwaS5jCj4gQEAgLTc0MCw2ICs3NDAsOCBAQCBzdGF0aWMgaW50IGRybV9hdG9taWNfY29u bmVjdG9yX3NldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAK PiAgCQlyZXR1cm4gc2V0X291dF9mZW5jZV9mb3JfY29ubmVjdG9yKHN0YXRlLT5zdGF0ZSwgY29u bmVjdG9yLAo+ICAJCQkJCQkgICBmZW5jZV9wdHIpOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9 PSBjb25uZWN0b3ItPm1heF9icGNfcHJvcGVydHkpIHsKPiArCQlzdGF0ZS0+bWF4X3JlcXVlc3Rl ZF9icGMgPSB2YWw7Cj4gIAl9IGVsc2UgaWYgKGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19zZXRf cHJvcGVydHkpIHsKPiAgCQlyZXR1cm4gY29ubmVjdG9yLT5mdW5jcy0+YXRvbWljX3NldF9wcm9w ZXJ0eShjb25uZWN0b3IsCj4gIAkJCQlzdGF0ZSwgcHJvcGVydHksIHZhbCk7Cj4gQEAgLTgwNCw2 ICs4MDYsOCBAQCBkcm1fYXRvbWljX2Nvbm5lY3Rvcl9nZXRfcHJvcGVydHkoc3RydWN0IGRybV9j b25uZWN0b3IgKmNvbm5lY3RvciwKPiAgCQkqdmFsID0gMDsKPiAgCX0gZWxzZSBpZiAocHJvcGVy dHkgPT0gY29uZmlnLT53cml0ZWJhY2tfb3V0X2ZlbmNlX3B0cl9wcm9wZXJ0eSkgewo+ICAJCSp2 YWwgPSAwOwo+ICsJfSBlbHNlIGlmIChwcm9wZXJ0eSA9PSBjb25uZWN0b3ItPm1heF9icGNfcHJv cGVydHkpIHsKPiArCQkqdmFsID0gc3RhdGUtPm1heF9yZXF1ZXN0ZWRfYnBjOwo+ICAJfSBlbHNl IGlmIChjb25uZWN0b3ItPmZ1bmNzLT5hdG9taWNfZ2V0X3Byb3BlcnR5KSB7Cj4gIAkJcmV0dXJu IGNvbm5lY3Rvci0+ZnVuY3MtPmF0b21pY19nZXRfcHJvcGVydHkoY29ubmVjdG9yLAo+ICAJCQkJ c3RhdGUsIHByb3BlcnR5LCB2YWwpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJt X2Nvbm5lY3Rvci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9jb25uZWN0b3IuYwo+IGluZGV4IDFl NDBlNWRlY2JlOS4uNjVlMjJjMWIzN2E1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9k cm1fY29ubmVjdG9yLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2Nvbm5lY3Rvci5jCj4g QEAgLTE1ODMsNiArMTU4MywzOSBAQCB2b2lkIGRybV9jb25uZWN0b3Jfc2V0X2xpbmtfc3RhdHVz X3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IsCj4gIEVYUE9SVF9TWU1C T0woZHJtX2Nvbm5lY3Rvcl9zZXRfbGlua19zdGF0dXNfcHJvcGVydHkpOwo+ICAKPiAgLyoqCj4g KyAqIGRybV9jb25uZWN0b3JfYXR0YWNoX21heF9icGNfcHJvcGVydHkgLSBhdHRhY2ggIm1heCBi cGMiIHByb3BlcnR5Cj4gKyAqIEBjb25uZWN0b3I6IGNvbm5lY3RvciB0byBhdHRhY2ggbWF4IGJw YyBwcm9wZXJ0eSBvbi4KPiArICogQG1pbjogVGhlIG1pbmltdW0gYml0IGRlcHRoIHN1cHBvcnRl ZCBieSB0aGUgY29ubmVjdG9yLgo+ICsgKiBAbWF4OiBUaGUgbWF4aW11bSBiaXQgZGVwdGggc3Vw cG9ydGVkIGJ5IHRoZSBjb25uZWN0b3IuCj4gKyAqCj4gKyAqIFRoaXMgaXMgdXNlZCB0byBhZGQg c3VwcG9ydCBmb3IgbGltaXRpbmcgdGhlIGJpdCBkZXB0aCBvbiBhIGNvbm5lY3Rvci4KPiArICoK PiArICogUmV0dXJuczoKPiArICogWmVybyBvbiBzdWNjZXNzLCBuZWdhdGl2ZSBlcnJubyBvbiBm YWlsdXJlLgo+ICsgKi8KPiAraW50IGRybV9jb25uZWN0b3JfYXR0YWNoX21heF9icGNfcHJvcGVy dHkoc3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiArCQkJCQkgIGludCBtaW4sIGlu dCBtYXgpCj4gK3sKPiArCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmRldjsK PiArCXN0cnVjdCBkcm1fcHJvcGVydHkgKnByb3A7Cj4gKwo+ICsJcHJvcCA9IGNvbm5lY3Rvci0+ bWF4X2JwY19wcm9wZXJ0eTsKPiArCWlmICghcHJvcCkgewo+ICsJCXByb3AgPSBkcm1fcHJvcGVy dHlfY3JlYXRlX3JhbmdlKGRldiwgMCwgIm1heCBicGMiLCBtaW4sIG1heCk7Cj4gKwkJaWYgKCFw cm9wKQo+ICsJCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwkJY29ubmVjdG9yLT5tYXhfYnBjX3By b3BlcnR5ID0gcHJvcDsKPiArCX0KPiArCj4gKwlkcm1fb2JqZWN0X2F0dGFjaF9wcm9wZXJ0eSgm Y29ubmVjdG9yLT5iYXNlLCBwcm9wLCBtYXgpOwo+ICsJY29ubmVjdG9yLT5zdGF0ZS0+bWF4X3Jl cXVlc3RlZF9icGMgPSBtYXg7Cj4gKwo+ICsJcmV0dXJuIDA7Cj4gK30KPiArRVhQT1JUX1NZTUJP TChkcm1fY29ubmVjdG9yX2F0dGFjaF9tYXhfYnBjX3Byb3BlcnR5KTsKPiArCj4gKy8qKgo+ICAg KiBkcm1fY29ubmVjdG9yX2luaXRfcGFuZWxfb3JpZW50YXRpb25fcHJvcGVydHkgLQo+ICAgKglp bml0aWFsaXplIHRoZSBjb25uZWN0ZXJzIHBhbmVsX29yaWVudGF0aW9uIHByb3BlcnR5Cj4gICAq IEBjb25uZWN0b3I6IGNvbm5lY3RvciBmb3Igd2hpY2ggdG8gaW5pdCB0aGUgcGFuZWwtb3JpZW50 YXRpb24gcHJvcGVydHkuCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3Iu aCBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+IGluZGV4IDkxYTg3N2ZhMDBjYi4uYmZj M2U2OThjZGE2IDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+ICsr KyBiL2luY2x1ZGUvZHJtL2RybV9jb25uZWN0b3IuaAo+IEBAIC00NjEsNiArNDYxLDE4IEBAIHN0 cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlIHsKPiAgCSAqIGRybV93cml0ZWJhY2tfc2lnbmFsX2Nv bXBsZXRpb24oKQo+ICAJICovCj4gIAlzdHJ1Y3QgZHJtX3dyaXRlYmFja19qb2IgKndyaXRlYmFj a19qb2I7Cj4gKwo+ICsJLyoqCj4gKwkgKiBAbWF4X3JlcXVlc3RlZF9icGM6IENvbm5lY3RvciBw cm9wZXJ0eSB0byBsaW1pdCB0aGUgbWF4aW11bSBiaXQKPiArCSAqIGRlcHRoIG9mIHRoZSBwaXhl bHMuCj4gKwkgKi8KPiArCXU4IG1heF9yZXF1ZXN0ZWRfYnBjOwo+ICsKPiArCS8qKgo+ICsJICog QG1heF9icGM6IENvbm5lY3RvciBtYXhfYnBjIGJhc2VkIG9uIHRoZSByZXF1ZXN0ZWQgbWF4X2Jw YyBwcm9wZXJ0eQo+ICsJICogYW5kIHRoZSBjb25uZWN0b3IgYnBjIGxpbWl0YXRpb25zIG9idGFp bmVkIGZyb20gZWRpZC4KPiArCSAqLwo+ICsJdTggbWF4X2JwYzsKPiAgfTsKPiAgCj4gIC8qKgo+ IEBAIC05MjQsNiArOTM2LDEyIEBAIHN0cnVjdCBkcm1fY29ubmVjdG9yIHsKPiAgCSAqLwo+ICAJ c3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpwYXRoX2Jsb2JfcHRyOwo+ICAKPiArCS8qKgo+ICsJ ICogQG1heF9icGNfcHJvcGVydHk6IERlZmF1bHQgY29ubmVjdG9yIHByb3BlcnR5IGZvciB0aGUg bWF4IGJwYyB0byBiZQo+ICsJICogZHJpdmVuIG91dCBvZiB0aGUgY29ubmVjdG9yLgo+ICsJICov Cj4gKwlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICptYXhfYnBjX3Byb3BlcnR5Owo+ICsKPiAgI2RlZmlu ZSBEUk1fQ09OTkVDVE9SX1BPTExfSFBEICgxIDw8IDApCj4gICNkZWZpbmUgRFJNX0NPTk5FQ1RP Ul9QT0xMX0NPTk5FQ1QgKDEgPDwgMSkKPiAgI2RlZmluZSBEUk1fQ09OTkVDVE9SX1BPTExfRElT Q09OTkVDVCAoMSA8PCAyKQo+IEBAIC0xMjAxLDYgKzEyMTksOCBAQCB2b2lkIGRybV9jb25uZWN0 b3Jfc2V0X2xpbmtfc3RhdHVzX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCj4gIAkJCQkJICAgIHVpbnQ2NF90IGxpbmtfc3RhdHVzKTsKPiAgaW50IGRybV9jb25uZWN0 b3JfaW5pdF9wYW5lbF9vcmllbnRhdGlvbl9wcm9wZXJ0eSgKPiAgCXN0cnVjdCBkcm1fY29ubmVj dG9yICpjb25uZWN0b3IsIGludCB3aWR0aCwgaW50IGhlaWdodCk7Cj4gK2ludCBkcm1fY29ubmVj dG9yX2F0dGFjaF9tYXhfYnBjX3Byb3BlcnR5KHN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3IsCj4gKwkJCQkJICBpbnQgbWluLCBpbnQgbWF4KTsKPiAgCj4gIC8qKgo+ICAgKiBzdHJ1Y3Qg ZHJtX3RpbGVfZ3JvdXAgLSBUaWxlIGdyb3VwIG1ldGFkYXRhCj4gLS0gCj4gMi45LjMKPiAKCi0t IApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRw Oi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK