From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhang Rui Subject: Re: [-next PATCH 2/4] treewide: Use DEVICE_ATTR_RW Date: Thu, 21 Dec 2017 08:47:51 +0800 Message-ID: <1513817271.2592.2.camel@intel.com> References: 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: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" List-Archive: List-Post: To: Joe Perches , Jani Nikula , Joonas Lahtinen , Rodrigo Vivi , Cezary Jackiewicz , Darren Hart , Andy Shevchenko , Sebastian Ott , Peter Oberparleiter , James Smart , Dick Kennedy , Eduardo Valentin , Greg Kroah-Hartman , Mathias Nyman , Felipe Balbi , "Luis R. Rodriguez" , Peter Ujfalusi , Jarkko Nikula Cc: alsa-devel@alsa-project.org, Liam Girdwood , David Airlie , Heiko Carstens , linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, Takashi Iwai , linux-s390@vger.kernel.org, linux-omap@vger.kernel.org, "James E.J. Bottomley" , linux-scsi@vger.kernel.org, linux-pm@vger.kernel.org, linux-serial@vger.kernel.org, Jiri Slaby , platform-driver-x86@vger.kernel.org, Bartlomiej Zolnierkiewicz , intel-gfx@lists.freedesktop.org, Mark Brown , Jaroslav Kysela , "Martin K. Petersen" , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Martin Schwidefsky List-ID: T24gVHVlLCAyMDE3LTEyLTE5IGF0IDEwOjE1IC0wODAwLCBKb2UgUGVyY2hlcyB3cm90ZToKPiBD b252ZXJ0IERFVklDRV9BVFRSIHVzZXMgdG8gREVWSUNFX0FUVFJfUlcgd2hlcmUgcG9zc2libGUu Cj4gCj4gRG9uZSB3aXRoIHBlcmwgc2NyaXB0Ogo+IAo+ICQgZ2l0IGdyZXAgLXcgLS1uYW1lLW9u bHkgREVWSUNFX0FUVFIgfCBcCj4gwqAgeGFyZ3MgcGVybCAtaSAtZSAnbG9jYWwgJC87IHdoaWxl ICg8Pikgewo+IHMvXGJERVZJQ0VfQVRUUlxzKlwoXHMqKFx3KylccyosXHMqXCg/KFxzKlNfSVJV R09ccypcfFxzKlNfSVdVU1J8XHMqUwo+IF9JV1VTUlxzKlx8XHMqU19JUlVHT1xzKnxccyowNjQ0 XHMqKVwpP1xzKixccypcMV9zaG93XHMqLFxzKlwxX3N0b3JlXAo+IHMqXCkvREVWSUNFX0FUVFJf UlcoXDEpL2c7IHByaW50O30nCj4gCj4gU2lnbmVkLW9mZi1ieTogSm9lIFBlcmNoZXMgPGpvZUBw ZXJjaGVzLmNvbT4KPiAtLS0KPiDCoGFyY2gvczM5MC9rZXJuZWwvdG9wb2xvZ3kuY8KgwqDCoMKg wqDCoMKgwqDCoMKgfMKgwqAzICstLQo+IMKgYXJjaC90aWxlL2tlcm5lbC9zeXNmcy5jwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDIgKy0KPiDCoGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5 MTVfc3lzZnMuY8KgwqDCoMKgfMKgwqA2ICsrLS0tCj4gwqBkcml2ZXJzL3BsYXRmb3JtL3g4Ni9j b21wYWwtbGFwdG9wLmMgfCAxOCArKysrKy0tLS0tLS0tLS0KPiDCoGRyaXZlcnMvczM5MC9jaW8v ZGV2aWNlLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDIgKy0KPiDCoGRyaXZlcnMvc2Nz aS9scGZjL2xwZmNfYXR0ci5jwqDCoMKgwqDCoMKgwqDCoHwgNDMgKysrKysrKysrKysrLS0tLS0t LS0tLS0tCj4gLS0tLS0tLS0tLS0tCj4gwqBkcml2ZXJzL3RoZXJtYWwvdGhlcm1hbF9zeXNmcy5j wqDCoMKgwqDCoMKgfMKgwqA5ICsrKystLS0tCgpGb3IgdGhlIHRoZXJtYWwgcGFydCwKQUNLLWJ5 OiBaaGFuZyBSdWkgPHJ1aS56aGFuZ0BpbnRlbC5jb20+Cgp0aGFua3MsCnJ1aQoKPiDCoGRyaXZl cnMvdHR5L3NlcmlhbC9zaC1zY2kuY8KgwqDCoMKgwqDCoMKgwqDCoMKgfMKgwqAyICstCj4gwqBk cml2ZXJzL3VzYi9ob3N0L3hoY2ktZGJnY2FwLmPCoMKgwqDCoMKgwqDCoHzCoMKgMiArLQo+IMKg ZHJpdmVycy91c2IvcGh5L3BoeS10YWh2by5jwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDIgKy0K PiDCoGRyaXZlcnMvdmlkZW8vZmJkZXYvYXVvX2sxOTB4LmPCoMKgwqDCoMKgwqB8wqDCoDQgKyst LQo+IMKgZHJpdmVycy92aWRlby9mYmRldi93MTAwZmIuY8KgwqDCoMKgwqDCoMKgwqDCoHzCoMKg NCArKy0tCj4gwqBsaWIvdGVzdF9maXJtd2FyZS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgfCAxNCArKysrKy0tLS0tLS0KPiDCoGxpYi90ZXN0X2ttb2QuY8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfCAxNCArKysrKy0tLS0tLS0KPiDCoHNv dW5kL3NvYy9vbWFwL21jYnNwLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8wqDCoDQg KystLQo+IMKgMTUgZmlsZXMgY2hhbmdlZCwgNDkgaW5zZXJ0aW9ucygrKSwgODAgZGVsZXRpb25z KC0pCj4gCj4gZGlmZiAtLWdpdCBhL2FyY2gvczM5MC9rZXJuZWwvdG9wb2xvZ3kuYwo+IGIvYXJj aC9zMzkwL2tlcm5lbC90b3BvbG9neS5jCj4gaW5kZXggNGQ1YjY1ZTUyN2I1Li40YjZlMDM5N2Y2 NmQgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9zMzkwL2tlcm5lbC90b3BvbG9neS5jCj4gKysrIGIvYXJj aC9zMzkwL2tlcm5lbC90b3BvbG9neS5jCj4gQEAgLTQwNCw4ICs0MDQsNyBAQCBzdGF0aWMgc3Np emVfdCBkaXNwYXRjaGluZ19zdG9yZShzdHJ1Y3QgZGV2aWNlCj4gKmRldiwKPiDCoAlwdXRfb25s aW5lX2NwdXMoKTsKPiDCoAlyZXR1cm4gcmMgPyByYyA6IGNvdW50Owo+IMKgfQo+IC1zdGF0aWMg REVWSUNFX0FUVFIoZGlzcGF0Y2hpbmcsIDA2NDQsIGRpc3BhdGNoaW5nX3Nob3csCj4gLQkJCcKg ZGlzcGF0Y2hpbmdfc3RvcmUpOwo+ICtzdGF0aWMgREVWSUNFX0FUVFJfUlcoZGlzcGF0Y2hpbmcp Owo+IMKgCj4gwqBzdGF0aWMgc3NpemVfdCBjcHVfcG9sYXJpemF0aW9uX3Nob3coc3RydWN0IGRl dmljZSAqZGV2LAo+IMKgCQkJCcKgwqDCoMKgwqBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0 ciwKPiBjaGFyICpidWYpCj4gZGlmZiAtLWdpdCBhL2FyY2gvdGlsZS9rZXJuZWwvc3lzZnMuYyBi L2FyY2gvdGlsZS9rZXJuZWwvc3lzZnMuYwo+IGluZGV4IDgyNTg2N2M1Mzg1My4uYWY1MDI0ZjBm YjVhIDEwMDY0NAo+IC0tLSBhL2FyY2gvdGlsZS9rZXJuZWwvc3lzZnMuYwo+ICsrKyBiL2FyY2gv dGlsZS9rZXJuZWwvc3lzZnMuYwo+IEBAIC0xODQsNyArMTg0LDcgQEAgc3RhdGljIHNzaXplX3Qg aHZfc3RhdHNfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAo+IMKgCXJldHVybiBuIDwgMCA/IG4g OiBjb3VudDsKPiDCoH0KPiDCoAo+IC1zdGF0aWMgREVWSUNFX0FUVFIoaHZfc3RhdHMsIDA2NDQs IGh2X3N0YXRzX3Nob3csIGh2X3N0YXRzX3N0b3JlKTsKPiArc3RhdGljIERFVklDRV9BVFRSX1JX KGh2X3N0YXRzKTsKPiDCoAo+IMKgc3RhdGljIGludCBodl9zdGF0c19kZXZpY2VfYWRkKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0Cj4gc3Vic3lzX2ludGVyZmFjZSAqc2lmKQo+IMKgewo+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3N5c2ZzLmMKPiBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwo+IGluZGV4IGM3NGEyMGI4MDE4Mi4uMWQwYWI4ZmY1 OTE1IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwo+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfc3lzZnMuYwo+IEBAIC00NDcsOSArNDQ3LDkg QEAgc3RhdGljIHNzaXplX3QgZ3RfbWluX2ZyZXFfbWh6X3N0b3JlKHN0cnVjdAo+IGRldmljZSAq a2RldiwKPiDCoAo+IMKgc3RhdGljIERFVklDRV9BVFRSKGd0X2FjdF9mcmVxX21oeiwgU19JUlVH TywgZ3RfYWN0X2ZyZXFfbWh6X3Nob3csCj4gTlVMTCk7Cj4gwqBzdGF0aWMgREVWSUNFX0FUVFIo Z3RfY3VyX2ZyZXFfbWh6LCBTX0lSVUdPLCBndF9jdXJfZnJlcV9taHpfc2hvdywKPiBOVUxMKTsK PiAtc3RhdGljIERFVklDRV9BVFRSKGd0X2Jvb3N0X2ZyZXFfbWh6LCBTX0lSVUdPIHwgU19JV1VT UiwKPiBndF9ib29zdF9mcmVxX21oel9zaG93LCBndF9ib29zdF9mcmVxX21oel9zdG9yZSk7Cj4g LXN0YXRpYyBERVZJQ0VfQVRUUihndF9tYXhfZnJlcV9taHosIFNfSVJVR08gfCBTX0lXVVNSLAo+ IGd0X21heF9mcmVxX21oel9zaG93LCBndF9tYXhfZnJlcV9taHpfc3RvcmUpOwo+IC1zdGF0aWMg REVWSUNFX0FUVFIoZ3RfbWluX2ZyZXFfbWh6LCBTX0lSVUdPIHwgU19JV1VTUiwKPiBndF9taW5f ZnJlcV9taHpfc2hvdywgZ3RfbWluX2ZyZXFfbWh6X3N0b3JlKTsKPiArc3RhdGljIERFVklDRV9B VFRSX1JXKGd0X2Jvb3N0X2ZyZXFfbWh6KTsKPiArc3RhdGljIERFVklDRV9BVFRSX1JXKGd0X21h eF9mcmVxX21oeik7Cj4gK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhndF9taW5fZnJlcV9taHopOwo+ IMKgCj4gwqBzdGF0aWMgREVWSUNFX0FUVFIodmx2X3JwZV9mcmVxX21oeiwgU19JUlVHTywgdmx2 X3JwZV9mcmVxX21oel9zaG93LAo+IE5VTEwpOwo+IMKgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv cGxhdGZvcm0veDg2L2NvbXBhbC1sYXB0b3AuYwo+IGIvZHJpdmVycy9wbGF0Zm9ybS94ODYvY29t cGFsLWxhcHRvcC5jCj4gaW5kZXggNmJjYjc1MGUxODY1Li40ZjliYzcyZjA1ODQgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9wbGF0Zm9ybS94ODYvY29tcGFsLWxhcHRvcC5jCj4gKysrIGIvZHJpdmVy cy9wbGF0Zm9ybS94ODYvY29tcGFsLWxhcHRvcC5jCj4gQEAgLTY3OSwxOCArNjc5LDEyIEBAIHN0 YXRpYyBpbnQgYmF0X3dyaXRlYWJsZV9wcm9wZXJ0eShzdHJ1Y3QKPiBwb3dlcl9zdXBwbHkgKnBz eSwKPiDCoC8qID09PT09PT09PT09PT09ICovCj4gwqAvKiBEcml2ZXIgR2xvYmFscyAqLwo+IMKg LyogPT09PT09PT09PT09PT0gKi8KPiAtc3RhdGljIERFVklDRV9BVFRSKHdha2VfdXBfcG1lLAo+ IC0JCTA2NDQsIHdha2VfdXBfcG1lX3Nob3csCQl3YWtlX3VwX3BtZV9zCj4gdG9yZSk7Cj4gLXN0 YXRpYyBERVZJQ0VfQVRUUih3YWtlX3VwX21vZGVtLAo+IC0JCTA2NDQsIHdha2VfdXBfbW9kZW1f c2hvdywJd2FrZV91cF9tb2RlbV9zdG9yZQo+ICk7Cj4gLXN0YXRpYyBERVZJQ0VfQVRUUih3YWtl X3VwX2xhbiwKPiAtCQkwNjQ0LCB3YWtlX3VwX2xhbl9zaG93LAl3YWtlX3VwX2xhbl9zdG9yZSk7 Cj4gLXN0YXRpYyBERVZJQ0VfQVRUUih3YWtlX3VwX3dsYW4sCj4gLQkJMDY0NCwgd2FrZV91cF93 bGFuX3Nob3csCXdha2VfdXBfd2xhbl9zdG9yZSk7Cj4gLXN0YXRpYyBERVZJQ0VfQVRUUih3YWtl X3VwX2tleSwKPiAtCQkwNjQ0LCB3YWtlX3VwX2tleV9zaG93LAl3YWtlX3VwX2tleV9zdG9yZSk7 Cj4gLXN0YXRpYyBERVZJQ0VfQVRUUih3YWtlX3VwX21vdXNlLAo+IC0JCTA2NDQsIHdha2VfdXBf bW91c2Vfc2hvdywJd2FrZV91cF9tb3VzZV9zdG9yZQo+ICk7Cj4gK3N0YXRpYyBERVZJQ0VfQVRU Ul9SVyh3YWtlX3VwX3BtZSk7Cj4gK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyh3YWtlX3VwX21vZGVt KTsKPiArc3RhdGljIERFVklDRV9BVFRSX1JXKHdha2VfdXBfbGFuKTsKPiArc3RhdGljIERFVklD RV9BVFRSX1JXKHdha2VfdXBfd2xhbik7Cj4gK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyh3YWtlX3Vw X2tleSk7Cj4gK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyh3YWtlX3VwX21vdXNlKTsKPiDCoAo+IMKg c3RhdGljIERFVklDRV9BVFRSKGZhbjFfaW5wdXQswqDCoFNfSVJVR08sIGZhbl9zaG93LMKgwqDC oMKgwqDCoMKgwqDCoMKgTlVMTCk7Cj4gwqBzdGF0aWMgREVWSUNFX0FUVFIodGVtcDFfaW5wdXQs IFNfSVJVR08sIHRlbXBfY3B1LMKgwqDCoMKgwqDCoMKgwqDCoMKgTlVMTCk7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlLmMgYi9kcml2ZXJzL3MzOTAvY2lvL2RldmljZS5j Cj4gaW5kZXggNzVhMjQ1ZjM4ZTJlLi42ZWVmYjY3YjMxZjMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9zMzkwL2Npby9kZXZpY2UuYwo+ICsrKyBiL2RyaXZlcnMvczM5MC9jaW8vZGV2aWNlLmMKPiBA QCAtNjAwLDcgKzYwMCw3IEBAIHN0YXRpYyBzc2l6ZV90IHZwbV9zaG93KHN0cnVjdCBkZXZpY2Ug KmRldiwKPiBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKPiDCoHN0YXRpYyBERVZJQ0Vf QVRUUihkZXZ0eXBlLCAwNDQ0LCBkZXZ0eXBlX3Nob3csIE5VTEwpOwo+IMKgc3RhdGljIERFVklD RV9BVFRSKGN1dHlwZSwgMDQ0NCwgY3V0eXBlX3Nob3csIE5VTEwpOwo+IMKgc3RhdGljIERFVklD RV9BVFRSKG1vZGFsaWFzLCAwNDQ0LCBtb2RhbGlhc19zaG93LCBOVUxMKTsKPiAtc3RhdGljIERF VklDRV9BVFRSKG9ubGluZSwgMDY0NCwgb25saW5lX3Nob3csIG9ubGluZV9zdG9yZSk7Cj4gK3N0 YXRpYyBERVZJQ0VfQVRUUl9SVyhvbmxpbmUpOwo+IMKgc3RhdGljIERFVklDRV9BVFRSKGF2YWls YWJpbGl0eSwgMDQ0NCwgYXZhaWxhYmxlX3Nob3csIE5VTEwpOwo+IMKgc3RhdGljIERFVklDRV9B VFRSKGxvZ2dpbmcsIDAyMDAsIE5VTEwsIGluaXRpYXRlX2xvZ2dpbmcpOwo+IMKgc3RhdGljIERF VklDRV9BVFRSKHZwbSwgMDQ0NCwgdnBtX3Nob3csIE5VTEwpOwo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL3Njc2kvbHBmYy9scGZjX2F0dHIuYwo+IGIvZHJpdmVycy9zY3NpL2xwZmMvbHBmY19hdHRy LmMKPiBpbmRleCA3OTdiYjQyYTYzMDYuLjk1ZjdiYTNjM2YxYSAxMDA2NDQKPiAtLS0gYS9kcml2 ZXJzL3Njc2kvbHBmYy9scGZjX2F0dHIuYwo+ICsrKyBiL2RyaXZlcnMvc2NzaS9scGZjL2xwZmNf YXR0ci5jCj4gQEAgLTI1MTksOCArMjUxOSw3IEBAIGxwZmNfc29mdF93d3BuX3N0b3JlKHN0cnVj dCBkZXZpY2UgKmRldiwgc3RydWN0Cj4gZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwKPiDCoAkJCQki cmVpbml0IGFkYXB0ZXIgLSAlZFxuIiwgc3RhdDIpOwo+IMKgCXJldHVybiAoc3RhdDEgfHwgc3Rh dDIpID8gLUVJTyA6IGNvdW50Owo+IMKgfQo+IC1zdGF0aWMgREVWSUNFX0FUVFIobHBmY19zb2Z0 X3d3cG4sIFNfSVJVR08gfCBTX0lXVVNSLAo+IC0JCcKgwqDCoGxwZmNfc29mdF93d3BuX3Nob3cs IGxwZmNfc29mdF93d3BuX3N0b3JlKTsKPiArc3RhdGljIERFVklDRV9BVFRSX1JXKGxwZmNfc29m dF93d3BuKTsKPiDCoAo+IMKgLyoqCj4gwqAgKiBscGZjX3NvZnRfd3dubl9zaG93IC0gUmV0dXJu IHRoZSBjZmcgc29mdCB3dyBub2RlIG5hbWUgZm9yIHRoZQo+IGFkYXB0ZXIKPiBAQCAtMjU4Myw4 ICsyNTgyLDcgQEAgbHBmY19zb2Z0X3d3bm5fc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1 Y3QKPiBkZXZpY2VfYXR0cmlidXRlICphdHRyLAo+IMKgCj4gwqAJcmV0dXJuIGNvdW50Owo+IMKg fQo+IC1zdGF0aWMgREVWSUNFX0FUVFIobHBmY19zb2Z0X3d3bm4sIFNfSVJVR08gfCBTX0lXVVNS LAo+IC0JCcKgwqDCoGxwZmNfc29mdF93d25uX3Nob3csIGxwZmNfc29mdF93d25uX3N0b3JlKTsK PiArc3RhdGljIERFVklDRV9BVFRSX1JXKGxwZmNfc29mdF93d25uKTsKPiDCoAo+IMKgLyoqCj4g wqAgKiBscGZjX29hc190Z3Rfc2hvdyAtIFJldHVybiB3d3BuIG9mIHRhcmdldCB3aG9zZSBsdW5z IG1heWJlCj4gZW5hYmxlZCBmb3IKPiBAQCAtMzEwMiw4ICszMTAwLDcgQEAgTU9EVUxFX1BBUk1f REVTQyhscGZjX3BvbGwsICJGQ1AgcmluZyBwb2xsaW5nCj4gbW9kZSBjb250cm9sOiIKPiDCoAkJ wqAiIDEgLSBwb2xsIHdpdGggaW50ZXJydXB0cyBlbmFibGVkIgo+IMKgCQnCoCIgMyAtIHBvbGwg YW5kIGRpc2FibGUgRkNQIHJpbmcgaW50ZXJydXB0cyIpOwo+IMKgCj4gLXN0YXRpYyBERVZJQ0Vf QVRUUihscGZjX3BvbGwsIFNfSVJVR08gfCBTX0lXVVNSLAo+IC0JCcKgwqDCoGxwZmNfcG9sbF9z aG93LCBscGZjX3BvbGxfc3RvcmUpOwo+ICtzdGF0aWMgREVWSUNFX0FUVFJfUlcobHBmY19wb2xs KTsKPiDCoAo+IMKgaW50IGxwZmNfbm9faGJhX3Jlc2V0X2NudDsKPiDCoHVuc2lnbmVkIGxvbmcg bHBmY19ub19oYmFfcmVzZXRbTUFYX0hCQVNfTk9fUkVTRVRdID0gewo+IEBAIC0zMzM2LDggKzMz MzMsNyBAQCBscGZjX25vZGV2X3Rtb19zZXQoc3RydWN0IGxwZmNfdnBvcnQgKnZwb3J0LAo+IGlu dCB2YWwpCj4gwqAKPiDCoGxwZmNfdnBvcnRfcGFyYW1fc3RvcmUobm9kZXZfdG1vKQo+IMKgCj4g LXN0YXRpYyBERVZJQ0VfQVRUUihscGZjX25vZGV2X3RtbywgU19JUlVHTyB8IFNfSVdVU1IsCj4g LQkJwqDCoMKgbHBmY19ub2Rldl90bW9fc2hvdywgbHBmY19ub2Rldl90bW9fc3RvcmUpOwo+ICtz dGF0aWMgREVWSUNFX0FUVFJfUlcobHBmY19ub2Rldl90bW8pOwo+IMKgCj4gwqAvKgo+IMKgIyBs cGZjX2Rldmxvc3NfdG1vOiBJZiBzZXQsIGl0IHdpbGwgaG9sZCBhbGwgSS9PIGVycm9ycyBvbiBk ZXZpY2VzCj4gdGhhdAo+IEBAIC0zMzg2LDggKzMzODIsNyBAQCBscGZjX2Rldmxvc3NfdG1vX3Nl dChzdHJ1Y3QgbHBmY192cG9ydCAqdnBvcnQsCj4gaW50IHZhbCkKPiDCoH0KPiDCoAo+IMKgbHBm Y192cG9ydF9wYXJhbV9zdG9yZShkZXZsb3NzX3RtbykKPiAtc3RhdGljIERFVklDRV9BVFRSKGxw ZmNfZGV2bG9zc190bW8sIFNfSVJVR08gfCBTX0lXVVNSLAo+IC0JCcKgwqDCoGxwZmNfZGV2bG9z c190bW9fc2hvdywgbHBmY19kZXZsb3NzX3Rtb19zdG9yZSk7Cj4gK3N0YXRpYyBERVZJQ0VfQVRU Ul9SVyhscGZjX2Rldmxvc3NfdG1vKTsKPiDCoAo+IMKgLyoKPiDCoCAqIGxwZmNfc3VwcHJlc3Nf cnNwOiBFbmFibGUgc3VwcHJlc3MgcnNwIGZlYXR1cmUgaXMgZmlybXdhcmUKPiBzdXBwb3J0cyBp dAo+IEBAIC0zNTgwLDggKzM1NzUsNyBAQCBscGZjX3Jlc3RyaWN0X2xvZ2luX3NldChzdHJ1Y3Qg bHBmY192cG9ydAo+ICp2cG9ydCwgaW50IHZhbCkKPiDCoAlyZXR1cm4gMDsKPiDCoH0KPiDCoGxw ZmNfdnBvcnRfcGFyYW1fc3RvcmUocmVzdHJpY3RfbG9naW4pOwo+IC1zdGF0aWMgREVWSUNFX0FU VFIobHBmY19yZXN0cmljdF9sb2dpbiwgU19JUlVHTyB8IFNfSVdVU1IsCj4gLQkJwqDCoMKgbHBm Y19yZXN0cmljdF9sb2dpbl9zaG93LAo+IGxwZmNfcmVzdHJpY3RfbG9naW5fc3RvcmUpOwo+ICtz dGF0aWMgREVWSUNFX0FUVFJfUlcobHBmY19yZXN0cmljdF9sb2dpbik7Cj4gwqAKPiDCoC8qCj4g wqAjIFNvbWUgZGlzayBkZXZpY2VzIGhhdmUgYSAic2VsZWN0IElEIiBvciAic2VsZWN0IFRhcmdl dCIKPiBjYXBhYmlsaXR5Lgo+IEBAIC0zNjk1LDggKzM2ODksNyBAQCBscGZjX3RvcG9sb2d5X3N0 b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0Cj4gZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwK PiDCoH0KPiDCoAo+IMKgbHBmY19wYXJhbV9zaG93KHRvcG9sb2d5KQo+IC1zdGF0aWMgREVWSUNF X0FUVFIobHBmY190b3BvbG9neSwgU19JUlVHTyB8IFNfSVdVU1IsCj4gLQkJbHBmY190b3BvbG9n eV9zaG93LCBscGZjX3RvcG9sb2d5X3N0b3JlKTsKPiArc3RhdGljIERFVklDRV9BVFRSX1JXKGxw ZmNfdG9wb2xvZ3kpOwo+IMKgCj4gwqAvKioKPiDCoCAqIGxwZmNfc3RhdGljX3Zwb3J0X3Nob3c6 IFJlYWQgY2FsbGJhY2sgZnVuY3Rpb24gZm9yCj4gQEAgLTM5NTQsOCArMzk0Nyw3IEBAIGxwZmNf c3RhdF9kYXRhX2N0cmxfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsCj4gc3RydWN0IGRldmljZV9h dHRyaWJ1dGUgKmF0dHIsCj4gwqAvKgo+IMKgICogU3lzZnMgYXR0cmlidXRlIHRvIGNvbnRyb2wg dGhlIHN0YXRpc3RpY2FsIGRhdGEgY29sbGVjdGlvbi4KPiDCoCAqLwo+IC1zdGF0aWMgREVWSUNF X0FUVFIobHBmY19zdGF0X2RhdGFfY3RybCwgU19JUlVHTyB8IFNfSVdVU1IsCj4gLQkJwqDCoMKg bHBmY19zdGF0X2RhdGFfY3RybF9zaG93LAo+IGxwZmNfc3RhdF9kYXRhX2N0cmxfc3RvcmUpOwo+ ICtzdGF0aWMgREVWSUNFX0FUVFJfUlcobHBmY19zdGF0X2RhdGFfY3RybCk7Cj4gwqAKPiDCoC8q Cj4gwqAgKiBscGZjX2RydnJfc3RhdF9kYXRhOiBzeXNmcyBhdHRyIHRvIGdldCBkcml2ZXIgc3Rh dGlzdGljYWwgZGF0YS4KPiBAQCAtNDE5NCw4ICs0MTg2LDcgQEAgbHBmY19saW5rX3NwZWVkX2lu aXQoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBpbnQKPiB2YWwpCj4gwqAJcmV0dXJuIC1FSU5WQUw7 Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIERFVklDRV9BVFRSKGxwZmNfbGlua19zcGVlZCwgU19JUlVH TyB8IFNfSVdVU1IsCj4gLQkJwqDCoMKgbHBmY19saW5rX3NwZWVkX3Nob3csIGxwZmNfbGlua19z cGVlZF9zdG9yZSk7Cj4gK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhscGZjX2xpbmtfc3BlZWQpOwo+ IMKgCj4gwqAvKgo+IMKgIyBscGZjX2Flcl9zdXBwb3J0OiBTdXBwb3J0IFBDSWUgZGV2aWNlIEFk dmFuY2VkIEVycm9yIFJlcG9ydGluZwo+IChBRVIpCj4gQEAgLTQyODgsOCArNDI3OSw3IEBAIGxw ZmNfYWVyX3N1cHBvcnRfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAo+IHN0cnVjdCBkZXZpY2Vf YXR0cmlidXRlICphdHRyLAo+IMKgCXJldHVybiByYzsKPiDCoH0KPiDCoAo+IC1zdGF0aWMgREVW SUNFX0FUVFIobHBmY19hZXJfc3VwcG9ydCwgU19JUlVHTyB8IFNfSVdVU1IsCj4gLQkJwqDCoMKg bHBmY19hZXJfc3VwcG9ydF9zaG93LCBscGZjX2Flcl9zdXBwb3J0X3N0b3JlKTsKPiArc3RhdGlj IERFVklDRV9BVFRSX1JXKGxwZmNfYWVyX3N1cHBvcnQpOwo+IMKgCj4gwqAvKioKPiDCoCAqIGxw ZmNfYWVyX2NsZWFudXBfc3RhdGUgLSBDbGVhbiB1cCBhZXIgc3RhdGUgdG8gdGhlIGFlciBlbmFi bGVkCj4gZGV2aWNlCj4gQEAgLTQ0MzYsOCArNDQyNiw3IEBAIExQRkNfQVRUUihzcmlvdl9ucl92 aXJ0Zm4sCj4gTFBGQ19ERUZfVkZOX1BFUl9QRk4sIDAsIExQRkNfTUFYX1ZGTl9QRVJfUEZOLAo+ IMKgCSJFbmFibGUgUENJZSBkZXZpY2UgU1ItSU9WIHZpcnR1YWwgZm4iKTsKPiDCoAo+IMKgbHBm Y19wYXJhbV9zaG93KHNyaW92X25yX3ZpcnRmbikKPiAtc3RhdGljIERFVklDRV9BVFRSKGxwZmNf c3Jpb3ZfbnJfdmlydGZuLCBTX0lSVUdPIHwgU19JV1VTUiwKPiAtCQnCoMKgwqBscGZjX3NyaW92 X25yX3ZpcnRmbl9zaG93LAo+IGxwZmNfc3Jpb3ZfbnJfdmlydGZuX3N0b3JlKTsKPiArc3RhdGlj IERFVklDRV9BVFRSX1JXKGxwZmNfc3Jpb3ZfbnJfdmlydGZuKTsKPiDCoAo+IMKgLyoqCj4gwqAg KiBscGZjX3JlcXVlc3RfZmlybXdhcmVfc3RvcmUgLSBSZXF1ZXN0IGZvciBMaW51eCBnZW5lcmlj IGZpcm13YXJlCj4gdXBncmFkZQo+IEBAIC00NjExLDggKzQ2MDAsNyBAQCBscGZjX2ZjcF9pbWF4 X2luaXQoc3RydWN0IGxwZmNfaGJhICpwaGJhLCBpbnQKPiB2YWwpCj4gwqAJcmV0dXJuIDA7Cj4g wqB9Cj4gwqAKPiAtc3RhdGljIERFVklDRV9BVFRSKGxwZmNfZmNwX2ltYXgsIFNfSVJVR08gfCBT X0lXVVNSLAo+IC0JCcKgwqDCoGxwZmNfZmNwX2ltYXhfc2hvdywgbHBmY19mY3BfaW1heF9zdG9y ZSk7Cj4gK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhscGZjX2ZjcF9pbWF4KTsKPiDCoAo+IMKgLyoK PiDCoCAqIGxwZmNfYXV0b19pbWF4OiBDb250cm9scyBBdXRvLWludGVycnVwdCBjb2FsZXNjaW5n IHZhbHVlcwo+IHN1cHBvcnQuCj4gQEAgLTQ3NzIsOCArNDc2MCw3IEBAIGxwZmNfZmNwX2NwdV9t YXBfaW5pdChzdHJ1Y3QgbHBmY19oYmEgKnBoYmEsCj4gaW50IHZhbCkKPiDCoAlyZXR1cm4gMDsK PiDCoH0KPiDCoAo+IC1zdGF0aWMgREVWSUNFX0FUVFIobHBmY19mY3BfY3B1X21hcCwgU19JUlVH TyB8IFNfSVdVU1IsCj4gLQkJwqDCoMKgbHBmY19mY3BfY3B1X21hcF9zaG93LCBscGZjX2ZjcF9j cHVfbWFwX3N0b3JlKTsKPiArc3RhdGljIERFVklDRV9BVFRSX1JXKGxwZmNfZmNwX2NwdV9tYXAp Owo+IMKgCj4gwqAvKgo+IMKgIyBscGZjX2ZjcF9jbGFzczrCoMKgRGV0ZXJtaW5lcyBGQyBjbGFz cyB0byB1c2UgZm9yIHRoZSBGQ1AgcHJvdG9jb2wuCj4gQEAgLTQ4NTksOSArNDg0Niw3IEBAIGxw ZmNfbWF4X3Njc2ljbXBsX3RpbWVfc2V0KHN0cnVjdCBscGZjX3Zwb3J0Cj4gKnZwb3J0LCBpbnQg dmFsKQo+IMKgCXJldHVybiAwOwo+IMKgfQo+IMKgbHBmY192cG9ydF9wYXJhbV9zdG9yZShtYXhf c2NzaWNtcGxfdGltZSk7Cj4gLXN0YXRpYyBERVZJQ0VfQVRUUihscGZjX21heF9zY3NpY21wbF90 aW1lLCBTX0lSVUdPIHwgU19JV1VTUiwKPiAtCQnCoMKgwqBscGZjX21heF9zY3NpY21wbF90aW1l X3Nob3csCj4gLQkJwqDCoMKgbHBmY19tYXhfc2NzaWNtcGxfdGltZV9zdG9yZSk7Cj4gK3N0YXRp YyBERVZJQ0VfQVRUUl9SVyhscGZjX21heF9zY3NpY21wbF90aW1lKTsKPiDCoAo+IMKgLyoKPiDC oCMgbHBmY19hY2swOiBVc2UgQUNLMCwgaW5zdGVhZCBvZiBBQ0sxIGZvciBjbGFzcyAyIGFja25v d2xlZGdlbWVudC4KPiBWYWx1ZQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3RoZXJtYWwvdGhlcm1h bF9zeXNmcy5jCj4gYi9kcml2ZXJzL3RoZXJtYWwvdGhlcm1hbF9zeXNmcy5jCj4gaW5kZXggZmI4 MGM5NmQ4ZjczLi5jMDA4YWY3ZmI0ODAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy90aGVybWFsL3Ro ZXJtYWxfc3lzZnMuYwo+ICsrKyBiL2RyaXZlcnMvdGhlcm1hbC90aGVybWFsX3N5c2ZzLmMKPiBA QCAtMzk4LDE0ICszOTgsMTMgQEAgY3JlYXRlX3MzMl90enBfYXR0cihvZmZzZXQpOwo+IMKgICov Cj4gwqBzdGF0aWMgREVWSUNFX0FUVFIodHlwZSwgMDQ0NCwgdHlwZV9zaG93LCBOVUxMKTsKPiDC oHN0YXRpYyBERVZJQ0VfQVRUUih0ZW1wLCAwNDQ0LCB0ZW1wX3Nob3csIE5VTEwpOwo+IC1zdGF0 aWMgREVWSUNFX0FUVFIocG9saWN5LCBTX0lSVUdPIHwgU19JV1VTUiwgcG9saWN5X3Nob3csCj4g cG9saWN5X3N0b3JlKTsKPiArc3RhdGljIERFVklDRV9BVFRSX1JXKHBvbGljeSk7Cj4gwqBzdGF0 aWMgREVWSUNFX0FUVFIoYXZhaWxhYmxlX3BvbGljaWVzLCBTX0lSVUdPLAo+IGF2YWlsYWJsZV9w b2xpY2llc19zaG93LCBOVUxMKTsKPiAtc3RhdGljIERFVklDRV9BVFRSKHN1c3RhaW5hYmxlX3Bv d2VyLCBTX0lXVVNSIHwgU19JUlVHTywKPiBzdXN0YWluYWJsZV9wb3dlcl9zaG93LAo+IC0JCcKg wqDCoHN1c3RhaW5hYmxlX3Bvd2VyX3N0b3JlKTsKPiArc3RhdGljIERFVklDRV9BVFRSX1JXKHN1 c3RhaW5hYmxlX3Bvd2VyKTsKPiDCoAo+IMKgLyogVGhlc2UgdGhlcm1hbCB6b25lIGRldmljZSBh dHRyaWJ1dGVzIGFyZSBjcmVhdGVkIGJhc2VkIG9uCj4gY29uZGl0aW9ucyAqLwo+IC1zdGF0aWMg REVWSUNFX0FUVFIobW9kZSwgMDY0NCwgbW9kZV9zaG93LCBtb2RlX3N0b3JlKTsKPiAtc3RhdGlj IERFVklDRV9BVFRSKHBhc3NpdmUsIFNfSVJVR08gfCBTX0lXVVNSLCBwYXNzaXZlX3Nob3csCj4g cGFzc2l2ZV9zdG9yZSk7Cj4gK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhtb2RlKTsKPiArc3RhdGlj IERFVklDRV9BVFRSX1JXKHBhc3NpdmUpOwo+IMKgCj4gwqAvKiBUaGVzZSBhdHRyaWJ1dGVzIGFy ZSB1bmNvbmRpdGlvbmFsbHkgYWRkZWQgdG8gYSB0aGVybWFsIHpvbmUgKi8KPiDCoHN0YXRpYyBz dHJ1Y3QgYXR0cmlidXRlICp0aGVybWFsX3pvbmVfZGV2X2F0dHJzW10gPSB7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvdHR5L3NlcmlhbC9zaC1zY2kuYyBiL2RyaXZlcnMvdHR5L3NlcmlhbC9zaC0K PiBzY2kuYwo+IGluZGV4IGQ5ZjM5OWM0ZTkwYy4uNzI1N2MwNzhlMTU1IDEwMDY0NAo+IC0tLSBh L2RyaXZlcnMvdHR5L3NlcmlhbC9zaC1zY2kuYwo+ICsrKyBiL2RyaXZlcnMvdHR5L3NlcmlhbC9z aC1zY2kuYwo+IEBAIC0xMTQ0LDcgKzExNDQsNyBAQCBzdGF0aWMgc3NpemVfdCByeF9maWZvX3Rp bWVvdXRfc3RvcmUoc3RydWN0Cj4gZGV2aWNlICpkZXYsCj4gwqAJcmV0dXJuIGNvdW50Owo+IMKg fQo+IMKgCj4gLXN0YXRpYyBERVZJQ0VfQVRUUihyeF9maWZvX3RpbWVvdXQsIDA2NDQsIHJ4X2Zp Zm9fdGltZW91dF9zaG93LAo+IHJ4X2ZpZm9fdGltZW91dF9zdG9yZSk7Cj4gK3N0YXRpYyBERVZJ Q0VfQVRUUl9SVyhyeF9maWZvX3RpbWVvdXQpOwo+IMKgCj4gwqAKPiDCoCNpZmRlZiBDT05GSUdf U0VSSUFMX1NIX1NDSV9ETUEKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94aGNpLWRi Z2NhcC5jIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLQo+IGRiZ2NhcC5jCj4gaW5kZXggNDUyZGYw Zjg3ZDZlLi5hMWFiOGFjZjM5YmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNp LWRiZ2NhcC5jCj4gKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLWRiZ2NhcC5jCj4gQEAgLTky MCw3ICs5MjAsNyBAQCBzdGF0aWMgc3NpemVfdCBkYmNfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2 LAo+IMKgCXJldHVybiBjb3VudDsKPiDCoH0KPiDCoAo+IC1zdGF0aWMgREVWSUNFX0FUVFIoZGJj LCAwNjQ0LCBkYmNfc2hvdywgZGJjX3N0b3JlKTsKPiArc3RhdGljIERFVklDRV9BVFRSX1JXKGRi Yyk7Cj4gwqAKPiDCoGludCB4aGNpX2RiY19pbml0KHN0cnVjdCB4aGNpX2hjZCAqeGhjaSkKPiDC oHsKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvcGh5L3BoeS10YWh2by5jIGIvZHJpdmVycy91 c2IvcGh5L3BoeS0KPiB0YWh2by5jCj4gaW5kZXggYjNjZTQyZWRiMzczLi43ZjdjNWM4MjQyMGQg MTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy91c2IvcGh5L3BoeS10YWh2by5jCj4gKysrIGIvZHJpdmVy cy91c2IvcGh5L3BoeS10YWh2by5jCj4gQEAgLTMxMCw3ICszMTAsNyBAQCBzdGF0aWMgc3NpemVf dCBvdGdfbW9kZV9zdG9yZShzdHJ1Y3QgZGV2aWNlCj4gKmRldmljZSwKPiDCoAo+IMKgCXJldHVy biByOwo+IMKgfQo+IC1zdGF0aWMgREVWSUNFX0FUVFIob3RnX21vZGUsIDA2NDQsIG90Z19tb2Rl X3Nob3csIG90Z19tb2RlX3N0b3JlKTsKPiArc3RhdGljIERFVklDRV9BVFRSX1JXKG90Z19tb2Rl KTsKPiDCoAo+IMKgc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnRhaHZvX2F0dHJpYnV0ZXNbXSA9 IHsKPiDCoAkmZGV2X2F0dHJfdmJ1cy5hdHRyLAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3ZpZGVv L2ZiZGV2L2F1b19rMTkweC5jCj4gYi9kcml2ZXJzL3ZpZGVvL2ZiZGV2L2F1b19rMTkweC5jCj4g aW5kZXggMGQwNjAzODMyNGUwLi4xZTM4M2M1NDc2MzMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy92 aWRlby9mYmRldi9hdW9fazE5MHguYwo+ICsrKyBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvYXVvX2sx OTB4LmMKPiBAQCAtNzA4LDggKzcwOCw4IEBAIHN0YXRpYyBzc2l6ZV90IHRlbXBfc2hvdyhzdHJ1 Y3QgZGV2aWNlICpkZXYsCj4gc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCj4gwqAJcmV0 dXJuIHNwcmludGYoYnVmLCAiJWRcbiIsIHRlbXApOwo+IMKgfQo+IMKgCj4gLXN0YXRpYyBERVZJ Q0VfQVRUUih1cGRhdGVfbW9kZSwgMDY0NCwgdXBkYXRlX21vZGVfc2hvdywKPiB1cGRhdGVfbW9k ZV9zdG9yZSk7Cj4gLXN0YXRpYyBERVZJQ0VfQVRUUihmbGFzaCwgMDY0NCwgZmxhc2hfc2hvdywg Zmxhc2hfc3RvcmUpOwo+ICtzdGF0aWMgREVWSUNFX0FUVFJfUlcodXBkYXRlX21vZGUpOwo+ICtz dGF0aWMgREVWSUNFX0FUVFJfUlcoZmxhc2gpOwo+IMKgc3RhdGljIERFVklDRV9BVFRSKHRlbXAs IDA2NDQsIHRlbXBfc2hvdywgTlVMTCk7Cj4gwqAKPiDCoHN0YXRpYyBzdHJ1Y3QgYXR0cmlidXRl ICphdW9rMTkweF9hdHRyaWJ1dGVzW10gPSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8v ZmJkZXYvdzEwMGZiLmMKPiBiL2RyaXZlcnMvdmlkZW8vZmJkZXYvdzEwMGZiLmMKPiBpbmRleCBk NTcwZTE5YTI4NjQuLjAzNWZmNmUwMjg5NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL3ZpZGVvL2Zi ZGV2L3cxMDBmYi5jCj4gKysrIGIvZHJpdmVycy92aWRlby9mYmRldi93MTAwZmIuYwo+IEBAIC0x MTAsNyArMTEwLDcgQEAgc3RhdGljIHNzaXplX3QgZmxpcF9zdG9yZShzdHJ1Y3QgZGV2aWNlICpk ZXYsCj4gc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsIGNvbgo+IMKgCXJldHVybiBjb3Vu dDsKPiDCoH0KPiDCoAo+IC1zdGF0aWMgREVWSUNFX0FUVFIoZmxpcCwgMDY0NCwgZmxpcF9zaG93 LCBmbGlwX3N0b3JlKTsKPiArc3RhdGljIERFVklDRV9BVFRSX1JXKGZsaXApOwo+IMKgCj4gwqBz dGF0aWMgc3NpemVfdCB3MTAwZmJfcmVnX3JlYWQoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QK PiBkZXZpY2VfYXR0cmlidXRlICphdHRyLCBjb25zdCBjaGFyICpidWYsIHNpemVfdCBjb3VudCkK PiDCoHsKPiBAQCAtMTY2LDcgKzE2Niw3IEBAIHN0YXRpYyBzc2l6ZV90IGZhc3RwbGxjbGtfc3Rv cmUoc3RydWN0IGRldmljZQo+ICpkZXYsIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHQKPiDC oAlyZXR1cm4gY291bnQ7Cj4gwqB9Cj4gwqAKPiAtc3RhdGljIERFVklDRV9BVFRSKGZhc3RwbGxj bGssIDA2NDQsIGZhc3RwbGxjbGtfc2hvdywKPiBmYXN0cGxsY2xrX3N0b3JlKTsKPiArc3RhdGlj IERFVklDRV9BVFRSX1JXKGZhc3RwbGxjbGspOwo+IMKgCj4gwqAvKgo+IMKgICogU29tZSB0b3Vj aHNjcmVlbnMgbmVlZCBoc3luYyBpbmZvcm1hdGlvbiBmcm9tIHRoZSB2aWRlbyBkcml2ZXIgdG8K PiBkaWZmIC0tZ2l0IGEvbGliL3Rlc3RfZmlybXdhcmUuYyBiL2xpYi90ZXN0X2Zpcm13YXJlLmMK PiBpbmRleCA2NGE0Yzc2Y2JhMmIuLjk2NDc4NGRjMTYwMiAxMDA2NDQKPiAtLS0gYS9saWIvdGVz dF9maXJtd2FyZS5jCj4gKysrIGIvbGliL3Rlc3RfZmlybXdhcmUuYwo+IEBAIC0zNTksNyArMzU5 LDcgQEAgc3RhdGljIHNzaXplX3QgY29uZmlnX25hbWVfc2hvdyhzdHJ1Y3QgZGV2aWNlCj4gKmRl diwKPiDCoHsKPiDCoAlyZXR1cm4gY29uZmlnX3Rlc3Rfc2hvd19zdHIoYnVmLCB0ZXN0X2Z3X2Nv bmZpZy0+bmFtZSk7Cj4gwqB9Cj4gLXN0YXRpYyBERVZJQ0VfQVRUUihjb25maWdfbmFtZSwgMDY0 NCwgY29uZmlnX25hbWVfc2hvdywKPiBjb25maWdfbmFtZV9zdG9yZSk7Cj4gK3N0YXRpYyBERVZJ Q0VfQVRUUl9SVyhjb25maWdfbmFtZSk7Cj4gwqAKPiDCoHN0YXRpYyBzc2l6ZV90IGNvbmZpZ19u dW1fcmVxdWVzdHNfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAo+IMKgCQkJCQnCoHN0cnVjdCBk ZXZpY2VfYXR0cmlidXRlCj4gKmF0dHIsCj4gQEAgLTM4OCw4ICszODgsNyBAQCBzdGF0aWMgc3Np emVfdCBjb25maWdfbnVtX3JlcXVlc3RzX3Nob3coc3RydWN0Cj4gZGV2aWNlICpkZXYsCj4gwqB7 Cj4gwqAJcmV0dXJuIHRlc3RfZGV2X2NvbmZpZ19zaG93X3U4KGJ1ZiwgdGVzdF9md19jb25maWct Cj4gPm51bV9yZXF1ZXN0cyk7Cj4gwqB9Cj4gLXN0YXRpYyBERVZJQ0VfQVRUUihjb25maWdfbnVt X3JlcXVlc3RzLCAwNjQ0LAo+IGNvbmZpZ19udW1fcmVxdWVzdHNfc2hvdywKPiAtCQnCoMKgwqBj b25maWdfbnVtX3JlcXVlc3RzX3N0b3JlKTsKPiArc3RhdGljIERFVklDRV9BVFRSX1JXKGNvbmZp Z19udW1fcmVxdWVzdHMpOwo+IMKgCj4gwqBzdGF0aWMgc3NpemVfdCBjb25maWdfc3luY19kaXJl Y3Rfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAo+IMKgCQkJCQlzdHJ1Y3QgZGV2aWNlX2F0dHJp YnV0ZQo+ICphdHRyLAo+IEBAIC00MTEsOCArNDEwLDcgQEAgc3RhdGljIHNzaXplX3QgY29uZmln X3N5bmNfZGlyZWN0X3Nob3coc3RydWN0Cj4gZGV2aWNlICpkZXYsCj4gwqB7Cj4gwqAJcmV0dXJu IHRlc3RfZGV2X2NvbmZpZ19zaG93X2Jvb2woYnVmLCB0ZXN0X2Z3X2NvbmZpZy0KPiA+c3luY19k aXJlY3QpOwo+IMKgfQo+IC1zdGF0aWMgREVWSUNFX0FUVFIoY29uZmlnX3N5bmNfZGlyZWN0LCAw NjQ0LAo+IGNvbmZpZ19zeW5jX2RpcmVjdF9zaG93LAo+IC0JCcKgwqDCoGNvbmZpZ19zeW5jX2Rp cmVjdF9zdG9yZSk7Cj4gK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhjb25maWdfc3luY19kaXJlY3Qp Owo+IMKgCj4gwqBzdGF0aWMgc3NpemVfdCBjb25maWdfc2VuZF91ZXZlbnRfc3RvcmUoc3RydWN0 IGRldmljZSAqZGV2LAo+IMKgCQkJCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZQo+ICphdHRyLAo+ IEBAIC00MjgsOCArNDI2LDcgQEAgc3RhdGljIHNzaXplX3QgY29uZmlnX3NlbmRfdWV2ZW50X3No b3coc3RydWN0Cj4gZGV2aWNlICpkZXYsCj4gwqB7Cj4gwqAJcmV0dXJuIHRlc3RfZGV2X2NvbmZp Z19zaG93X2Jvb2woYnVmLCB0ZXN0X2Z3X2NvbmZpZy0KPiA+c2VuZF91ZXZlbnQpOwo+IMKgfQo+ IC1zdGF0aWMgREVWSUNFX0FUVFIoY29uZmlnX3NlbmRfdWV2ZW50LCAwNjQ0LAo+IGNvbmZpZ19z ZW5kX3VldmVudF9zaG93LAo+IC0JCcKgwqDCoGNvbmZpZ19zZW5kX3VldmVudF9zdG9yZSk7Cj4g K3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhjb25maWdfc2VuZF91ZXZlbnQpOwo+IMKgCj4gwqBzdGF0 aWMgc3NpemVfdCBjb25maWdfcmVhZF9md19pZHhfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAo+ IMKgCQkJCQlzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZQo+ICphdHRyLAo+IEBAIC00NDUsOCArNDQy LDcgQEAgc3RhdGljIHNzaXplX3QgY29uZmlnX3JlYWRfZndfaWR4X3Nob3coc3RydWN0Cj4gZGV2 aWNlICpkZXYsCj4gwqB7Cj4gwqAJcmV0dXJuIHRlc3RfZGV2X2NvbmZpZ19zaG93X3U4KGJ1Ziwg dGVzdF9md19jb25maWctCj4gPnJlYWRfZndfaWR4KTsKPiDCoH0KPiAtc3RhdGljIERFVklDRV9B VFRSKGNvbmZpZ19yZWFkX2Z3X2lkeCwgMDY0NCwKPiBjb25maWdfcmVhZF9md19pZHhfc2hvdywK PiAtCQnCoMKgwqBjb25maWdfcmVhZF9md19pZHhfc3RvcmUpOwo+ICtzdGF0aWMgREVWSUNFX0FU VFJfUlcoY29uZmlnX3JlYWRfZndfaWR4KTsKPiDCoAo+IMKgCj4gwqBzdGF0aWMgc3NpemVfdCB0 cmlnZ2VyX3JlcXVlc3Rfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAo+IGRpZmYgLS1naXQgYS9s aWIvdGVzdF9rbW9kLmMgYi9saWIvdGVzdF9rbW9kLmMKPiBpbmRleCAzMzdmNDA4YjRkZTYuLmUz NzJiOTdlZWUxMyAxMDA2NDQKPiAtLS0gYS9saWIvdGVzdF9rbW9kLmMKPiArKysgYi9saWIvdGVz dF9rbW9kLmMKPiBAQCAtNjk0LDggKzY5NCw3IEBAIHN0YXRpYyBzc2l6ZV90IGNvbmZpZ190ZXN0 X2RyaXZlcl9zaG93KHN0cnVjdAo+IGRldmljZSAqZGV2LAo+IMKgCXJldHVybiBjb25maWdfdGVz dF9zaG93X3N0cigmdGVzdF9kZXYtPmNvbmZpZ19tdXRleCwgYnVmLAo+IMKgCQkJCcKgwqDCoMKg Y29uZmlnLT50ZXN0X2RyaXZlcik7Cj4gwqB9Cj4gLXN0YXRpYyBERVZJQ0VfQVRUUihjb25maWdf dGVzdF9kcml2ZXIsIDA2NDQsCj4gY29uZmlnX3Rlc3RfZHJpdmVyX3Nob3csCj4gLQkJwqDCoMKg Y29uZmlnX3Rlc3RfZHJpdmVyX3N0b3JlKTsKPiArc3RhdGljIERFVklDRV9BVFRSX1JXKGNvbmZp Z190ZXN0X2RyaXZlcik7Cj4gwqAKPiDCoHN0YXRpYyBzc2l6ZV90IGNvbmZpZ190ZXN0X2ZzX3N0 b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwKPiDCoAkJCQnCoMKgwqDCoHN0cnVjdCBkZXZpY2VfYXR0 cmlidXRlICphdHRyLAo+IEBAIC03MjYsOCArNzI1LDcgQEAgc3RhdGljIHNzaXplX3QgY29uZmln X3Rlc3RfZnNfc2hvdyhzdHJ1Y3QgZGV2aWNlCj4gKmRldiwKPiDCoAlyZXR1cm4gY29uZmlnX3Rl c3Rfc2hvd19zdHIoJnRlc3RfZGV2LT5jb25maWdfbXV0ZXgsIGJ1ZiwKPiDCoAkJCQnCoMKgwqDC oGNvbmZpZy0+dGVzdF9mcyk7Cj4gwqB9Cj4gLXN0YXRpYyBERVZJQ0VfQVRUUihjb25maWdfdGVz dF9mcywgMDY0NCwgY29uZmlnX3Rlc3RfZnNfc2hvdywKPiAtCQnCoMKgwqBjb25maWdfdGVzdF9m c19zdG9yZSk7Cj4gK3N0YXRpYyBERVZJQ0VfQVRUUl9SVyhjb25maWdfdGVzdF9mcyk7Cj4gwqAK PiDCoHN0YXRpYyBpbnQgdHJpZ2dlcl9jb25maWdfcnVuX3R5cGUoc3RydWN0IGttb2RfdGVzdF9k ZXZpY2UKPiAqdGVzdF9kZXYsCj4gwqAJCQkJwqDCoMKgZW51bSBrbW9kX3Rlc3RfY2FzZSB0ZXN0 X2Nhc2UsCj4gQEAgLTEwMTIsOCArMTAxMCw3IEBAIHN0YXRpYyBzc2l6ZV90IGNvbmZpZ19udW1f dGhyZWFkc19zaG93KHN0cnVjdAo+IGRldmljZSAqZGV2LAo+IMKgCj4gwqAJcmV0dXJuIHRlc3Rf ZGV2X2NvbmZpZ19zaG93X2ludCh0ZXN0X2RldiwgYnVmLCBjb25maWctCj4gPm51bV90aHJlYWRz KTsKPiDCoH0KPiAtc3RhdGljIERFVklDRV9BVFRSKGNvbmZpZ19udW1fdGhyZWFkcywgMDY0NCwK PiBjb25maWdfbnVtX3RocmVhZHNfc2hvdywKPiAtCQnCoMKgwqBjb25maWdfbnVtX3RocmVhZHNf c3RvcmUpOwo+ICtzdGF0aWMgREVWSUNFX0FUVFJfUlcoY29uZmlnX251bV90aHJlYWRzKTsKPiDC oAo+IMKgc3RhdGljIHNzaXplX3QgY29uZmlnX3Rlc3RfY2FzZV9zdG9yZShzdHJ1Y3QgZGV2aWNl ICpkZXYsCj4gwqAJCQkJwqDCoMKgwqDCoMKgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIs Cj4gQEAgLTEwMzcsOCArMTAzNCw3IEBAIHN0YXRpYyBzc2l6ZV90IGNvbmZpZ190ZXN0X2Nhc2Vf c2hvdyhzdHJ1Y3QKPiBkZXZpY2UgKmRldiwKPiDCoAo+IMKgCXJldHVybiB0ZXN0X2Rldl9jb25m aWdfc2hvd191aW50KHRlc3RfZGV2LCBidWYsIGNvbmZpZy0KPiA+dGVzdF9jYXNlKTsKPiDCoH0K PiAtc3RhdGljIERFVklDRV9BVFRSKGNvbmZpZ190ZXN0X2Nhc2UsIDA2NDQsIGNvbmZpZ190ZXN0 X2Nhc2Vfc2hvdywKPiAtCQnCoMKgwqBjb25maWdfdGVzdF9jYXNlX3N0b3JlKTsKPiArc3RhdGlj IERFVklDRV9BVFRSX1JXKGNvbmZpZ190ZXN0X2Nhc2UpOwo+IMKgCj4gwqBzdGF0aWMgc3NpemVf dCB0ZXN0X3Jlc3VsdF9zaG93KHN0cnVjdCBkZXZpY2UgKmRldiwKPiDCoAkJCQlzdHJ1Y3QgZGV2 aWNlX2F0dHJpYnV0ZSAqYXR0ciwKPiBAQCAtMTA0OSw3ICsxMDQ1LDcgQEAgc3RhdGljIHNzaXpl X3QgdGVzdF9yZXN1bHRfc2hvdyhzdHJ1Y3QgZGV2aWNlCj4gKmRldiwKPiDCoAo+IMKgCXJldHVy biB0ZXN0X2Rldl9jb25maWdfc2hvd19pbnQodGVzdF9kZXYsIGJ1ZiwgY29uZmlnLQo+ID50ZXN0 X3Jlc3VsdCk7Cj4gwqB9Cj4gLXN0YXRpYyBERVZJQ0VfQVRUUih0ZXN0X3Jlc3VsdCwgMDY0NCwg dGVzdF9yZXN1bHRfc2hvdywKPiB0ZXN0X3Jlc3VsdF9zdG9yZSk7Cj4gK3N0YXRpYyBERVZJQ0Vf QVRUUl9SVyh0ZXN0X3Jlc3VsdCk7Cj4gwqAKPiDCoCNkZWZpbmUgVEVTVF9LTU9EX0RFVl9BVFRS KG5hbWUpCQkmZGV2X2F0dHJfIyNuYW1lLmF0dAo+IHIKPiDCoAo+IGRpZmYgLS1naXQgYS9zb3Vu ZC9zb2Mvb21hcC9tY2JzcC5jIGIvc291bmQvc29jL29tYXAvbWNic3AuYwo+IGluZGV4IDdhNTRl MzA4MzIwMy4uNzlkNGRjNzg1ZTVjIDEwMDY0NAo+IC0tLSBhL3NvdW5kL3NvYy9vbWFwL21jYnNw LmMKPiArKysgYi9zb3VuZC9zb2Mvb21hcC9tY2JzcC5jCj4gQEAgLTg1NCw3ICs4NTQsNyBAQCBz dGF0aWMgc3NpemVfdCBkbWFfb3BfbW9kZV9zdG9yZShzdHJ1Y3QgZGV2aWNlCj4gKmRldiwKPiDC oAlyZXR1cm4gc2l6ZTsKPiDCoH0KPiDCoAo+IC1zdGF0aWMgREVWSUNFX0FUVFIoZG1hX29wX21v ZGUsIDA2NDQsIGRtYV9vcF9tb2RlX3Nob3csCj4gZG1hX29wX21vZGVfc3RvcmUpOwo+ICtzdGF0 aWMgREVWSUNFX0FUVFJfUlcoZG1hX29wX21vZGUpOwo+IMKgCj4gwqBzdGF0aWMgY29uc3Qgc3Ry dWN0IGF0dHJpYnV0ZSAqYWRkaXRpb25hbF9hdHRyc1tdID0gewo+IMKgCSZkZXZfYXR0cl9tYXhf dHhfdGhyZXMuYXR0ciwKPiBAQCAtOTIzLDcgKzkyMyw3IEBAIHN0YXRpYyBzc2l6ZV90IHN0X3Rh cHNfc3RvcmUoc3RydWN0IGRldmljZSAqZGV2LAo+IMKgCXJldHVybiBzaXplOwo+IMKgfQo+IMKg Cj4gLXN0YXRpYyBERVZJQ0VfQVRUUihzdF90YXBzLCAwNjQ0LCBzdF90YXBzX3Nob3csIHN0X3Rh cHNfc3RvcmUpOwo+ICtzdGF0aWMgREVWSUNFX0FUVFJfUlcoc3RfdGFwcyk7Cj4gwqAKPiDCoHN0 YXRpYyBjb25zdCBzdHJ1Y3QgYXR0cmlidXRlICpzaWRldG9uZV9hdHRyc1tdID0gewo+IMKgCSZk ZXZfYXR0cl9zdF90YXBzLmF0dHIsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2ludGVsLWdmeAo=