From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v3] drm/rockchip: Refactor the component match logic. Date: Wed, 15 Mar 2017 09:52:34 -0400 Message-ID: <20170315135234.GD20329@art_vandelay> References: <1489573247-9628-1-git-send-email-jeffy.chen@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1489573247-9628-1-git-send-email-jeffy.chen@rock-chips.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Jeffy Chen Cc: linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Brian Norris , Douglas Anderson , dri-devel@lists.freedesktop.org, Tomasz Figa , Guenter Roeck , linux-arm-kernel@lists.infradead.org List-Id: linux-rockchip.vger.kernel.org T24gV2VkLCBNYXIgMTUsIDIwMTcgYXQgMDY6MjA6NDdQTSArMDgwMCwgSmVmZnkgQ2hlbiB3cm90 ZToKPiBDdXJyZW50bHkgd2UgYXJlIGFkZGluZyBhbGwgY29tcG9uZW50cyBmcm9tIHRoZSBkdHMs IGlmIG9uZSBvZiB0aGVpcgo+IGRyaXZlcnMgYmVlbiBkaXNhYmxlZCwgd2Ugd291bGQgbm90IGJl IGFibGUgdG8gYnJpbmcgdXAgb3RoZXJzLgo+IAo+IFJlZmFjdG9yIGNvbXBvbmVudCBtYXRjaCBs b2dpYywgZm9sbG93IGV4eW5vcyBkcm0uCj4gCj4gU2lnbmVkLW9mZi1ieTogSmVmZnkgQ2hlbiA8 amVmZnkuY2hlbkByb2NrLWNoaXBzLmNvbT4KPiBSZXZpZXdlZC1ieTogQW5kcnplaiBIYWpkYSA8 YS5oYWpkYUBzYW1zdW5nLmNvbT4KClN0aWxsIGxvb2tzIGdvb2QgdG8gbWUuIElmIE1hcmsgZG9l c24ndCBvYmplY3QgaW4gdGhlIG5leHQgMjQgaG91cnMsIEknbGwgYXBwbHkuCgpTZWFuCgo+IAo+ IC0tLQo+IAo+IENoYW5nZXMgaW4gdjM6Cj4gQWRkcmVzcyBBbmRyemVqIEhhamRhIDxhLmhhamRh QHNhbXN1bmcuY29tPidzIGNvbW1lbnRzLgo+IAo+IENoYW5nZXMgaW4gdjI6Cj4gQWRkcmVzcyBT ZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4ncyBjb21tZW50cy4KPiAKPiAgZHJpdmVy cy9ncHUvZHJtL3JvY2tjaGlwL0tjb25maWcgICAgICAgICAgICAgICAgfCAgMTAgKy0KPiAgZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL01ha2VmaWxlICAgICAgICAgICAgICAgfCAgMTYgKy0tCj4g IGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9hbmFsb2dpeF9kcC1yb2NrY2hpcC5jIHwgICA5ICst Cj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9jZG4tZHAtY29yZS5jICAgICAgICAgIHwgICA4 ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jICAgICAgICAgIHwg ICA4ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kd19oZG1pLXJvY2tjaGlwLmMgICAg IHwgIDEwICstCj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuYyAgICAgICAg ICAgIHwgIDEwICstCj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2 LmMgICAgIHwgMTU0ICsrKysrKysrKysrKysrKystLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0v cm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5oICAgICB8ICAgNiArCj4gIGRyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9yb2NrY2hpcF92b3BfcmVnLmMgICAgIHwgICA4ICstCj4gIDEwIGZpbGVzIGNo YW5nZWQsIDEzMSBpbnNlcnRpb25zKCspLCAxMDggZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL0tjb25maWcKPiBpbmRleCAwZTRlYjg0Li41MGM0MWMwIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL0tjb25maWcKPiBAQCAtMTMsNyArMTMsNyBAQCBjb25maWcgRFJNX1JPQ0tDSElQCj4g IAkgIElQIGZvdW5kIG9uIHRoZSBTb0MuCj4gIAo+ICBjb25maWcgUk9DS0NISVBfQU5BTE9HSVhf RFAKPiAtCXRyaXN0YXRlICJSb2NrY2hpcCBzcGVjaWZpYyBleHRlbnNpb25zIGZvciBBbmFsb2dp eCBEUCBkcml2ZXIiCj4gKwlib29sICJSb2NrY2hpcCBzcGVjaWZpYyBleHRlbnNpb25zIGZvciBB bmFsb2dpeCBEUCBkcml2ZXIiCj4gIAlkZXBlbmRzIG9uIERSTV9ST0NLQ0hJUAo+ICAJc2VsZWN0 IERSTV9BTkFMT0dJWF9EUAo+ICAJaGVscAo+IEBAIC0yMiw3ICsyMiw3IEBAIGNvbmZpZyBST0NL Q0hJUF9BTkFMT0dJWF9EUAo+ICAJICBvbiBSSzMyODggYmFzZWQgU29DLCB5b3Ugc2hvdWxkIHNl bGV0IHRoaXMgb3B0aW9uLgo+ICAKPiAgY29uZmlnIFJPQ0tDSElQX0NETl9EUAo+IC0gICAgICAg IHRyaXN0YXRlICJSb2NrY2hpcCBjZG4gRFAiCj4gKyAgICAgICAgYm9vbCAiUm9ja2NoaXAgY2Ru IERQIgo+ICAgICAgICAgIGRlcGVuZHMgb24gRFJNX1JPQ0tDSElQCj4gIAlkZXBlbmRzIG9uIEVY VENPTgo+ICAJc2VsZWN0IFNORF9TT0NfSERNSV9DT0RFQyBpZiBTTkRfU09DCj4gQEAgLTMzLDcg KzMzLDcgQEAgY29uZmlnIFJPQ0tDSElQX0NETl9EUAo+ICAJICBvcHRpb24uCj4gIAo+ICBjb25m aWcgUk9DS0NISVBfRFdfSERNSQo+IC0gICAgICAgIHRyaXN0YXRlICJSb2NrY2hpcCBzcGVjaWZp YyBleHRlbnNpb25zIGZvciBTeW5vcHN5cyBEVyBIRE1JIgo+ICsgICAgICAgIGJvb2wgIlJvY2tj aGlwIHNwZWNpZmljIGV4dGVuc2lvbnMgZm9yIFN5bm9wc3lzIERXIEhETUkiCj4gICAgICAgICAg ZGVwZW5kcyBvbiBEUk1fUk9DS0NISVAKPiAgICAgICAgICBzZWxlY3QgRFJNX0RXX0hETUkKPiAg ICAgICAgICBoZWxwCj4gQEAgLTQzLDcgKzQzLDcgQEAgY29uZmlnIFJPQ0tDSElQX0RXX0hETUkK PiAgCSAgb3B0aW9uLgo+ICAKPiAgY29uZmlnIFJPQ0tDSElQX0RXX01JUElfRFNJCj4gLQl0cmlz dGF0ZSAiUm9ja2NoaXAgc3BlY2lmaWMgZXh0ZW5zaW9ucyBmb3IgU3lub3BzeXMgRFcgTUlQSSBE U0kiCj4gKwlib29sICJSb2NrY2hpcCBzcGVjaWZpYyBleHRlbnNpb25zIGZvciBTeW5vcHN5cyBE VyBNSVBJIERTSSIKPiAgCWRlcGVuZHMgb24gRFJNX1JPQ0tDSElQCj4gIAlzZWxlY3QgRFJNX01J UElfRFNJCj4gIAloZWxwCj4gQEAgLTUzLDcgKzUzLDcgQEAgY29uZmlnIFJPQ0tDSElQX0RXX01J UElfRFNJCj4gIAkgb3B0aW9uLgo+ICAKPiAgY29uZmlnIFJPQ0tDSElQX0lOTk9fSERNSQo+IC0J dHJpc3RhdGUgIlJvY2tjaGlwIHNwZWNpZmljIGV4dGVuc2lvbnMgZm9yIElubm9zaWxpY29uIEhE TUkiCj4gKwlib29sICJSb2NrY2hpcCBzcGVjaWZpYyBleHRlbnNpb25zIGZvciBJbm5vc2lsaWNv biBIRE1JIgo+ICAJZGVwZW5kcyBvbiBEUk1fUk9DS0NISVAKPiAgCWhlbHAKPiAgCSAgVGhpcyBz ZWxlY3RzIHN1cHBvcnQgZm9yIFJvY2tjaGlwIFNvQyBzcGVjaWZpYyBleHRlbnNpb25zCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9NYWtlZmlsZQo+IGluZGV4IGM5MzFlMmEuLmZhOGRjOWQgMTAwNjQ0Cj4g LS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL01ha2VmaWxlCj4gQEAgLTMsMTQgKzMsMTQgQEAKPiAgIyBEaXJlY3Qg UmVuZGVyaW5nIEluZnJhc3RydWN0dXJlIChEUkkpIGluIFhGcmVlODYgNC4xLjAgYW5kIGhpZ2hl ci4KPiAgCj4gIHJvY2tjaGlwZHJtLXkgOj0gcm9ja2NoaXBfZHJtX2Rydi5vIHJvY2tjaGlwX2Ry bV9mYi5vIFwKPiAtCQlyb2NrY2hpcF9kcm1fZ2VtLm8gcm9ja2NoaXBfZHJtX3Bzci5vIHJvY2tj aGlwX2RybV92b3Aubwo+ICsJCXJvY2tjaGlwX2RybV9nZW0ubyByb2NrY2hpcF9kcm1fcHNyLm8g XAo+ICsJCXJvY2tjaGlwX2RybV92b3AubyByb2NrY2hpcF92b3BfcmVnLm8KPiAgcm9ja2NoaXBk cm0tJChDT05GSUdfRFJNX0ZCREVWX0VNVUxBVElPTikgKz0gcm9ja2NoaXBfZHJtX2ZiZGV2Lm8K PiAgCj4gLW9iai0kKENPTkZJR19ST0NLQ0hJUF9BTkFMT0dJWF9EUCkgKz0gYW5hbG9naXhfZHAt cm9ja2NoaXAubwo+IC1vYmotJChDT05GSUdfUk9DS0NISVBfQ0ROX0RQKSArPSBjZG4tZHAubwo+ IC1jZG4tZHAtb2JqcyA6PSBjZG4tZHAtY29yZS5vIGNkbi1kcC1yZWcubwo+IC1vYmotJChDT05G SUdfUk9DS0NISVBfRFdfSERNSSkgKz0gZHdfaGRtaS1yb2NrY2hpcC5vCj4gLW9iai0kKENPTkZJ R19ST0NLQ0hJUF9EV19NSVBJX0RTSSkgKz0gZHctbWlwaS1kc2kubwo+IC1vYmotJChDT05GSUdf Uk9DS0NISVBfSU5OT19IRE1JKSArPSBpbm5vX2hkbWkubwo+ICtyb2NrY2hpcGRybS0kKENPTkZJ R19ST0NLQ0hJUF9BTkFMT0dJWF9EUCkgKz0gYW5hbG9naXhfZHAtcm9ja2NoaXAubwo+ICtyb2Nr Y2hpcGRybS0kKENPTkZJR19ST0NLQ0hJUF9DRE5fRFApICs9IGNkbi1kcC1jb3JlLm8gY2RuLWRw LXJlZy5vCj4gK3JvY2tjaGlwZHJtLSQoQ09ORklHX1JPQ0tDSElQX0RXX0hETUkpICs9IGR3X2hk bWktcm9ja2NoaXAubwo+ICtyb2NrY2hpcGRybS0kKENPTkZJR19ST0NLQ0hJUF9EV19NSVBJX0RT SSkgKz0gZHctbWlwaS1kc2kubwo+ICtyb2NrY2hpcGRybS0kKENPTkZJR19ST0NLQ0hJUF9JTk5P X0hETUkpICs9IGlubm9faGRtaS5vCj4gIAo+IC1vYmotJChDT05GSUdfRFJNX1JPQ0tDSElQKSAr PSByb2NrY2hpcGRybS5vIHJvY2tjaGlwX3ZvcF9yZWcubwo+ICtvYmotJChDT05GSUdfRFJNX1JP Q0tDSElQKSArPSByb2NrY2hpcGRybS5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y b2NrY2hpcC9hbmFsb2dpeF9kcC1yb2NrY2hpcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMKPiBpbmRleCA4NTQ4ZTgyLi45MWViZTVjIDEwMDY0NAo+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9hbmFsb2dpeF9kcC1yb2NrY2hpcC5jCj4g KysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMKPiBA QCAtNTA3LDcgKzUwNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJvY2tj aGlwX2RwX2R0X2lkc1tdID0gewo+ICB9Owo+ICBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCByb2Nr Y2hpcF9kcF9kdF9pZHMpOwo+ICAKPiAtc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcm9j a2NoaXBfZHBfZHJpdmVyID0gewo+ICtzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHJvY2tjaGlwX2Rw X2RyaXZlciA9IHsKPiAgCS5wcm9iZSA9IHJvY2tjaGlwX2RwX3Byb2JlLAo+ICAJLnJlbW92ZSA9 IHJvY2tjaGlwX2RwX3JlbW92ZSwKPiAgCS5kcml2ZXIgPSB7Cj4gQEAgLTUxNiwxMCArNTE2LDMg QEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcm9ja2NoaXBfZHBfZHJpdmVyID0gewo+ ICAJCSAgIC5vZl9tYXRjaF90YWJsZSA9IG9mX21hdGNoX3B0cihyb2NrY2hpcF9kcF9kdF9pZHMp LAo+ICAJfSwKPiAgfTsKPiAtCj4gLW1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIocm9ja2NoaXBfZHBf ZHJpdmVyKTsKPiAtCj4gLU1PRFVMRV9BVVRIT1IoIllha2lyIFlhbmcgPHlra0Byb2NrLWNoaXBz LmNvbT4iKTsKPiAtTU9EVUxFX0FVVEhPUigiSmVmZiBjaGVuIDxqZWZmLmNoZW5Acm9jay1jaGlw cy5jb20+Iik7Cj4gLU1PRFVMRV9ERVNDUklQVElPTigiUm9ja2NoaXAgU3BlY2lmaWMgQW5hbG9n aXgtRFAgRHJpdmVyIEV4dGVuc2lvbiIpOwo+IC1NT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9jZG4tZHAtY29yZS5jIGIvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmMKPiBpbmRleCBmZDc5YTcwLi5lMTc5 NmQwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9jZG4tZHAtY29yZS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmMKPiBAQCAtMTI0 Myw3ICsxMjQzLDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIGNkbl9kcF9wbV9v cHMgPSB7Cj4gIAkJCQljZG5fZHBfcmVzdW1lKQo+ICB9Owo+ICAKPiAtc3RhdGljIHN0cnVjdCBw bGF0Zm9ybV9kcml2ZXIgY2RuX2RwX2RyaXZlciA9IHsKPiArc3RydWN0IHBsYXRmb3JtX2RyaXZl ciBjZG5fZHBfZHJpdmVyID0gewo+ICAJLnByb2JlID0gY2RuX2RwX3Byb2JlLAo+ICAJLnJlbW92 ZSA9IGNkbl9kcF9yZW1vdmUsCj4gIAkuc2h1dGRvd24gPSBjZG5fZHBfc2h1dGRvd24sCj4gQEAg LTEyNTQsOSArMTI1NCwzIEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGNkbl9kcF9k cml2ZXIgPSB7Cj4gIAkJICAgLnBtID0gJmNkbl9kcF9wbV9vcHMsCj4gIAl9LAo+ICB9Owo+IC0K PiAtbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihjZG5fZHBfZHJpdmVyKTsKPiAtCj4gLU1PRFVMRV9B VVRIT1IoIkNocmlzIFpob25nIDx6eXdAcm9jay1jaGlwcy5jb20+Iik7Cj4gLU1PRFVMRV9ERVND UklQVElPTigiY2RuIERQIERyaXZlciIpOwo+IC1NT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7Cj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jIGIvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMKPiBpbmRleCBkOWFhMzgyLi42NWE0 NzRmIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5j Cj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMKPiBAQCAtMTE2 NSw3ICsxMTY1LDcgQEAgc3RhdGljIGludCBkd19taXBpX2RzaV9yZW1vdmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgc3RydWN0 IHBsYXRmb3JtX2RyaXZlciBkd19taXBpX2RzaV9kcml2ZXIgPSB7Cj4gK3N0cnVjdCBwbGF0Zm9y bV9kcml2ZXIgZHdfbWlwaV9kc2lfZHJpdmVyID0gewo+ICAJLnByb2JlCQk9IGR3X21pcGlfZHNp X3Byb2JlLAo+ICAJLnJlbW92ZQkJPSBkd19taXBpX2RzaV9yZW1vdmUsCj4gIAkuZHJpdmVyCQk9 IHsKPiBAQCAtMTE3Myw5ICsxMTczLDMgQEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIg ZHdfbWlwaV9kc2lfZHJpdmVyID0gewo+ICAJCS5uYW1lCT0gRFJJVkVSX05BTUUsCj4gIAl9LAo+ ICB9Owo+IC1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGR3X21pcGlfZHNpX2RyaXZlcik7Cj4gLQo+ IC1NT0RVTEVfREVTQ1JJUFRJT04oIlJPQ0tDSElQIE1JUEkgRFNJIGhvc3QgY29udHJvbGxlciBk cml2ZXIiKTsKPiAtTU9EVUxFX0FVVEhPUigiQ2hyaXMgWmhvbmcgPHp5d0Byb2NrLWNoaXBzLmNv bT4iKTsKPiAtTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwo+IC1NT0RVTEVfQUxJQVMoInBsYXRmb3Jt OiIgRFJJVkVSX05BTUUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAv ZHdfaGRtaS1yb2NrY2hpcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9j a2NoaXAuYwo+IGluZGV4IGE2ZDRhMDIuLjk3NmVhNzkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9ja2NoaXAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2Ry bS9yb2NrY2hpcC9kd19oZG1pLXJvY2tjaGlwLmMKPiBAQCAtMzI2LDcgKzMyNiw3IEBAIHN0YXRp YyBpbnQgZHdfaGRtaV9yb2NrY2hpcF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZl ciBkd19oZG1pX3JvY2tjaGlwX3BsdGZtX2RyaXZlciA9IHsKPiArc3RydWN0IHBsYXRmb3JtX2Ry aXZlciBkd19oZG1pX3JvY2tjaGlwX3BsdGZtX2RyaXZlciA9IHsKPiAgCS5wcm9iZSAgPSBkd19o ZG1pX3JvY2tjaGlwX3Byb2JlLAo+ICAJLnJlbW92ZSA9IGR3X2hkbWlfcm9ja2NoaXBfcmVtb3Zl LAo+ICAJLmRyaXZlciA9IHsKPiBAQCAtMzM0LDExICszMzQsMyBAQCBzdGF0aWMgc3RydWN0IHBs YXRmb3JtX2RyaXZlciBkd19oZG1pX3JvY2tjaGlwX3BsdGZtX2RyaXZlciA9IHsKPiAgCQkub2Zf bWF0Y2hfdGFibGUgPSBkd19oZG1pX3JvY2tjaGlwX2R0X2lkcywKPiAgCX0sCj4gIH07Cj4gLQo+ IC1tb2R1bGVfcGxhdGZvcm1fZHJpdmVyKGR3X2hkbWlfcm9ja2NoaXBfcGx0Zm1fZHJpdmVyKTsK PiAtCj4gLU1PRFVMRV9BVVRIT1IoIkFuZHkgWWFuIDxhbmR5LnlhbkByb2NrLWNoaXBzLmNvbT4i KTsKPiAtTU9EVUxFX0FVVEhPUigiWWFraXIgWWFuZyA8eWtrQHJvY2stY2hpcHMuY29tPiIpOwo+ IC1NT0RVTEVfREVTQ1JJUFRJT04oIlJvY2tjaGlwIFNwZWNpZmljIERXLUhETUkgRHJpdmVyIEV4 dGVuc2lvbiIpOwo+IC1NT0RVTEVfTElDRU5TRSgiR1BMIik7Cj4gLU1PRFVMRV9BTElBUygicGxh dGZvcm06ZHdoZG1pLXJvY2tjaGlwIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9y b2NrY2hpcC9pbm5vX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWku Ywo+IGluZGV4IDAwNjI2MGQuLjdkOWI3NWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL2lubm9faGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2lu bm9faGRtaS5jCj4gQEAgLTkyMyw3ICs5MjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2Rl dmljZV9pZCBpbm5vX2hkbWlfZHRfaWRzW10gPSB7Cj4gIH07Cj4gIE1PRFVMRV9ERVZJQ0VfVEFC TEUob2YsIGlubm9faGRtaV9kdF9pZHMpOwo+ICAKPiAtc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9k cml2ZXIgaW5ub19oZG1pX2RyaXZlciA9IHsKPiArc3RydWN0IHBsYXRmb3JtX2RyaXZlciBpbm5v X2hkbWlfZHJpdmVyID0gewo+ICAJLnByb2JlICA9IGlubm9faGRtaV9wcm9iZSwKPiAgCS5yZW1v dmUgPSBpbm5vX2hkbWlfcmVtb3ZlLAo+ICAJLmRyaXZlciA9IHsKPiBAQCAtOTMxLDExICs5MzEs MyBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBpbm5vX2hkbWlfZHJpdmVyID0gewo+ ICAJCS5vZl9tYXRjaF90YWJsZSA9IGlubm9faGRtaV9kdF9pZHMsCj4gIAl9LAo+ICB9Owo+IC0K PiAtbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihpbm5vX2hkbWlfZHJpdmVyKTsKPiAtCj4gLU1PRFVM RV9BVVRIT1IoIlpoZW5nIFlhbmcgPHpoZW5neWFuZ0Byb2NrLWNoaXBzLmNvbT4iKTsKPiAtTU9E VUxFX0FVVEhPUigiWWFraXIgWWFuZyA8eWtrQHJvY2stY2hpcHMuY29tPiIpOwo+IC1NT0RVTEVf REVTQ1JJUFRJT04oIlJvY2tjaGlwIFNwZWNpZmljIElOTk8tSERNSSBEcml2ZXIiKTsKPiAtTU9E VUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwo+IC1NT0RVTEVfQUxJQVMoInBsYXRmb3JtOmlubm9oZG1p LXJvY2tjaGlwIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2Nr Y2hpcF9kcm1fZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Ry di5jCj4gaW5kZXggYjM2MGU2Mi4uOWNiMjk1YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuYwo+IEBAIC0zNTYsMzQgKzM1Niw0NCBAQCBzdGF0aWMg Y29uc3Qgc3RydWN0IGRldl9wbV9vcHMgcm9ja2NoaXBfZHJtX3BtX29wcyA9IHsKPiAgCQkJCXJv Y2tjaGlwX2RybV9zeXNfcmVzdW1lKQo+ICB9Owo+ICAKPiAtc3RhdGljIGludCBjb21wYXJlX29m KHN0cnVjdCBkZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKPiAtewo+IC0Jc3RydWN0IGRldmljZV9u b2RlICpucCA9IGRhdGE7Cj4gKyNkZWZpbmUgRFJWX1BUUihkcnYsIGNvbmQpIChJU19FTkFCTEVE KGNvbmQpID8gJmRydiA6IE5VTEwpCj4gKwo+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZl ciAqcm9ja2NoaXBfZHJtX2NvbXBfZHJ2c1tdID0gewo+ICsJJnZvcF9wbGF0Zm9ybV9kcml2ZXIs Cj4gKwlEUlZfUFRSKHJvY2tjaGlwX2RwX2RyaXZlciwgQ09ORklHX1JPQ0tDSElQX0FOQUxPR0lY X0RQKSwKPiArCURSVl9QVFIoY2RuX2RwX2RyaXZlciwgQ09ORklHX1JPQ0tDSElQX0NETl9EUCks Cj4gKwlEUlZfUFRSKGR3X2hkbWlfcm9ja2NoaXBfcGx0Zm1fZHJpdmVyLCBDT05GSUdfUk9DS0NI SVBfRFdfSERNSSksCj4gKwlEUlZfUFRSKGR3X21pcGlfZHNpX2RyaXZlciwgQ09ORklHX1JPQ0tD SElQX0RXX01JUElfRFNJKSwKPiArCURSVl9QVFIoaW5ub19oZG1pX2RyaXZlciwgQ09ORklHX1JP Q0tDSElQX0lOTk9fSERNSSksCj4gK307Cj4gIAo+IC0JcmV0dXJuIGRldi0+b2Zfbm9kZSA9PSBu cDsKPiArc3RhdGljIGludCBjb21wYXJlX2RldihzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEpCj4gK3sKPiArCXJldHVybiBkZXYgPT0gKHN0cnVjdCBkZXZpY2UgKilkYXRhOwo+ICB9Cj4g IAo+IC1zdGF0aWMgdm9pZCByb2NrY2hpcF9hZGRfZW5kcG9pbnRzKHN0cnVjdCBkZXZpY2UgKmRl diwKPiAtCQkJCSAgIHN0cnVjdCBjb21wb25lbnRfbWF0Y2ggKiptYXRjaCwKPiAtCQkJCSAgIHN0 cnVjdCBkZXZpY2Vfbm9kZSAqcG9ydCkKPiArc3RhdGljIHN0cnVjdCBjb21wb25lbnRfbWF0Y2gg KnJvY2tjaGlwX2RybV9tYXRjaF9hZGQoc3RydWN0IGRldmljZSAqZGV2KQo+ICB7Cj4gLQlzdHJ1 Y3QgZGV2aWNlX25vZGUgKmVwLCAqcmVtb3RlOwo+ICsJc3RydWN0IGNvbXBvbmVudF9tYXRjaCAq bWF0Y2ggPSBOVUxMOwo+ICsJaW50IGk7Cj4gIAo+IC0JZm9yX2VhY2hfY2hpbGRfb2Zfbm9kZShw b3J0LCBlcCkgewo+IC0JCXJlbW90ZSA9IG9mX2dyYXBoX2dldF9yZW1vdGVfcG9ydF9wYXJlbnQo ZXApOwo+IC0JCWlmICghcmVtb3RlIHx8ICFvZl9kZXZpY2VfaXNfYXZhaWxhYmxlKHJlbW90ZSkp IHsKPiAtCQkJb2Zfbm9kZV9wdXQocmVtb3RlKTsKPiAtCQkJY29udGludWU7Cj4gLQkJfSBlbHNl IGlmICghb2ZfZGV2aWNlX2lzX2F2YWlsYWJsZShyZW1vdGUtPnBhcmVudCkpIHsKPiAtCQkJZGV2 X3dhcm4oZGV2LCAicGFyZW50IGRldmljZSBvZiAlcyBpcyBub3QgYXZhaWxhYmxlXG4iLAo+IC0J CQkJIHJlbW90ZS0+ZnVsbF9uYW1lKTsKPiAtCQkJb2Zfbm9kZV9wdXQocmVtb3RlKTsKPiAtCQkJ Y29udGludWU7Cj4gLQkJfQo+ICsJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocm9ja2NoaXBf ZHJtX2NvbXBfZHJ2cyk7IGkrKykgewo+ICsJCXN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgKmRydiA9 IHJvY2tjaGlwX2RybV9jb21wX2RydnNbaV07Cj4gKwkJc3RydWN0IGRldmljZSAqcCA9IE5VTEws ICpkOwo+ICsKPiArCQlkbyB7Cj4gKwkJCWQgPSBidXNfZmluZF9kZXZpY2UoJnBsYXRmb3JtX2J1 c190eXBlLCBwLCAmZHJ2LT5kcml2ZXIsCj4gKwkJCQkJICAgICh2b2lkICopcGxhdGZvcm1fYnVz X3R5cGUubWF0Y2gpOwo+ICsJCQlwdXRfZGV2aWNlKHApOwo+ICsJCQlwID0gZDsKPiAgCj4gLQkJ ZHJtX29mX2NvbXBvbmVudF9tYXRjaF9hZGQoZGV2LCBtYXRjaCwgY29tcGFyZV9vZiwgcmVtb3Rl KTsKPiAtCQlvZl9ub2RlX3B1dChyZW1vdGUpOwo+ICsJCQlpZiAoIWQpCj4gKwkJCQlicmVhazsK PiArCQkJY29tcG9uZW50X21hdGNoX2FkZChkZXYsICZtYXRjaCwgY29tcGFyZV9kZXYsIGQpOwo+ ICsJCX0gd2hpbGUgKHRydWUpOwo+ICAJfQo+ICsKPiArCXJldHVybiBtYXRjaCA/OiBFUlJfUFRS KC1FTk9ERVYpOwo+ICB9Cj4gIAo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbXBvbmVudF9tYXN0 ZXJfb3BzIHJvY2tjaGlwX2RybV9vcHMgPSB7Cj4gQEAgLTM5MSwyMSArNDAxLDE2IEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3QgY29tcG9uZW50X21hc3Rlcl9vcHMgcm9ja2NoaXBfZHJtX29wcyA9IHsK PiAgCS51bmJpbmQgPSByb2NrY2hpcF9kcm1fdW5iaW5kLAo+ICB9Owo+ICAKPiAtc3RhdGljIGlu dCByb2NrY2hpcF9kcm1fcGxhdGZvcm1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKPiArc3RhdGljIGludCByb2NrY2hpcF9kcm1fcGxhdGZvcm1fb2ZfcHJvYmUoc3RydWN0IGRl dmljZSAqZGV2KQo+ICB7Cj4gLQlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+IC0J c3RydWN0IGNvbXBvbmVudF9tYXRjaCAqbWF0Y2ggPSBOVUxMOwo+ICAJc3RydWN0IGRldmljZV9u b2RlICpucCA9IGRldi0+b2Zfbm9kZTsKPiAgCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcG9ydDsKPiAr CWJvb2wgZm91bmQgPSBmYWxzZTsKPiAgCWludCBpOwo+ICAKPiAgCWlmICghbnApCj4gIAkJcmV0 dXJuIC1FTk9ERVY7Cj4gLQkvKgo+IC0JICogQmluZCB0aGUgY3J0YyBwb3J0cyBmaXJzdCwgc28g dGhhdAo+IC0JICogZHJtX29mX2ZpbmRfcG9zc2libGVfY3J0Y3MgY2FsbGVkIGZyb20gZW5jb2Rl ciAuYmluZCBjYWxsYmFja3MKPiAtCSAqIHdvcmtzIGFzIGV4cGVjdGVkLgo+IC0JICovCj4gKwo+ ICAJZm9yIChpID0gMDs7IGkrKykgewo+ICAJCXN0cnVjdCBkZXZpY2Vfbm9kZSAqaW9tbXU7Cj4g IAo+IEBAIC00MjksOSArNDM0LDkgQEAgc3RhdGljIGludCByb2NrY2hpcF9kcm1fcGxhdGZvcm1f cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCQkJaXNfc3VwcG9ydF9pb21t dSA9IGZhbHNlOwo+ICAJCX0KPiAgCj4gKwkJZm91bmQgPSB0cnVlOwo+ICsKPiAgCQlvZl9ub2Rl X3B1dChpb21tdSk7Cj4gLQkJZHJtX29mX2NvbXBvbmVudF9tYXRjaF9hZGQoZGV2LCAmbWF0Y2gs IGNvbXBhcmVfb2YsCj4gLQkJCQkJICAgcG9ydC0+cGFyZW50KTsKPiAgCQlvZl9ub2RlX3B1dChw b3J0KTsKPiAgCX0KPiAgCj4gQEAgLTQ0MCwyNyArNDQ1LDI3IEBAIHN0YXRpYyBpbnQgcm9ja2No aXBfZHJtX3BsYXRmb3JtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAkJ cmV0dXJuIC1FTk9ERVY7Cj4gIAl9Cj4gIAo+IC0JaWYgKCFtYXRjaCkgewo+ICsJaWYgKCFmb3Vu ZCkgewo+ICAJCWRldl9lcnIoZGV2LCAiTm8gYXZhaWxhYmxlIHZvcCBmb3VuZCBmb3IgZGlzcGxh eS1zdWJzeXN0ZW0uXG4iKTsKPiAgCQlyZXR1cm4gLUVOT0RFVjsKPiAgCX0KPiAtCS8qCj4gLQkg KiBGb3IgZWFjaCBib3VuZCBjcnRjLCBiaW5kIHRoZSBlbmNvZGVycyBhdHRhY2hlZCB0byBpdHMK PiAtCSAqIHJlbW90ZSBlbmRwb2ludC4KPiAtCSAqLwo+IC0JZm9yIChpID0gMDs7IGkrKykgewo+ IC0JCXBvcnQgPSBvZl9wYXJzZV9waGFuZGxlKG5wLCAicG9ydHMiLCBpKTsKPiAtCQlpZiAoIXBv cnQpCj4gLQkJCWJyZWFrOwo+ICAKPiAtCQlpZiAoIW9mX2RldmljZV9pc19hdmFpbGFibGUocG9y dC0+cGFyZW50KSkgewo+IC0JCQlvZl9ub2RlX3B1dChwb3J0KTsKPiAtCQkJY29udGludWU7Cj4g LQkJfQo+ICsJcmV0dXJuIDA7Cj4gK30KPiAgCj4gLQkJcm9ja2NoaXBfYWRkX2VuZHBvaW50cyhk ZXYsICZtYXRjaCwgcG9ydCk7Cj4gLQkJb2Zfbm9kZV9wdXQocG9ydCk7Cj4gLQl9Cj4gK3N0YXRp YyBpbnQgcm9ja2NoaXBfZHJtX3BsYXRmb3JtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCj4gK3sKPiArCXN0cnVjdCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gKwlzdHJ1 Y3QgY29tcG9uZW50X21hdGNoICptYXRjaCA9IE5VTEw7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXJl dCA9IHJvY2tjaGlwX2RybV9wbGF0Zm9ybV9vZl9wcm9iZShkZXYpOwo+ICsJaWYgKHJldCkKPiAr CQlyZXR1cm4gcmV0Owo+ICsKPiArCW1hdGNoID0gcm9ja2NoaXBfZHJtX21hdGNoX2FkZChkZXYp Owo+ICsJaWYgKElTX0VSUihtYXRjaCkpCj4gKwkJcmV0dXJuIFBUUl9FUlIobWF0Y2gpOwo+ICAK PiAgCXJldHVybiBjb21wb25lbnRfbWFzdGVyX2FkZF93aXRoX21hdGNoKGRldiwgJnJvY2tjaGlw X2RybV9vcHMsIG1hdGNoKTsKPiAgfQo+IEBAIC00ODgsNyArNDkzLDYwIEBAIHN0YXRpYyBzdHJ1 Y3QgcGxhdGZvcm1fZHJpdmVyIHJvY2tjaGlwX2RybV9wbGF0Zm9ybV9kcml2ZXIgPSB7Cj4gIAl9 LAo+ICB9Owo+ICAKPiAtbW9kdWxlX3BsYXRmb3JtX2RyaXZlcihyb2NrY2hpcF9kcm1fcGxhdGZv cm1fZHJpdmVyKTsKPiArc3RhdGljIHZvaWQgcm9ja2NoaXBfZHJtX3VucmVnaXN0ZXJfZHJpdmVy cyh2b2lkKQo+ICt7Cj4gKwlpbnQgaTsKPiArCj4gKwlmb3IgKGkgPSBBUlJBWV9TSVpFKHJvY2tj aGlwX2RybV9jb21wX2RydnMpIC0gMTsgaSA+PSAwOyBpLS0pCj4gKwkJcGxhdGZvcm1fZHJpdmVy X3VucmVnaXN0ZXIocm9ja2NoaXBfZHJtX2NvbXBfZHJ2c1tpXSk7Cj4gK30KPiArCj4gK3N0YXRp YyBpbnQgcm9ja2NoaXBfZHJtX3JlZ2lzdGVyX2RyaXZlcnModm9pZCkKPiArewo+ICsJaW50IGks IHJldDsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRShyb2NrY2hpcF9kcm1fY29t cF9kcnZzKTsgaSsrKSB7Cj4gKwkJcmV0ID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKHJvY2tj aGlwX2RybV9jb21wX2RydnNbaV0pOwo+ICsJCWlmIChyZXQpCj4gKwkJCWdvdG8gZXJyX3VucmVn Owo+ICsJfQo+ICsKPiArCXJldHVybiAwOwo+ICsKPiArZXJyX3VucmVnOgo+ICsJd2hpbGUgKGkt LSA+IDApCj4gKwkJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIocm9ja2NoaXBfZHJtX2NvbXBf ZHJ2c1tpXSk7Cj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IF9faW5pdCBy b2NrY2hpcF9kcm1faW5pdCh2b2lkKQo+ICt7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXJldCA9IHJv Y2tjaGlwX2RybV9yZWdpc3Rlcl9kcml2ZXJzKCk7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiBy ZXQ7Cj4gKwo+ICsJcmV0ID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKCZyb2NrY2hpcF9kcm1f cGxhdGZvcm1fZHJpdmVyKTsKPiArCWlmIChyZXQpCj4gKwkJZ290byBlcnJfdW5yZWdfZHJpdmVy czsKPiArCj4gKwlyZXR1cm4gMDsKPiArCj4gK2Vycl91bnJlZ19kcml2ZXJzOgo+ICsJcm9ja2No aXBfZHJtX3VucmVnaXN0ZXJfZHJpdmVycygpOwo+ICsJcmV0dXJuIHJldDsKPiArfQo+ICsKPiAr c3RhdGljIHZvaWQgX19leGl0IHJvY2tjaGlwX2RybV9maW5pKHZvaWQpCj4gK3sKPiArCXBsYXRm b3JtX2RyaXZlcl91bnJlZ2lzdGVyKCZyb2NrY2hpcF9kcm1fcGxhdGZvcm1fZHJpdmVyKTsKPiAr Cj4gKwlyb2NrY2hpcF9kcm1fdW5yZWdpc3Rlcl9kcml2ZXJzKCk7Cj4gK30KPiArCj4gK21vZHVs ZV9pbml0KHJvY2tjaGlwX2RybV9pbml0KTsKPiArbW9kdWxlX2V4aXQocm9ja2NoaXBfZHJtX2Zp bmkpOwo+ICAKPiAgTU9EVUxFX0FVVEhPUigiTWFyayBZYW8gPG1hcmsueWFvQHJvY2stY2hpcHMu Y29tPiIpOwo+ICBNT0RVTEVfREVTQ1JJUFRJT04oIlJPQ0tDSElQIERSTSBEcml2ZXIiKTsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuaCBi L2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmgKPiBpbmRleCBhZGMz OTMwLi5mNDZlMWQwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2Nr Y2hpcF9kcm1fZHJ2LmgKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBf ZHJtX2Rydi5oCj4gQEAgLTc5LDQgKzc5LDEwIEBAIHZvaWQgcm9ja2NoaXBfZHJtX2RtYV9kZXRh Y2hfZGV2aWNlKHN0cnVjdCBkcm1fZGV2aWNlICpkcm1fZGV2LAo+ICBpbnQgcm9ja2NoaXBfZHJt X3dhaXRfbGluZV9mbGFnKHN0cnVjdCBkcm1fY3J0YyAqY3J0YywgdW5zaWduZWQgaW50IGxpbmVf bnVtLAo+ICAJCQkJdW5zaWduZWQgaW50IG1zdGltZW91dCk7Cj4gIAo+ICtleHRlcm4gc3RydWN0 IHBsYXRmb3JtX2RyaXZlciBjZG5fZHBfZHJpdmVyOwo+ICtleHRlcm4gc3RydWN0IHBsYXRmb3Jt X2RyaXZlciBkd19oZG1pX3JvY2tjaGlwX3BsdGZtX2RyaXZlcjsKPiArZXh0ZXJuIHN0cnVjdCBw bGF0Zm9ybV9kcml2ZXIgZHdfbWlwaV9kc2lfZHJpdmVyOwo+ICtleHRlcm4gc3RydWN0IHBsYXRm b3JtX2RyaXZlciBpbm5vX2hkbWlfZHJpdmVyOwo+ICtleHRlcm4gc3RydWN0IHBsYXRmb3JtX2Ry aXZlciByb2NrY2hpcF9kcF9kcml2ZXI7Cj4gK2V4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVy IHZvcF9wbGF0Zm9ybV9kcml2ZXI7Cj4gICNlbmRpZiAvKiBfUk9DS0NISVBfRFJNX0RSVl9IXyAq Lwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3Jl Zy5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX3ZvcF9yZWcuYwo+IGluZGV4 IDkxZmJjN2IuLjBkYTQ0NDQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX3ZvcF9yZWcuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2Nr Y2hpcF92b3BfcmVnLmMKPiBAQCAtNDA0LDcgKzQwNCw3IEBAIHN0YXRpYyBpbnQgdm9wX3JlbW92 ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiAgCj4g LXN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHZvcF9wbGF0Zm9ybV9kcml2ZXIgPSB7Cj4g K3N0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdm9wX3BsYXRmb3JtX2RyaXZlciA9IHsKPiAgCS5wcm9i ZSA9IHZvcF9wcm9iZSwKPiAgCS5yZW1vdmUgPSB2b3BfcmVtb3ZlLAo+ICAJLmRyaXZlciA9IHsK PiBAQCAtNDEyLDkgKzQxMiwzIEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHZvcF9w bGF0Zm9ybV9kcml2ZXIgPSB7Cj4gIAkJLm9mX21hdGNoX3RhYmxlID0gb2ZfbWF0Y2hfcHRyKHZv cF9kcml2ZXJfZHRfbWF0Y2gpLAo+ICAJfSwKPiAgfTsKPiAtCj4gLW1vZHVsZV9wbGF0Zm9ybV9k cml2ZXIodm9wX3BsYXRmb3JtX2RyaXZlcik7Cj4gLQo+IC1NT0RVTEVfQVVUSE9SKCJNYXJrIFlh byA8bWFyay55YW9Acm9jay1jaGlwcy5jb20+Iik7Cj4gLU1PRFVMRV9ERVNDUklQVElPTigiUk9D S0NISVAgVk9QIERyaXZlciIpOwo+IC1NT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7Cj4gLS0gCj4g Mi4xLjQKPiAKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K ZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0 dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==