From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH] drm/rockchip: Refactor the component match logic. Date: Mon, 13 Mar 2017 17:06:22 -0400 Message-ID: <20170313210621.GY20329@art_vandelay> References: <1488952694-30020-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: <1488952694-30020-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-kernel@vger.kernel.org, Brian Norris , Douglas Anderson , dri-devel@lists.freedesktop.org, Tomasz Figa , linux-rockchip@lists.infradead.org, Guenter Roeck , linux-arm-kernel@lists.infradead.org List-Id: linux-rockchip.vger.kernel.org T24gV2VkLCBNYXIgMDgsIDIwMTcgYXQgMDE6NTg6MTRQTSArMDgwMCwgSmVmZnkgQ2hlbiB3cm90 ZToKPiBDdXJyZW50bHkgd2UgYXJlIGFkZGluZyBhbGwgY29tcG9uZW50cyBmcm9tIHRoZSBkdHMs IGlmIG9uZSBvZiB0aGVpcgo+IGRyaXZlcnMgYmVlbiBkaXNhYmxlZCwgd2Ugd291bGQgbm90IGJl IGFibGUgdG8gYnJpbmcgdXAgb3RoZXJzLgo+IAo+IFJlZmFjdG9yIGNvbXBvbmVudCBtYXRjaCBs b2dpYywgZm9sbG93IGV4eW5vcyBkcm0uCj4gCj4gU2lnbmVkLW9mZi1ieTogSmVmZnkgQ2hlbiA8 amVmZnkuY2hlbkByb2NrLWNoaXBzLmNvbT4KPiAKPiAtLS0KPiAKPiAgZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL0tjb25maWcgICAgICAgICAgICAgICAgfCAgMTAgKy0KPiAgZHJpdmVycy9ncHUv ZHJtL3JvY2tjaGlwL01ha2VmaWxlICAgICAgICAgICAgICAgfCAgMTYgKy0tCj4gIGRyaXZlcnMv Z3B1L2RybS9yb2NrY2hpcC9hbmFsb2dpeF9kcC1yb2NrY2hpcC5jIHwgICA5ICstCj4gIGRyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9jZG4tZHAtY29yZS5jICAgICAgICAgIHwgICA4ICstCj4gIGRy aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jICAgICAgICAgIHwgICA4ICstCj4g IGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kd19oZG1pLXJvY2tjaGlwLmMgICAgIHwgIDEwICst Cj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuYyAgICAgICAgICAgIHwgIDEw ICstCj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmMgICAgIHwg MTU2ICsrKysrKysrKysrKysrKystLS0tLS0tLQo+ICBkcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAv cm9ja2NoaXBfZHJtX2Rydi5oICAgICB8ICAgNiArCj4gIGRyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9yb2NrY2hpcF92b3BfcmVnLmMgICAgIHwgICA4ICstCj4gIDEwIGZpbGVzIGNoYW5nZWQsIDEz MyBpbnNlcnRpb25zKCspLCAxMDggZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9yb2NrY2hpcC9LY29uZmlnIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL0tj b25maWcKPiBpbmRleCAwZTRlYjg0Li41MGM0MWMwIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9yb2NrY2hpcC9LY29uZmlnCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL0tj b25maWcKPiBAQCAtMTMsNyArMTMsNyBAQCBjb25maWcgRFJNX1JPQ0tDSElQCj4gIAkgIElQIGZv dW5kIG9uIHRoZSBTb0MuCj4gIAo+ICBjb25maWcgUk9DS0NISVBfQU5BTE9HSVhfRFAKPiAtCXRy aXN0YXRlICJSb2NrY2hpcCBzcGVjaWZpYyBleHRlbnNpb25zIGZvciBBbmFsb2dpeCBEUCBkcml2 ZXIiCj4gKwlib29sICJSb2NrY2hpcCBzcGVjaWZpYyBleHRlbnNpb25zIGZvciBBbmFsb2dpeCBE UCBkcml2ZXIiCj4gIAlkZXBlbmRzIG9uIERSTV9ST0NLQ0hJUAo+ICAJc2VsZWN0IERSTV9BTkFM T0dJWF9EUAo+ICAJaGVscAo+IEBAIC0yMiw3ICsyMiw3IEBAIGNvbmZpZyBST0NLQ0hJUF9BTkFM T0dJWF9EUAo+ICAJICBvbiBSSzMyODggYmFzZWQgU29DLCB5b3Ugc2hvdWxkIHNlbGV0IHRoaXMg b3B0aW9uLgo+ICAKPiAgY29uZmlnIFJPQ0tDSElQX0NETl9EUAo+IC0gICAgICAgIHRyaXN0YXRl ICJSb2NrY2hpcCBjZG4gRFAiCj4gKyAgICAgICAgYm9vbCAiUm9ja2NoaXAgY2RuIERQIgo+ICAg ICAgICAgIGRlcGVuZHMgb24gRFJNX1JPQ0tDSElQCj4gIAlkZXBlbmRzIG9uIEVYVENPTgo+ICAJ c2VsZWN0IFNORF9TT0NfSERNSV9DT0RFQyBpZiBTTkRfU09DCj4gQEAgLTMzLDcgKzMzLDcgQEAg Y29uZmlnIFJPQ0tDSElQX0NETl9EUAo+ICAJICBvcHRpb24uCj4gIAo+ICBjb25maWcgUk9DS0NI SVBfRFdfSERNSQo+IC0gICAgICAgIHRyaXN0YXRlICJSb2NrY2hpcCBzcGVjaWZpYyBleHRlbnNp b25zIGZvciBTeW5vcHN5cyBEVyBIRE1JIgo+ICsgICAgICAgIGJvb2wgIlJvY2tjaGlwIHNwZWNp ZmljIGV4dGVuc2lvbnMgZm9yIFN5bm9wc3lzIERXIEhETUkiCj4gICAgICAgICAgZGVwZW5kcyBv biBEUk1fUk9DS0NISVAKPiAgICAgICAgICBzZWxlY3QgRFJNX0RXX0hETUkKPiAgICAgICAgICBo ZWxwCj4gQEAgLTQzLDcgKzQzLDcgQEAgY29uZmlnIFJPQ0tDSElQX0RXX0hETUkKPiAgCSAgb3B0 aW9uLgo+ICAKPiAgY29uZmlnIFJPQ0tDSElQX0RXX01JUElfRFNJCj4gLQl0cmlzdGF0ZSAiUm9j a2NoaXAgc3BlY2lmaWMgZXh0ZW5zaW9ucyBmb3IgU3lub3BzeXMgRFcgTUlQSSBEU0kiCj4gKwli b29sICJSb2NrY2hpcCBzcGVjaWZpYyBleHRlbnNpb25zIGZvciBTeW5vcHN5cyBEVyBNSVBJIERT SSIKPiAgCWRlcGVuZHMgb24gRFJNX1JPQ0tDSElQCj4gIAlzZWxlY3QgRFJNX01JUElfRFNJCj4g IAloZWxwCj4gQEAgLTUzLDcgKzUzLDcgQEAgY29uZmlnIFJPQ0tDSElQX0RXX01JUElfRFNJCj4g IAkgb3B0aW9uLgo+ICAKPiAgY29uZmlnIFJPQ0tDSElQX0lOTk9fSERNSQo+IC0JdHJpc3RhdGUg IlJvY2tjaGlwIHNwZWNpZmljIGV4dGVuc2lvbnMgZm9yIElubm9zaWxpY29uIEhETUkiCj4gKwli b29sICJSb2NrY2hpcCBzcGVjaWZpYyBleHRlbnNpb25zIGZvciBJbm5vc2lsaWNvbiBIRE1JIgo+ ICAJZGVwZW5kcyBvbiBEUk1fUk9DS0NISVAKPiAgCWhlbHAKPiAgCSAgVGhpcyBzZWxlY3RzIHN1 cHBvcnQgZm9yIFJvY2tjaGlwIFNvQyBzcGVjaWZpYyBleHRlbnNpb25zCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9NYWtlZmlsZSBiL2RyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9NYWtlZmlsZQo+IGluZGV4IGM5MzFlMmEuLmZhOGRjOWQgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL01ha2VmaWxlCj4gQEAgLTMsMTQgKzMsMTQgQEAKPiAgIyBEaXJlY3QgUmVuZGVyaW5n IEluZnJhc3RydWN0dXJlIChEUkkpIGluIFhGcmVlODYgNC4xLjAgYW5kIGhpZ2hlci4KPiAgCj4g IHJvY2tjaGlwZHJtLXkgOj0gcm9ja2NoaXBfZHJtX2Rydi5vIHJvY2tjaGlwX2RybV9mYi5vIFwK PiAtCQlyb2NrY2hpcF9kcm1fZ2VtLm8gcm9ja2NoaXBfZHJtX3Bzci5vIHJvY2tjaGlwX2RybV92 b3Aubwo+ICsJCXJvY2tjaGlwX2RybV9nZW0ubyByb2NrY2hpcF9kcm1fcHNyLm8gXAo+ICsJCXJv Y2tjaGlwX2RybV92b3AubyByb2NrY2hpcF92b3BfcmVnLm8KPiAgcm9ja2NoaXBkcm0tJChDT05G SUdfRFJNX0ZCREVWX0VNVUxBVElPTikgKz0gcm9ja2NoaXBfZHJtX2ZiZGV2Lm8KPiAgCj4gLW9i ai0kKENPTkZJR19ST0NLQ0hJUF9BTkFMT0dJWF9EUCkgKz0gYW5hbG9naXhfZHAtcm9ja2NoaXAu bwo+IC1vYmotJChDT05GSUdfUk9DS0NISVBfQ0ROX0RQKSArPSBjZG4tZHAubwo+IC1jZG4tZHAt b2JqcyA6PSBjZG4tZHAtY29yZS5vIGNkbi1kcC1yZWcubwo+IC1vYmotJChDT05GSUdfUk9DS0NI SVBfRFdfSERNSSkgKz0gZHdfaGRtaS1yb2NrY2hpcC5vCj4gLW9iai0kKENPTkZJR19ST0NLQ0hJ UF9EV19NSVBJX0RTSSkgKz0gZHctbWlwaS1kc2kubwo+IC1vYmotJChDT05GSUdfUk9DS0NISVBf SU5OT19IRE1JKSArPSBpbm5vX2hkbWkubwo+ICtyb2NrY2hpcGRybS0kKENPTkZJR19ST0NLQ0hJ UF9BTkFMT0dJWF9EUCkgKz0gYW5hbG9naXhfZHAtcm9ja2NoaXAubwo+ICtyb2NrY2hpcGRybS0k KENPTkZJR19ST0NLQ0hJUF9DRE5fRFApICs9IGNkbi1kcC1jb3JlLm8gY2RuLWRwLXJlZy5vCj4g K3JvY2tjaGlwZHJtLSQoQ09ORklHX1JPQ0tDSElQX0RXX0hETUkpICs9IGR3X2hkbWktcm9ja2No aXAubwo+ICtyb2NrY2hpcGRybS0kKENPTkZJR19ST0NLQ0hJUF9EV19NSVBJX0RTSSkgKz0gZHct bWlwaS1kc2kubwo+ICtyb2NrY2hpcGRybS0kKENPTkZJR19ST0NLQ0hJUF9JTk5PX0hETUkpICs9 IGlubm9faGRtaS5vCj4gIAo+IC1vYmotJChDT05GSUdfRFJNX1JPQ0tDSElQKSArPSByb2NrY2hp cGRybS5vIHJvY2tjaGlwX3ZvcF9yZWcubwo+ICtvYmotJChDT05GSUdfRFJNX1JPQ0tDSElQKSAr PSByb2NrY2hpcGRybS5vCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9h bmFsb2dpeF9kcC1yb2NrY2hpcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4 X2RwLXJvY2tjaGlwLmMKPiBpbmRleCA4NTQ4ZTgyLi45MWViZTVjIDEwMDY0NAo+IC0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9hbmFsb2dpeF9kcC1yb2NrY2hpcC5jCj4gKysrIGIvZHJp dmVycy9ncHUvZHJtL3JvY2tjaGlwL2FuYWxvZ2l4X2RwLXJvY2tjaGlwLmMKPiBAQCAtNTA3LDcg KzUwNyw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIHJvY2tjaGlwX2RwX2R0 X2lkc1tdID0gewo+ICB9Owo+ICBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCByb2NrY2hpcF9kcF9k dF9pZHMpOwo+ICAKPiAtc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcm9ja2NoaXBfZHBf ZHJpdmVyID0gewo+ICtzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHJvY2tjaGlwX2RwX2RyaXZlciA9 IHsKPiAgCS5wcm9iZSA9IHJvY2tjaGlwX2RwX3Byb2JlLAo+ICAJLnJlbW92ZSA9IHJvY2tjaGlw X2RwX3JlbW92ZSwKPiAgCS5kcml2ZXIgPSB7Cj4gQEAgLTUxNiwxMCArNTE2LDMgQEAgc3RhdGlj IHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcm9ja2NoaXBfZHBfZHJpdmVyID0gewo+ICAJCSAgIC5v Zl9tYXRjaF90YWJsZSA9IG9mX21hdGNoX3B0cihyb2NrY2hpcF9kcF9kdF9pZHMpLAo+ICAJfSwK PiAgfTsKPiAtCj4gLW1vZHVsZV9wbGF0Zm9ybV9kcml2ZXIocm9ja2NoaXBfZHBfZHJpdmVyKTsK PiAtCj4gLU1PRFVMRV9BVVRIT1IoIllha2lyIFlhbmcgPHlra0Byb2NrLWNoaXBzLmNvbT4iKTsK PiAtTU9EVUxFX0FVVEhPUigiSmVmZiBjaGVuIDxqZWZmLmNoZW5Acm9jay1jaGlwcy5jb20+Iik7 Cj4gLU1PRFVMRV9ERVNDUklQVElPTigiUm9ja2NoaXAgU3BlY2lmaWMgQW5hbG9naXgtRFAgRHJp dmVyIEV4dGVuc2lvbiIpOwo+IC1NT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9jZG4tZHAtY29yZS5jIGIvZHJpdmVycy9ncHUv ZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmMKPiBpbmRleCBmZDc5YTcwLi5lMTc5NmQwIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9jZG4tZHAtY29yZS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2Nkbi1kcC1jb3JlLmMKPiBAQCAtMTI0Myw3ICsxMjQz LDcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIGNkbl9kcF9wbV9vcHMgPSB7Cj4g IAkJCQljZG5fZHBfcmVzdW1lKQo+ICB9Owo+ICAKPiAtc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9k cml2ZXIgY2RuX2RwX2RyaXZlciA9IHsKPiArc3RydWN0IHBsYXRmb3JtX2RyaXZlciBjZG5fZHBf ZHJpdmVyID0gewo+ICAJLnByb2JlID0gY2RuX2RwX3Byb2JlLAo+ICAJLnJlbW92ZSA9IGNkbl9k cF9yZW1vdmUsCj4gIAkuc2h1dGRvd24gPSBjZG5fZHBfc2h1dGRvd24sCj4gQEAgLTEyNTQsOSAr MTI1NCwzIEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGNkbl9kcF9kcml2ZXIgPSB7 Cj4gIAkJICAgLnBtID0gJmNkbl9kcF9wbV9vcHMsCj4gIAl9LAo+ICB9Owo+IC0KPiAtbW9kdWxl X3BsYXRmb3JtX2RyaXZlcihjZG5fZHBfZHJpdmVyKTsKPiAtCj4gLU1PRFVMRV9BVVRIT1IoIkNo cmlzIFpob25nIDx6eXdAcm9jay1jaGlwcy5jb20+Iik7Cj4gLU1PRFVMRV9ERVNDUklQVElPTigi Y2RuIERQIERyaXZlciIpOwo+IC1NT0RVTEVfTElDRU5TRSgiR1BMIHYyIik7Cj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jIGIvZHJpdmVycy9ncHUv ZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMKPiBpbmRleCBkOWFhMzgyLi42NWE0NzRmIDEwMDY0 NAo+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9kdy1taXBpLWRzaS5jCj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3LW1pcGktZHNpLmMKPiBAQCAtMTE2NSw3ICsxMTY1 LDcgQEAgc3RhdGljIGludCBkd19taXBpX2RzaV9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgc3RydWN0IHBsYXRmb3Jt X2RyaXZlciBkd19taXBpX2RzaV9kcml2ZXIgPSB7Cj4gK3N0cnVjdCBwbGF0Zm9ybV9kcml2ZXIg ZHdfbWlwaV9kc2lfZHJpdmVyID0gewo+ICAJLnByb2JlCQk9IGR3X21pcGlfZHNpX3Byb2JlLAo+ ICAJLnJlbW92ZQkJPSBkd19taXBpX2RzaV9yZW1vdmUsCj4gIAkuZHJpdmVyCQk9IHsKPiBAQCAt MTE3Myw5ICsxMTczLDMgQEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgZHdfbWlwaV9k c2lfZHJpdmVyID0gewo+ICAJCS5uYW1lCT0gRFJJVkVSX05BTUUsCj4gIAl9LAo+ICB9Owo+IC1t b2R1bGVfcGxhdGZvcm1fZHJpdmVyKGR3X21pcGlfZHNpX2RyaXZlcik7Cj4gLQo+IC1NT0RVTEVf REVTQ1JJUFRJT04oIlJPQ0tDSElQIE1JUEkgRFNJIGhvc3QgY29udHJvbGxlciBkcml2ZXIiKTsK PiAtTU9EVUxFX0FVVEhPUigiQ2hyaXMgWmhvbmcgPHp5d0Byb2NrLWNoaXBzLmNvbT4iKTsKPiAt TU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwo+IC1NT0RVTEVfQUxJQVMoInBsYXRmb3JtOiIgRFJJVkVS X05BTUUpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvZHdfaGRtaS1y b2NrY2hpcC5jIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2R3X2hkbWktcm9ja2NoaXAuYwo+ IGluZGV4IGE2ZDRhMDIuLjk3NmVhNzkgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3Jv Y2tjaGlwL2R3X2hkbWktcm9ja2NoaXAuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hp cC9kd19oZG1pLXJvY2tjaGlwLmMKPiBAQCAtMzI2LDcgKzMyNiw3IEBAIHN0YXRpYyBpbnQgZHdf aGRtaV9yb2NrY2hpcF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiAgCXJl dHVybiAwOwo+ICB9Cj4gIAo+IC1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBkd19oZG1p X3JvY2tjaGlwX3BsdGZtX2RyaXZlciA9IHsKPiArc3RydWN0IHBsYXRmb3JtX2RyaXZlciBkd19o ZG1pX3JvY2tjaGlwX3BsdGZtX2RyaXZlciA9IHsKPiAgCS5wcm9iZSAgPSBkd19oZG1pX3JvY2tj aGlwX3Byb2JlLAo+ICAJLnJlbW92ZSA9IGR3X2hkbWlfcm9ja2NoaXBfcmVtb3ZlLAo+ICAJLmRy aXZlciA9IHsKPiBAQCAtMzM0LDExICszMzQsMyBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2Ry aXZlciBkd19oZG1pX3JvY2tjaGlwX3BsdGZtX2RyaXZlciA9IHsKPiAgCQkub2ZfbWF0Y2hfdGFi bGUgPSBkd19oZG1pX3JvY2tjaGlwX2R0X2lkcywKPiAgCX0sCj4gIH07Cj4gLQo+IC1tb2R1bGVf cGxhdGZvcm1fZHJpdmVyKGR3X2hkbWlfcm9ja2NoaXBfcGx0Zm1fZHJpdmVyKTsKPiAtCj4gLU1P RFVMRV9BVVRIT1IoIkFuZHkgWWFuIDxhbmR5LnlhbkByb2NrLWNoaXBzLmNvbT4iKTsKPiAtTU9E VUxFX0FVVEhPUigiWWFraXIgWWFuZyA8eWtrQHJvY2stY2hpcHMuY29tPiIpOwo+IC1NT0RVTEVf REVTQ1JJUFRJT04oIlJvY2tjaGlwIFNwZWNpZmljIERXLUhETUkgRHJpdmVyIEV4dGVuc2lvbiIp Owo+IC1NT0RVTEVfTElDRU5TRSgiR1BMIik7Cj4gLU1PRFVMRV9BTElBUygicGxhdGZvcm06ZHdo ZG1pLXJvY2tjaGlwIik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9p bm5vX2hkbWkuYyBiL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9pbm5vX2hkbWkuYwo+IGluZGV4 IDAwNjI2MGQuLjdkOWI3NWUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L2lubm9faGRtaS5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL2lubm9faGRtaS5j Cj4gQEAgLTkyMyw3ICs5MjMsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBp bm5vX2hkbWlfZHRfaWRzW10gPSB7Cj4gIH07Cj4gIE1PRFVMRV9ERVZJQ0VfVEFCTEUob2YsIGlu bm9faGRtaV9kdF9pZHMpOwo+ICAKPiAtc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgaW5u b19oZG1pX2RyaXZlciA9IHsKPiArc3RydWN0IHBsYXRmb3JtX2RyaXZlciBpbm5vX2hkbWlfZHJp dmVyID0gewo+ICAJLnByb2JlICA9IGlubm9faGRtaV9wcm9iZSwKPiAgCS5yZW1vdmUgPSBpbm5v X2hkbWlfcmVtb3ZlLAo+ICAJLmRyaXZlciA9IHsKPiBAQCAtOTMxLDExICs5MzEsMyBAQCBzdGF0 aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBpbm5vX2hkbWlfZHJpdmVyID0gewo+ICAJCS5vZl9t YXRjaF90YWJsZSA9IGlubm9faGRtaV9kdF9pZHMsCj4gIAl9LAo+ICB9Owo+IC0KPiAtbW9kdWxl X3BsYXRmb3JtX2RyaXZlcihpbm5vX2hkbWlfZHJpdmVyKTsKPiAtCj4gLU1PRFVMRV9BVVRIT1Io IlpoZW5nIFlhbmcgPHpoZW5neWFuZ0Byb2NrLWNoaXBzLmNvbT4iKTsKPiAtTU9EVUxFX0FVVEhP UigiWWFraXIgWWFuZyA8eWtrQHJvY2stY2hpcHMuY29tPiIpOwo+IC1NT0RVTEVfREVTQ1JJUFRJ T04oIlJvY2tjaGlwIFNwZWNpZmljIElOTk8tSERNSSBEcml2ZXIiKTsKPiAtTU9EVUxFX0xJQ0VO U0UoIkdQTCB2MiIpOwo+IC1NT0RVTEVfQUxJQVMoInBsYXRmb3JtOmlubm9oZG1pLXJvY2tjaGlw Iik7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF9kcm1f ZHJ2LmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfZHJtX2Rydi5jCj4gaW5k ZXggYjM2MGU2Mi4uYzBkYWUzYiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2No aXAvcm9ja2NoaXBfZHJtX2Rydi5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3Jv Y2tjaGlwX2RybV9kcnYuYwo+IEBAIC0zNTYsMzQgKzM1Niw0OSBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IGRldl9wbV9vcHMgcm9ja2NoaXBfZHJtX3BtX29wcyA9IHsKPiAgCQkJCXJvY2tjaGlwX2Ry bV9zeXNfcmVzdW1lKQo+ICB9Owo+ICAKPiAtc3RhdGljIGludCBjb21wYXJlX29mKHN0cnVjdCBk ZXZpY2UgKmRldiwgdm9pZCAqZGF0YSkKPiAtewo+IC0Jc3RydWN0IGRldmljZV9ub2RlICpucCA9 IGRhdGE7Cj4gK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyICpyb2NrY2hpcF9kcm1fY29t cF9kcnZzW10gPSB7Cj4gKwkmdm9wX3BsYXRmb3JtX2RyaXZlciwKPiArI2lmZGVmIENPTkZJR19S T0NLQ0hJUF9BTkFMT0dJWF9EUAo+ICsJJnJvY2tjaGlwX2RwX2RyaXZlciwKPiArI2VuZGlmCj4g KyNpZmRlZiBDT05GSUdfUk9DS0NISVBfQ0ROX0RQCj4gKwkmY2RuX2RwX2RyaXZlciwKPiArI2Vu ZGlmCj4gKyNpZmRlZiBDT05GSUdfUk9DS0NISVBfRFdfSERNSQo+ICsJJmR3X2hkbWlfcm9ja2No aXBfcGx0Zm1fZHJpdmVyLAo+ICsjZW5kaWYKPiArI2lmZGVmIENPTkZJR19ST0NLQ0hJUF9EV19N SVBJX0RTSQo+ICsJJmR3X21pcGlfZHNpX2RyaXZlciwKPiArI2VuZGlmCj4gKyNpZmRlZiBDT05G SUdfUk9DS0NISVBfSU5OT19IRE1JCj4gKwkmaW5ub19oZG1pX2RyaXZlciwKPiArI2VuZGlmCj4g K307Cj4gIAo+IC0JcmV0dXJuIGRldi0+b2Zfbm9kZSA9PSBucDsKPiArc3RhdGljIGludCBjb21w YXJlX2RldihzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmRhdGEpCj4gK3sKPiArCXJldHVybiBk ZXYgPT0gKHN0cnVjdCBkZXZpY2UgKilkYXRhOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCByb2Nr Y2hpcF9hZGRfZW5kcG9pbnRzKHN0cnVjdCBkZXZpY2UgKmRldiwKPiAtCQkJCSAgIHN0cnVjdCBj b21wb25lbnRfbWF0Y2ggKiptYXRjaCwKPiAtCQkJCSAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqcG9y dCkKPiArc3RhdGljIHN0cnVjdCBjb21wb25lbnRfbWF0Y2ggKnJvY2tjaGlwX2RybV9tYXRjaF9h ZGQoc3RydWN0IGRldmljZSAqZGV2KQo+ICB7Cj4gLQlzdHJ1Y3QgZGV2aWNlX25vZGUgKmVwLCAq cmVtb3RlOwo+ICsJc3RydWN0IGNvbXBvbmVudF9tYXRjaCAqbWF0Y2ggPSBOVUxMOwo+ICsJaW50 IGk7Cj4gIAo+IC0JZm9yX2VhY2hfY2hpbGRfb2Zfbm9kZShwb3J0LCBlcCkgewo+IC0JCXJlbW90 ZSA9IG9mX2dyYXBoX2dldF9yZW1vdGVfcG9ydF9wYXJlbnQoZXApOwo+IC0JCWlmICghcmVtb3Rl IHx8ICFvZl9kZXZpY2VfaXNfYXZhaWxhYmxlKHJlbW90ZSkpIHsKPiAtCQkJb2Zfbm9kZV9wdXQo cmVtb3RlKTsKPiAtCQkJY29udGludWU7Cj4gLQkJfSBlbHNlIGlmICghb2ZfZGV2aWNlX2lzX2F2 YWlsYWJsZShyZW1vdGUtPnBhcmVudCkpIHsKPiAtCQkJZGV2X3dhcm4oZGV2LCAicGFyZW50IGRl dmljZSBvZiAlcyBpcyBub3QgYXZhaWxhYmxlXG4iLAo+IC0JCQkJIHJlbW90ZS0+ZnVsbF9uYW1l KTsKPiAtCQkJb2Zfbm9kZV9wdXQocmVtb3RlKTsKPiAtCQkJY29udGludWU7Cj4gLQkJfQo+ICsJ Zm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUocm9ja2NoaXBfZHJtX2NvbXBfZHJ2cyk7IGkrKykg ewo+ICsJCXN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgKmRydiA9IHJvY2tjaGlwX2RybV9jb21wX2Ry dnNbaV07Cj4gKwkJc3RydWN0IGRldmljZSAqcCA9IE5VTEwsICpkOwo+ICAKPiAtCQlkcm1fb2Zf Y29tcG9uZW50X21hdGNoX2FkZChkZXYsIG1hdGNoLCBjb21wYXJlX29mLCByZW1vdGUpOwo+IC0J CW9mX25vZGVfcHV0KHJlbW90ZSk7Cj4gKwkJd2hpbGUgKChkID0gYnVzX2ZpbmRfZGV2aWNlKCZw bGF0Zm9ybV9idXNfdHlwZSwgcCwgJmRydi0+ZHJpdmVyLAo+ICsJCQkJCSAgICAodm9pZCAqKXBs YXRmb3JtX2J1c190eXBlLm1hdGNoKSkpIHsKPiArCQkJcHV0X2RldmljZShwKTsKPiArCQkJY29t cG9uZW50X21hdGNoX2FkZChkZXYsICZtYXRjaCwgY29tcGFyZV9kZXYsIGQpOwo+ICsJCQlwID0g ZDsKPiArCQl9Cj4gKwkJcHV0X2RldmljZShwKTsKCkkgdGhpbmsgeW91IGNvdWxkIG1vdmUgdGhl IGJ1c19maW5kX2RldmljZSgpIGluc2lkZSB0aGUgbG9vcCBhbmQganVzdCBoYXZlCnB1dF9kZXZp Y2UgaW4gb25lIHBsYWNlLiBJIHNwZW50IG1vcmUgdGltZSB0aGFuIEkgd291bGQgaGF2ZSBsaWtl ZCB0cnlpbmcgdG8KcmF0aW9uYWxpemUgd2h5IHRoZXJlIHdhcyBhbiBleHRyYSBwdXQuCgo+ICAJ fQo+ICsKPiArCXJldHVybiBtYXRjaCA/OiBFUlJfUFRSKC1FTk9ERVYpOwo+ICB9Cj4gIAo+ICBz dGF0aWMgY29uc3Qgc3RydWN0IGNvbXBvbmVudF9tYXN0ZXJfb3BzIHJvY2tjaGlwX2RybV9vcHMg PSB7Cj4gQEAgLTM5MSwyMSArNDA2LDE2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgY29tcG9uZW50 X21hc3Rlcl9vcHMgcm9ja2NoaXBfZHJtX29wcyA9IHsKPiAgCS51bmJpbmQgPSByb2NrY2hpcF9k cm1fdW5iaW5kLAo+ICB9Owo+ICAKPiAtc3RhdGljIGludCByb2NrY2hpcF9kcm1fcGxhdGZvcm1f cHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiArc3RhdGljIGludCByb2NrY2hp cF9kcm1fcGxhdGZvcm1fb2ZfcHJvYmUoc3RydWN0IGRldmljZSAqZGV2KQo+ICB7Cj4gLQlzdHJ1 Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Owo+IC0Jc3RydWN0IGNvbXBvbmVudF9tYXRjaCAq bWF0Y2ggPSBOVUxMOwo+ICAJc3RydWN0IGRldmljZV9ub2RlICpucCA9IGRldi0+b2Zfbm9kZTsK PiAgCXN0cnVjdCBkZXZpY2Vfbm9kZSAqcG9ydDsKPiArCWJvb2wgZm91bmQgPSBmYWxzZTsKPiAg CWludCBpOwo+ICAKPiAgCWlmICghbnApCj4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4gLQkvKgo+IC0J ICogQmluZCB0aGUgY3J0YyBwb3J0cyBmaXJzdCwgc28gdGhhdAo+IC0JICogZHJtX29mX2ZpbmRf cG9zc2libGVfY3J0Y3MgY2FsbGVkIGZyb20gZW5jb2RlciAuYmluZCBjYWxsYmFja3MKPiAtCSAq IHdvcmtzIGFzIGV4cGVjdGVkLgo+IC0JICovCj4gKwo+ICAJZm9yIChpID0gMDs7IGkrKykgewo+ ICAJCXN0cnVjdCBkZXZpY2Vfbm9kZSAqaW9tbXU7Cj4gIAo+IEBAIC00MjksOSArNDM5LDkgQEAg c3RhdGljIGludCByb2NrY2hpcF9kcm1fcGxhdGZvcm1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rl dmljZSAqcGRldikKPiAgCQkJaXNfc3VwcG9ydF9pb21tdSA9IGZhbHNlOwo+ICAJCX0KPiAgCj4g KwkJZm91bmQgPSB0cnVlOwo+ICsKPiAgCQlvZl9ub2RlX3B1dChpb21tdSk7Cj4gLQkJZHJtX29m X2NvbXBvbmVudF9tYXRjaF9hZGQoZGV2LCAmbWF0Y2gsIGNvbXBhcmVfb2YsCj4gLQkJCQkJICAg cG9ydC0+cGFyZW50KTsKPiAgCQlvZl9ub2RlX3B1dChwb3J0KTsKPiAgCX0KPiAgCj4gQEAgLTQ0 MCwyNyArNDUwLDI3IEBAIHN0YXRpYyBpbnQgcm9ja2NoaXBfZHJtX3BsYXRmb3JtX3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAkJcmV0dXJuIC1FTk9ERVY7Cj4gIAl9Cj4g IAo+IC0JaWYgKCFtYXRjaCkgewo+ICsJaWYgKCFmb3VuZCkgewo+ICAJCWRldl9lcnIoZGV2LCAi Tm8gYXZhaWxhYmxlIHZvcCBmb3VuZCBmb3IgZGlzcGxheS1zdWJzeXN0ZW0uXG4iKTsKPiAgCQly ZXR1cm4gLUVOT0RFVjsKPiAgCX0KPiAtCS8qCj4gLQkgKiBGb3IgZWFjaCBib3VuZCBjcnRjLCBi aW5kIHRoZSBlbmNvZGVycyBhdHRhY2hlZCB0byBpdHMKPiAtCSAqIHJlbW90ZSBlbmRwb2ludC4K PiAtCSAqLwo+IC0JZm9yIChpID0gMDs7IGkrKykgewo+IC0JCXBvcnQgPSBvZl9wYXJzZV9waGFu ZGxlKG5wLCAicG9ydHMiLCBpKTsKPiAtCQlpZiAoIXBvcnQpCj4gLQkJCWJyZWFrOwo+ICAKPiAt CQlpZiAoIW9mX2RldmljZV9pc19hdmFpbGFibGUocG9ydC0+cGFyZW50KSkgewo+IC0JCQlvZl9u b2RlX3B1dChwb3J0KTsKPiAtCQkJY29udGludWU7Cj4gLQkJfQo+ICsJcmV0dXJuIDA7Cj4gK30K PiAgCj4gLQkJcm9ja2NoaXBfYWRkX2VuZHBvaW50cyhkZXYsICZtYXRjaCwgcG9ydCk7Cj4gLQkJ b2Zfbm9kZV9wdXQocG9ydCk7Cj4gLQl9Cj4gK3N0YXRpYyBpbnQgcm9ja2NoaXBfZHJtX3BsYXRm b3JtX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sKPiArCXN0cnVjdCBk ZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gKwlzdHJ1Y3QgY29tcG9uZW50X21hdGNoICptYXRj aCA9IE5VTEw7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCXJldCA9IHJvY2tjaGlwX2RybV9wbGF0Zm9y bV9vZl9wcm9iZShkZXYpOwo+ICsJaWYgKHJldCkKPiArCQlyZXR1cm4gcmV0Owo+ICsKPiArCW1h dGNoID0gcm9ja2NoaXBfZHJtX21hdGNoX2FkZChkZXYpOwo+ICsJaWYgKElTX0VSUihtYXRjaCkp Cj4gKwkJcmV0dXJuIFBUUl9FUlIobWF0Y2gpOwo+ICAKPiAgCXJldHVybiBjb21wb25lbnRfbWFz dGVyX2FkZF93aXRoX21hdGNoKGRldiwgJnJvY2tjaGlwX2RybV9vcHMsIG1hdGNoKTsKPiAgfQo+ IEBAIC00ODgsNyArNDk4LDU3IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHJvY2tj aGlwX2RybV9wbGF0Zm9ybV9kcml2ZXIgPSB7Cj4gIAl9LAo+ICB9Owo+ICAKPiAtbW9kdWxlX3Bs YXRmb3JtX2RyaXZlcihyb2NrY2hpcF9kcm1fcGxhdGZvcm1fZHJpdmVyKTsKPiArc3RhdGljIHZv aWQgcm9ja2NoaXBfZHJtX3VucmVnaXN0ZXJfZHJpdmVycyh2b2lkKQo+ICt7Cj4gKwlpbnQgaTsK PiArCj4gKwlmb3IgKGkgPSBBUlJBWV9TSVpFKHJvY2tjaGlwX2RybV9jb21wX2RydnMpIC0gMTsg aSA+PSAwOyBpLS0pCj4gKwkJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIocm9ja2NoaXBfZHJt X2NvbXBfZHJ2c1tpXSk7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgcm9ja2NoaXBfZHJtX3JlZ2lz dGVyX2RyaXZlcnModm9pZCkKPiArewo+ICsJaW50IGksIHJldDsKPiArCj4gKwlmb3IgKGkgPSAw OyBpIDwgQVJSQVlfU0laRShyb2NrY2hpcF9kcm1fY29tcF9kcnZzKTsgaSsrKSB7Cj4gKwkJcmV0 ID0gcGxhdGZvcm1fZHJpdmVyX3JlZ2lzdGVyKHJvY2tjaGlwX2RybV9jb21wX2RydnNbaV0pOwo+ ICsJCWlmIChyZXQpCj4gKwkJCWdvdG8gZmFpbDsKPiArCX0KPiArCXJldHVybiAwOwo+ICtmYWls Ogo+ICsJcm9ja2NoaXBfZHJtX3VucmVnaXN0ZXJfZHJpdmVycygpOwoKQXJlIHlvdSBzdXJlIHlv dSBjYW4gY2FsbCB0aGlzIGZvciB0aGUgZHJpdmVycyB0aGF0IGhhdmUgbm90IHlldCBiZWVuCnJl Z2lzdGVyZWQ/IEkgdG9vayBhIHF1aWNrIGxvb2sgaW4gdGhlIHBsYXRmb3JtX2RyaXZlciBjb2Rl IGFuZCBpdCBzZWVtcyBsaWtlCnRoaXMgbWlnaHQgY2F1c2UgYSBkZXZpY2UgcmVmZXJlbmNlIGlt YmFsYW5jZSwgYXQgdGhlIGxlYXN0LgoKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRp YyBpbnQgX19pbml0IHJvY2tjaGlwX2RybV9pbml0KHZvaWQpCj4gK3sKPiArCWludCByZXQ7Cj4g Kwo+ICsJcmV0ID0gcm9ja2NoaXBfZHJtX3JlZ2lzdGVyX2RyaXZlcnMoKTsKPiArCWlmIChyZXQp Cj4gKwkJcmV0dXJuIHJldDsKPiArCj4gKwlyZXQgPSBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIo JnJvY2tjaGlwX2RybV9wbGF0Zm9ybV9kcml2ZXIpOwo+ICsJaWYgKHJldCkKPiArCQlnb3RvIGVy cl91bnJlZ19kcml2ZXJzOwo+ICsKPiArCXJldHVybiAwOwo+ICsKPiArZXJyX3VucmVnX2RyaXZl cnM6Cj4gKwlyb2NrY2hpcF9kcm1fdW5yZWdpc3Rlcl9kcml2ZXJzKCk7Cj4gKwlyZXR1cm4gcmV0 Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBfX2V4aXQgcm9ja2NoaXBfZHJtX2Zpbmkodm9pZCkK PiArewo+ICsJcGxhdGZvcm1fZHJpdmVyX3VucmVnaXN0ZXIoJnJvY2tjaGlwX2RybV9wbGF0Zm9y bV9kcml2ZXIpOwo+ICsKPiArCXJvY2tjaGlwX2RybV91bnJlZ2lzdGVyX2RyaXZlcnMoKTsKPiAr fQo+ICsKPiArbW9kdWxlX2luaXQocm9ja2NoaXBfZHJtX2luaXQpOwo+ICttb2R1bGVfZXhpdChy b2NrY2hpcF9kcm1fZmluaSk7Cj4gIAo+ICBNT0RVTEVfQVVUSE9SKCJNYXJrIFlhbyA8bWFyay55 YW9Acm9jay1jaGlwcy5jb20+Iik7Cj4gIE1PRFVMRV9ERVNDUklQVElPTigiUk9DS0NISVAgRFJN IERyaXZlciIpOwo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2No aXBfZHJtX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYu aAo+IGluZGV4IGFkYzM5MzAuLmY0NmUxZDAgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L3JvY2tjaGlwL3JvY2tjaGlwX2RybV9kcnYuaAo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yb2Nr Y2hpcC9yb2NrY2hpcF9kcm1fZHJ2LmgKPiBAQCAtNzksNCArNzksMTAgQEAgdm9pZCByb2NrY2hp cF9kcm1fZG1hX2RldGFjaF9kZXZpY2Uoc3RydWN0IGRybV9kZXZpY2UgKmRybV9kZXYsCj4gIGlu dCByb2NrY2hpcF9kcm1fd2FpdF9saW5lX2ZsYWcoc3RydWN0IGRybV9jcnRjICpjcnRjLCB1bnNp Z25lZCBpbnQgbGluZV9udW0sCj4gIAkJCQl1bnNpZ25lZCBpbnQgbXN0aW1lb3V0KTsKPiAgCj4g K2V4dGVybiBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGNkbl9kcF9kcml2ZXI7Cj4gK2V4dGVybiBz dHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGR3X2hkbWlfcm9ja2NoaXBfcGx0Zm1fZHJpdmVyOwo+ICtl eHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBkd19taXBpX2RzaV9kcml2ZXI7Cj4gK2V4dGVy biBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIGlubm9faGRtaV9kcml2ZXI7Cj4gK2V4dGVybiBzdHJ1 Y3QgcGxhdGZvcm1fZHJpdmVyIHJvY2tjaGlwX2RwX2RyaXZlcjsKPiArZXh0ZXJuIHN0cnVjdCBw bGF0Zm9ybV9kcml2ZXIgdm9wX3BsYXRmb3JtX2RyaXZlcjsKClNob3VsZCB0aGVzZSBiZSBwcm90 ZWN0ZWQgYnkgI2lmZGVmIENPTkZJR18qPwoKPiAgI2VuZGlmIC8qIF9ST0NLQ0hJUF9EUk1fRFJW X0hfICovCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yb2NrY2hpcC9yb2NrY2hpcF92 b3BfcmVnLmMgYi9kcml2ZXJzL2dwdS9kcm0vcm9ja2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jCj4g aW5kZXggOTFmYmM3Yi4uMGRhNDQ0NCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vcm9j a2NoaXAvcm9ja2NoaXBfdm9wX3JlZy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3JvY2tjaGlw L3JvY2tjaGlwX3ZvcF9yZWcuYwo+IEBAIC00MDQsNyArNDA0LDcgQEAgc3RhdGljIGludCB2b3Bf cmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIAlyZXR1cm4gMDsKPiAgfQo+ ICAKPiAtc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgdm9wX3BsYXRmb3JtX2RyaXZlciA9 IHsKPiArc3RydWN0IHBsYXRmb3JtX2RyaXZlciB2b3BfcGxhdGZvcm1fZHJpdmVyID0gewo+ICAJ LnByb2JlID0gdm9wX3Byb2JlLAo+ICAJLnJlbW92ZSA9IHZvcF9yZW1vdmUsCj4gIAkuZHJpdmVy ID0gewo+IEBAIC00MTIsOSArNDEyLDMgQEAgc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIg dm9wX3BsYXRmb3JtX2RyaXZlciA9IHsKPiAgCQkub2ZfbWF0Y2hfdGFibGUgPSBvZl9tYXRjaF9w dHIodm9wX2RyaXZlcl9kdF9tYXRjaCksCj4gIAl9LAo+ICB9Owo+IC0KPiAtbW9kdWxlX3BsYXRm b3JtX2RyaXZlcih2b3BfcGxhdGZvcm1fZHJpdmVyKTsKPiAtCj4gLU1PRFVMRV9BVVRIT1IoIk1h cmsgWWFvIDxtYXJrLnlhb0Byb2NrLWNoaXBzLmNvbT4iKTsKPiAtTU9EVUxFX0RFU0NSSVBUSU9O KCJST0NLQ0hJUCBWT1AgRHJpdmVyIik7Cj4gLU1PRFVMRV9MSUNFTlNFKCJHUEwgdjIiKTsKPiAt LSAKPiAyLjEuNAo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmktZGV2 ZWwK