From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?Q2hyaXN0aWFuIEvDtm5pZw==?= Subject: Re: [deathsimple/drm-next-3.16][PATCH V3 1/4] drm/radeon/hdmi: use separated file for DCE 3.1/3.2 code Date: Fri, 16 May 2014 11:22:06 +0200 Message-ID: <5375D8BE.9000807@vodafone.de> References: <1400231431-4844-1-git-send-email-zajec5@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from pegasos-out.vodafone.de (pegasos-out.vodafone.de [80.84.1.38]) by gabe.freedesktop.org (Postfix) with ESMTP id 420076EF8D for ; Fri, 16 May 2014 02:22:23 -0700 (PDT) In-Reply-To: <1400231431-4844-1-git-send-email-zajec5@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: =?UTF-8?B?UmFmYcWCIE1pxYJlY2tp?= , dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2RjZTNfMV9hZm10LmMKPiBAQCAtMCwwICsx LDIyMiBAQAo+ICsjaW5jbHVkZSA8bGludXgvaGRtaS5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybVAu aD4KQWRkaW5nIHRoZSBjb3B5cmlnaHQgaGVhZGVyIHRvIG5ldyBmaWxlcyB3b3VsZCBiZSBuaWNl LgoKQXBhcnQgZnJvbSB0aGF0IHRoZSBzZXJpZXMgbG9va3MgZ29vZCB0byBtZS4KCkNocmlzdGlh bi4KCkFtIDE2LjA1LjIwMTQgMTE6MTAsIHNjaHJpZWIgUmFmYcWCIE1pxYJlY2tpOgo+IERDRSAz LjEgYW5kIDMuMiBzaG91bGQgYmUgcHJvZ3JhbW1lZCBpbiBhIGRpZmZlcmVudCB3YXkgdGhhbiBE Q0UgMiBhbmQKPiBEQ0UgMy4gVGhlIG9yZGVyIG9mIHNldHRpbmcgcmVnaXN0ZXJzIGFuZCBzZXRz IG9mIHJlZ2lzdGVycyBhcmUKPiBkaWZmZXJlbnQuCj4gSXQncyBzdGlsbCB1bnN1cmUgaG93IHdl IHdpbGwgaGFuZGxlIERDRSAzLjEgdnMuIERDRSAzLjIsIHNpbmNlIHRoZXkKPiBoYXZlIGZldyBk aWZmZXJlbmNlcyBhcyB3ZWxsLgo+IEZvciBub3cgc2VwYXJhdGUgRENFIDIgYW5kIERDRSAzIHBh dGgsIHNvIHdlIGNhbiB3b3JrIG9uIGl0IHdpdGhvdXQgYQo+IHJpc2sgb2YgYnJlYWtpbmcgRENF IDMuMSsuCj4KPiBUaGlzIGhhcyBiZWVuIHRlc3RlZCBmb3IgcG9zc2libGUgcmVncmVzc2lvbnMg b24gRENFMzIgSEQ0NTUwIChSVjcxMCkuCj4KPiBTaWduZWQtb2ZmLWJ5OiBSYWZhxYIgTWnFgmVj a2kgPHphamVjNUBnbWFpbC5jb20+Cj4gLS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL01h a2VmaWxlICAgICAgfCAgIDIgKy0KPiAgIGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vZGNlM18xX2Fm bXQuYyB8IDIyMiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICAgZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yNjAwX2hkbWkuYyAgIHwgMTQ5ICsrLS0tLS0tLS0tLS0tLS0tLS0t LS0tCj4gICBkcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hc2ljLmMgfCAgIDIgKy0KPiAg IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuaCB8ICAgNyArKwo+ICAgNSBmaWxl cyBjaGFuZ2VkLCAyNDEgaW5zZXJ0aW9ucygrKSwgMTQxIGRlbGV0aW9ucygtKQo+ICAgY3JlYXRl IG1vZGUgMTAwNjQ0IGRyaXZlcnMvZ3B1L2RybS9yYWRlb24vZGNlM18xX2FmbXQuYwo+Cj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9k cm0vcmFkZW9uL01ha2VmaWxlCj4gaW5kZXggMDk0MzM1My4uZGJjYmZlOCAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL01ha2VmaWxlCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9NYWtlZmlsZQo+IEBAIC03Miw3ICs3Miw3IEBAIHJhZGVvbi15ICs9IHJhZGVvbl9k ZXZpY2UubyByYWRlb25fYXNpYy5vIHJhZGVvbl9rbXMubyBcCj4gICAJcmFkZW9uX2NzLm8gcmFk ZW9uX2Jpb3MubyByYWRlb25fYmVuY2htYXJrLm8gcjEwMC5vIHIzMDAubyByNDIwLm8gXAo+ICAg CXJzNDAwLm8gcnM2MDAubyByczY5MC5vIHJ2NTE1Lm8gcjUyMC5vIHI2MDAubyBydjc3MC5vIHJh ZGVvbl90ZXN0Lm8gXAo+ICAgCXIyMDAubyByYWRlb25fbGVnYWN5X3R2Lm8gcjYwMF9jcy5vIHI2 MDBfYmxpdF9zaGFkZXJzLm8gXAo+IC0JcmFkZW9uX3BtLm8gYXRvbWJpb3NfZHAubyByNjAwX2F1 ZGlvLm8gcjYwMF9oZG1pLm8gXAo+ICsJcmFkZW9uX3BtLm8gYXRvbWJpb3NfZHAubyByNjAwX2F1 ZGlvLm8gcjYwMF9oZG1pLm8gZGNlM18xX2FmbXQubyBcCj4gICAJZXZlcmdyZWVuLm8gZXZlcmdy ZWVuX2NzLm8gZXZlcmdyZWVuX2JsaXRfc2hhZGVycy5vIFwKPiAgIAlldmVyZ3JlZW5faGRtaS5v IHJhZGVvbl90cmFjZV9wb2ludHMubyBuaS5vIGNheW1hbl9ibGl0X3NoYWRlcnMubyBcCj4gICAJ YXRvbWJpb3NfZW5jb2RlcnMubyByYWRlb25fc2VtYXBob3JlLm8gcmFkZW9uX3NhLm8gYXRvbWJp b3NfaTJjLm8gc2kubyBcCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZGNl M18xX2FmbXQuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vZGNlM18xX2FmbXQuYwo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMC4uMzljYjkyMgo+IC0tLSAvZGV2L251bGwK PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL2RjZTNfMV9hZm10LmMKPiBAQCAtMCwwICsx LDIyMiBAQAo+ICsjaW5jbHVkZSA8bGludXgvaGRtaS5oPgo+ICsjaW5jbHVkZSA8ZHJtL2RybVAu aD4KPiArI2luY2x1ZGUgInJhZGVvbi5oIgo+ICsjaW5jbHVkZSAicmFkZW9uX2FzaWMuaCIKPiAr I2luY2x1ZGUgInI2MDBkLmgiCj4gKwo+ICtzdGF0aWMgdm9pZCBkY2UzXzJfYWZtdF93cml0ZV9z cGVha2VyX2FsbG9jYXRpb24oc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICt7Cj4gKwlz dHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGVuY29kZXItPmRldi0+ZGV2X3ByaXZhdGU7Cj4g KwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+ICsJc3RydWN0IHJhZGVvbl9jb25u ZWN0b3IgKnJhZGVvbl9jb25uZWN0b3IgPSBOVUxMOwo+ICsJdTMyIHRtcDsKPiArCXU4ICpzYWRi Owo+ICsJaW50IHNhZF9jb3VudDsKPiArCj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3Rv ciwgJmVuY29kZXItPmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKPiAr CQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyID09IGVuY29kZXIpIHsKPiArCQkJcmFkZW9uX2Nvbm5l Y3RvciA9IHRvX3JhZGVvbl9jb25uZWN0b3IoY29ubmVjdG9yKTsKPiArCQkJYnJlYWs7Cj4gKwkJ fQo+ICsJfQo+ICsKPiArCWlmICghcmFkZW9uX2Nvbm5lY3Rvcikgewo+ICsJCURSTV9FUlJPUigi Q291bGRuJ3QgZmluZCBlbmNvZGVyJ3MgY29ubmVjdG9yXG4iKTsKPiArCQlyZXR1cm47Cj4gKwl9 Cj4gKwo+ICsJc2FkX2NvdW50ID0gZHJtX2VkaWRfdG9fc3BlYWtlcl9hbGxvY2F0aW9uKHJhZGVv bl9jb25uZWN0b3ItPmVkaWQsICZzYWRiKTsKPiArCWlmIChzYWRfY291bnQgPCAwKSB7Cj4gKwkJ RFJNX0VSUk9SKCJDb3VsZG4ndCByZWFkIFNwZWFrZXIgQWxsb2NhdGlvbiBEYXRhIEJsb2NrOiAl ZFxuIiwgc2FkX2NvdW50KTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJLyogcHJvZ3JhbSB0 aGUgc3BlYWtlciBhbGxvY2F0aW9uICovCj4gKwl0bXAgPSBSUkVHMzIoQVpfRjBfQ09ERUNfUElO MF9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUik7Cj4gKwl0bXAgJj0gfihEUF9DT05ORUNUSU9OIHwg U1BFQUtFUl9BTExPQ0FUSU9OX01BU0spOwo+ICsJLyogc2V0IEhETUkgbW9kZSAqLwo+ICsJdG1w IHw9IEhETUlfQ09OTkVDVElPTjsKPiArCWlmIChzYWRfY291bnQpCj4gKwkJdG1wIHw9IFNQRUFL RVJfQUxMT0NBVElPTihzYWRiWzBdKTsKPiArCWVsc2UKPiArCQl0bXAgfD0gU1BFQUtFUl9BTExP Q0FUSU9OKDUpOyAvKiBzdGVyZW8gKi8KPiArCVdSRUczMihBWl9GMF9DT0RFQ19QSU4wX0NPTlRS T0xfQ0hBTk5FTF9TUEVBS0VSLCB0bXApOwo+ICsKPiArCWtmcmVlKHNhZGIpOwo+ICt9Cj4gKwo+ ICtzdGF0aWMgdm9pZCBkY2UzXzJfYWZtdF93cml0ZV9zYWRfcmVncyhzdHJ1Y3QgZHJtX2VuY29k ZXIgKmVuY29kZXIpCj4gK3sKPiArCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gZW5jb2Rl ci0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3I7 Cj4gKwlzdHJ1Y3QgcmFkZW9uX2Nvbm5lY3RvciAqcmFkZW9uX2Nvbm5lY3RvciA9IE5VTEw7Cj4g KwlzdHJ1Y3QgY2VhX3NhZCAqc2FkczsKPiArCWludCBpLCBzYWRfY291bnQ7Cj4gKwo+ICsJc3Rh dGljIGNvbnN0IHUxNiBlbGRfcmVnX3RvX3R5cGVbXVsyXSA9IHsKPiArCQl7IEFaX0YwX0NPREVD X1BJTjBfQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMCwgSERNSV9BVURJT19DT0RJTkdfVFlQRV9Q Q00gfSwKPiArCQl7IEFaX0YwX0NPREVDX1BJTjBfQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMSwg SERNSV9BVURJT19DT0RJTkdfVFlQRV9BQzMgfSwKPiArCQl7IEFaX0YwX0NPREVDX1BJTjBfQ09O VFJPTF9BVURJT19ERVNDUklQVE9SMiwgSERNSV9BVURJT19DT0RJTkdfVFlQRV9NUEVHMSB9LAo+ ICsJCXsgQVpfRjBfQ09ERUNfUElOMF9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzLCBIRE1JX0FV RElPX0NPRElOR19UWVBFX01QMyB9LAo+ICsJCXsgQVpfRjBfQ09ERUNfUElOMF9DT05UUk9MX0FV RElPX0RFU0NSSVBUT1I0LCBIRE1JX0FVRElPX0NPRElOR19UWVBFX01QRUcyIH0sCj4gKwkJeyBB Wl9GMF9DT0RFQ19QSU4wX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjUsIEhETUlfQVVESU9fQ09E SU5HX1RZUEVfQUFDX0xDIH0sCj4gKwkJeyBBWl9GMF9DT0RFQ19QSU4wX0NPTlRST0xfQVVESU9f REVTQ1JJUFRPUjYsIEhETUlfQVVESU9fQ09ESU5HX1RZUEVfRFRTIH0sCj4gKwkJeyBBWl9GMF9D T0RFQ19QSU4wX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjcsIEhETUlfQVVESU9fQ09ESU5HX1RZ UEVfQVRSQUMgfSwKPiArCQl7IEFaX0YwX0NPREVDX1BJTjBfQ09OVFJPTF9BVURJT19ERVNDUklQ VE9SOSwgSERNSV9BVURJT19DT0RJTkdfVFlQRV9FQUMzIH0sCj4gKwkJeyBBWl9GMF9DT0RFQ19Q SU4wX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwLCBIRE1JX0FVRElPX0NPRElOR19UWVBFX0RU U19IRCB9LAo+ICsJCXsgQVpfRjBfQ09ERUNfUElOMF9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1Ix MSwgSERNSV9BVURJT19DT0RJTkdfVFlQRV9NTFAgfSwKPiArCQl7IEFaX0YwX0NPREVDX1BJTjBf Q09OVFJPTF9BVURJT19ERVNDUklQVE9SMTMsIEhETUlfQVVESU9fQ09ESU5HX1RZUEVfV01BX1BS TyB9LAo+ICsJfTsKPiArCj4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmVuY29k ZXItPmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKPiArCQlpZiAoY29u bmVjdG9yLT5lbmNvZGVyID09IGVuY29kZXIpIHsKPiArCQkJcmFkZW9uX2Nvbm5lY3RvciA9IHRv X3JhZGVvbl9jb25uZWN0b3IoY29ubmVjdG9yKTsKPiArCQkJYnJlYWs7Cj4gKwkJfQo+ICsJfQo+ ICsKPiArCWlmICghcmFkZW9uX2Nvbm5lY3Rvcikgewo+ICsJCURSTV9FUlJPUigiQ291bGRuJ3Qg ZmluZCBlbmNvZGVyJ3MgY29ubmVjdG9yXG4iKTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJ c2FkX2NvdW50ID0gZHJtX2VkaWRfdG9fc2FkKHJhZGVvbl9jb25uZWN0b3ItPmVkaWQsICZzYWRz KTsKPiArCWlmIChzYWRfY291bnQgPCAwKSB7Cj4gKwkJRFJNX0VSUk9SKCJDb3VsZG4ndCByZWFk IFNBRHM6ICVkXG4iLCBzYWRfY291bnQpOwo+ICsJCXJldHVybjsKPiArCX0KPiArCUJVR19PTigh c2Fkcyk7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZWxkX3JlZ190b190eXBl KTsgaSsrKSB7Cj4gKwkJdTMyIHZhbHVlID0gMDsKPiArCQl1OCBzdGVyZW9fZnJlcXMgPSAwOwo+ ICsJCWludCBtYXhfY2hhbm5lbHMgPSAtMTsKPiArCQlpbnQgajsKPiArCj4gKwkJZm9yIChqID0g MDsgaiA8IHNhZF9jb3VudDsgaisrKSB7Cj4gKwkJCXN0cnVjdCBjZWFfc2FkICpzYWQgPSAmc2Fk c1tqXTsKPiArCj4gKwkJCWlmIChzYWQtPmZvcm1hdCA9PSBlbGRfcmVnX3RvX3R5cGVbaV1bMV0p IHsKPiArCQkJCWlmIChzYWQtPmNoYW5uZWxzID4gbWF4X2NoYW5uZWxzKSB7Cj4gKwkJCQkJdmFs dWUgPSBNQVhfQ0hBTk5FTFMoc2FkLT5jaGFubmVscykgfAo+ICsJCQkJCQlERVNDUklQVE9SX0JZ VEVfMihzYWQtPmJ5dGUyKSB8Cj4gKwkJCQkJCVNVUFBPUlRFRF9GUkVRVUVOQ0lFUyhzYWQtPmZy ZXEpOwo+ICsJCQkJCW1heF9jaGFubmVscyA9IHNhZC0+Y2hhbm5lbHM7Cj4gKwkJCQl9Cj4gKwo+ ICsJCQkJaWYgKHNhZC0+Zm9ybWF0ID09IEhETUlfQVVESU9fQ09ESU5HX1RZUEVfUENNKQo+ICsJ CQkJCXN0ZXJlb19mcmVxcyB8PSBzYWQtPmZyZXE7Cj4gKwkJCQllbHNlCj4gKwkJCQkJYnJlYWs7 Cj4gKwkJCX0KPiArCQl9Cj4gKwo+ICsJCXZhbHVlIHw9IFNVUFBPUlRFRF9GUkVRVUVOQ0lFU19T VEVSRU8oc3RlcmVvX2ZyZXFzKTsKPiArCj4gKwkJV1JFRzMyKGVsZF9yZWdfdG9fdHlwZVtpXVsw XSwgdmFsdWUpOwo+ICsJfQo+ICsKPiArCWtmcmVlKHNhZHMpOwo+ICt9Cj4gKwo+ICsvKgo+ICsg KiB1cGRhdGUgdGhlIGluZm8gZnJhbWVzIHdpdGggdGhlIGRhdGEgZnJvbSB0aGUgY3VycmVudCBk aXNwbGF5IG1vZGUKPiArICovCj4gK3ZvaWQgZGNlM18xX2hkbWlfc2V0bW9kZShzdHJ1Y3QgZHJt X2VuY29kZXIgKmVuY29kZXIsIHN0cnVjdCBkcm1fZGlzcGxheV9tb2RlICptb2RlKQo+ICt7Cj4g KwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+ICsJc3RydWN0IHJhZGVv bl9kZXZpY2UgKnJkZXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IHJhZGVvbl9lbmNv ZGVyICpyYWRlb25fZW5jb2RlciA9IHRvX3JhZGVvbl9lbmNvZGVyKGVuY29kZXIpOwo+ICsJc3Ry dWN0IHJhZGVvbl9lbmNvZGVyX2F0b21fZGlnICpkaWcgPSByYWRlb25fZW5jb2Rlci0+ZW5jX3By aXY7Cj4gKwl1OCBidWZmZXJbSERNSV9JTkZPRlJBTUVfSEVBREVSX1NJWkUgKyBIRE1JX0FWSV9J TkZPRlJBTUVfU0laRV07Cj4gKwlzdHJ1Y3QgaGRtaV9hdmlfaW5mb2ZyYW1lIGZyYW1lOwo+ICsJ dWludDMyX3Qgb2Zmc2V0Owo+ICsJc3NpemVfdCBlcnI7Cj4gKwo+ICsJaWYgKCFkaWcgfHwgIWRp Zy0+YWZtdCkKPiArCQlyZXR1cm47Cj4gKwo+ICsJLyogU2lsZW50LCByNjAwX2hkbWlfZW5hYmxl IHdpbGwgcmFpc2UgV0FSTiBmb3IgdXMgKi8KPiArCWlmICghZGlnLT5hZm10LT5lbmFibGVkKQo+ ICsJCXJldHVybjsKPiArCW9mZnNldCA9IGRpZy0+YWZtdC0+b2Zmc2V0Owo+ICsKPiArCS8qIGRp c2FibGUgYXVkaW8gcHJpb3IgdG8gc2V0dGluZyB1cCBodyAqLwo+ICsJZGlnLT5hZm10LT5waW4g PSByNjAwX2F1ZGlvX2dldF9waW4ocmRldik7Cj4gKwlyNjAwX2F1ZGlvX2VuYWJsZShyZGV2LCBk aWctPmFmbXQtPnBpbiwgZmFsc2UpOwo+ICsKPiArCXI2MDBfYXVkaW9fc2V0X2R0byhlbmNvZGVy LCBtb2RlLT5jbG9jayk7Cj4gKwo+ICsJV1JFRzMyKEhETUkwX1ZCSV9QQUNLRVRfQ09OVFJPTCAr IG9mZnNldCwKPiArCSAgICAgICBIRE1JMF9OVUxMX1NFTkQpOyAvKiBzZW5kIG51bGwgcGFja2V0 cyB3aGVuIHJlcXVpcmVkICovCj4gKwo+ICsJV1JFRzMyKEhETUkwX0FVRElPX0NSQ19DT05UUk9M ICsgb2Zmc2V0LCAweDEwMDApOwo+ICsKPiArCWlmIChBU0lDX0lTX0RDRTMyKHJkZXYpKSB7Cj4g KwkJV1JFRzMyKEhETUkwX0FVRElPX1BBQ0tFVF9DT05UUk9MICsgb2Zmc2V0LAo+ICsJCSAgICAg ICBIRE1JMF9BVURJT19ERUxBWV9FTigxKSB8IC8qIGRlZmF1bHQgYXVkaW8gZGVsYXkgKi8KPiAr CQkgICAgICAgSERNSTBfQVVESU9fUEFDS0VUU19QRVJfTElORSgzKSk7IC8qIHNob3VsZCBiZSBz dWZmaWVudCBmb3IgYWxsIGF1ZGlvIG1vZGVzIGFuZCBzbWFsbCBlbm91Z2ggZm9yIGFsbCBoYmxh bmtzICovCj4gKwkJV1JFRzMyKEFGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQsCj4g KwkJICAgICAgIEFGTVRfQVVESU9fU0FNUExFX1NFTkQgfCAvKiBzZW5kIGF1ZGlvIHBhY2tldHMg Ki8KPiArCQkgICAgICAgQUZNVF82MDk1OF9DU19VUERBVEUpOyAvKiBhbGxvdyA2MDk1OCBjaGFu bmVsIHN0YXR1cyBmaWVsZHMgdG8gYmUgdXBkYXRlZCAqLwo+ICsJfSBlbHNlIHsKPiArCQlXUkVH MzIoSERNSTBfQVVESU9fUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQsCj4gKwkJICAgICAgIEhETUkw X0FVRElPX1NBTVBMRV9TRU5EIHwgLyogc2VuZCBhdWRpbyBwYWNrZXRzICovCj4gKwkJICAgICAg IEhETUkwX0FVRElPX0RFTEFZX0VOKDEpIHwgLyogZGVmYXVsdCBhdWRpbyBkZWxheSAqLwo+ICsJ CSAgICAgICBIRE1JMF9BVURJT19QQUNLRVRTX1BFUl9MSU5FKDMpIHwgLyogc2hvdWxkIGJlIHN1 ZmZpZW50IGZvciBhbGwgYXVkaW8gbW9kZXMgYW5kIHNtYWxsIGVub3VnaCBmb3IgYWxsIGhibGFu a3MgKi8KPiArCQkgICAgICAgSERNSTBfNjA5NThfQ1NfVVBEQVRFKTsgLyogYWxsb3cgNjA5NTgg Y2hhbm5lbCBzdGF0dXMgZmllbGRzIHRvIGJlIHVwZGF0ZWQgKi8KPiArCX0KPiArCj4gKwlpZiAo QVNJQ19JU19EQ0UzMihyZGV2KSkgewo+ICsJCWRjZTNfMl9hZm10X3dyaXRlX3NwZWFrZXJfYWxs b2NhdGlvbihlbmNvZGVyKTsKPiArCQlkY2UzXzJfYWZtdF93cml0ZV9zYWRfcmVncyhlbmNvZGVy KTsKPiArCX0KPiArCj4gKwlXUkVHMzIoSERNSTBfQUNSX1BBQ0tFVF9DT05UUk9MICsgb2Zmc2V0 LAo+ICsJICAgICAgIEhETUkwX0FDUl9TT1VSQ0UgfCAvKiBzZWxlY3QgU1cgQ1RTIHZhbHVlIC0g WFhYIHZlcmlmeSB0aGF0IGh3IENUUyB3b3JrcyBvbiBhbGwgZmFtaWxpZXMgKi8KPiArCSAgICAg ICBIRE1JMF9BQ1JfQVVUT19TRU5EKTsgLyogYWxsb3cgaHcgdG8gc2VudCBBQ1IgcGFja2V0cyB3 aGVuIHJlcXVpcmVkICovCj4gKwo+ICsJV1JFRzMyKEhETUkwX1ZCSV9QQUNLRVRfQ09OVFJPTCAr IG9mZnNldCwKPiArCSAgICAgICBIRE1JMF9OVUxMX1NFTkQgfCAvKiBzZW5kIG51bGwgcGFja2V0 cyB3aGVuIHJlcXVpcmVkICovCj4gKwkgICAgICAgSERNSTBfR0NfU0VORCB8IC8qIHNlbmQgZ2Vu ZXJhbCBjb250cm9sIHBhY2tldHMgKi8KPiArCSAgICAgICBIRE1JMF9HQ19DT05UKTsgLyogc2Vu ZCBnZW5lcmFsIGNvbnRyb2wgcGFja2V0cyBldmVyeSBmcmFtZSAqLwo+ICsKPiArCS8qIFRPRE86 IEhETUkwX0FVRElPX0lORk9fVVBEQVRFICovCj4gKwlXUkVHMzIoSERNSTBfSU5GT0ZSQU1FX0NP TlRST0wwICsgb2Zmc2V0LAo+ICsJICAgICAgIEhETUkwX0FWSV9JTkZPX1NFTkQgfCAvKiBlbmFi bGUgQVZJIGluZm8gZnJhbWVzICovCj4gKwkgICAgICAgSERNSTBfQVZJX0lORk9fQ09OVCB8IC8q IHNlbmQgQVZJIGluZm8gZnJhbWVzIGV2ZXJ5IGZyYW1lL2ZpZWxkICovCj4gKwkgICAgICAgSERN STBfQVVESU9fSU5GT19TRU5EIHwgLyogZW5hYmxlIGF1ZGlvIGluZm8gZnJhbWVzIChmcmFtZXMg d29uJ3QgYmUgc2V0IHVudGlsIGF1ZGlvIGlzIGVuYWJsZWQpICovCj4gKwkgICAgICAgSERNSTBf QVVESU9fSU5GT19DT05UKTsgLyogc2VuZCBhdWRpbyBpbmZvIGZyYW1lcyBldmVyeSBmcmFtZS9m aWVsZCAqLwo+ICsKPiArCVdSRUczMihIRE1JMF9JTkZPRlJBTUVfQ09OVFJPTDEgKyBvZmZzZXQs Cj4gKwkgICAgICAgSERNSTBfQVZJX0lORk9fTElORSgyKSB8IC8qIGFueXRoaW5nIG90aGVyIHRo YW4gMCAqLwo+ICsJICAgICAgIEhETUkwX0FVRElPX0lORk9fTElORSgyKSk7IC8qIGFueXRoaW5n IG90aGVyIHRoYW4gMCAqLwo+ICsKPiArCVdSRUczMihIRE1JMF9HQyArIG9mZnNldCwgMCk7IC8q IHVuc2V0IEhETUkwX0dDX0FWTVVURSAqLwo+ICsKPiArCWVyciA9IGRybV9oZG1pX2F2aV9pbmZv ZnJhbWVfZnJvbV9kaXNwbGF5X21vZGUoJmZyYW1lLCBtb2RlKTsKPiArCWlmIChlcnIgPCAwKSB7 Cj4gKwkJRFJNX0VSUk9SKCJmYWlsZWQgdG8gc2V0dXAgQVZJIGluZm9mcmFtZTogJXpkXG4iLCBl cnIpOwo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwllcnIgPSBoZG1pX2F2aV9pbmZvZnJhbWVf cGFjaygmZnJhbWUsIGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlcikpOwo+ICsJaWYgKGVyciA8IDApIHsK PiArCQlEUk1fRVJST1IoImZhaWxlZCB0byBwYWNrIEFWSSBpbmZvZnJhbWU6ICV6ZFxuIiwgZXJy KTsKPiArCQlyZXR1cm47Cj4gKwl9Cj4gKwo+ICsJcjYwMF9oZG1pX3VwZGF0ZV9hdmlfaW5mb2Zy YW1lKGVuY29kZXIsIGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlcikpOwo+ICsJcjYwMF9oZG1pX3VwZGF0 ZV9BQ1IoZW5jb2RlciwgbW9kZS0+Y2xvY2spOwo+ICsKPiArCS8qIGl0J3MgdW5rbm93biB3aGF0 IHRoZXNlIGJpdHMgZG8gZXhjYXRseSwgYnV0IGl0J3MgaW5kZWVkIHF1aXRlIHVzZWZ1bCBmb3Ig ZGVidWdnaW5nICovCj4gKwlXUkVHMzIoSERNSTBfUkFNUF9DT05UUk9MMCArIG9mZnNldCwgMHgw MEZGRkZGRik7Cj4gKwlXUkVHMzIoSERNSTBfUkFNUF9DT05UUk9MMSArIG9mZnNldCwgMHgwMDdG RkZGRik7Cj4gKwlXUkVHMzIoSERNSTBfUkFNUF9DT05UUk9MMiArIG9mZnNldCwgMHgwMDAwMDAw MSk7Cj4gKwlXUkVHMzIoSERNSTBfUkFNUF9DT05UUk9MMyArIG9mZnNldCwgMHgwMDAwMDAwMSk7 Cj4gKwo+ICsJcjYwMF9oZG1pX2F1ZGlvX3dvcmthcm91bmQoZW5jb2Rlcik7Cj4gKwo+ICsJLyog ZW5hYmxlIGF1ZGlvIGFmdGVyIHRvIHNldHRpbmcgdXAgaHcgKi8KPiArCXI2MDBfYXVkaW9fZW5h YmxlKHJkZXYsIGRpZy0+YWZtdC0+cGluLCB0cnVlKTsKPiArfQo+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vcmFkZW9uL3I2MDBfaGRtaS5jIGIvZHJpdmVycy9ncHUvZHJtL3JhZGVvbi9y NjAwX2hkbWkuYwo+IGluZGV4IDg1YTJiYjIuLmI4YjJlZmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3JhZGVvbi9yNjAwX2hkbWkuYwo+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRl b24vcjYwMF9oZG1pLmMKPiBAQCAtMTMzLDcgKzEzMyw3IEBAIHN0cnVjdCByYWRlb25faGRtaV9h Y3IgcjYwMF9oZG1pX2Fjcih1aW50MzJfdCBjbG9jaykKPiAgIC8qCj4gICAgKiB1cGRhdGUgdGhl IE4gYW5kIENUUyBwYXJhbWV0ZXJzIGZvciBhIGdpdmVuIHBpeGVsIGNsb2NrIHJhdGUKPiAgICAq Lwo+IC1zdGF0aWMgdm9pZCByNjAwX2hkbWlfdXBkYXRlX0FDUihzdHJ1Y3QgZHJtX2VuY29kZXIg KmVuY29kZXIsIHVpbnQzMl90IGNsb2NrKQo+ICt2b2lkIHI2MDBfaGRtaV91cGRhdGVfQUNSKHN0 cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgdWludDMyX3QgY2xvY2spCj4gICB7Cj4gICAJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmRldjsKPiAgIAlzdHJ1Y3QgcmFkZW9uX2Rl dmljZSAqcmRldiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gQEAgLTE1NSw4ICsxNTUsOCBAQCBzdGF0 aWMgdm9pZCByNjAwX2hkbWlfdXBkYXRlX0FDUihzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIs IHVpbnQzMl90IGNsb2NrKQo+ICAgLyoKPiAgICAqIGJ1aWxkIGEgSERNSSBWaWRlbyBJbmZvIEZy YW1lCj4gICAgKi8KPiAtc3RhdGljIHZvaWQgcjYwMF9oZG1pX3VwZGF0ZV9hdmlfaW5mb2ZyYW1l KHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwKPiAtCQkJCQkgICB2b2lkICpidWZmZXIsIHNp emVfdCBzaXplKQo+ICt2b2lkIHI2MDBfaGRtaV91cGRhdGVfYXZpX2luZm9mcmFtZShzdHJ1Y3Qg ZHJtX2VuY29kZXIgKmVuY29kZXIsIHZvaWQgKmJ1ZmZlciwKPiArCQkJCSAgICBzaXplX3Qgc2l6 ZSkKPiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+ICAg CXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiBAQCAtMjMx LDcgKzIzMSw3IEBAIGludCByNjAwX2hkbWlfYnVmZmVyX3N0YXR1c19jaGFuZ2VkKHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlcikKPiAgIC8qCj4gICAgKiB3cml0ZSB0aGUgYXVkaW8gd29ya2Fy b3VuZCBzdGF0dXMgdG8gdGhlIGhhcmR3YXJlCj4gICAgKi8KPiAtc3RhdGljIHZvaWQgcjYwMF9o ZG1pX2F1ZGlvX3dvcmthcm91bmQoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+ICt2b2lk IHI2MDBfaGRtaV9hdWRpb193b3JrYXJvdW5kKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlcikK PiAgIHsKPiAgIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+ICAgCXN0 cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiBAQCAtMjUwLDcg KzI1MCw3IEBAIHN0YXRpYyB2b2lkIHI2MDBfaGRtaV9hdWRpb193b3JrYXJvdW5kKHN0cnVjdCBk cm1fZW5jb2RlciAqZW5jb2RlcikKPiAgIAkJIHZhbHVlLCB+SERNSTBfQVVESU9fVEVTVF9FTik7 Cj4gICB9Cj4gICAKPiAtc3RhdGljIHZvaWQgcjYwMF9hdWRpb19zZXRfZHRvKHN0cnVjdCBkcm1f ZW5jb2RlciAqZW5jb2RlciwgdTMyIGNsb2NrKQo+ICt2b2lkIHI2MDBfYXVkaW9fc2V0X2R0byhz dHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIsIHUzMiBjbG9jaykKPiAgIHsKPiAgIAlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Owo+ICAgCXN0cnVjdCByYWRlb25fZGV2aWNl ICpyZGV2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiBAQCAtMzIwLDEyMSArMzIwLDYgQEAgc3RhdGlj IHZvaWQgcjYwMF9hdWRpb19zZXRfZHRvKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgdTMy IGNsb2NrKQo+ICAgCX0KPiAgIH0KPiAgIAo+IC1zdGF0aWMgdm9pZCBkY2UzXzJfYWZtdF93cml0 ZV9zcGVha2VyX2FsbG9jYXRpb24oc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyKQo+IC17Cj4g LQlzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldiA9IGVuY29kZXItPmRldi0+ZGV2X3ByaXZhdGU7 Cj4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yOwo+IC0Jc3RydWN0IHJhZGVvbl9j b25uZWN0b3IgKnJhZGVvbl9jb25uZWN0b3IgPSBOVUxMOwo+IC0JdTMyIHRtcDsKPiAtCXU4ICpz YWRiOwo+IC0JaW50IHNhZF9jb3VudDsKPiAtCj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5l Y3RvciwgJmVuY29kZXItPmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhlYWQpIHsK PiAtCQlpZiAoY29ubmVjdG9yLT5lbmNvZGVyID09IGVuY29kZXIpIHsKPiAtCQkJcmFkZW9uX2Nv bm5lY3RvciA9IHRvX3JhZGVvbl9jb25uZWN0b3IoY29ubmVjdG9yKTsKPiAtCQkJYnJlYWs7Cj4g LQkJfQo+IC0JfQo+IC0KPiAtCWlmICghcmFkZW9uX2Nvbm5lY3Rvcikgewo+IC0JCURSTV9FUlJP UigiQ291bGRuJ3QgZmluZCBlbmNvZGVyJ3MgY29ubmVjdG9yXG4iKTsKPiAtCQlyZXR1cm47Cj4g LQl9Cj4gLQo+IC0Jc2FkX2NvdW50ID0gZHJtX2VkaWRfdG9fc3BlYWtlcl9hbGxvY2F0aW9uKHJh ZGVvbl9jb25uZWN0b3ItPmVkaWQsICZzYWRiKTsKPiAtCWlmIChzYWRfY291bnQgPCAwKSB7Cj4g LQkJRFJNX0VSUk9SKCJDb3VsZG4ndCByZWFkIFNwZWFrZXIgQWxsb2NhdGlvbiBEYXRhIEJsb2Nr OiAlZFxuIiwgc2FkX2NvdW50KTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gLQo+IC0JLyogcHJvZ3Jh bSB0aGUgc3BlYWtlciBhbGxvY2F0aW9uICovCj4gLQl0bXAgPSBSUkVHMzIoQVpfRjBfQ09ERUNf UElOMF9DT05UUk9MX0NIQU5ORUxfU1BFQUtFUik7Cj4gLQl0bXAgJj0gfihEUF9DT05ORUNUSU9O IHwgU1BFQUtFUl9BTExPQ0FUSU9OX01BU0spOwo+IC0JLyogc2V0IEhETUkgbW9kZSAqLwo+IC0J dG1wIHw9IEhETUlfQ09OTkVDVElPTjsKPiAtCWlmIChzYWRfY291bnQpCj4gLQkJdG1wIHw9IFNQ RUFLRVJfQUxMT0NBVElPTihzYWRiWzBdKTsKPiAtCWVsc2UKPiAtCQl0bXAgfD0gU1BFQUtFUl9B TExPQ0FUSU9OKDUpOyAvKiBzdGVyZW8gKi8KPiAtCVdSRUczMihBWl9GMF9DT0RFQ19QSU4wX0NP TlRST0xfQ0hBTk5FTF9TUEVBS0VSLCB0bXApOwo+IC0KPiAtCWtmcmVlKHNhZGIpOwo+IC19Cj4g LQo+IC1zdGF0aWMgdm9pZCBkY2UzXzJfYWZtdF93cml0ZV9zYWRfcmVncyhzdHJ1Y3QgZHJtX2Vu Y29kZXIgKmVuY29kZXIpCj4gLXsKPiAtCXN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2ID0gZW5j b2Rlci0+ZGV2LT5kZXZfcHJpdmF0ZTsKPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0 b3I7Cj4gLQlzdHJ1Y3QgcmFkZW9uX2Nvbm5lY3RvciAqcmFkZW9uX2Nvbm5lY3RvciA9IE5VTEw7 Cj4gLQlzdHJ1Y3QgY2VhX3NhZCAqc2FkczsKPiAtCWludCBpLCBzYWRfY291bnQ7Cj4gLQo+IC0J c3RhdGljIGNvbnN0IHUxNiBlbGRfcmVnX3RvX3R5cGVbXVsyXSA9IHsKPiAtCQl7IEFaX0YwX0NP REVDX1BJTjBfQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMCwgSERNSV9BVURJT19DT0RJTkdfVFlQ RV9QQ00gfSwKPiAtCQl7IEFaX0YwX0NPREVDX1BJTjBfQ09OVFJPTF9BVURJT19ERVNDUklQVE9S MSwgSERNSV9BVURJT19DT0RJTkdfVFlQRV9BQzMgfSwKPiAtCQl7IEFaX0YwX0NPREVDX1BJTjBf Q09OVFJPTF9BVURJT19ERVNDUklQVE9SMiwgSERNSV9BVURJT19DT0RJTkdfVFlQRV9NUEVHMSB9 LAo+IC0JCXsgQVpfRjBfQ09ERUNfUElOMF9DT05UUk9MX0FVRElPX0RFU0NSSVBUT1IzLCBIRE1J X0FVRElPX0NPRElOR19UWVBFX01QMyB9LAo+IC0JCXsgQVpfRjBfQ09ERUNfUElOMF9DT05UUk9M X0FVRElPX0RFU0NSSVBUT1I0LCBIRE1JX0FVRElPX0NPRElOR19UWVBFX01QRUcyIH0sCj4gLQkJ eyBBWl9GMF9DT0RFQ19QSU4wX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjUsIEhETUlfQVVESU9f Q09ESU5HX1RZUEVfQUFDX0xDIH0sCj4gLQkJeyBBWl9GMF9DT0RFQ19QSU4wX0NPTlRST0xfQVVE SU9fREVTQ1JJUFRPUjYsIEhETUlfQVVESU9fQ09ESU5HX1RZUEVfRFRTIH0sCj4gLQkJeyBBWl9G MF9DT0RFQ19QSU4wX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjcsIEhETUlfQVVESU9fQ09ESU5H X1RZUEVfQVRSQUMgfSwKPiAtCQl7IEFaX0YwX0NPREVDX1BJTjBfQ09OVFJPTF9BVURJT19ERVND UklQVE9SOSwgSERNSV9BVURJT19DT0RJTkdfVFlQRV9FQUMzIH0sCj4gLQkJeyBBWl9GMF9DT0RF Q19QSU4wX0NPTlRST0xfQVVESU9fREVTQ1JJUFRPUjEwLCBIRE1JX0FVRElPX0NPRElOR19UWVBF X0RUU19IRCB9LAo+IC0JCXsgQVpfRjBfQ09ERUNfUElOMF9DT05UUk9MX0FVRElPX0RFU0NSSVBU T1IxMSwgSERNSV9BVURJT19DT0RJTkdfVFlQRV9NTFAgfSwKPiAtCQl7IEFaX0YwX0NPREVDX1BJ TjBfQ09OVFJPTF9BVURJT19ERVNDUklQVE9SMTMsIEhETUlfQVVESU9fQ09ESU5HX1RZUEVfV01B X1BSTyB9LAo+IC0JfTsKPiAtCj4gLQlsaXN0X2Zvcl9lYWNoX2VudHJ5KGNvbm5lY3RvciwgJmVu Y29kZXItPmRldi0+bW9kZV9jb25maWcuY29ubmVjdG9yX2xpc3QsIGhlYWQpIHsKPiAtCQlpZiAo Y29ubmVjdG9yLT5lbmNvZGVyID09IGVuY29kZXIpIHsKPiAtCQkJcmFkZW9uX2Nvbm5lY3RvciA9 IHRvX3JhZGVvbl9jb25uZWN0b3IoY29ubmVjdG9yKTsKPiAtCQkJYnJlYWs7Cj4gLQkJfQo+IC0J fQo+IC0KPiAtCWlmICghcmFkZW9uX2Nvbm5lY3Rvcikgewo+IC0JCURSTV9FUlJPUigiQ291bGRu J3QgZmluZCBlbmNvZGVyJ3MgY29ubmVjdG9yXG4iKTsKPiAtCQlyZXR1cm47Cj4gLQl9Cj4gLQo+ IC0Jc2FkX2NvdW50ID0gZHJtX2VkaWRfdG9fc2FkKHJhZGVvbl9jb25uZWN0b3ItPmVkaWQsICZz YWRzKTsKPiAtCWlmIChzYWRfY291bnQgPCAwKSB7Cj4gLQkJRFJNX0VSUk9SKCJDb3VsZG4ndCBy ZWFkIFNBRHM6ICVkXG4iLCBzYWRfY291bnQpOwo+IC0JCXJldHVybjsKPiAtCX0KPiAtCUJVR19P Tighc2Fkcyk7Cj4gLQo+IC0JZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUoZWxkX3JlZ190b190 eXBlKTsgaSsrKSB7Cj4gLQkJdTMyIHZhbHVlID0gMDsKPiAtCQl1OCBzdGVyZW9fZnJlcXMgPSAw Owo+IC0JCWludCBtYXhfY2hhbm5lbHMgPSAtMTsKPiAtCQlpbnQgajsKPiAtCj4gLQkJZm9yIChq ID0gMDsgaiA8IHNhZF9jb3VudDsgaisrKSB7Cj4gLQkJCXN0cnVjdCBjZWFfc2FkICpzYWQgPSAm c2Fkc1tqXTsKPiAtCj4gLQkJCWlmIChzYWQtPmZvcm1hdCA9PSBlbGRfcmVnX3RvX3R5cGVbaV1b MV0pIHsKPiAtCQkJCWlmIChzYWQtPmNoYW5uZWxzID4gbWF4X2NoYW5uZWxzKSB7Cj4gLQkJCQkJ dmFsdWUgPSBNQVhfQ0hBTk5FTFMoc2FkLT5jaGFubmVscykgfAo+IC0JCQkJCQlERVNDUklQVE9S X0JZVEVfMihzYWQtPmJ5dGUyKSB8Cj4gLQkJCQkJCVNVUFBPUlRFRF9GUkVRVUVOQ0lFUyhzYWQt PmZyZXEpOwo+IC0JCQkJCW1heF9jaGFubmVscyA9IHNhZC0+Y2hhbm5lbHM7Cj4gLQkJCQl9Cj4g LQo+IC0JCQkJaWYgKHNhZC0+Zm9ybWF0ID09IEhETUlfQVVESU9fQ09ESU5HX1RZUEVfUENNKQo+ IC0JCQkJCXN0ZXJlb19mcmVxcyB8PSBzYWQtPmZyZXE7Cj4gLQkJCQllbHNlCj4gLQkJCQkJYnJl YWs7Cj4gLQkJCX0KPiAtCQl9Cj4gLQo+IC0JCXZhbHVlIHw9IFNVUFBPUlRFRF9GUkVRVUVOQ0lF U19TVEVSRU8oc3RlcmVvX2ZyZXFzKTsKPiAtCj4gLQkJV1JFRzMyKGVsZF9yZWdfdG9fdHlwZVtp XVswXSwgdmFsdWUpOwo+IC0JfQo+IC0KPiAtCWtmcmVlKHNhZHMpOwo+IC19Cj4gLQo+ICAgLyoK PiAgICAqIHVwZGF0ZSB0aGUgaW5mbyBmcmFtZXMgd2l0aCB0aGUgZGF0YSBmcm9tIHRoZSBjdXJy ZW50IGRpc3BsYXkgbW9kZQo+ICAgICovCj4gQEAgLTQ2OCwyNSArMzUzLDExIEBAIHZvaWQgcjYw MF9oZG1pX3NldG1vZGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kCj4gICAKPiAgIAlXUkVHMzIoSERNSTBfQVVESU9fQ1JDX0NPTlRST0wg KyBvZmZzZXQsIDB4MTAwMCk7Cj4gICAKPiAtCWlmIChBU0lDX0lTX0RDRTMyKHJkZXYpKSB7Cj4g LQkJV1JFRzMyKEhETUkwX0FVRElPX1BBQ0tFVF9DT05UUk9MICsgb2Zmc2V0LAo+IC0JCSAgICAg ICBIRE1JMF9BVURJT19ERUxBWV9FTigxKSB8IC8qIGRlZmF1bHQgYXVkaW8gZGVsYXkgKi8KPiAt CQkgICAgICAgSERNSTBfQVVESU9fUEFDS0VUU19QRVJfTElORSgzKSk7IC8qIHNob3VsZCBiZSBz dWZmaWVudCBmb3IgYWxsIGF1ZGlvIG1vZGVzIGFuZCBzbWFsbCBlbm91Z2ggZm9yIGFsbCBoYmxh bmtzICovCj4gLQkJV1JFRzMyKEFGTVRfQVVESU9fUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQsCj4g LQkJICAgICAgIEFGTVRfQVVESU9fU0FNUExFX1NFTkQgfCAvKiBzZW5kIGF1ZGlvIHBhY2tldHMg Ki8KPiAtCQkgICAgICAgQUZNVF82MDk1OF9DU19VUERBVEUpOyAvKiBhbGxvdyA2MDk1OCBjaGFu bmVsIHN0YXR1cyBmaWVsZHMgdG8gYmUgdXBkYXRlZCAqLwo+IC0JfSBlbHNlIHsKPiAtCQlXUkVH MzIoSERNSTBfQVVESU9fUEFDS0VUX0NPTlRST0wgKyBvZmZzZXQsCj4gLQkJICAgICAgIEhETUkw X0FVRElPX1NBTVBMRV9TRU5EIHwgLyogc2VuZCBhdWRpbyBwYWNrZXRzICovCj4gLQkJICAgICAg IEhETUkwX0FVRElPX0RFTEFZX0VOKDEpIHwgLyogZGVmYXVsdCBhdWRpbyBkZWxheSAqLwo+IC0J CSAgICAgICBIRE1JMF9BVURJT19QQUNLRVRTX1BFUl9MSU5FKDMpIHwgLyogc2hvdWxkIGJlIHN1 ZmZpZW50IGZvciBhbGwgYXVkaW8gbW9kZXMgYW5kIHNtYWxsIGVub3VnaCBmb3IgYWxsIGhibGFu a3MgKi8KPiAtCQkgICAgICAgSERNSTBfNjA5NThfQ1NfVVBEQVRFKTsgLyogYWxsb3cgNjA5NTgg Y2hhbm5lbCBzdGF0dXMgZmllbGRzIHRvIGJlIHVwZGF0ZWQgKi8KPiAtCX0KPiAtCj4gLQlpZiAo QVNJQ19JU19EQ0UzMihyZGV2KSkgewo+IC0JCWRjZTNfMl9hZm10X3dyaXRlX3NwZWFrZXJfYWxs b2NhdGlvbihlbmNvZGVyKTsKPiAtCQlkY2UzXzJfYWZtdF93cml0ZV9zYWRfcmVncyhlbmNvZGVy KTsKPiAtCX0KPiArCVdSRUczMihIRE1JMF9BVURJT19QQUNLRVRfQ09OVFJPTCArIG9mZnNldCwK PiArCSAgICAgICBIRE1JMF9BVURJT19TQU1QTEVfU0VORCB8IC8qIHNlbmQgYXVkaW8gcGFja2V0 cyAqLwo+ICsJICAgICAgIEhETUkwX0FVRElPX0RFTEFZX0VOKDEpIHwgLyogZGVmYXVsdCBhdWRp byBkZWxheSAqLwo+ICsJICAgICAgIEhETUkwX0FVRElPX1BBQ0tFVFNfUEVSX0xJTkUoMykgfCAv KiBzaG91bGQgYmUgc3VmZmllbnQgZm9yIGFsbCBhdWRpbyBtb2RlcyBhbmQgc21hbGwgZW5vdWdo IGZvciBhbGwgaGJsYW5rcyAqLwo+ICsJICAgICAgIEhETUkwXzYwOTU4X0NTX1VQREFURSk7IC8q IGFsbG93IDYwOTU4IGNoYW5uZWwgc3RhdHVzIGZpZWxkcyB0byBiZSB1cGRhdGVkICovCj4gICAK PiAgIAlXUkVHMzIoSERNSTBfQUNSX1BBQ0tFVF9DT05UUk9MICsgb2Zmc2V0LAo+ICAgCSAgICAg ICBIRE1JMF9BQ1JfU09VUkNFIHwgLyogc2VsZWN0IFNXIENUUyB2YWx1ZSAtIFhYWCB2ZXJpZnkg dGhhdCBodyBDVFMgd29ya3Mgb24gYWxsIGZhbWlsaWVzICovCj4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuYyBiL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24v cmFkZW9uX2FzaWMuYwo+IGluZGV4IDU5ZDU2ZGMuLjdiYzM2MDUgMTAwNjQ0Cj4gLS0tIGEvZHJp dmVycy9ncHUvZHJtL3JhZGVvbi9yYWRlb25fYXNpYy5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJt L3JhZGVvbi9yYWRlb25fYXNpYy5jCj4gQEAgLTEyMTQsNyArMTIxNCw3IEBAIHN0YXRpYyBzdHJ1 Y3QgcmFkZW9uX2FzaWMgcnY3NzBfYXNpYyA9IHsKPiAgIAkJLnNldF9iYWNrbGlnaHRfbGV2ZWwg PSAmYXRvbWJpb3Nfc2V0X2JhY2tsaWdodF9sZXZlbCwKPiAgIAkJLmdldF9iYWNrbGlnaHRfbGV2 ZWwgPSAmYXRvbWJpb3NfZ2V0X2JhY2tsaWdodF9sZXZlbCwKPiAgIAkJLmhkbWlfZW5hYmxlID0g JnI2MDBfaGRtaV9lbmFibGUsCj4gLQkJLmhkbWlfc2V0bW9kZSA9ICZyNjAwX2hkbWlfc2V0bW9k ZSwKPiArCQkuaGRtaV9zZXRtb2RlID0gJmRjZTNfMV9oZG1pX3NldG1vZGUsCj4gICAJfSwKPiAg IAkuY29weSA9IHsKPiAgIAkJLmJsaXQgPSAmcjYwMF9jb3B5X2NwZG1hLAo+IGRpZmYgLS1naXQg YS9kcml2ZXJzL2dwdS9kcm0vcmFkZW9uL3JhZGVvbl9hc2ljLmggYi9kcml2ZXJzL2dwdS9kcm0v cmFkZW9uL3JhZGVvbl9hc2ljLmgKPiBpbmRleCA1NjQ2ZjlkLi5kZWI4NDk2IDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuaAo+ICsrKyBiL2RyaXZlcnMv Z3B1L2RybS9yYWRlb24vcmFkZW9uX2FzaWMuaAo+IEBAIC0zOTEsNiArMzkxLDExIEBAIHZvaWQg cjYwMF9ybGNfc3RvcChzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7Cj4gICBpbnQgcjYwMF9h dWRpb19pbml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKPiAgIHN0cnVjdCByNjAwX2F1 ZGlvX3BpbiByNjAwX2F1ZGlvX3N0YXR1cyhzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7Cj4g ICB2b2lkIHI2MDBfYXVkaW9fZmluaShzdHJ1Y3QgcmFkZW9uX2RldmljZSAqcmRldik7Cj4gK3Zv aWQgcjYwMF9hdWRpb19zZXRfZHRvKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2RlciwgdTMyIGNs b2NrKTsKPiArdm9pZCByNjAwX2hkbWlfdXBkYXRlX2F2aV9pbmZvZnJhbWUoc3RydWN0IGRybV9l bmNvZGVyICplbmNvZGVyLCB2b2lkICpidWZmZXIsCj4gKwkJCQkgICAgc2l6ZV90IHNpemUpOwo+ ICt2b2lkIHI2MDBfaGRtaV91cGRhdGVfQUNSKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlciwg dWludDMyX3QgY2xvY2spOwo+ICt2b2lkIHI2MDBfaGRtaV9hdWRpb193b3JrYXJvdW5kKHN0cnVj dCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gICBpbnQgcjYwMF9oZG1pX2J1ZmZlcl9zdGF0dXNf Y2hhbmdlZChzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29kZXIpOwo+ICAgdm9pZCByNjAwX2hkbWlf dXBkYXRlX2F1ZGlvX3NldHRpbmdzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rlcik7Cj4gICB2 b2lkIHI2MDBfaGRtaV9lbmFibGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBib29sIGVu YWJsZSk7Cj4gQEAgLTQ2Myw2ICs0NjgsOCBAQCBpbnQgcnY3NzBfY29weV9kbWEoc3RydWN0IHJh ZGVvbl9kZXZpY2UgKnJkZXYsCj4gICB1MzIgcnY3NzBfZ2V0X3hjbGsoc3RydWN0IHJhZGVvbl9k ZXZpY2UgKnJkZXYpOwo+ICAgaW50IHJ2NzcwX3NldF91dmRfY2xvY2tzKHN0cnVjdCByYWRlb25f ZGV2aWNlICpyZGV2LCB1MzIgdmNsaywgdTMyIGRjbGspOwo+ICAgaW50IHJ2NzcwX2dldF90ZW1w KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKPiArLyogaGRtaSAqLwo+ICt2b2lkIGRjZTNf MV9oZG1pX3NldG1vZGUoc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyLCBzdHJ1Y3QgZHJtX2Rp c3BsYXlfbW9kZSAqbW9kZSk7Cj4gICAvKiBydjd4eCBwbSAqLwo+ICAgaW50IHJ2NzcwX2RwbV9p bml0KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKPiAgIGludCBydjc3MF9kcG1fZW5hYmxl KHN0cnVjdCByYWRlb25fZGV2aWNlICpyZGV2KTsKCl9fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5nIGxpc3QKZHJpLWRldmVsQGxp c3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg==