From mboxrd@z Thu Jan 1 00:00:00 1970
From: Philipp Zabel
Subject: Re: [PATCH v5 02/12] gpu: ipu-csi: Swap fields according to
input/output field types
Date: Thu, 13 Dec 2018 13:59:24 +0100
Message-ID: <1544705964.5886.1.camel@pengutronix.de>
References: <20181017000027.23696-1-slongerbeam@gmail.com>
<20181017000027.23696-3-slongerbeam@gmail.com>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
Return-path:
Received: from metis.ext.pengutronix.de (metis.ext.pengutronix.de
[IPv6:2001:67c:670:201:290:27ff:fe1d:cc33])
by gabe.freedesktop.org (Postfix) with ESMTPS id 0C5F86E92B
for ; Thu, 13 Dec 2018 12:59:33 +0000 (UTC)
In-Reply-To: <20181017000027.23696-3-slongerbeam@gmail.com>
List-Unsubscribe: ,
List-Archive:
List-Post:
List-Help:
List-Subscribe: ,
Errors-To: dri-devel-bounces@lists.freedesktop.org
Sender: "dri-devel"
To: Steve Longerbeam , linux-media@vger.kernel.org
Cc: "open list:STAGING SUBSYSTEM" , "open list:FRAMEBUFFER LAYER" , Bartlomiej Zolnierkiewicz , Greg Kroah-Hartman , open list , "open list:DRM DRIVERS FOR FREESCALE IMX" , Mauro Carvalho Chehab
List-Id: dri-devel@lists.freedesktop.org
SGkgU3RldmUsCgpPbiBUdWUsIDIwMTgtMTAtMTYgYXQgMTc6MDAgLTA3MDAsIFN0ZXZlIExvbmdl
cmJlYW0gd3JvdGU6Cj4gVGhlIGZ1bmN0aW9uIGlwdV9jc2lfaW5pdF9pbnRlcmZhY2UoKSB3YXMg
aW52ZXJ0aW5nIHRoZSBGLWJpdCBmb3IKPiBOVFNDIGNhc2UsIGluIHRoZSBDQ0lSX0NPREVfMS8y
IHJlZ2lzdGVycy4gVGhlIHJlc3VsdCBiZWluZyB0aGF0Cj4gZm9yIE5UU0MgYm90dG9tLXRvcCBm
aWVsZCBvcmRlciwgdGhlIENTSSB3b3VsZCBzd2FwIGZpZWxkcyBhbmQKPiBjYXB0dXJlIGluIHRv
cC1ib3R0b20gb3JkZXIuCj4gCj4gSW5zdGVhZCwgYmFzZSBmaWVsZCBzd2FwIG9uIHRoZSBmaWVs
ZCBvcmRlciBvZiB0aGUgaW5wdXQgdG8gdGhlIENTSSwKPiBhbmQgdGhlIGZpZWxkIG9yZGVyIG9m
IHRoZSByZXF1ZXN0ZWQgb3V0cHV0LiBJZiB0aGUgaW5wdXQvb3V0cHV0Cj4gZmllbGRzIGFyZSBz
ZXF1ZW50aWFsIGJ1dCBkaWZmZXJlbnQsIHN3YXAgZmllbGRzLCBvdGhlcndpc2UgZG8KPiBub3Qg
c3dhcC4gVGhpcyByZXF1aXJlcyBwYXNzaW5nIGJvdGggdGhlIGlucHV0IGFuZCBvdXRwdXQgbWJ1
cwo+IGZyYW1lIGZvcm1hdHMgdG8gaXB1X2NzaV9pbml0X2ludGVyZmFjZSgpLgo+IAo+IE1vdmUg
dGhpcyBjb2RlIHRvIGEgbmV3IHByaXZhdGUgZnVuY3Rpb24gaXB1X2NzaV9zZXRfYnRfaW50ZXJs
YWNlZF9jb2RlcygpCj4gdGhhdCBwcm9ncmFtcyB0aGUgQ0NJUl9DT0RFXzEvMiByZWdpc3RlcnMg
Zm9yIGludGVybGFjZWQgQlQuNjU2IChhbmQKPiBwb3NzaWJseSBpbnRlcmxhY2VkIEJULjExMjAg
aW4gdGhlIGZ1dHVyZSkuCj4gCj4gV2hlbiBkZXRlY3RpbmcgaW5wdXQgdmlkZW8gc3RhbmRhcmQg
ZnJvbSB0aGUgaW5wdXQgZnJhbWUgd2lkdGgvaGVpZ2h0LAo+IG1ha2Ugc3VyZSB0byBkb3VibGUg
aGVpZ2h0IGlmIGlucHV0IGZpZWxkIHR5cGUgaXMgYWx0ZXJuYXRlLCBzaW5jZQo+IGluIHRoYXQg
Y2FzZSBpbnB1dCBoZWlnaHQgb25seSBpbmNsdWRlcyBsaW5lcyBmb3Igb25lIGZpZWxkLgo+IAo+
IFNpZ25lZC1vZmYtYnk6IFN0ZXZlIExvbmdlcmJlYW0gPHNsb25nZXJiZWFtQGdtYWlsLmNvbT4K
PiAtLS0KPiBDaGFuZ2VzIHNpbmNlIHY0Ogo+IC0gQ2xlYW5lZCB1cCBzb21lIGNvbnZvbHV0ZWQg
Y29kZSBpbiBpcHVfY3NpX2luaXRfaW50ZXJmYWNlKCksIHN1Z2dlc3RlZAo+ICAgYnkgUGhpbGlw
cCBaYWJlbC4KPiAtIEZpeGVkIGEgcmVncmVzc2lvbiBpbiBjc2lfc2V0dXAoKSwgY2F1Z2h0IGJ5
IFBoaWxpcHAuCj4gLS0tCj4gIGRyaXZlcnMvZ3B1L2lwdS12My9pcHUtY3NpLmMgICAgICAgICAg
ICAgIHwgMTE5ICsrKysrKysrKysrKysrKy0tLS0tLS0KPiAgZHJpdmVycy9zdGFnaW5nL21lZGlh
L2lteC9pbXgtbWVkaWEtY3NpLmMgfCAgMTcgKy0tLQo+ICBpbmNsdWRlL3ZpZGVvL2lteC1pcHUt
djMuaCAgICAgICAgICAgICAgICB8ICAgMyArLQo+ICAzIGZpbGVzIGNoYW5nZWQsIDg4IGluc2Vy
dGlvbnMoKyksIDUxIGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9p
cHUtdjMvaXB1LWNzaS5jIGIvZHJpdmVycy9ncHUvaXB1LXYzL2lwdS1jc2kuYwo+IGluZGV4IGFh
MGUzMGEyYmExOC4uNGExNWU1MTNmYTA1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2lwdS12
My9pcHUtY3NpLmMKPiArKysgYi9kcml2ZXJzL2dwdS9pcHUtdjMvaXB1LWNzaS5jCj4gQEAgLTMy
NSw2ICszMjUsMTUgQEAgc3RhdGljIGludCBtYnVzX2NvZGVfdG9fYnVzX2NmZyhzdHJ1Y3QgaXB1
X2NzaV9idXNfY29uZmlnICpjZmcsIHUzMiBtYnVzX2NvZGUsCj4gIAlyZXR1cm4gMDsKPiAgfQo+
ICAKPiArLyogdHJhbnNsYXRlIGFsdGVybmF0ZSBmaWVsZCBtb2RlIGJhc2VkIG9uIGdpdmVuIHN0
YW5kYXJkICovCj4gK3N0YXRpYyBpbmxpbmUgZW51bSB2NGwyX2ZpZWxkCj4gK2lwdV9jc2lfdHJh
bnNsYXRlX2ZpZWxkKGVudW0gdjRsMl9maWVsZCBmaWVsZCwgdjRsMl9zdGRfaWQgc3RkKQo+ICt7
Cj4gKwlyZXR1cm4gKGZpZWxkICE9IFY0TDJfRklFTERfQUxURVJOQVRFKSA/IGZpZWxkIDoKPiAr
CQkoKHN0ZCAmIFY0TDJfU1REXzUyNV82MCkgPwo+ICsJCSBWNEwyX0ZJRUxEX1NFUV9CVCA6IFY0
TDJfRklFTERfU0VRX1RCKTsKPiArfQo+ICsKPiAgLyoKPiAgICogRmlsbCBhIENTSSBidXMgY29u
ZmlnIHN0cnVjdCBmcm9tIG1idXNfY29uZmlnIGFuZCBtYnVzX2ZyYW1lZm10Lgo+ICAgKi8KPiBA
QCAtMzc0LDIyICszODMsNzUgQEAgc3RhdGljIGludCBmaWxsX2NzaV9idXNfY2ZnKHN0cnVjdCBp
cHVfY3NpX2J1c19jb25maWcgKmNzaWNmZywKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ICtzdGF0
aWMgaW50IGlwdV9jc2lfc2V0X2J0X2ludGVybGFjZWRfY29kZXMoc3RydWN0IGlwdV9jc2kgKmNz
aSwKPiArCQkJCQkgICBzdHJ1Y3QgdjRsMl9tYnVzX2ZyYW1lZm10ICppbmZtdCwKPiArCQkJCQkg
ICBzdHJ1Y3QgdjRsMl9tYnVzX2ZyYW1lZm10ICpvdXRmbXQsCgppbmZtdCBhbmQgb3V0Zm10IHBh
cmFtZXRlcnMgY291bGQgYmUgY29uc3QuCgo+ICsJCQkJCSAgIHY0bDJfc3RkX2lkIHN0ZCkKPiAr
ewo+ICsJZW51bSB2NGwyX2ZpZWxkIGluZmllbGQsIG91dGZpZWxkOwo+ICsJYm9vbCBzd2FwX2Zp
ZWxkczsKPiArCj4gKwkvKiBnZXQgdHJhbnNsYXRlZCBmaWVsZCB0eXBlIG9mIGlucHV0IGFuZCBv
dXRwdXQgKi8KPiArCWluZmllbGQgPSBpcHVfY3NpX3RyYW5zbGF0ZV9maWVsZChpbmZtdC0+Zmll
bGQsIHN0ZCk7Cj4gKwlvdXRmaWVsZCA9IGlwdV9jc2lfdHJhbnNsYXRlX2ZpZWxkKG91dGZtdC0+
ZmllbGQsIHN0ZCk7Cj4gKwo+ICsJLyoKPiArCSAqIFdyaXRlIHRoZSBILVYtRiBjb2RlcyB0aGUg
Q1NJIHdpbGwgbWF0Y2ggYWdhaW5zdCB0aGUKPiArCSAqIGluY29taW5nIGRhdGEgZm9yIHN0YXJ0
L2VuZCBvZiBhY3RpdmUgYW5kIGJsYW5raW5nCj4gKwkgKiBmaWVsZCBpbnRlcnZhbHMuIElmIGlu
cHV0IGFuZCBvdXRwdXQgZmllbGQgdHlwZXMgYXJlCj4gKwkgKiBzZXF1ZW50aWFsIGJ1dCBub3Qg
dGhlIHNhbWUgKG9uZSBpcyBTRVFfQlQgYW5kIHRoZSBvdGhlcgo+ICsJICogaXMgU0VRX1RCKSwg
c3dhcCB0aGUgRi1iaXQgc28gdGhhdCB0aGUgQ1NJIHdpbGwgY2FwdHVyZQo+ICsJICogZmllbGQg
MSBsaW5lcyBiZWZvcmUgZmllbGQgMCBsaW5lcy4KPiArCSAqLwo+ICsJc3dhcF9maWVsZHMgPSAo
VjRMMl9GSUVMRF9JU19TRVFVRU5USUFMKGluZmllbGQpICYmCj4gKwkJICAgICAgIFY0TDJfRklF
TERfSVNfU0VRVUVOVElBTChvdXRmaWVsZCkgJiYKPiArCQkgICAgICAgaW5maWVsZCAhPSBvdXRm
aWVsZCk7Cj4gKwo+ICsJaWYgKCFzd2FwX2ZpZWxkcykgewo+ICsJCS8qCj4gKwkJICogRmllbGQw
QmxhbmtFbmQgID0gMTEwLCBGaWVsZDBCbGFua1N0YXJ0ICA9IDAxMAo+ICsJCSAqIEZpZWxkMEFj
dGl2ZUVuZCA9IDEwMCwgRmllbGQwQWN0aXZlU3RhcnQgPSAwMDAKPiArCQkgKiBGaWVsZDFCbGFu
a0VuZCAgPSAxMTEsIEZpZWxkMUJsYW5rU3RhcnQgID0gMDExCj4gKwkJICogRmllbGQxQWN0aXZl
RW5kID0gMTAxLCBGaWVsZDFBY3RpdmVTdGFydCA9IDAwMQo+ICsJCSAqLwo+ICsJCWlwdV9jc2lf
d3JpdGUoY3NpLCAweDQwNTk2IHwgQ1NJX0NDSVJfRVJSX0RFVF9FTiwKPiArCQkJICAgICAgQ1NJ
X0NDSVJfQ09ERV8xKTsKPiArCQlpcHVfY3NpX3dyaXRlKGNzaSwgMHhEMDdERiwgQ1NJX0NDSVJf
Q09ERV8yKTsKPiArCX0gZWxzZSB7Cj4gKwkJZGV2X2RiZyhjc2ktPmlwdS0+ZGV2LCAiY2FwdHVy
ZSBmaWVsZCBzd2FwXG4iKTsKPiArCj4gKwkJLyogc2FtZSBhcyBhYm92ZSBidXQgd2l0aCBGLWJp
dCBpbnZlcnRlZCAqLwo+ICsJCWlwdV9jc2lfd3JpdGUoY3NpLCAweEQwN0RGIHwgQ1NJX0NDSVJf
RVJSX0RFVF9FTiwKPiArCQkJICAgICAgQ1NJX0NDSVJfQ09ERV8xKTsKPiArCQlpcHVfY3NpX3dy
aXRlKGNzaSwgMHg0MDU5NiwgQ1NJX0NDSVJfQ09ERV8yKTsKPiArCX0KPiArCj4gKwlpcHVfY3Np
X3dyaXRlKGNzaSwgMHhGRjAwMDAsIENTSV9DQ0lSX0NPREVfMyk7Cj4gKwo+ICsJcmV0dXJuIDA7
Cj4gK30KPiArCj4gKwo+ICBpbnQgaXB1X2NzaV9pbml0X2ludGVyZmFjZShzdHJ1Y3QgaXB1X2Nz
aSAqY3NpLAo+ICAJCQkgICBzdHJ1Y3QgdjRsMl9tYnVzX2NvbmZpZyAqbWJ1c19jZmcsCj4gLQkJ
CSAgIHN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQgKm1idXNfZm10KQo+ICsJCQkgICBzdHJ1Y3Qg
djRsMl9tYnVzX2ZyYW1lZm10ICppbmZtdCwKPiArCQkJICAgc3RydWN0IHY0bDJfbWJ1c19mcmFt
ZWZtdCAqb3V0Zm10KQo+ICB7Cj4gIAlzdHJ1Y3QgaXB1X2NzaV9idXNfY29uZmlnIGNmZzsKPiAg
CXVuc2lnbmVkIGxvbmcgZmxhZ3M7Cj4gIAl1MzIgd2lkdGgsIGhlaWdodCwgZGF0YSA9IDA7Cj4g
Kwl2NGwyX3N0ZF9pZCBzdGQ7Cj4gIAlpbnQgcmV0Owo+ICAKPiAtCXJldCA9IGZpbGxfY3NpX2J1
c19jZmcoJmNmZywgbWJ1c19jZmcsIG1idXNfZm10KTsKPiArCXJldCA9IGZpbGxfY3NpX2J1c19j
ZmcoJmNmZywgbWJ1c19jZmcsIGluZm10KTsKPiAgCWlmIChyZXQgPCAwKQo+ICAJCXJldHVybiBy
ZXQ7Cj4gIAo+ICAJLyogc2V0IGRlZmF1bHQgc2Vuc29yIGZyYW1lIHdpZHRoIGFuZCBoZWlnaHQg
Ki8KPiAtCXdpZHRoID0gbWJ1c19mbXQtPndpZHRoOwo+IC0JaGVpZ2h0ID0gbWJ1c19mbXQtPmhl
aWdodDsKPiArCXdpZHRoID0gaW5mbXQtPndpZHRoOwo+ICsJaGVpZ2h0ID0gaW5mbXQtPmhlaWdo
dDsKPiArCWlmIChpbmZtdC0+ZmllbGQgPT0gVjRMMl9GSUVMRF9BTFRFUk5BVEUpCj4gKwkJaGVp
Z2h0ICo9IDI7Cj4gIAo+ICAJLyogU2V0IHRoZSBDU0lfU0VOU19DT05GIHJlZ2lzdGVyIHJlbWFp
bmluZyBmaWVsZHMgKi8KPiAgCWRhdGEgfD0gY2ZnLmRhdGFfd2lkdGggPDwgQ1NJX1NFTlNfQ09O
Rl9EQVRBX1dJRFRIX1NISUZUIHwKPiBAQCAtNDE2LDQyICs0NzgsMjIgQEAgaW50IGlwdV9jc2lf
aW5pdF9pbnRlcmZhY2Uoc3RydWN0IGlwdV9jc2kgKmNzaSwKPiAgCQlpcHVfY3NpX3dyaXRlKGNz
aSwgMHhGRjAwMDAsIENTSV9DQ0lSX0NPREVfMyk7Cj4gIAkJYnJlYWs7Cj4gIAljYXNlIElQVV9D
U0lfQ0xLX01PREVfQ0NJUjY1Nl9JTlRFUkxBQ0VEOgo+IC0JCWlmIChtYnVzX2ZtdC0+d2lkdGgg
PT0gNzIwICYmIG1idXNfZm10LT5oZWlnaHQgPT0gNTc2KSB7Cj4gLQkJCS8qCj4gLQkJCSAqIFBB
TCBjYXNlCj4gLQkJCSAqCj4gLQkJCSAqIEZpZWxkMEJsYW5rRW5kID0gMHg2LCBGaWVsZDBCbGFu
a1N0YXJ0ID0gMHgyLAo+IC0JCQkgKiBGaWVsZDBBY3RpdmVFbmQgPSAweDQsIEZpZWxkMEFjdGl2
ZVN0YXJ0ID0gMAo+IC0JCQkgKiBGaWVsZDFCbGFua0VuZCA9IDB4NywgRmllbGQxQmxhbmtTdGFy
dCA9IDB4MywKPiAtCQkJICogRmllbGQxQWN0aXZlRW5kID0gMHg1LCBGaWVsZDFBY3RpdmVTdGFy
dCA9IDB4MQo+IC0JCQkgKi8KPiAtCQkJaGVpZ2h0ID0gNjI1OyAvKiBmcmFtZWxpbmVzIGZvciBQ
QUwgKi8KPiAtCj4gLQkJCWlwdV9jc2lfd3JpdGUoY3NpLCAweDQwNTk2IHwgQ1NJX0NDSVJfRVJS
X0RFVF9FTiwKPiAtCQkJCQkgIENTSV9DQ0lSX0NPREVfMSk7Cj4gLQkJCWlwdV9jc2lfd3JpdGUo
Y3NpLCAweEQwN0RGLCBDU0lfQ0NJUl9DT0RFXzIpOwo+IC0JCQlpcHVfY3NpX3dyaXRlKGNzaSwg
MHhGRjAwMDAsIENTSV9DQ0lSX0NPREVfMyk7Cj4gLQkJfSBlbHNlIGlmIChtYnVzX2ZtdC0+d2lk
dGggPT0gNzIwICYmIG1idXNfZm10LT5oZWlnaHQgPT0gNDgwKSB7Cj4gLQkJCS8qCj4gLQkJCSAq
IE5UU0MgY2FzZQo+IC0JCQkgKgo+IC0JCQkgKiBGaWVsZDBCbGFua0VuZCA9IDB4NywgRmllbGQw
QmxhbmtTdGFydCA9IDB4MywKPiAtCQkJICogRmllbGQwQWN0aXZlRW5kID0gMHg1LCBGaWVsZDBB
Y3RpdmVTdGFydCA9IDB4MQo+IC0JCQkgKiBGaWVsZDFCbGFua0VuZCA9IDB4NiwgRmllbGQxQmxh
bmtTdGFydCA9IDB4MiwKPiAtCQkJICogRmllbGQxQWN0aXZlRW5kID0gMHg0LCBGaWVsZDFBY3Rp
dmVTdGFydCA9IDAKPiAtCQkJICovCj4gLQkJCWhlaWdodCA9IDUyNTsgLyogZnJhbWVsaW5lcyBm
b3IgTlRTQyAqLwo+IC0KPiAtCQkJaXB1X2NzaV93cml0ZShjc2ksIDB4RDA3REYgfCBDU0lfQ0NJ
Ul9FUlJfREVUX0VOLAo+IC0JCQkJCSAgQ1NJX0NDSVJfQ09ERV8xKTsKPiAtCQkJaXB1X2NzaV93
cml0ZShjc2ksIDB4NDA1OTYsIENTSV9DQ0lSX0NPREVfMik7Cj4gLQkJCWlwdV9jc2lfd3JpdGUo
Y3NpLCAweEZGMDAwMCwgQ1NJX0NDSVJfQ09ERV8zKTsKPiArCQlpZiAod2lkdGggPT0gNzIwICYm
IGhlaWdodCA9PSA0ODApIHsKPiArCQkJc3RkID0gVjRMMl9TVERfTlRTQzsKPiArCQkJaGVpZ2h0
ID0gNTI1Owo+ICsJCX0gZWxzZSBpZiAod2lkdGggPT0gNzIwICYmIGhlaWdodCA9PSA1NzYpIHsK
PiArCQkJc3RkID0gVjRMMl9TVERfUEFMOwo+ICsJCQloZWlnaHQgPSA2MjU7Cj4gIAkJfSBlbHNl
IHsKPiAgCQkJZGV2X2Vycihjc2ktPmlwdS0+ZGV2LAo+IC0JCQkJIlVuc3VwcG9ydGVkIENDSVI2
NTYgaW50ZXJsYWNlZCB2aWRlbyBtb2RlXG4iKTsKPiAtCQkJc3Bpbl91bmxvY2tfaXJxcmVzdG9y
ZSgmY3NpLT5sb2NrLCBmbGFncyk7Cj4gLQkJCXJldHVybiAtRUlOVkFMOwo+ICsJCQkJIlVuc3Vw
cG9ydGVkIGludGVybGFjZWQgdmlkZW8gbW9kZVxuIik7Cj4gKwkJCXJldCA9IC1FSU5WQUw7Cj4g
KwkJCWdvdG8gb3V0X3VubG9jazsKPiAgCQl9Cj4gKwo+ICsJCXJldCA9IGlwdV9jc2lfc2V0X2J0
X2ludGVybGFjZWRfY29kZXMoY3NpLCBpbmZtdCwgb3V0Zm10LCBzdGQpOwo+ICsJCWlmIChyZXQp
Cj4gKwkJCWdvdG8gb3V0X3VubG9jazsKPiAgCQlicmVhazsKPiAgCWNhc2UgSVBVX0NTSV9DTEtf
TU9ERV9DQ0lSMTEyMF9QUk9HUkVTU0lWRV9ERFI6Cj4gIAljYXNlIElQVV9DU0lfQ0xLX01PREVf
Q0NJUjExMjBfUFJPR1JFU1NJVkVfU0RSOgo+IEBAIC00NzYsOSArNTE4LDEwIEBAIGludCBpcHVf
Y3NpX2luaXRfaW50ZXJmYWNlKHN0cnVjdCBpcHVfY3NpICpjc2ksCj4gIAlkZXZfZGJnKGNzaS0+
aXB1LT5kZXYsICJDU0lfQUNUX0ZSTV9TSVpFID0gMHglMDhYXG4iLAo+ICAJCWlwdV9jc2lfcmVh
ZChjc2ksIENTSV9BQ1RfRlJNX1NJWkUpKTsKPiAgCj4gK291dF91bmxvY2s6Cj4gIAlzcGluX3Vu
bG9ja19pcnFyZXN0b3JlKCZjc2ktPmxvY2ssIGZsYWdzKTsKPiAgCj4gLQlyZXR1cm4gMDsKPiAr
CXJldHVybiByZXQ7Cj4gIH0KPiAgRVhQT1JUX1NZTUJPTF9HUEwoaXB1X2NzaV9pbml0X2ludGVy
ZmFjZSk7Cj4gIAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3N0YWdpbmcvbWVkaWEvaW14L2lteC1t
ZWRpYS1jc2kuYyBiL2RyaXZlcnMvc3RhZ2luZy9tZWRpYS9pbXgvaW14LW1lZGlhLWNzaS5jCj4g
aW5kZXggNDIyM2Y4ZDQxOGFlLi43ZWNiZDRkNzZkMDkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9z
dGFnaW5nL21lZGlhL2lteC9pbXgtbWVkaWEtY3NpLmMKPiArKysgYi9kcml2ZXJzL3N0YWdpbmcv
bWVkaWEvaW14L2lteC1tZWRpYS1jc2kuYwo+IEBAIC02NjMsMTUgKzY2MywxNCBAQCBzdGF0aWMg
dm9pZCBjc2lfaWRtYWNfc3RvcChzdHJ1Y3QgY3NpX3ByaXYgKnByaXYpCj4gIC8qIFVwZGF0ZSB0
aGUgQ1NJIHdob2xlIHNlbnNvciBhbmQgYWN0aXZlIHdpbmRvd3MgKi8KPiAgc3RhdGljIGludCBj
c2lfc2V0dXAoc3RydWN0IGNzaV9wcml2ICpwcml2KQo+ICB7Cj4gLQlzdHJ1Y3QgdjRsMl9tYnVz
X2ZyYW1lZm10ICppbmZtdCwgKm91dGZtdDsKPiArCXN0cnVjdCB2NGwyX21idXNfZnJhbWVmbXQg
aW5mbXQsIG91dGZtdDsKPiAgCWNvbnN0IHN0cnVjdCBpbXhfbWVkaWFfcGl4Zm10ICppbmNjOwo+
ICAJc3RydWN0IHY0bDJfbWJ1c19jb25maWcgbWJ1c19jZmc7Cj4gLQlzdHJ1Y3QgdjRsMl9tYnVz
X2ZyYW1lZm10IGlmX2ZtdDsKPiAgCXN0cnVjdCB2NGwyX3JlY3QgY3JvcDsKPiAgCj4gLQlpbmZt
dCA9ICZwcml2LT5mb3JtYXRfbWJ1c1tDU0lfU0lOS19QQURdOwo+ICsJaW5mbXQgPSBwcml2LT5m
b3JtYXRfbWJ1c1tDU0lfU0lOS19QQURdOwoKTWF5YmUgc3RpbGwgY2FsbCB0aGlzIGlmX2ZtdCwg
b3IgbWF5YmUgY3NpX2ZtdCwgdG8gaW5kaWNhdGUgdGhpcyBpcyBub3QKanVzdCB0aGUgdXNlcnNw
YWNlIHZpc2libGUgaW5wdXQgZm9ybWF0IGFzIGRldGVybWluZWQgYnkgdGhlIHBhZCwgYnV0CnRo
ZSBtb2RpZmllZCBmb3JtYXQgd2Ugc2V0IHRoZSBpbnRlcmZhY2UgdG8/IE5vdCBhIHN0cm9uZyBw
cmVmZXJlbmNlLAp0aG91Z2guCgo+ICAJaW5jYyA9IHByaXYtPmNjW0NTSV9TSU5LX1BBRF07Cj4g
LQlvdXRmbXQgPSAmcHJpdi0+Zm9ybWF0X21idXNbcHJpdi0+YWN0aXZlX291dHB1dF9wYWRdOwo+
ICsJb3V0Zm10ID0gcHJpdi0+Zm9ybWF0X21idXNbcHJpdi0+YWN0aXZlX291dHB1dF9wYWRdOwoK
Q29weWluZyB0aGUgb3V0cHV0IGZvcm1hdCBvbnRvIHRoZSBzdGFjayBzZWVtcyB1bm5lY2Vzc2Fy
eSB0byBtZS4KCj4gIAo+ICAJLyogY29tcG9zZSBtYnVzX2NvbmZpZyBmcm9tIHRoZSB1cHN0cmVh
bSBlbmRwb2ludCAqLwo+ICAJbWJ1c19jZmcudHlwZSA9IHByaXYtPnVwc3RyZWFtX2VwLmJ1c190
eXBlOwo+IEBAIC02NzksMTIgKzY3OCw2IEBAIHN0YXRpYyBpbnQgY3NpX3NldHVwKHN0cnVjdCBj
c2lfcHJpdiAqcHJpdikKPiAgCQlwcml2LT51cHN0cmVhbV9lcC5idXMucGFyYWxsZWwuZmxhZ3Mg
Ogo+ICAJCXByaXYtPnVwc3RyZWFtX2VwLmJ1cy5taXBpX2NzaTIuZmxhZ3M7Cj4gIAo+IC0JLyoK
PiAtCSAqIHdlIG5lZWQgdG8gcGFzcyBpbnB1dCBmcmFtZSB0byBDU0kgaW50ZXJmYWNlLCBidXQK
PiAtCSAqIHdpdGggdHJhbnNsYXRlZCBmaWVsZCB0eXBlIGZyb20gb3V0cHV0IGZvcm1hdAo+IC0J
ICovCj4gLQlpZl9mbXQgPSAqaW5mbXQ7Cj4gLQlpZl9mbXQuZmllbGQgPSBvdXRmbXQtPmZpZWxk
Owo+ICAJY3JvcCA9IHByaXYtPmNyb3A7Cj4gIAo+ICAJLyoKPiBAQCAtNjkyLDcgKzY4NSw3IEBA
IHN0YXRpYyBpbnQgY3NpX3NldHVwKHN0cnVjdCBjc2lfcHJpdiAqcHJpdikKPiAgCSAqIGdlbmVy
aWMvYmF5ZXIgZGF0YQo+ICAJICovCj4gIAlpZiAoaXNfcGFyYWxsZWxfYnVzKCZwcml2LT51cHN0
cmVhbV9lcCkgJiYgaW5jYy0+Y3ljbGVzKSB7Cj4gLQkJaWZfZm10LndpZHRoICo9IGluY2MtPmN5
Y2xlczsKPiArCQlpbmZtdC53aWR0aCAqPSBpbmNjLT5jeWNsZXM7Cj4gIAkJY3JvcC53aWR0aCAq
PSBpbmNjLT5jeWNsZXM7Cj4gIAl9Cj4gIAo+IEBAIC03MDIsNyArNjk1LDcgQEAgc3RhdGljIGlu
dCBjc2lfc2V0dXAoc3RydWN0IGNzaV9wcml2ICpwcml2KQo+ICAJCQkgICAgIHByaXYtPmNyb3Au
d2lkdGggPT0gMiAqIHByaXYtPmNvbXBvc2Uud2lkdGgsCj4gIAkJCSAgICAgcHJpdi0+Y3JvcC5o
ZWlnaHQgPT0gMiAqIHByaXYtPmNvbXBvc2UuaGVpZ2h0KTsKPiAgCj4gLQlpcHVfY3NpX2luaXRf
aW50ZXJmYWNlKHByaXYtPmNzaSwgJm1idXNfY2ZnLCAmaWZfZm10KTsKPiArCWlwdV9jc2lfaW5p
dF9pbnRlcmZhY2UocHJpdi0+Y3NpLCAmbWJ1c19jZmcsICZpbmZtdCwgJm91dGZtdCk7CgpXZSBj
YW4ganVzdCBwYXNzIHRoZSAmcHJpdi0+Zm9ybWF0X21idXNbcHJpdi0+YWN0aXZlX291dHB1dF9w
YWRdIGhlcmUsCm9yIGtlZXAgdXNpbmcgc3RydWN0IHY0bDJfbWJ1c19mcmFtZWZtdCAqb3V0Zm10
IGFzIGEgc2hvcnRoYW5kLgoKPiAgCj4gIAlpcHVfY3NpX3NldF9kZXN0KHByaXYtPmNzaSwgcHJp
di0+ZGVzdCk7Cj4gIAo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL3ZpZGVvL2lteC1pcHUtdjMuaCBi
L2luY2x1ZGUvdmlkZW8vaW14LWlwdS12My5oCj4gaW5kZXggYWJiYWQ5NGUxNGExLi5mNDRhMzUx
OTIzMTMgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS92aWRlby9pbXgtaXB1LXYzLmgKPiArKysgYi9p
bmNsdWRlL3ZpZGVvL2lteC1pcHUtdjMuaAo+IEBAIC0zNTIsNyArMzUyLDggQEAgaW50IGlwdV9w
cmdfY2hhbm5lbF9jb25maWd1cmUoc3RydWN0IGlwdXYzX2NoYW5uZWwgKmlwdV9jaGFuLAo+ICBz
dHJ1Y3QgaXB1X2NzaTsKPiAgaW50IGlwdV9jc2lfaW5pdF9pbnRlcmZhY2Uoc3RydWN0IGlwdV9j
c2kgKmNzaSwKPiAgCQkJICAgc3RydWN0IHY0bDJfbWJ1c19jb25maWcgKm1idXNfY2ZnLAo+IC0J
CQkgICBzdHJ1Y3QgdjRsMl9tYnVzX2ZyYW1lZm10ICptYnVzX2ZtdCk7Cj4gKwkJCSAgIHN0cnVj
dCB2NGwyX21idXNfZnJhbWVmbXQgKmluZm10LAo+ICsJCQkgICBzdHJ1Y3QgdjRsMl9tYnVzX2Zy
YW1lZm10ICpvdXRmbXQpOwo+ICBib29sIGlwdV9jc2lfaXNfaW50ZXJsYWNlZChzdHJ1Y3QgaXB1
X2NzaSAqY3NpKTsKPiAgdm9pZCBpcHVfY3NpX2dldF93aW5kb3coc3RydWN0IGlwdV9jc2kgKmNz
aSwgc3RydWN0IHY0bDJfcmVjdCAqdyk7Cj4gIHZvaWQgaXB1X2NzaV9zZXRfd2luZG93KHN0cnVj
dCBpcHVfY3NpICpjc2ksIHN0cnVjdCB2NGwyX3JlY3QgKncpOwoKRWl0aGVyIHdheSwKUmV2aWV3
ZWQtYnk6IFBoaWxpcHAgWmFiZWwgPHAuemFiZWxAcGVuZ3V0cm9uaXguZGU+CgpyZWdhcmRzClBo
aWxpcHAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJp
LWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBz
Oi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==