From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v1 4/4] drm/tegra: plane: Add custom CSC BLOB property Date: Tue, 17 Apr 2018 11:01:44 +0200 Message-ID: <20180417090144.GZ31310@phenom.ffwll.local> References: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Dmitry Osipenko Cc: linux-tegra@vger.kernel.org, Thierry Reding , linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org List-Id: linux-tegra@vger.kernel.org T24gTW9uLCBBcHIgMTYsIDIwMTggYXQgMDM6MTY6MjhQTSArMDMwMCwgRG1pdHJ5IE9zaXBlbmtv IHdyb3RlOgo+IFRoaXMgbmV3IHByb3BlcnR5IGFsbG93cyB1c2Vyc3BhY2UgdG8gYXBwbHkgY3Vz dG9tIGNvbG9yIGNvbnZlcnNpb24KPiBjb2VmZmljaWVudHMgcGVyIHBsYW5lLCBtYWtpbmcgcG9z c2libGUgdG8gdXRpbGl6ZSBkaXNwbGF5IGNvbnRyb2xsZXIKPiBmb3IgY29sb3IgYWRqdXN0bWVu dHMgb2YgYSB2aWRlbyBvdmVybGF5Lgo+IAo+IFNpZ25lZC1vZmYtYnk6IERtaXRyeSBPc2lwZW5r byA8ZGlnZXR4QGdtYWlsLmNvbT4KClNhbWUgaGVyZSwgdGhpcyBuZWVkcyBjb3JyZXNwb25kaW5n IHVzZXJzcGFjZToKCmh0dHBzOi8vZHJpLmZyZWVkZXNrdG9wLm9yZy9kb2NzL2RybS9ncHUvZHJt LXVhcGkuaHRtbCNvcGVuLXNvdXJjZS11c2Vyc3BhY2UtcmVxdWlyZW1lbnRzCgpBbmQgYWdhaW4g dGhlcmUncyBldmVuIG1vcmUgcGVvcGxlIHdobyBkaXNjdXNzZWQgZXh0ZW5kaW5nIHRoZSBleGlz dGluZwpjb2xvciBtYW5hZ2VtZW50IHN1cHBvcnQgZm9yIGNydGNzIHRvIHBsYW5lcy4gSSB0aGlu ayB3ZSBkZWZpbml0ZWx5IHdhbnQgYQpzdGFuZGFyZCBpbnRlcmZhY2UgZm9yIHRoaXMsIG5vdCBl YWNoIGRyaXZlciBkb2luZyB0aGVpciBvd24gdGhpbmcuCi1EYW5pZWwKCj4gLS0tCj4gIGRyaXZl cnMvZ3B1L2RybS90ZWdyYS9kYy5jICAgIHwgODYgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0KPiAgZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmggICAgfCAxMSArKysrKwo+ICBk cml2ZXJzL2dwdS9kcm0vdGVncmEvcGxhbmUuYyB8IDM1ICsrKysrKysrKysrKysrCj4gIGRyaXZl cnMvZ3B1L2RybS90ZWdyYS9wbGFuZS5oIHwgIDUgKysKPiAgaW5jbHVkZS91YXBpL2RybS90ZWdy YV9kcm0uaCAgfCAxMSArKysrKwo+ICA1IGZpbGVzIGNoYW5nZWQsIDEzOSBpbnNlcnRpb25zKCsp LCA5IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEv ZGMuYyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5jCj4gaW5kZXggYjE5ZTk1NGEyMjNmLi4y NGExMzE3ODcxZDQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmMKPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuYwo+IEBAIC00MzUsMTUgKzQzNSwxNSBAQCBz dGF0aWMgdm9pZCB0ZWdyYV9kY19zZXR1cF93aW5kb3coc3RydWN0IHRlZ3JhX3BsYW5lICpwbGFu ZSwKPiAgCXZhbHVlID0gV0lOX0VOQUJMRTsKPiAgCj4gIAlpZiAoeXV2KSB7Cj4gLQkJLyogc2V0 dXAgZGVmYXVsdCBjb2xvcnNwYWNlIGNvbnZlcnNpb24gY29lZmZpY2llbnRzICovCj4gLQkJdGVn cmFfcGxhbmVfd3JpdGVsKHBsYW5lLCAweDAwZjAsIERDX1dJTl9DU0NfWU9GKTsKPiAtCQl0ZWdy YV9wbGFuZV93cml0ZWwocGxhbmUsIDB4MDEyYSwgRENfV0lOX0NTQ19LWVJHQik7Cj4gLQkJdGVn cmFfcGxhbmVfd3JpdGVsKHBsYW5lLCAweDAwMDAsIERDX1dJTl9DU0NfS1VSKTsKPiAtCQl0ZWdy YV9wbGFuZV93cml0ZWwocGxhbmUsIDB4MDE5OCwgRENfV0lOX0NTQ19LVlIpOwo+IC0JCXRlZ3Jh X3BsYW5lX3dyaXRlbChwbGFuZSwgMHgwMzliLCBEQ19XSU5fQ1NDX0tVRyk7Cj4gLQkJdGVncmFf cGxhbmVfd3JpdGVsKHBsYW5lLCAweDAzMmYsIERDX1dJTl9DU0NfS1ZHKTsKPiAtCQl0ZWdyYV9w bGFuZV93cml0ZWwocGxhbmUsIDB4MDIwNCwgRENfV0lOX0NTQ19LVUIpOwo+IC0JCXRlZ3JhX3Bs YW5lX3dyaXRlbChwbGFuZSwgMHgwMDAwLCBEQ19XSU5fQ1NDX0tWQik7Cj4gKwkJLyogc2V0dXAg Y29sb3JzcGFjZSBjb252ZXJzaW9uIGNvZWZmaWNpZW50cyAqLwo+ICsJCXRlZ3JhX3BsYW5lX3dy aXRlbChwbGFuZSwgd2luZG93LT5jc2MueW9mLCBEQ19XSU5fQ1NDX1lPRik7Cj4gKwkJdGVncmFf cGxhbmVfd3JpdGVsKHBsYW5lLCB3aW5kb3ctPmNzYy5reXJnYiwgRENfV0lOX0NTQ19LWVJHQik7 Cj4gKwkJdGVncmFfcGxhbmVfd3JpdGVsKHBsYW5lLCB3aW5kb3ctPmNzYy5rdXIsIERDX1dJTl9D U0NfS1VSKTsKPiArCQl0ZWdyYV9wbGFuZV93cml0ZWwocGxhbmUsIHdpbmRvdy0+Y3NjLmt2ciwg RENfV0lOX0NTQ19LVlIpOwo+ICsJCXRlZ3JhX3BsYW5lX3dyaXRlbChwbGFuZSwgd2luZG93LT5j c2Mua3VnLCBEQ19XSU5fQ1NDX0tVRyk7Cj4gKwkJdGVncmFfcGxhbmVfd3JpdGVsKHBsYW5lLCB3 aW5kb3ctPmNzYy5rdmcsIERDX1dJTl9DU0NfS1ZHKTsKPiArCQl0ZWdyYV9wbGFuZV93cml0ZWwo cGxhbmUsIHdpbmRvdy0+Y3NjLmt1YiwgRENfV0lOX0NTQ19LVUIpOwo+ICsJCXRlZ3JhX3BsYW5l X3dyaXRlbChwbGFuZSwgd2luZG93LT5jc2Mua3ZiLCBEQ19XSU5fQ1NDX0tWQik7Cj4gIAo+ICAJ CXZhbHVlIHw9IENTQ19FTkFCTEU7Cj4gIAl9IGVsc2UgaWYgKHdpbmRvdy0+Yml0c19wZXJfcGl4 ZWwgPCAyNCkgewo+IEBAIC02MjQsNiArNjI0LDcgQEAgc3RhdGljIHZvaWQgdGVncmFfcGxhbmVf YXRvbWljX3VwZGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSwKPiAgCXN0cnVjdCBkcm1fZnJh bWVidWZmZXIgKmZiID0gcGxhbmUtPnN0YXRlLT5mYjsKPiAgCXN0cnVjdCB0ZWdyYV9wbGFuZSAq cCA9IHRvX3RlZ3JhX3BsYW5lKHBsYW5lKTsKPiAgCXN0cnVjdCB0ZWdyYV9kY193aW5kb3cgd2lu ZG93Owo+ICsJY29uc3Qgc3RydWN0IGRybV90ZWdyYV9wbGFuZV9jc2NfYmxvYiAqY3NjOwo+ICAJ dW5zaWduZWQgaW50IGk7Cj4gIAo+ICAJLyogcmllbiBuZSB2YSBwbHVzICovCj4gQEAgLTY2NSw2 ICs2NjYsMjggQEAgc3RhdGljIHZvaWQgdGVncmFfcGxhbmVfYXRvbWljX3VwZGF0ZShzdHJ1Y3Qg ZHJtX3BsYW5lICpwbGFuZSwKPiAgCQkJd2luZG93LnN0cmlkZVtpXSA9IGZiLT5waXRjaGVzW2ld Owo+ICAJfQo+ICAKPiArCWlmIChzdGF0ZS0+Y3NjX2Jsb2IpIHsKPiArCQljc2MgPSBzdGF0ZS0+ Y3NjX2Jsb2ItPmRhdGE7Cj4gKwo+ICsJCXdpbmRvdy5jc2MueW9mID0gY3NjLT55b2Y7Cj4gKwkJ d2luZG93LmNzYy5reXJnYiA9IGNzYy0+a3lyZ2I7Cj4gKwkJd2luZG93LmNzYy5rdXIgPSBjc2Mt Pmt1cjsKPiArCQl3aW5kb3cuY3NjLmt2ciA9IGNzYy0+a3ZyOwo+ICsJCXdpbmRvdy5jc2Mua3Vn ID0gY3NjLT5rdWc7Cj4gKwkJd2luZG93LmNzYy5rdmcgPSBjc2MtPmt2ZzsKPiArCQl3aW5kb3cu Y3NjLmt1YiA9IGNzYy0+a3ViOwo+ICsJCXdpbmRvdy5jc2Mua3ZiID0gY3NjLT5rdmI7Cj4gKwl9 IGVsc2Ugewo+ICsJCXdpbmRvdy5jc2MueW9mID0gMHgwMGYwOwo+ICsJCXdpbmRvdy5jc2Mua3ly Z2IgPSAweDAxMmE7Cj4gKwkJd2luZG93LmNzYy5rdXIgPSAweDAwMDA7Cj4gKwkJd2luZG93LmNz Yy5rdnIgPSAweDAxOTg7Cj4gKwkJd2luZG93LmNzYy5rdWcgPSAweDAzOWI7Cj4gKwkJd2luZG93 LmNzYy5rdmcgPSAweDAzMmY7Cj4gKwkJd2luZG93LmNzYy5rdWIgPSAweDAyMDQ7Cj4gKwkJd2lu ZG93LmNzYy5rdmIgPSAweDAwMDA7Cj4gKwl9Cj4gKwo+ICAJdGVncmFfZGNfc2V0dXBfd2luZG93 KHAsICZ3aW5kb3cpOwo+ICB9Cj4gIAo+IEBAIC03NzYsNiArNzk5LDQyIEBAIHN0YXRpYyB2b2lk IHRlZ3JhX3BsYW5lX2NyZWF0ZV9sZWdhY3lfcHJvcGVydGllcyhzdHJ1Y3QgdGVncmFfcGxhbmUg KnBsYW5lLAo+ICAJZGV2X2VycihwbGFuZS0+ZGMtPmRldiwgImZhaWxlZCB0byBjcmVhdGUgbGVn YWN5IHBsYW5lIHByb3BlcnRpZXNcbiIpOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCB0ZWdyYV9w bGFuZV9jcmVhdGVfY3NjX3Byb3BlcnR5KHN0cnVjdCB0ZWdyYV9wbGFuZSAqcGxhbmUpCj4gK3sK PiArCS8qIHNldCBkZWZhdWx0IGNvbG9yc3BhY2UgY29udmVyc2lvbiBjb2VmZmljaWVudHMgdG8g SVRVLVIgQlQuNjAxICovCj4gKwlzdHJ1Y3QgZHJtX3RlZ3JhX3BsYW5lX2NzY19ibG9iIGNzY19i dDYwMSA9IHsKPiArCQkueW9mICAgPSAweDAwZjAsCj4gKwkJLmt5cmdiID0gMHgwMTJhLAo+ICsJ CS5rdXIgICA9IDB4MDAwMCwKPiArCQkua3ZyICAgPSAweDAxOTgsCj4gKwkJLmt1ZyAgID0gMHgw MzliLAo+ICsJCS5rdmcgICA9IDB4MDMyZiwKPiArCQkua3ViICAgPSAweDAyMDQsCj4gKwkJLmt2 YiAgID0gMHgwMDAwLAo+ICsJfTsKPiArCXN0cnVjdCBkcm1fcHJvcGVydHlfYmxvYiAqYmxvYjsK PiArCj4gKwlibG9iID0gZHJtX3Byb3BlcnR5X2NyZWF0ZV9ibG9iKHBsYW5lLT5iYXNlLmRldiwg c2l6ZW9mKGNzY19idDYwMSksCj4gKwkJCQkJJmNzY19idDYwMSk7Cj4gKwlpZiAoIWJsb2IpIHsK PiArCQlkZXZfZXJyKHBsYW5lLT5kYy0+ZGV2LCAiZmFpbGVkIHRvIGNyZWF0ZSBDU0MgQkxPQlxu Iik7Cj4gKwkJcmV0dXJuOwo+ICsJfQo+ICsKPiArCXBsYW5lLT5wcm9wcy5jc2NfYmxvYiA9IGRy bV9wcm9wZXJ0eV9jcmVhdGUoCj4gKwkJcGxhbmUtPmJhc2UuZGV2LCBEUk1fTU9ERV9QUk9QX0JM T0IsICJZVVYgdG8gUkdCIENTQyIsIDApOwo+ICsKPiArCWlmICghcGxhbmUtPnByb3BzLmNzY19i bG9iKSB7Cj4gKwkJZGV2X2VycihwbGFuZS0+ZGMtPmRldiwgImZhaWxlZCB0byBjcmVhdGUgQ1ND IHByb3BlcnR5XG4iKTsKPiArCQlkcm1fcHJvcGVydHlfYmxvYl9wdXQoYmxvYik7Cj4gKwkJcmV0 dXJuOwo+ICsJfQo+ICsKPiArCWRybV9vYmplY3RfYXR0YWNoX3Byb3BlcnR5KCZwbGFuZS0+YmFz ZS5iYXNlLCBwbGFuZS0+cHJvcHMuY3NjX2Jsb2IsIDApOwo+ICsKPiArCXBsYW5lLT5jc2NfZGVm YXVsdCA9IGJsb2I7Cj4gK30KPiArCj4gIHN0YXRpYyBzdHJ1Y3QgZHJtX3BsYW5lICp0ZWdyYV9w cmltYXJ5X3BsYW5lX2NyZWF0ZShzdHJ1Y3QgZHJtX2RldmljZSAqZHJtLAo+ICAJCQkJCQkgICAg c3RydWN0IHRlZ3JhX2RjICpkYykKPiAgewo+IEBAIC04MTQsNiArODczLDkgQEAgc3RhdGljIHN0 cnVjdCBkcm1fcGxhbmUgKnRlZ3JhX3ByaW1hcnlfcGxhbmVfY3JlYXRlKHN0cnVjdCBkcm1fZGV2 aWNlICpkcm0sCj4gIAlpZiAoZGMtPnNvYy0+bGVnYWN5X2JsZW5kaW5nKQo+ICAJCXRlZ3JhX3Bs YW5lX2NyZWF0ZV9sZWdhY3lfcHJvcGVydGllcyhwbGFuZSwgZHJtKTsKPiAgCj4gKwlpZiAoZGMt PnNvYy0+aGFzX3dpbl9hX2NzYykKPiArCQl0ZWdyYV9wbGFuZV9jcmVhdGVfY3NjX3Byb3BlcnR5 KHBsYW5lKTsKPiArCj4gIAlyZXR1cm4gJnBsYW5lLT5iYXNlOwo+ICB9Cj4gIAo+IEBAIC0xMDky LDYgKzExNTQsNyBAQCBzdGF0aWMgc3RydWN0IGRybV9wbGFuZSAqdGVncmFfZGNfb3ZlcmxheV9w bGFuZV9jcmVhdGUoc3RydWN0IGRybV9kZXZpY2UgKmRybSwKPiAgCj4gIAlkcm1fcGxhbmVfaGVs cGVyX2FkZCgmcGxhbmUtPmJhc2UsICZ0ZWdyYV9wbGFuZV9oZWxwZXJfZnVuY3MpOwo+ICAJZHJt X3BsYW5lX2NyZWF0ZV96cG9zX3Byb3BlcnR5KCZwbGFuZS0+YmFzZSwgcGxhbmUtPmluZGV4LCAw LCAyNTUpOwo+ICsJdGVncmFfcGxhbmVfY3JlYXRlX2NzY19wcm9wZXJ0eShwbGFuZSk7Cj4gIAo+ ICAJcmV0dXJuICZwbGFuZS0+YmFzZTsKPiAgfQo+IEBAIC0yMjY5LDYgKzIzMzIsNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IHRlZ3JhX2RjX3NvY19pbmZvIHRlZ3JhMjBfZGNfc29jX2luZm8gPSB7 Cj4gIAkubnVtX292ZXJsYXlfZm9ybWF0cyA9IEFSUkFZX1NJWkUodGVncmEyMF9vdmVybGF5X2Zv cm1hdHMpLAo+ICAJLm92ZXJsYXlfZm9ybWF0cyA9IHRlZ3JhMjBfb3ZlcmxheV9mb3JtYXRzLAo+ ICAJLm1vZGlmaWVycyA9IHRlZ3JhMjBfbW9kaWZpZXJzLAo+ICsJLmhhc193aW5fYV9jc2MgPSBm YWxzZSwKPiAgfTsKPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVncmFfZGNfc29jX2luZm8g dGVncmEzMF9kY19zb2NfaW5mbyA9IHsKPiBAQCAtMjI4Nyw2ICsyMzUxLDcgQEAgc3RhdGljIGNv bnN0IHN0cnVjdCB0ZWdyYV9kY19zb2NfaW5mbyB0ZWdyYTMwX2RjX3NvY19pbmZvID0gewo+ICAJ Lm51bV9vdmVybGF5X2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHRlZ3JhMjBfb3ZlcmxheV9mb3JtYXRz KSwKPiAgCS5vdmVybGF5X2Zvcm1hdHMgPSB0ZWdyYTIwX292ZXJsYXlfZm9ybWF0cywKPiAgCS5t b2RpZmllcnMgPSB0ZWdyYTIwX21vZGlmaWVycywKPiArCS5oYXNfd2luX2FfY3NjID0gZmFsc2Us Cj4gIH07Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHRlZ3JhX2RjX3NvY19pbmZvIHRlZ3Jh MTE0X2RjX3NvY19pbmZvID0gewo+IEBAIC0yMzA1LDYgKzIzNzAsNyBAQCBzdGF0aWMgY29uc3Qg c3RydWN0IHRlZ3JhX2RjX3NvY19pbmZvIHRlZ3JhMTE0X2RjX3NvY19pbmZvID0gewo+ICAJLm51 bV9vdmVybGF5X2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHRlZ3JhMTE0X292ZXJsYXlfZm9ybWF0cyks Cj4gIAkub3ZlcmxheV9mb3JtYXRzID0gdGVncmExMTRfb3ZlcmxheV9mb3JtYXRzLAo+ICAJLm1v ZGlmaWVycyA9IHRlZ3JhMjBfbW9kaWZpZXJzLAo+ICsJLmhhc193aW5fYV9jc2MgPSB0cnVlLAo+ ICB9Owo+ICAKPiAgc3RhdGljIGNvbnN0IHN0cnVjdCB0ZWdyYV9kY19zb2NfaW5mbyB0ZWdyYTEy NF9kY19zb2NfaW5mbyA9IHsKPiBAQCAtMjMyMyw2ICsyMzg5LDcgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCB0ZWdyYV9kY19zb2NfaW5mbyB0ZWdyYTEyNF9kY19zb2NfaW5mbyA9IHsKPiAgCS5udW1f b3ZlcmxheV9mb3JtYXRzID0gQVJSQVlfU0laRSh0ZWdyYTEyNF9vdmVybGF5X2Zvcm1hdHMpLAo+ ICAJLm92ZXJsYXlfZm9ybWF0cyA9IHRlZ3JhMTI0X292ZXJsYXlfZm9ybWF0cywKPiAgCS5tb2Rp ZmllcnMgPSB0ZWdyYTEyNF9tb2RpZmllcnMsCj4gKwkuaGFzX3dpbl9hX2NzYyA9IHRydWUsCj4g IH07Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IHRlZ3JhX2RjX3NvY19pbmZvIHRlZ3JhMjEw X2RjX3NvY19pbmZvID0gewo+IEBAIC0yMzQxLDYgKzI0MDgsNyBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHRlZ3JhX2RjX3NvY19pbmZvIHRlZ3JhMjEwX2RjX3NvY19pbmZvID0gewo+ICAJLm51bV9v dmVybGF5X2Zvcm1hdHMgPSBBUlJBWV9TSVpFKHRlZ3JhMTE0X292ZXJsYXlfZm9ybWF0cyksCj4g IAkub3ZlcmxheV9mb3JtYXRzID0gdGVncmExMTRfb3ZlcmxheV9mb3JtYXRzLAo+ICAJLm1vZGlm aWVycyA9IHRlZ3JhMTI0X21vZGlmaWVycywKPiArCS5oYXNfd2luX2FfY3NjID0gdHJ1ZSwKPiAg fTsKPiAgCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdGVncmFfd2luZG93Z3JvdXBfc29jIHRlZ3Jh MTg2X2RjX3dncnBzW10gPSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9k Yy5oIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3JhL2RjLmgKPiBpbmRleCAzOTEzZDA0N2FiYWMuLjIz NDM5ZWFhYTRkZSAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvZGMuaAo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9kYy5oCj4gQEAgLTc3LDYgKzc3LDcgQEAgc3RydWN0 IHRlZ3JhX2RjX3NvY19pbmZvIHsKPiAgCWNvbnN0IHUzMiAqb3ZlcmxheV9mb3JtYXRzOwo+ICAJ dW5zaWduZWQgaW50IG51bV9vdmVybGF5X2Zvcm1hdHM7Cj4gIAljb25zdCB1NjQgKm1vZGlmaWVy czsKPiArCWJvb2wgaGFzX3dpbl9hX2NzYzsKPiAgfTsKPiAgCj4gIHN0cnVjdCB0ZWdyYV9kYyB7 Cj4gQEAgLTE1Miw2ICsxNTMsMTYgQEAgc3RydWN0IHRlZ3JhX2RjX3dpbmRvdyB7Cj4gIAkJdW5z aWduZWQgaW50IHc7Cj4gIAkJdW5zaWduZWQgaW50IGg7Cj4gIAl9IGRzdDsKPiArCXN0cnVjdCB7 Cj4gKwkJdW5zaWduZWQgaW50IHlvZjsKPiArCQl1bnNpZ25lZCBpbnQga3lyZ2I7Cj4gKwkJdW5z aWduZWQgaW50IGt1cjsKPiArCQl1bnNpZ25lZCBpbnQga3ZyOwo+ICsJCXVuc2lnbmVkIGludCBr dWc7Cj4gKwkJdW5zaWduZWQgaW50IGt2ZzsKPiArCQl1bnNpZ25lZCBpbnQga3ViOwo+ICsJCXVu c2lnbmVkIGludCBrdmI7Cj4gKwl9IGNzYzsKPiAgCXVuc2lnbmVkIGludCBiaXRzX3Blcl9waXhl bDsKPiAgCXVuc2lnbmVkIGludCBzdHJpZGVbMl07Cj4gIAl1bnNpZ25lZCBsb25nIGJhc2VbM107 Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9wbGFuZS5jIGIvZHJpdmVycy9n cHUvZHJtL3RlZ3JhL3BsYW5lLmMKPiBpbmRleCA0ZDc5NGYyYjQ0ZGYuLmM1NzMzYzVhNjZlOSAx MDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvcGxhbmUuYwo+ICsrKyBiL2RyaXZl cnMvZ3B1L2RybS90ZWdyYS9wbGFuZS5jCj4gQEAgLTE3LDYgKzE3LDkgQEAgc3RhdGljIHZvaWQg dGVncmFfcGxhbmVfZGVzdHJveShzdHJ1Y3QgZHJtX3BsYW5lICpwbGFuZSkKPiAgewo+ICAJc3Ry dWN0IHRlZ3JhX3BsYW5lICpwID0gdG9fdGVncmFfcGxhbmUocGxhbmUpOwo+ICAKPiArCWlmIChw LT5jc2NfZGVmYXVsdCkKPiArCQlkcm1fcHJvcGVydHlfYmxvYl9wdXQocC0+Y3NjX2RlZmF1bHQp Owo+ICsKPiAgCWRybV9wbGFuZV9jbGVhbnVwKHBsYW5lKTsKPiAgCWtmcmVlKHApOwo+ICB9Cj4g QEAgLTM4LDYgKzQxLDkgQEAgc3RhdGljIHZvaWQgdGVncmFfcGxhbmVfcmVzZXQoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUpCj4gIAkJcGxhbmUtPnN0YXRlLT5wbGFuZSA9IHBsYW5lOwo+ICAJCXBs YW5lLT5zdGF0ZS0+enBvcyA9IHAtPmluZGV4Owo+ICAJCXBsYW5lLT5zdGF0ZS0+bm9ybWFsaXpl ZF96cG9zID0gcC0+aW5kZXg7Cj4gKwo+ICsJCWlmIChwLT5jc2NfZGVmYXVsdCkKPiArCQkJc3Rh dGUtPmNzY19ibG9iID0gZHJtX3Byb3BlcnR5X2Jsb2JfZ2V0KHAtPmNzY19kZWZhdWx0KTsKPiAg CX0KPiAgfQo+ICAKPiBAQCAtNjMsMTIgKzY5LDIyIEBAIHRlZ3JhX3BsYW5lX2F0b21pY19kdXBs aWNhdGVfc3RhdGUoc3RydWN0IGRybV9wbGFuZSAqcGxhbmUpCj4gIAlmb3IgKGkgPSAwOyBpIDwg MjsgaSsrKQo+ICAJCWNvcHktPmJsZW5kaW5nW2ldID0gc3RhdGUtPmJsZW5kaW5nW2ldOwo+ICAK PiArCWlmIChzdGF0ZS0+Y3NjX2Jsb2IpCj4gKwkJY29weS0+Y3NjX2Jsb2IgPSBkcm1fcHJvcGVy dHlfYmxvYl9nZXQoc3RhdGUtPmNzY19ibG9iKTsKPiArCWVsc2UKPiArCQljb3B5LT5jc2NfYmxv YiA9IE5VTEw7Cj4gKwo+ICAJcmV0dXJuICZjb3B5LT5iYXNlOwo+ICB9Cj4gIAo+ICBzdGF0aWMg dm9pZCB0ZWdyYV9wbGFuZV9hdG9taWNfZGVzdHJveV9zdGF0ZShzdHJ1Y3QgZHJtX3BsYW5lICpw bGFuZSwKPiAgCQkJCQkgICAgIHN0cnVjdCBkcm1fcGxhbmVfc3RhdGUgKnN0YXRlKQo+ICB7Cj4g KwlzdHJ1Y3QgdGVncmFfcGxhbmVfc3RhdGUgKnRlZ3JhID0gdG9fdGVncmFfcGxhbmVfc3RhdGUo c3RhdGUpOwo+ICsKPiArCWlmICh0ZWdyYS0+Y3NjX2Jsb2IpCj4gKwkJZHJtX3Byb3BlcnR5X2Js b2JfcHV0KHRlZ3JhLT5jc2NfYmxvYik7Cj4gKwo+ICAJX19kcm1fYXRvbWljX2hlbHBlcl9wbGFu ZV9kZXN0cm95X3N0YXRlKHN0YXRlKTsKPiAgCWtmcmVlKHN0YXRlKTsKPiAgfQo+IEBAIC05NSw2 ICsxMTEsMjMgQEAgc3RhdGljIGludCB0ZWdyYV9wbGFuZV9zZXRfcHJvcGVydHkoc3RydWN0IGRy bV9wbGFuZSAqcGxhbmUsCj4gIHsKPiAgCXN0cnVjdCB0ZWdyYV9wbGFuZV9zdGF0ZSAqdGVncmFf c3RhdGUgPSB0b190ZWdyYV9wbGFuZV9zdGF0ZShzdGF0ZSk7Cj4gIAlzdHJ1Y3QgdGVncmFfcGxh bmUgKnRlZ3JhID0gdG9fdGVncmFfcGxhbmUocGxhbmUpOwo+ICsJc3RydWN0IGRybV9wcm9wZXJ0 eV9ibG9iICpibG9iOwo+ICsKPiArCWlmIChwcm9wZXJ0eSA9PSB0ZWdyYS0+cHJvcHMuY3NjX2Js b2IpIHsKPiArCQlibG9iID0gZHJtX3Byb3BlcnR5X2xvb2t1cF9ibG9iKHBsYW5lLT5kZXYsIHZh bHVlKTsKPiArCQlpZiAoIWJsb2IpCj4gKwkJCXJldHVybiAtRUlOVkFMOwo+ICsKPiArCQlpZiAo YmxvYi0+bGVuZ3RoICE9IHNpemVvZihzdHJ1Y3QgZHJtX3RlZ3JhX3BsYW5lX2NzY19ibG9iKSkg ewo+ICsJCQlkcm1fcHJvcGVydHlfYmxvYl9wdXQoYmxvYik7Cj4gKwkJCXJldHVybiAtRUlOVkFM Owo+ICsJCX0KPiArCj4gKwkJZHJtX3Byb3BlcnR5X2Jsb2JfcHV0KHRlZ3JhX3N0YXRlLT5jc2Nf YmxvYik7Cj4gKwkJdGVncmFfc3RhdGUtPmNzY19ibG9iID0gYmxvYjsKPiArCj4gKwkJcmV0dXJu IDA7Cj4gKwl9Cj4gIAo+ICAJaWYgKHByb3BlcnR5ID09IHRlZ3JhLT5wcm9wcy5jb2xvcl9rZXkw KQo+ICAJCXRlZ3JhX3N0YXRlLT5ja2V5MF9lbmFibGVkID0gdmFsdWU7Cj4gQEAgLTExOCw2ICsx NTEsOCBAQCBzdGF0aWMgaW50IHRlZ3JhX3BsYW5lX2dldF9wcm9wZXJ0eShzdHJ1Y3QgZHJtX3Bs YW5lICpwbGFuZSwKPiAgCQkqdmFsdWUgPSB0ZWdyYV9zdGF0ZS0+Y2tleTBfZW5hYmxlZDsKPiAg CWVsc2UgaWYgKHByb3BlcnR5ID09IHRlZ3JhLT5wcm9wcy5jb2xvcl9rZXkxKQo+ICAJCSp2YWx1 ZSA9IHRlZ3JhX3N0YXRlLT5ja2V5MV9lbmFibGVkOwo+ICsJZWxzZSBpZiAocHJvcGVydHkgPT0g dGVncmEtPnByb3BzLmNzY19ibG9iKQo+ICsJCSp2YWx1ZSA9IHRlZ3JhX3N0YXRlLT5jc2NfYmxv Yi0+YmFzZS5pZDsKPiAgCWVsc2UKPiAgCQlyZXR1cm4gLUVJTlZBTDsKPiAgCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS90ZWdyYS9wbGFuZS5oIGIvZHJpdmVycy9ncHUvZHJtL3RlZ3Jh L3BsYW5lLmgKPiBpbmRleCBkYWZlY2VhNzNiMjkuLmRjOWVmYTdiZTUwMiAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vdGVncmEvcGxhbmUuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS90 ZWdyYS9wbGFuZS5oCj4gQEAgLTIzLDcgKzIzLDEwIEBAIHN0cnVjdCB0ZWdyYV9wbGFuZSB7Cj4g IAlzdHJ1Y3Qgewo+ICAJCXN0cnVjdCBkcm1fcHJvcGVydHkgKmNvbG9yX2tleTA7Cj4gIAkJc3Ry dWN0IGRybV9wcm9wZXJ0eSAqY29sb3Jfa2V5MTsKPiArCQlzdHJ1Y3QgZHJtX3Byb3BlcnR5ICpj c2NfYmxvYjsKPiAgCX0gcHJvcHM7Cj4gKwo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpj c2NfZGVmYXVsdDsKPiAgfTsKPiAgCj4gIHN0cnVjdCB0ZWdyYV9jdXJzb3Igewo+IEBAIC01MSw2 ICs1NCw4IEBAIHN0cnVjdCB0ZWdyYV9wbGFuZV9zdGF0ZSB7Cj4gIAl1MzIgZm9ybWF0Owo+ICAJ dTMyIHN3YXA7Cj4gIAo+ICsJc3RydWN0IGRybV9wcm9wZXJ0eV9ibG9iICpjc2NfYmxvYjsKPiAr Cj4gIAkvKiB1c2VkIGZvciBsZWdhY3kgYmxlbmRpbmcgc3VwcG9ydCBvbmx5ICovCj4gIAlzdHJ1 Y3QgdGVncmFfcGxhbmVfbGVnYWN5X2JsZW5kaW5nX3N0YXRlIGJsZW5kaW5nWzJdOwo+ICAJYm9v bCBvcGFxdWU7Cj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvdWFwaS9kcm0vdGVncmFfZHJtLmggYi9p bmNsdWRlL3VhcGkvZHJtL3RlZ3JhX2RybS5oCj4gaW5kZXggYTVkYTQ0MjA5YTY4Li5hMzA1NGVh N2IyMjIgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS91YXBpL2RybS90ZWdyYV9kcm0uaAo+ICsrKyBi L2luY2x1ZGUvdWFwaS9kcm0vdGVncmFfZHJtLmgKPiBAQCAtMjksNiArMjksMTcgQEAKPiAgZXh0 ZXJuICJDIiB7Cj4gICNlbmRpZgo+ICAKPiArc3RydWN0IGRybV90ZWdyYV9wbGFuZV9jc2NfYmxv YiB7Cj4gKwlfX3UzMiB5b2Y7Cj4gKwlfX3UzMiBreXJnYjsKPiArCV9fdTMyIGt1cjsKPiArCV9f dTMyIGt2cjsKPiArCV9fdTMyIGt1ZzsKPiArCV9fdTMyIGt2ZzsKPiArCV9fdTMyIGt1YjsKPiAr CV9fdTMyIGt2YjsKPiArfTsKPiArCj4gICNkZWZpbmUgRFJNX1RFR1JBX0dFTV9DUkVBVEVfVElM RUQgICAgICgxIDw8IDApCj4gICNkZWZpbmUgRFJNX1RFR1JBX0dFTV9DUkVBVEVfQk9UVE9NX1VQ ICgxIDw8IDEpCj4gICNkZWZpbmUgRFJNX1RFR1JBX0dFTV9DUkVBVEVfU0NBVFRFUkVEICgxIDw8 IDIpCj4gLS0gCj4gMi4xNy4wCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KPiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0Cj4gZHJpLWRldmVsQGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwo+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwg SW50ZWwgQ29ycG9yYXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmkt ZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3Jn L21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==