From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Ferre Subject: Re: [PATCH v4 4/5] tty/serial: at91: add support to FIFOs Date: Wed, 29 Jul 2015 17:09:59 +0200 Message-ID: <55B8ECC7.6010304@atmel.com> References: <4d8e90ad2cbb0d020dae4a4806ffc8864b5b22b6.1435842688.git.cyrille.pitchen@atmel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Andy Shevchenko , Cyrille Pitchen , Greg Kroah-Hartman , Hans-Christian Egtvedt Cc: Mark Rutland , devicetree , Pawel Moll , ijc+devicetree , "linux-kernel@vger.kernel.org" , Rob Herring , wenyou.yang@atmel.com, josh.wu@atmel.com, "ludovic.desroches" , alexandre.belloni@free-electrons.com, "linux-serial@vger.kernel.org" , Kumar Gala , leilei.zhao@atmel.com, linux-arm Mailing List List-Id: devicetree@vger.kernel.org TGUgMjkvMDcvMjAxNSAxNjo1MSwgQW5keSBTaGV2Y2hlbmtvIGEgw6ljcml0IDoKPiBPbiBUaHUs IEp1bCAyLCAyMDE1IGF0IDQ6MTggUE0sIEN5cmlsbGUgUGl0Y2hlbgo+IDxjeXJpbGxlLnBpdGNo ZW5AYXRtZWwuY29tPiB3cm90ZToKPj4gRGVwZW5kaW5nIG9uIHRoZSBoYXJkd2FyZSwgVFggYW5k IFJYIEZJRk9zIG1heSBiZSBhdmFpbGFibGUuIFRoZSBSWAo+PiBGSUZPIGNhbiBhdm9pZCByZWNl aXZlIG92ZXJydW5zLCBlc3BlY2lhbGx5IHdoZW4gRE1BIHRyYW5zZmVycyBhcmUKPj4gbm90IHVz ZWQgdG8gcmVhZCBkYXRhIGZyb20gdGhlIFJlY2VpdmUgSG9sZGluZyBSZWdpc3Rlci4gRm9yIGhl YXZ5Cj4+IHN5c3RlbSBsb2FkLCBUaGUgQ1BVIGlzIGxpa2VseSBub3QgYmUgYWJsZSB0byBmZXRj aCBkYXRhIGZhc3QgZW5vdWdoCj4+IGZyb20gdGhlIFJIUi4KPiAKPiBUaGlzIHBhdGNoIGJyb2tl IGF2cjMyIGNvbnNvbGUgKGFzIHNlZW4gaW4gdG9kYXkncyBsaW51eC1uZXh0KSBvbiBBVE5HVzEw MC4KPiBSZXZlcnRpbmcgaGVscHMuIEknbSBwcmV0dHkgc3VyZSB0aGUgaXNzdWUgaXMgaW4gOCBi aXQgdnMuIDMyIGJpdCBJL08gYWNjZXNzLgoKSSB3b3VsZCBsaWtlIHRoYXQgd2UgZG9uJ3QgcmV2 ZXJ0IHRoZSBwYXRjaC4KV2UnbGwgdHJ5IHRvIGJsaW5kbHkgZmluZCB0aGUgY2F1c2UgZm9yIHRo aXMgaXNzdWUuCgo+ICMgdW5hbWUgLWEKPiBMaW51eCBidWlsZHJvb3QgNC4yLjAtcmM0LW5leHQt MjAxNTA3MjkrICM5NyBXZWQgSnVsIDI5IDE3OjUwOjExIEVFU1QKPiAyMDE1IGF2cjMyIEdOVS9M aW51eAo+IAo+IERvIHlvdSwgZ3V5cywgaGF2ZSB0aGF0IGJvYXJkIChOR1cxMDApIG9yIGl0J3Mg b2ZmaWNpYWxseSB1bnN1cHBvcnRlZD8KClNvcnJ5IGJ1dCB3ZSBkb24ndCBoYXZlIEFWUjMyLWJh c2VkIGJvYXJkIGluIG91ciBvZmZpY2UuIEhhbnMtQ2hyaXN0aWFuCmtpbmRseSBoZWxwcyB1cyBm aXhpbmcgdGhlIGlzc3VlcyB0aGF0IHdlIGZpbmQgYW5kIHdlIHRlbmQgdG8gcmVseSBvbgp0aGUg Y29tbXVuaXR5IGZvciB0aGlzIGFyY2hpdGVjdHVyZSBzdXBwb3J0Li4uCgo+IElmIHRoZSBsYXR0 ZXIgaXMgdGhlIGNhc2UgSSB3b3VsZCByZWFsbHkgYXBwcmVjaWF0ZSBpZiB5b3UgcmVtb3ZlIHRo ZQo+IHN1cHBvcnQgZnJvbSB0aGUga2VybmVsIHNpZGUuCgpJIHdvbid0IGRlY2lkZSBmb3IgaXRz IHJlbW92YWwuIE9ubHkgdGhlIG1haW50YWluZXJzIHdpdGggZmVlZGJhY2sgZnJvbQp0aGUgdXNl ciBiYXNlIGNhbi4KCj4+IEluIGFkZGl0aW9uLCB0aGUgUlggRklGTyBjYW4gc3VwZXJzZWRlIHRo ZSBETUEvUERDIHRvIGNvbnRyb2wgdGhlIFJUUwo+PiBsaW5lIHdoZW4gdGhlIEhhcmR3YXJlIEhh bmRzaGFraW5nIG1vZGUgaXMgZW5hYmxlZC4gVHdvIHRocmVzaG9sZHMKPj4gYXJlIHRvIGJlIHNl dCBmb3IgdGhhdCBwdXJwb3NlOgo+PiAtIFdoZW4gdGhlIG51bWJlciBvZiBkYXRhIGluIHRoZSBS WCBGSUZPIGNyb3NzZXMgYW5kIGJlY29tZXMgbG93ZXIKPj4gICB0aGFuIG9yIGVxdWFsIHRvIHRo ZSBsb3cgdGhyZXNob2xkLCB0aGUgUlRTIGxpbmUgaXMgc2V0IHRvIGxvdwo+PiAgIGxldmVsOiB0 aGUgcmVtb3RlIHBlZXIgaXMgcmVxdWVzdGVkIHRvIHNlbmQgZGF0YS4KPj4gLSBXaGVuIHRoZSBu dW1iZXIgb2YgZGF0YSBpbiB0aGUgUlggRklGTyBjcm9zc2VzIGFuZCBiZWNvbWVzIGdyZWF0ZXIK Pj4gICB0aGFuIG9yIGVxdWFsIHRvIHRoZSBoaWdoIHRocmVzaG9sZCwgdGhlIFJUUyBsaW5lIGlz IHNldCB0byBoaWdoCj4+ICAgbGV2ZWw6IHRoZSByZW1vdGUgcGVlciBzaG91bGQgc3RvcCBzZW5k aW5nIG5ldyBkYXRhLgo+PiAtIGxvdyB0aHJlc2hvbGQgPD0gaGlnaCB0aHJlc2hvbGQKPj4gT25j ZSB0aGVzZSB0d28gdGhyZXNob2xkcyBhcmUgc2V0IHByb3Blcmx5LCB0aGlzIG5ldyBmZWF0dXJl IGlzCj4+IGVuYWJsZWQgYnkgc2V0dGluZyB0aGUgRklGTyBSVFMgQ29udHJvbCBiaXQgb2YgdGhl IEZJRk8gTW9kZSBSZWdpc3Rlci4KPj4KPj4gRklGT3MgYWxzbyBpbnRyb2R1Y2UgYSBuZXcgbXVs dGlwbGUgZGF0YSBtb2RlOiB0aGUgVVNBUlQgd29ya3MgZWl0aGVyCj4+IGluIG11bHRpcGxlIGRh dGEgbW9kZSBvciBpbiBzaW5nbGUgZGF0YSAobGVnYWN5KSBtb2RlLgo+Pgo+PiBJZiBNT0RFOSBi aXQgaXMgc2V0IGludG8gdGhlIE1vZGUgUmVnaXN0ZXIgb3IgaWYgVVNNT0RFIGlzIHNldCB0bwo+ PiBlaXRoZXIgTElOX01BU1RFUiwgTElOX1NMQVZFIG9yIExPTl9NT0RFLCBGSUZPcyBvcGVyYXRl IGluIHNpbmdsZQo+PiBkYXRhIG1vZGUuIE90aGVyd2lzZSwgdGhleSBvcGVyYXRlIGluIG11bHRp cGxlIGRhdGEgbW9kZS4KPj4KPj4gSW4gdGhpcyBuZXcgbXVsdGlwbGUgZGF0YSBtb2RlLCBhY2Nl c3NlcyB0byB0aGUgUmVjZWl2ZSBIb2xkaW5nCj4+IFJlZ2lzdGVyIG9yIFRyYW5zbWl0IEhvbGRp bmcgUmVnaXN0ZXIgc2xpZ2h0bHkgY2hhbmdlLgo+Pgo+PiBTaW5jZSB0aGlzIGRyaXZlciBpbXBs ZW1lbnRzIG5laXRoZXIgdGhlIDliaXQgZGF0YSBmZWF0dXJlIChNT0RFOSBiaXQKPj4gc2V0IGlu dG8gdGhlIE1vZGUgUmVnaXN0ZXIpIG5vciBMSU4gbW9kZXMsIHRoZSBVU0FSVCB3b3JrcyBpbgo+ PiBtdWx0aXBsZSBkYXRhIG1vZGUgd2hlbmV2ZXIgRklGT3MgYXJlIGF2YWlsYWJsZSBhbmQgZW5h YmxlZC4gV2UgYWxzbwo+PiBhc3N1bWUgdGhhdCBkYXRhIGFyZSA4Yml0IHdpZGUuCj4+Cj4+IElu IHNpbmdsZSBkYXRhIG1vZGUsIDMyYml0IGFjY2VzcyBDQU4gYmUgdXNlZCB0byByZWFkIGEgc2lu Z2xlIGRhdGEKPj4gZnJvbSBSSFIgb3Igd3JpdGUgYSBzaW5nbGUgZGF0YSBpbnRvIFRIUi4KPj4g SG93ZXZlciBpbiBtdWx0aXBsZSBkYXRhIG1vZGUsIGEgMzJiaXQgYWNjZXNzIHRvIFJIUiBub3cg YWxsb3dzIHVzIHRvCj4+IHJlYWQgZm91ciBjb25zZWN1dGl2ZSBkYXRhIGZyb20gUlggRklGTy4g QWxzbyBhIDMyYml0IGFjY2VzcyB0byBUSFIKPj4gbm93IGFsbG93cyB0byB3cml0ZSBmb3VyIGNv bnNlY3V0aXZlIGRhdGEgaW50byBUWCBGSUZPLiBTbyB3ZSBNVVNUCj4+IHVzZSA4Yml0IGFjY2Vz cyB3aGVuZXZlciBvbmx5IG9uZSBkYXRhIGhhdmUgdG8gYmUgcmVhZC93cml0dGVuIGF0IGEKPj4g dGltZS4KPj4KPj4gU2lnbmVkLW9mZi1ieTogQ3lyaWxsZSBQaXRjaGVuIDxjeXJpbGxlLnBpdGNo ZW5AYXRtZWwuY29tPgo+PiAtLS0KPj4gIGRyaXZlcnMvdHR5L3NlcmlhbC9hdG1lbF9zZXJpYWwu YyB8IDEwMCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLQo+PiAgaW5jbHVk ZS9saW51eC9hdG1lbF9zZXJpYWwuaCAgICAgIHwgIDM2ICsrKysrKysrKysrKysrCj4+ICAyIGZp bGVzIGNoYW5nZWQsIDEzMCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZm IC0tZ2l0IGEvZHJpdmVycy90dHkvc2VyaWFsL2F0bWVsX3NlcmlhbC5jIGIvZHJpdmVycy90dHkv c2VyaWFsL2F0bWVsX3NlcmlhbC5jCj4+IGluZGV4IGU3YzMzN2RlMzFkMS4uODdkZTIxZjBjN2Ez IDEwMDY0NAo+PiAtLS0gYS9kcml2ZXJzL3R0eS9zZXJpYWwvYXRtZWxfc2VyaWFsLmMKPj4gKysr IGIvZHJpdmVycy90dHkvc2VyaWFsL2F0bWVsX3NlcmlhbC5jCj4+IEBAIC01Niw2ICs1NiwxNSBA QAo+PiAgLyogUmV2aXNpdDogV2Ugc2hvdWxkIGNhbGN1bGF0ZSB0aGlzIGJhc2VkIG9uIHRoZSBh Y3R1YWwgcG9ydCBzZXR0aW5ncyAqLwo+PiAgI2RlZmluZSBQRENfUlhfVElNRU9VVCAgICAgICAg ICgzICogMTApICAgICAgICAgICAgICAgIC8qIDMgYnl0ZXMgKi8KPj4KPj4gKy8qIFRoZSBtaW5p dW0gbnVtYmVyIG9mIGRhdGEgRklGT3Mgc2hvdWxkIGJlIGFibGUgdG8gY29udGFpbiAqLwo+PiAr I2RlZmluZSBBVE1FTF9NSU5fRklGT19TSVpFICAgIDgKPj4gKy8qCj4+ICsgKiBUaGVzZSB0d28g b2Zmc2V0cyBhcmUgc3Vic3RyYWN0ZWQgZnJvbSB0aGUgUlggRklGTyBzaXplIHRvIGRlZmluZSB0 aGUgUlRTCj4+ICsgKiBoaWdoIGFuZCBsb3cgdGhyZXNob2xkcwo+PiArICovCj4+ICsjZGVmaW5l IEFUTUVMX1JUU19ISUdIX09GRlNFVCAgMTYKPj4gKyNkZWZpbmUgQVRNRUxfUlRTX0xPV19PRkZT RVQgICAyMAo+PiArCj4+ICAjaWYgZGVmaW5lZChDT05GSUdfU0VSSUFMX0FUTUVMX0NPTlNPTEUp ICYmIGRlZmluZWQoQ09ORklHX01BR0lDX1NZU1JRKQo+PiAgI2RlZmluZSBTVVBQT1JUX1NZU1JR Cj4+ICAjZW5kaWYKPj4gQEAgLTE0MSw2ICsxNTAsOSBAQCBzdHJ1Y3QgYXRtZWxfdWFydF9wb3J0 IHsKPj4gICAgICAgICBzdHJ1Y3QgbWN0cmxfZ3Bpb3MgICAgICAqZ3Bpb3M7Cj4+ICAgICAgICAg aW50ICAgICAgICAgICAgICAgICAgICAgZ3Bpb19pcnFbVUFSVF9HUElPX01BWF07Cj4+ICAgICAg ICAgdW5zaWduZWQgaW50ICAgICAgICAgICAgdHhfZG9uZV9tYXNrOwo+PiArICAgICAgIHUzMiAg ICAgICAgICAgICAgICAgICAgIGZpZm9fc2l6ZTsKPj4gKyAgICAgICB1MzIgICAgICAgICAgICAg ICAgICAgICBydHNfaGlnaDsKPj4gKyAgICAgICB1MzIgICAgICAgICAgICAgICAgICAgICBydHNf bG93Owo+PiAgICAgICAgIGJvb2wgICAgICAgICAgICAgICAgICAgIG1zX2lycV9lbmFibGVkOwo+ PiAgICAgICAgIGJvb2wgICAgICAgICAgICAgICAgICAgIGlzX3VzYXJ0OyAgICAgICAvKiB1c2Fy dCBvciB1YXJ0ICovCj4+ICAgICAgICAgc3RydWN0IHRpbWVyX2xpc3QgICAgICAgdWFydF90aW1l cjsgICAgIC8qIHVhcnQgdGltZXIgKi8KPj4gQEAgLTE5MSw2ICsyMDMsMTYgQEAgc3RhdGljIGlu bGluZSB2b2lkIGF0bWVsX3VhcnRfd3JpdGVsKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHUzMiBy ZWcsIHUzMiB2YWx1ZSkKPj4gICAgICAgICBfX3Jhd193cml0ZWwodmFsdWUsIHBvcnQtPm1lbWJh c2UgKyByZWcpOwo+PiAgfQo+Pgo+PiArc3RhdGljIGlubGluZSB1OCBhdG1lbF91YXJ0X3JlYWRi KHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHUzMiByZWcpCj4+ICt7Cj4+ICsgICAgICAgcmV0dXJu IF9fcmF3X3JlYWRiKHBvcnQtPm1lbWJhc2UgKyByZWcpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMg aW5saW5lIHZvaWQgYXRtZWxfdWFydF93cml0ZWIoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCwgdTMy IHJlZywgdTggdmFsdWUpCj4+ICt7Cj4+ICsgICAgICAgX19yYXdfd3JpdGViKHZhbHVlLCBwb3J0 LT5tZW1iYXNlICsgcmVnKTsKPj4gK30KPj4gKwo+PiAgI2lmZGVmIENPTkZJR19TRVJJQUxfQVRN RUxfUERDCj4+ICBzdGF0aWMgYm9vbCBhdG1lbF91c2VfcGRjX3J4KHN0cnVjdCB1YXJ0X3BvcnQg KnBvcnQpCj4+ICB7Cj4+IEBAIC02MzUsNyArNjU3LDcgQEAgc3RhdGljIHZvaWQgYXRtZWxfcnhf Y2hhcnMoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKPj4KPj4gICAgICAgICBzdGF0dXMgPSBhdG1l bF91YXJ0X3JlYWRsKHBvcnQsIEFUTUVMX1VTX0NTUik7Cj4+ICAgICAgICAgd2hpbGUgKHN0YXR1 cyAmIEFUTUVMX1VTX1JYUkRZKSB7Cj4+IC0gICAgICAgICAgICAgICBjaCA9IGF0bWVsX3VhcnRf cmVhZGwocG9ydCwgQVRNRUxfVVNfUkhSKTsKPj4gKyAgICAgICAgICAgICAgIGNoID0gYXRtZWxf dWFydF9yZWFkYihwb3J0LCBBVE1FTF9VU19SSFIpOwo+Pgo+PiAgICAgICAgICAgICAgICAgLyoK Pj4gICAgICAgICAgICAgICAgICAqIG5vdGUgdGhhdCB0aGUgZXJyb3IgaGFuZGxpbmcgY29kZSBp cwo+PiBAQCAtNjg2LDcgKzcwOCw3IEBAIHN0YXRpYyB2b2lkIGF0bWVsX3R4X2NoYXJzKHN0cnVj dCB1YXJ0X3BvcnQgKnBvcnQpCj4+Cj4+ICAgICAgICAgaWYgKHBvcnQtPnhfY2hhciAmJgo+PiAg ICAgICAgICAgICAoYXRtZWxfdWFydF9yZWFkbChwb3J0LCBBVE1FTF9VU19DU1IpICYgYXRtZWxf cG9ydC0+dHhfZG9uZV9tYXNrKSkgewo+PiAtICAgICAgICAgICAgICAgYXRtZWxfdWFydF93cml0 ZWwocG9ydCwgQVRNRUxfVVNfVEhSLCBwb3J0LT54X2NoYXIpOwo+PiArICAgICAgICAgICAgICAg YXRtZWxfdWFydF93cml0ZWIocG9ydCwgQVRNRUxfVVNfVEhSLCBwb3J0LT54X2NoYXIpOwo+PiAg ICAgICAgICAgICAgICAgcG9ydC0+aWNvdW50LnR4Kys7Cj4+ICAgICAgICAgICAgICAgICBwb3J0 LT54X2NoYXIgPSAwOwo+PiAgICAgICAgIH0KPj4gQEAgLTY5NSw3ICs3MTcsNyBAQCBzdGF0aWMg dm9pZCBhdG1lbF90eF9jaGFycyhzdHJ1Y3QgdWFydF9wb3J0ICpwb3J0KQo+Pgo+PiAgICAgICAg IHdoaWxlIChhdG1lbF91YXJ0X3JlYWRsKHBvcnQsIEFUTUVMX1VTX0NTUikgJgo+PiAgICAgICAg ICAgICAgICBhdG1lbF9wb3J0LT50eF9kb25lX21hc2spIHsKPj4gLSAgICAgICAgICAgICAgIGF0 bWVsX3VhcnRfd3JpdGVsKHBvcnQsIEFUTUVMX1VTX1RIUiwgeG1pdC0+YnVmW3htaXQtPnRhaWxd KTsKPj4gKyAgICAgICAgICAgICAgIGF0bWVsX3VhcnRfd3JpdGViKHBvcnQsIEFUTUVMX1VTX1RI UiwgeG1pdC0+YnVmW3htaXQtPnRhaWxdKTsKPj4gICAgICAgICAgICAgICAgIHhtaXQtPnRhaWwg PSAoeG1pdC0+dGFpbCArIDEpICYgKFVBUlRfWE1JVF9TSVpFIC0gMSk7Cj4+ICAgICAgICAgICAg ICAgICBwb3J0LT5pY291bnQudHgrKzsKPj4gICAgICAgICAgICAgICAgIGlmICh1YXJ0X2NpcmNf ZW1wdHkoeG1pdCkpCj4+IEBAIC0xNzk2LDYgKzE4MTgsMjkgQEAgc3RhdGljIGludCBhdG1lbF9z dGFydHVwKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQpCj4+ICAgICAgICAgICAgICAgICAgICAgICAg IGF0bWVsX3NldF9vcHMocG9ydCk7Cj4+ICAgICAgICAgfQo+Pgo+PiArICAgICAgIC8qCj4+ICsg ICAgICAgICogRW5hYmxlIEZJRk8gd2hlbiBhdmFpbGFibGUKPj4gKyAgICAgICAgKi8KPj4gKyAg ICAgICBpZiAoYXRtZWxfcG9ydC0+Zmlmb19zaXplKSB7Cj4+ICsgICAgICAgICAgICAgICB1bnNp Z25lZCBpbnQgdHhyZHltID0gQVRNRUxfVVNfT05FX0RBVEE7Cj4+ICsgICAgICAgICAgICAgICB1 bnNpZ25lZCBpbnQgcnhyZHltID0gQVRNRUxfVVNfT05FX0RBVEE7Cj4+ICsgICAgICAgICAgICAg ICB1bnNpZ25lZCBpbnQgZm1yOwo+PiArCj4+ICsgICAgICAgICAgICAgICBhdG1lbF91YXJ0X3dy aXRlbChwb3J0LCBBVE1FTF9VU19DUiwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEFUTUVMX1VTX0ZJRk9FTiB8Cj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBBVE1FTF9VU19SWEZDTFIgfAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg QVRNRUxfVVNfVFhGTENMUik7Cj4+ICsKPj4gKyAgICAgICAgICAgICAgIGZtciA9IEFUTUVMX1VT X1RYUkRZTSh0eHJkeW0pIHwgQVRNRUxfVVNfUlhSRFlNKHJ4cmR5bSk7Cj4+ICsgICAgICAgICAg ICAgICBpZiAoYXRtZWxfcG9ydC0+cnRzX2hpZ2ggJiYKPj4gKyAgICAgICAgICAgICAgICAgICBh dG1lbF9wb3J0LT5ydHNfbG93KQo+PiArICAgICAgICAgICAgICAgICAgICAgICBmbXIgfD0gIEFU TUVMX1VTX0ZSVFNDIHwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBVE1FTF9V U19SWEZUSFJFUyhhdG1lbF9wb3J0LT5ydHNfaGlnaCkgfAo+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEFUTUVMX1VTX1JYRlRIUkVTMihhdG1lbF9wb3J0LT5ydHNfbG93KTsKPj4g Kwo+PiArICAgICAgICAgICAgICAgYXRtZWxfdWFydF93cml0ZWwocG9ydCwgQVRNRUxfVVNfRk1S LCBmbXIpOwo+PiArICAgICAgIH0KPj4gKwo+PiAgICAgICAgIC8qIFNhdmUgY3VycmVudCBDU1Ig Zm9yIGNvbXBhcmlzb24gaW4gYXRtZWxfdGFza2xldF9mdW5jKCkgKi8KPj4gICAgICAgICBhdG1l bF9wb3J0LT5pcnFfc3RhdHVzX3ByZXYgPSBhdG1lbF9nZXRfbGluZXNfc3RhdHVzKHBvcnQpOwo+ PiAgICAgICAgIGF0bWVsX3BvcnQtPmlycV9zdGF0dXMgPSBhdG1lbF9wb3J0LT5pcnFfc3RhdHVz X3ByZXY7Cj4+IEBAIC0yMjEzLDcgKzIyNTgsNyBAQCBzdGF0aWMgaW50IGF0bWVsX3BvbGxfZ2V0 X2NoYXIoc3RydWN0IHVhcnRfcG9ydCAqcG9ydCkKPj4gICAgICAgICB3aGlsZSAoIShhdG1lbF91 YXJ0X3JlYWRsKHBvcnQsIEFUTUVMX1VTX0NTUikgJiBBVE1FTF9VU19SWFJEWSkpCj4+ICAgICAg ICAgICAgICAgICBjcHVfcmVsYXgoKTsKPj4KPj4gLSAgICAgICByZXR1cm4gYXRtZWxfdWFydF9y ZWFkbChwb3J0LCBBVE1FTF9VU19SSFIpOwo+PiArICAgICAgIHJldHVybiBhdG1lbF91YXJ0X3Jl YWRiKHBvcnQsIEFUTUVMX1VTX1JIUik7Cj4+ICB9Cj4+Cj4+ICBzdGF0aWMgdm9pZCBhdG1lbF9w b2xsX3B1dF9jaGFyKHN0cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHVuc2lnbmVkIGNoYXIgY2gpCj4+ IEBAIC0yMjIxLDcgKzIyNjYsNyBAQCBzdGF0aWMgdm9pZCBhdG1lbF9wb2xsX3B1dF9jaGFyKHN0 cnVjdCB1YXJ0X3BvcnQgKnBvcnQsIHVuc2lnbmVkIGNoYXIgY2gpCj4+ICAgICAgICAgd2hpbGUg KCEoYXRtZWxfdWFydF9yZWFkbChwb3J0LCBBVE1FTF9VU19DU1IpICYgQVRNRUxfVVNfVFhSRFkp KQo+PiAgICAgICAgICAgICAgICAgY3B1X3JlbGF4KCk7Cj4+Cj4+IC0gICAgICAgYXRtZWxfdWFy dF93cml0ZWwocG9ydCwgQVRNRUxfVVNfVEhSLCBjaCk7Cj4+ICsgICAgICAgYXRtZWxfdWFydF93 cml0ZWIocG9ydCwgQVRNRUxfVVNfVEhSLCBjaCk7Cj4+ICB9Cj4+ICAjZW5kaWYKPj4KPj4gQEAg LTIzMjgsNyArMjM3Myw3IEBAIHN0YXRpYyB2b2lkIGF0bWVsX2NvbnNvbGVfcHV0Y2hhcihzdHJ1 Y3QgdWFydF9wb3J0ICpwb3J0LCBpbnQgY2gpCj4+ICB7Cj4+ICAgICAgICAgd2hpbGUgKCEoYXRt ZWxfdWFydF9yZWFkbChwb3J0LCBBVE1FTF9VU19DU1IpICYgQVRNRUxfVVNfVFhSRFkpKQo+PiAg ICAgICAgICAgICAgICAgY3B1X3JlbGF4KCk7Cj4+IC0gICAgICAgYXRtZWxfdWFydF93cml0ZWwo cG9ydCwgQVRNRUxfVVNfVEhSLCBjaCk7Cj4+ICsgICAgICAgYXRtZWxfdWFydF93cml0ZWIocG9y dCwgQVRNRUxfVVNfVEhSLCBjaCk7Cj4+ICB9Cj4+Cj4+ICAvKgo+PiBAQCAtMjYwMyw2ICsyNjQ4 LDQ4IEBAIHN0YXRpYyBpbnQgYXRtZWxfaW5pdF9ncGlvcyhzdHJ1Y3QgYXRtZWxfdWFydF9wb3J0 ICpwLCBzdHJ1Y3QgZGV2aWNlICpkZXYpCj4+ICAgICAgICAgcmV0dXJuIDA7Cj4+ICB9Cj4+Cj4+ ICtzdGF0aWMgdm9pZCBhdG1lbF9zZXJpYWxfcHJvYmVfZmlmb3Moc3RydWN0IGF0bWVsX3VhcnRf cG9ydCAqcG9ydCwKPj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4+ICt7Cj4+ICsgICAgICAgcG9ydC0+Zmlmb19zaXpl ID0gMDsKPj4gKyAgICAgICBwb3J0LT5ydHNfbG93ID0gMDsKPj4gKyAgICAgICBwb3J0LT5ydHNf aGlnaCA9IDA7Cj4+ICsKPj4gKyAgICAgICBpZiAob2ZfcHJvcGVydHlfcmVhZF91MzIocGRldi0+ ZGV2Lm9mX25vZGUsCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhdG1lbCxm aWZvLXNpemUiLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcG9ydC0+Zmlm b19zaXplKSkKPj4gKyAgICAgICAgICAgICAgIHJldHVybjsKPj4gKwo+PiArICAgICAgIGlmICgh cG9ydC0+Zmlmb19zaXplKQo+PiArICAgICAgICAgICAgICAgcmV0dXJuOwo+PiArCj4+ICsgICAg ICAgaWYgKHBvcnQtPmZpZm9fc2l6ZSA8IEFUTUVMX01JTl9GSUZPX1NJWkUpIHsKPj4gKyAgICAg ICAgICAgICAgIHBvcnQtPmZpZm9fc2l6ZSA9IDA7Cj4+ICsgICAgICAgICAgICAgICBkZXZfZXJy KCZwZGV2LT5kZXYsICJJbnZhbGlkIEZJRk8gc2l6ZVxuIik7Cj4+ICsgICAgICAgICAgICAgICBy ZXR1cm47Cj4+ICsgICAgICAgfQo+PiArCj4+ICsgICAgICAgLyoKPj4gKyAgICAgICAgKiAwIDw9 IHJ0c19sb3cgPD0gcnRzX2hpZ2ggPD0gZmlmb19zaXplCj4+ICsgICAgICAgICogT25jZSB0aGVp ciBDVFMgbGluZSBhc3NlcnRlZCBieSB0aGUgcmVtb3RlIHBlZXIsIHNvbWUgeDg2IFVBUlRzIHRl bmQKPj4gKyAgICAgICAgKiB0byBmbHVzaCB0aGVpciBpbnRlcm5hbCBUWCBGSUZPLCBjb21tb25s eSB1cCB0byAxNiBkYXRhLCBiZWZvcmUKPj4gKyAgICAgICAgKiBhY3R1YWxseSBzdG9wcGluZyB0 byBzZW5kIG5ldyBkYXRhLiBTbyB3ZSB0cnkgdG8gc2V0IHRoZSBSVFMgSGlnaAo+PiArICAgICAg ICAqIFRocmVzaG9sZCB0byBhIHJlYXNvbmFibHkgaGlnaCB2YWx1ZSByZXNwZWN0aW5nIHRoaXMg MTYgZGF0YQo+PiArICAgICAgICAqIGVtcGlyaWNhbCBydWxlIHdoZW4gcG9zc2libGUuCj4+ICsg ICAgICAgICovCj4+ICsgICAgICAgcG9ydC0+cnRzX2hpZ2ggPSBtYXhfdChpbnQsIHBvcnQtPmZp Zm9fc2l6ZSA+PiAxLAo+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydC0+Zmlm b19zaXplIC0gQVRNRUxfUlRTX0hJR0hfT0ZGU0VUKTsKPj4gKyAgICAgICBwb3J0LT5ydHNfbG93 ICA9IG1heF90KGludCwgcG9ydC0+Zmlmb19zaXplID4+IDIsCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwb3J0LT5maWZvX3NpemUgLSBBVE1FTF9SVFNfTE9XX09GRlNFVCk7Cj4+ ICsKPj4gKyAgICAgICBkZXZfaW5mbygmcGRldi0+ZGV2LCAiVXNpbmcgRklGTyAoJXUgZGF0YSlc biIsCj4+ICsgICAgICAgICAgICAgICAgcG9ydC0+Zmlmb19zaXplKTsKPj4gKyAgICAgICBkZXZf ZGJnKCZwZGV2LT5kZXYsICJSVFMgSGlnaCBUaHJlc2hvbGQgOiAlMnUgZGF0YVxuIiwKPj4gKyAg ICAgICAgICAgICAgIHBvcnQtPnJ0c19oaWdoKTsKPj4gKyAgICAgICBkZXZfZGJnKCZwZGV2LT5k ZXYsICJSVFMgTG93IFRocmVzaG9sZCAgOiAlMnUgZGF0YVxuIiwKPj4gKyAgICAgICAgICAgICAg IHBvcnQtPnJ0c19sb3cpOwo+PiArfQo+PiArCj4+ICBzdGF0aWMgaW50IGF0bWVsX3NlcmlhbF9w cm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+PiAgewo+PiAgICAgICAgIHN0cnVj dCBhdG1lbF91YXJ0X3BvcnQgKnBvcnQ7Cj4+IEBAIC0yNjM5LDYgKzI3MjYsNyBAQCBzdGF0aWMg aW50IGF0bWVsX3NlcmlhbF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+PiAg ICAgICAgIHBvcnQgPSAmYXRtZWxfcG9ydHNbcmV0XTsKPj4gICAgICAgICBwb3J0LT5iYWNrdXBf aW1yID0gMDsKPj4gICAgICAgICBwb3J0LT51YXJ0LmxpbmUgPSByZXQ7Cj4+ICsgICAgICAgYXRt ZWxfc2VyaWFsX3Byb2JlX2ZpZm9zKHBvcnQsIHBkZXYpOwo+Pgo+PiAgICAgICAgIHNwaW5fbG9j a19pbml0KCZwb3J0LT5sb2NrX3N1c3BlbmRlZCk7Cj4+Cj4+IGRpZmYgLS1naXQgYS9pbmNsdWRl L2xpbnV4L2F0bWVsX3NlcmlhbC5oIGIvaW5jbHVkZS9saW51eC9hdG1lbF9zZXJpYWwuaAo+PiBp bmRleCBjMzg0YzIxZDY1ZjAuLmVlNjk2ZDdlOGE0MyAxMDA2NDQKPj4gLS0tIGEvaW5jbHVkZS9s aW51eC9hdG1lbF9zZXJpYWwuaAo+PiArKysgYi9pbmNsdWRlL2xpbnV4L2F0bWVsX3NlcmlhbC5o Cj4+IEBAIC0zNSw2ICszNSwxMSBAQAo+PiAgI2RlZmluZSAgICAgICAgQVRNRUxfVVNfRFRSRElT ICAgICAgICAgQklUKDE3KSAvKiBEYXRhIFRlcm1pbmFsIFJlYWR5IERpc2FibGUgKi8KPj4gICNk ZWZpbmUgICAgICAgIEFUTUVMX1VTX1JUU0VOICAgICAgICAgIEJJVCgxOCkgLyogUmVxdWVzdCBU byBTZW5kIEVuYWJsZSAqLwo+PiAgI2RlZmluZSAgICAgICAgQVRNRUxfVVNfUlRTRElTICAgICAg ICAgQklUKDE5KSAvKiBSZXF1ZXN0IFRvIFNlbmQgRGlzYWJsZSAqLwo+PiArI2RlZmluZSAgICAg ICAgQVRNRUxfVVNfVFhGQ0xSICAgICAgICAgQklUKDI0KSAvKiBUcmFuc21pdCBGSUZPIENsZWFy ICovCj4+ICsjZGVmaW5lICAgICAgICBBVE1FTF9VU19SWEZDTFIgICAgICAgICBCSVQoMjUpIC8q IFJlY2VpdmUgRklGTyBDbGVhciAqLwo+PiArI2RlZmluZSAgICAgICAgQVRNRUxfVVNfVFhGTENM UiAgICAgICAgQklUKDI2KSAvKiBUcmFuc21pdCBGSUZPIExvY2sgQ2xlYXIgKi8KPj4gKyNkZWZp bmUgICAgICAgIEFUTUVMX1VTX0ZJRk9FTiAgICAgICAgIEJJVCgzMCkgLyogRklGTyBlbmFibGUg Ki8KPj4gKyNkZWZpbmUgICAgICAgIEFUTUVMX1VTX0ZJRk9ESVMgICAgICAgIEJJVCgzMSkgLyog RklGTyBkaXNhYmxlICovCj4+Cj4+ICAjZGVmaW5lIEFUTUVMX1VTX01SICAgICAgICAgICAgMHgw NCAgICAvKiBNb2RlIFJlZ2lzdGVyICovCj4+ICAjZGVmaW5lICAgICAgICBBVE1FTF9VU19VU01P REUgICAgICAgICBHRU5NQVNLKDMsIDApICAgLyogTW9kZSBvZiB0aGUgVVNBUlQgKi8KPj4gQEAg LTEyNCw2ICsxMjksMzcgQEAKPj4gICNkZWZpbmUgQVRNRUxfVVNfTkVSICAgICAgICAgICAweDQ0 ICAgIC8qIE51bWJlciBvZiBFcnJvcnMgUmVnaXN0ZXIgKi8KPj4gICNkZWZpbmUgQVRNRUxfVVNf SUYgICAgICAgICAgICAweDRjICAgIC8qIElyREEgRmlsdGVyIFJlZ2lzdGVyICovCj4+Cj4+ICsj ZGVmaW5lIEFUTUVMX1VTX0NNUFIgICAgICAgICAgMHg5MCAgICAvKiBDb21wYXJhaXNvbiBSZWdp c3RlciAqLwo+PiArI2RlZmluZSBBVE1FTF9VU19GTVIgICAgICAgICAgIDB4YTAgICAgLyogRklG TyBNb2RlIFJlZ2lzdGVyICovCj4+ICsjZGVmaW5lICAgICAgICBBVE1FTF9VU19UWFJEWU0oZGF0 YSkgICAoKChkYXRhKSAmIDB4MykgPDwgMCkgICAvKiBUWCBSZWFkeSBNb2RlICovCj4+ICsjZGVm aW5lICAgICAgICBBVE1FTF9VU19SWFJEWU0oZGF0YSkgICAoKChkYXRhKSAmIDB4MykgPDwgNCkg ICAvKiBSWCBSZWFkeSBNb2RlICovCj4+ICsjZGVmaW5lICAgICAgICAgICAgICAgIEFUTUVMX1VT X09ORV9EQVRBICAgICAgIDB4MAo+PiArI2RlZmluZSAgICAgICAgICAgICAgICBBVE1FTF9VU19U V09fREFUQSAgICAgICAweDEKPj4gKyNkZWZpbmUgICAgICAgICAgICAgICAgQVRNRUxfVVNfRk9V Ul9EQVRBICAgICAgMHgyCj4+ICsjZGVmaW5lICAgICAgICBBVE1FTF9VU19GUlRTQyAgICAgICAg ICBCSVQoNykgIC8qIEZJRk8gUlRTIHBpbiBDb250cm9sICovCj4+ICsjZGVmaW5lICAgICAgICBB VE1FTF9VU19UWEZUSFJFUyh0aHIpICAoKCh0aHIpICYgMHgzZikgPDwgOCkgICAvKiBUWCBGSUZP IFRocmVzaG9sZCAqLwo+PiArI2RlZmluZSAgICAgICAgQVRNRUxfVVNfUlhGVEhSRVModGhyKSAg KCgodGhyKSAmIDB4M2YpIDw8IDE2KSAgLyogUlggRklGTyBUaHJlc2hvbGQgKi8KPj4gKyNkZWZp bmUgICAgICAgIEFUTUVMX1VTX1JYRlRIUkVTMih0aHIpICgoKHRocikgJiAweDNmKSA8PCAyNCkg IC8qIFJYIEZJRk8gVGhyZXNob2xkMiAqLwo+PiArCj4+ICsjZGVmaW5lIEFUTUVMX1VTX0ZMUiAg ICAgICAgICAgMHhhNCAgICAvKiBGSUZPIExldmVsIFJlZ2lzdGVyICovCj4+ICsjZGVmaW5lICAg ICAgICBBVE1FTF9VU19UWEZMKHJlZykgICAgICAoKChyZWcpID4+IDApICYgMHgzZikgICAvKiBU WCBGSUZPIExldmVsICovCj4+ICsjZGVmaW5lICAgICAgICBBVE1FTF9VU19SWEZMKHJlZykgICAg ICAoKChyZWcpID4+IDE2KSAmIDB4M2YpICAvKiBSWCBGSUZPIExldmVsICovCj4+ICsKPj4gKyNk ZWZpbmUgQVRNRUxfVVNfRklFUiAgICAgICAgICAweGE4ICAgIC8qIEZJRk8gSW50ZXJydXB0IEVu YWJsZSBSZWdpc3RlciAqLwo+PiArI2RlZmluZSBBVE1FTF9VU19GSURSICAgICAgICAgIDB4YWMg ICAgLyogRklGTyBJbnRlcnJ1cHQgRGlzYWJsZSBSZWdpc3RlciAqLwo+PiArI2RlZmluZSBBVE1F TF9VU19GSU1SICAgICAgICAgIDB4YjAgICAgLyogRklGTyBJbnRlcnJ1cHQgTWFzayBSZWdpc3Rl ciAqLwo+PiArI2RlZmluZSBBVE1FTF9VU19GRVNSICAgICAgICAgIDB4YjQgICAgLyogRklGTyBF dmVudCBTdGF0dXMgUmVnaXN0ZXIgKi8KPj4gKyNkZWZpbmUgICAgICAgIEFUTUVMX1VTX1RYRkVG ICAgICAgICAgIEJJVCgwKSAgLyogVHJhbnNtaXQgRklGTyBFbXB0eSBGbGFnICovCj4+ICsjZGVm aW5lICAgICAgICBBVE1FTF9VU19UWEZGRiAgICAgICAgICBCSVQoMSkgIC8qIFRyYW5zbWl0IEZJ Rk8gRnVsbCBGbGFnICovCj4+ICsjZGVmaW5lICAgICAgICBBVE1FTF9VU19UWEZUSEYgICAgICAg ICBCSVQoMikgIC8qIFRyYW5zbWl0IEZJRk8gVGhyZXNob2xkIEZsYWcgKi8KPj4gKyNkZWZpbmUg ICAgICAgIEFUTUVMX1VTX1JYRkVGICAgICAgICAgIEJJVCgzKSAgLyogUmVjZWl2ZSBGSUZPIEVt cHR5IEZsYWcgKi8KPj4gKyNkZWZpbmUgICAgICAgIEFUTUVMX1VTX1JYRkZGICAgICAgICAgIEJJ VCg0KSAgLyogUmVjZWl2ZSBGSUZPIEZ1bGwgRmxhZyAqLwo+PiArI2RlZmluZSAgICAgICAgQVRN RUxfVVNfUlhGVEhGICAgICAgICAgQklUKDUpICAvKiBSZWNlaXZlIEZJRk8gVGhyZXNob2xkIEZs YWcgKi8KPj4gKyNkZWZpbmUgICAgICAgIEFUTUVMX1VTX1RYRlBURUYgICAgICAgIEJJVCg2KSAg LyogVHJhbnNtaXQgRklGTyBQb2ludGVyIEVycm9yIEZsYWcgKi8KPj4gKyNkZWZpbmUgICAgICAg IEFUTUVMX1VTX1JYRlBURUYgICAgICAgIEJJVCg3KSAgLyogUmVjZWl2ZSBGSUZPIFBvaW50ZXIg RXJyb3IgRmxhZyAqLwo+PiArI2RlZmluZSAgICAgICAgQVRNRUxfVVNfVFhGTE9DSyAgICAgICAg QklUKDgpICAvKiBUcmFuc21pdCBGSUZPIExvY2sgKEZFU1Igb25seSkgKi8KPj4gKyNkZWZpbmUg ICAgICAgIEFUTUVMX1VTX1JYRlRIRjIgICAgICAgIEJJVCg5KSAgLyogUmVjZWl2ZSBGSUZPIFRo cmVzaG9sZCBGbGFnIDIgKi8KPj4gKwo+PiAgI2RlZmluZSBBVE1FTF9VU19OQU1FICAgICAgICAg IDB4ZjAgICAgLyogSXAgTmFtZSAqLwo+PiAgI2RlZmluZSBBVE1FTF9VU19WRVJTSU9OICAgICAg IDB4ZmMgICAgLyogSXAgVmVyc2lvbiAqLwo+Pgo+PiAtLQo+PiAxLjguMi4yCj4+Cj4+IC0tCj4+ IFRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmli ZSBsaW51eC1rZXJuZWwiIGluCj4+IHRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9A dmdlci5rZXJuZWwub3JnCj4+IE1vcmUgbWFqb3Jkb21vIGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtl cm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbAo+PiBQbGVhc2UgcmVhZCB0aGUgRkFRIGF0ICBo dHRwOi8vd3d3LnR1eC5vcmcvbGttbC8KPiAKPiAKPiAKCgotLSAKTmljb2xhcyBGZXJyZQoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtl cm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5l bAo=