From mboxrd@z Thu Jan 1 00:00:00 1970 From: Scott Wood Subject: Re: [PATCH V3] thermal: qoriq: Add thermal management support Date: Thu, 24 Sep 2015 17:09:52 -0500 Message-ID: <1443132592.32298.56.camel@freescale.com> References: <1442996938-47147-1-git-send-email-hongtao.jia@freescale.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1442996938-47147-1-git-send-email-hongtao.jia@freescale.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: linuxppc-dev-bounces+glppe-linuxppc-embedded-2=m.gmane.org@lists.ozlabs.org Sender: "Linuxppc-dev" To: Jia Hongtao Cc: edubezval@gmail.com, linuxppc-dev@lists.ozlabs.org, linux-pm@vger.kernel.org List-Id: linux-pm@vger.kernel.org T24gV2VkLCAyMDE1LTA5LTIzIGF0IDE2OjI4ICswODAwLCBKaWEgSG9uZ3RhbyB3cm90ZToKPiBU aGlzIGRyaXZlciBhZGQgdGhlcm1hbCBtYW5hZ2VtZW50IHN1cHBvcnQgYnkgZW5hYmxpbmcgVE1V IChUaGVybWFsCj4gTW9uaXRvcmluZyBVbml0KSBvbiBRb3JJUSBwbGF0Zm9ybS4KPiAKPiBJdCdz IGJhc2VkIG9uIHRoZXJtYWwgb2YgZnJhbWV3b3JrOgo+IC0gVHJpcCBwb2ludHMgZGVmaW5lZCBp biBkZXZpY2UgdHJlZS4KPiAtIENwdWZyZXEgYXMgY29vbGluZyBkZXZpY2UgcmVnaXN0ZXJlZCBp biBxb3JpcSBjcHVmcmVxIGRyaXZlci4KCkkgZG9uJ3Qgc2VlIGFueSBjb29saW5nIGRldmljZSBy ZWdpc3RlcmVkIGluIHRoZSBxb3JpcSBjcHVmcmVxIGRyaXZlci4gIElzIAp0aGlzIGRlcGVuZGVu dCBvbiBzb21lIG90aGVyIHBhdGNoPwoKPiAKPiBTaWduZWQtb2ZmLWJ5OiBKaWEgSG9uZ3RhbyA8 aG9uZ3Rhby5qaWFAZnJlZXNjYWxlLmNvbT4KPiAtLS0KPiBWMzogVXNpbmcgdGhlcm1hbCBvZiBm cmFtZXdvcmsuCj4gCj4gIGRyaXZlcnMvdGhlcm1hbC9LY29uZmlnICAgICAgICAgfCAgMTEgKysK PiAgZHJpdmVycy90aGVybWFsL01ha2VmaWxlICAgICAgICB8ICAgMSArCj4gIGRyaXZlcnMvdGhl cm1hbC9xb3JpcV90aGVybWFsLmMgfCAyNjcgCj4gKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKwo+ICAzIGZpbGVzIGNoYW5nZWQsIDI3OSBpbnNlcnRpb25zKCspCj4gIGNy ZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3RoZXJtYWwvcW9yaXFfdGhlcm1hbC5jCj4gCj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdGhlcm1hbC9LY29uZmlnIGIvZHJpdmVycy90aGVybWFsL0tjb25m aWcKPiBpbmRleCAwMzkwMDQ0Li5jOTEwNDFiIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvdGhlcm1h bC9LY29uZmlnCj4gKysrIGIvZHJpdmVycy90aGVybWFsL0tjb25maWcKPiBAQCAtMTgwLDYgKzE4 MCwxNyBAQCBjb25maWcgSU1YX1RIRVJNQUwKPiAgICAgICAgIGNwdWZyZXEgaXMgdXNlZCBhcyB0 aGUgY29vbGluZyBkZXZpY2UgdG8gdGhyb3R0bGUgQ1BVcyB3aGVuIHRoZQo+ICAgICAgICAgcGFz c2l2ZSB0cmlwIGlzIGNyb3NzZWQuCj4gIAo+ICtjb25maWcgUU9SSVFfVEhFUk1BTAo+ICsgICAg IHRyaXN0YXRlICJGcmVlc2NhbGUgUW9ySVEgVGhlcm1hbCBNb25pdG9yaW5nIFVuaXQiCj4gKyAg ICAgZGVwZW5kcyBvbiBDUFVfVEhFUk1BTAo+ICsgICAgIGRlcGVuZHMgb24gVEhFUk1BTF9PRgo+ ICsgICAgIGRlZmF1bHQgbgo+ICsgICAgIGhlbHAKPiArICAgICAgIEVuYWJsZSB0aGVybWFsIG1h bmFnZW1lbnQgYmFzZWQgb24gRnJlZXNjYWxlIFFvcklRIFRoZXJtYWwgTW9uaXRvcmluZwo+ICsg ICAgICAgVW5pdCAoVE1VKS4gSXQgc3VwcG9ydHMgb25lIGNyaXRpY2FsIHRyaXAgcG9pbnQgYW5k IG9uZSBwYXNzaXZlIHRyaXAKPiArICAgICAgIHBvaW50LiBUaGUgY3B1ZnJlcSBpcyB1c2VkIGFz IHRoZSBjb29saW5nIGRldmljZSB0byB0aHJvdHRsZSBDUFVzIHdoZW4KPiArICAgICAgIHRoZSBw YXNzaXZlIHRyaXAgaXMgY3Jvc3NlZC4KCiJkZWZhdWx0IG4iIGlzIHVubmVjZXNzYXJ5IC0tIG4g aXMgYWxyZWFkeSB0aGUgZGVmYXVsdC4KCldoZXJlIGlzIHRoZSBpbnRlcmFjdGlvbiBiZXR3ZWVu IHRoaXMgZHJpdmVyIGFuZCBjcHVmcmVxPwoKPiBjb25maWcgU1BFQVJfVEhFUk1BTAo+ICAgICAg IGJvb2wgIlNQRUFyIHRoZXJtYWwgc2Vuc29yIGRyaXZlciIKPiAgICAgICBkZXBlbmRzIG9uIFBM QVRfU1BFQVIKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL01ha2VmaWxlIGIvZHJpdmVy cy90aGVybWFsL01ha2VmaWxlCj4gaW5kZXggMjZmMTYwOC4uZTU1ZDcwMyAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL3RoZXJtYWwvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL3RoZXJtYWwvTWFrZWZp bGUKPiBAQCAtMzMsNiArMzMsNyBAQCBvYmotJChDT05GSUdfRE9WRV9USEVSTUFMKSAgICAgICAg ICArPSBkb3ZlX3RoZXJtYWwubwo+ICBvYmotJChDT05GSUdfREI4NTAwX1RIRVJNQUwpICs9IGRi ODUwMF90aGVybWFsLm8KPiAgb2JqLSQoQ09ORklHX0FSTUFEQV9USEVSTUFMKSArPSBhcm1hZGFf dGhlcm1hbC5vCj4gIG9iai0kKENPTkZJR19JTVhfVEhFUk1BTCkgICAgKz0gaW14X3RoZXJtYWwu bwo+ICtvYmotJChDT05GSUdfUU9SSVFfVEhFUk1BTCkgICs9IHFvcmlxX3RoZXJtYWwubwo+ICBv YmotJChDT05GSUdfREI4NTAwX0NQVUZSRVFfQ09PTElORykgKz0gZGI4NTAwX2NwdWZyZXFfY29v bGluZy5vCj4gIG9iai0kKENPTkZJR19JTlRFTF9QT1dFUkNMQU1QKSAgICAgICArPSBpbnRlbF9w b3dlcmNsYW1wLm8KPiAgb2JqLSQoQ09ORklHX1g4Nl9QS0dfVEVNUF9USEVSTUFMKSAgICs9IHg4 Nl9wa2dfdGVtcF90aGVybWFsLm8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy90aGVybWFsL3Fvcmlx X3RoZXJtYWwuYyAKPiBiL2RyaXZlcnMvdGhlcm1hbC9xb3JpcV90aGVybWFsLmMKPiBuZXcgZmls ZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLjdjMmEzMjYxCj4gLS0tIC9kZXYvbnVsbAo+ ICsrKyBiL2RyaXZlcnMvdGhlcm1hbC9xb3JpcV90aGVybWFsLmMKPiBAQCAtMCwwICsxLDI2NyBA QAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgMjAxNSBGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvciwgSW5j Lgo+ICsgKgo+ICsgKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAo+ICsgKiB1bmRlciB0aGUgdGVybXMgYW5kIGNv bmRpdGlvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAo+ICsgKiB2ZXJzaW9u IDIsIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgo+ICsgKgo+ ICsgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgaXQgd2lsbCBiZSB1 c2VmdWwsIGJ1dCBXSVRIT1VUCj4gKyAqIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp bXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvcgo+ICsgKiBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Cj4gZm9yCj4gKyAqIG1vcmUgZGV0YWlscy4KPiArICoKPiArICovCj4gKwo+ICsvKgo+ICsgKiBC YXNlZCBvbiBGcmVlc2NhbGUgUW9ySVEgVGhlcm1hbCBNb25pdG9yaW5nIFVuaXQgKFRNVSkKPiAr ICovCgpXaGF0IGRvZXMgdGhpcyBjb21tZW50IG1lYW4/ICBUaGlzICppcyogdGhlICJGcmVlc2Nh bGUgUW9ySVEgVGhlcm1hbCAKTW9uaXRvcmluZyBVbml0IiBkcml2ZXIuCgo+ICsjaW5jbHVkZSA8 bGludXgvY3B1ZnJlcS5oPgoKV2hhdCBkbyB5b3UgdXNlIGZyb20gdGhpcyBoZWFkZXI/Cgo+ICsj aW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZp Y2UuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2Vyci5oPgo+ICsjaW5jbHVkZSA8bGludXgvaW8uaD4K PiArI2luY2x1ZGUgPGxpbnV4L29mLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9vZl9hZGRyZXNzLmg+ Cj4gKyNpbmNsdWRlIDxsaW51eC90aGVybWFsLmg+Cj4gKwo+ICsjaW5jbHVkZSAidGhlcm1hbF9j b3JlLmgiCj4gKwo+ICsjZGVmaW5lIFNJVEVTX01BWCAgICAxNgo+ICsKPiArLyoKPiArICogUW9y SVEgVE1VIFJlZ2lzdGVycwo+ICsgKi8KPiArc3RydWN0IHFvcmlxX3RtdV9zaXRlX3JlZ3Mgewo+ ICsgICAgIF9fYmUzMiB0cml0c3I7ICAgICAgICAgIC8qIEltbWVkaWF0ZSBUZW1wZXJhdHVyZSBT aXRlIFJlZ2lzdGVyICovCj4gKyAgICAgX19iZTMyIHRyYXRzcjsgICAgICAgICAgLyogQXZlcmFn ZSBUZW1wZXJhdHVyZSBTaXRlIFJlZ2lzdGVyICovCj4gKyAgICAgdTggcmVzMFsweDhdOwo+ICt9 IF9fcGFja2VkOwo+ICsKPiArc3RydWN0IHFvcmlxX3RtdV9yZWdzIHsKPiArICAgICBfX2JlMzIg dG1yOyAgICAgICAgICAgICAvKiBNb2RlIFJlZ2lzdGVyICovCj4gKyNkZWZpbmUgVE1SX0RJU0FC TEUgIDB4MAo+ICsjZGVmaW5lIFRNUl9NRSAgICAgICAgICAgICAgIDB4ODAwMDAwMDAKPiArI2Rl ZmluZSBUTVJfQUxQRiAgICAgMHgwYzAwMDAwMAo+ICsjZGVmaW5lIFRNUl9NU0lURSAgICAweDAw MDA4MDAwICAgICAgLyogQ29yZSB0ZW1wZXJhdHVyZSBzaXRlICovCj4gKyNkZWZpbmUgVE1SX0FM TCAgICAgICAgICAgICAgKFRNUl9NRSB8IFRNUl9BTFBGIHwgVE1SX01TSVRFKQo+ICsgICAgIF9f YmUzMiB0c3I7ICAgICAgICAgICAgIC8qIFN0YXR1cyBSZWdpc3RlciAqLwo+ICsgICAgIF9fYmUz MiB0bXRtaXI7ICAgICAgICAgIC8qIFRlbXBlcmF0dXJlIG1lYXN1cmVtZW50IGludGVydmFsIFJl Z2lzdGVyICovCj4gKyNkZWZpbmUgVE1UTUlSX0RFRkFVTFQgICAgICAgMHgwMDAwMDAwNwo+ICsg ICAgIHU4IHJlczBbMHgxNF07Cj4gKyAgICAgX19iZTMyIHRpZXI7ICAgICAgICAgICAgLyogSW50 ZXJydXB0IEVuYWJsZSBSZWdpc3RlciAqLwo+ICsjZGVmaW5lIFRJRVJfRElTQUJMRSAweDAKPiAr ICAgICBfX2JlMzIgdGlkcjsgICAgICAgICAgICAvKiBJbnRlcnJ1cHQgRGV0ZWN0IFJlZ2lzdGVy ICovCj4gKyAgICAgX19iZTMyIHRpc2NyOyAgICAgICAgICAgLyogSW50ZXJydXB0IFNpdGUgQ2Fw dHVyZSBSZWdpc3RlciAqLwo+ICsgICAgIF9fYmUzMiB0aWNzY3I7ICAgICAgICAgIC8qIEludGVy cnVwdCBDcml0aWNhbCBTaXRlIENhcHR1cmUgUmVnaXN0ZXIgKi8KPiArICAgICB1OCByZXMxWzB4 MTBdOwo+ICsgICAgIF9fYmUzMiB0bWh0Y3JoOyAgICAgICAgIC8qIEhpZ2ggVGVtcGVyYXR1cmUg Q2FwdHVyZSBSZWdpc3RlciAqLwo+ICsgICAgIF9fYmUzMiB0bWh0Y3JsOyAgICAgICAgIC8qIExv dyBUZW1wZXJhdHVyZSBDYXB0dXJlIFJlZ2lzdGVyICovCj4gKyAgICAgdTggcmVzMlsweDhdOwo+ ICsgICAgIF9fYmUzMiB0bWh0aXRyOyAgICAgICAgIC8qIEhpZ2ggVGVtcGVyYXR1cmUgSW1tZWRp YXRlIFRocmVzaG9sZCAqLwo+ICsgICAgIF9fYmUzMiB0bWh0YXRyOyAgICAgICAgIC8qIEhpZ2gg VGVtcGVyYXR1cmUgQXZlcmFnZSBUaHJlc2hvbGQgKi8KPiArICAgICBfX2JlMzIgdG1odGFjdHI7 ICAgICAgICAvKiBIaWdoIFRlbXBlcmF0dXJlIEF2ZXJhZ2UgQ3JpdCBUaHJlc2hvbGQgKi8KPiAr ICAgICB1OCByZXMzWzB4MjRdOwo+ICsgICAgIF9fYmUzMiB0dGNmZ3I7ICAgICAgICAgIC8qIFRl bXBlcmF0dXJlIENvbmZpZ3VyYXRpb24gUmVnaXN0ZXIgKi8KPiArICAgICBfX2JlMzIgdHNjZmdy OyAgICAgICAgICAvKiBTZW5zb3IgQ29uZmlndXJhdGlvbiBSZWdpc3RlciAqLwo+ICsgICAgIHU4 IHJlczRbMHg3OF07Cj4gKyAgICAgc3RydWN0IHFvcmlxX3RtdV9zaXRlX3JlZ3Mgc2l0ZVtTSVRF U19NQVhdOwo+ICsgICAgIHU4IHJlczVbMHg5ZjhdOwo+ICsgICAgIF9fYmUzMiBpcGJycjA7ICAg ICAgICAgIC8qIElQIEJsb2NrIFJldmlzaW9uIFJlZ2lzdGVyIDAgKi8KPiArICAgICBfX2JlMzIg aXBicnIxOyAgICAgICAgICAvKiBJUCBCbG9jayBSZXZpc2lvbiBSZWdpc3RlciAxICovCj4gKyAg ICAgdTggcmVzNlsweDMxMF07Cj4gKyAgICAgX19iZTMyIHR0cjBjcjsgICAgICAgICAgLyogVGVt cGVyYXR1cmUgUmFuZ2UgMCBDb250cm9sIFJlZ2lzdGVyICovCj4gKyAgICAgX19iZTMyIHR0cjFj cjsgICAgICAgICAgLyogVGVtcGVyYXR1cmUgUmFuZ2UgMSBDb250cm9sIFJlZ2lzdGVyICovCj4g KyAgICAgX19iZTMyIHR0cjJjcjsgICAgICAgICAgLyogVGVtcGVyYXR1cmUgUmFuZ2UgMiBDb250 cm9sIFJlZ2lzdGVyICovCj4gKyAgICAgX19iZTMyIHR0cjNjcjsgICAgICAgICAgLyogVGVtcGVy YXR1cmUgUmFuZ2UgMyBDb250cm9sIFJlZ2lzdGVyICovCj4gK307Cj4gKwo+ICsvKgo+ICsgKiBU aGVybWFsIHpvbmUgZGF0YQo+ICsgKi8KPiArc3RydWN0IHFvcmlxX3RtdV9kYXRhIHsKPiArICAg ICBzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHo7Cj4gKyAgICAgc3RydWN0IHFvcmlxX3Rt dV9yZWdzIF9faW9tZW0gKnJlZ3M7Cj4gK307Cj4gKwoKPiArc3RhdGljIGludCB0bXVfZ2V0X3Rl bXAodm9pZCAqcCwgaW50ICp0ZW1wKQo+ICt7Cj4gKyAgICAgdTggdmFsOwo+ICsgICAgIHN0cnVj dCBxb3JpcV90bXVfZGF0YSAqZGF0YSA9IHA7Cj4gKwo+ICsgICAgIHZhbCA9IGlvcmVhZDMyYmUo JmRhdGEtPnJlZ3MtPnNpdGVbMF0udHJpdHNyKTsKPiArICAgICAqdGVtcCA9IChpbnQpdmFsICog MTAwMDsKCldoeSBkb24ndCB5b3UgZGVjbGFyZSB2YWwgYXMgaW50IGluIHRoZSBmaXJzdCBwbGFj ZT8KCj4gKyAgICAgZm9yIChpID0gMDsgaSA8IGxlbjsgaSArPSA4LCBjYWxpYnJhdGlvbiArPSAy KSB7Cj4gKyAgICAgICAgICAgICB2YWwgPSAoaW50KW9mX3JlYWRfbnVtYmVyKGNhbGlicmF0aW9u LCAxKTsKPiArICAgICAgICAgICAgIGlvd3JpdGUzMmJlKHZhbCwgJmRhdGEtPnJlZ3MtPnR0Y2Zn cik7Cj4gKyAgICAgICAgICAgICB2YWwgPSAoaW50KW9mX3JlYWRfbnVtYmVyKGNhbGlicmF0aW9u ICsgMSwgMSk7Cj4gKyAgICAgICAgICAgICBpb3dyaXRlMzJiZSh2YWwsICZkYXRhLT5yZWdzLT50 c2NmZ3IpOwoKVW5uZWNlc3NhcnkgY2FzdHMuCgo+ICsgICAgIH0KPiArCj4gKyAgICAgcmV0dXJu IDA7Cj4gK30KPiArCj4gK3N0YXRpYyB2b2lkIHFvcmlxX3RtdV9pbml0X2RldmljZShzdHJ1Y3Qg cW9yaXFfdG11X2RhdGEgKmRhdGEpCj4gK3sKPiArICAgICAvKiBEaXNhYmxlIGludGVycnVwdCwg dXNpbmcgcG9sbGluZyBpbnN0ZWFkICovCj4gKyAgICAgaW93cml0ZTMyYmUoVElFUl9ESVNBQkxF LCAmZGF0YS0+cmVncy0+dGllcik7Cj4gKwo+ICsgICAgIC8qIFNldCB1cGRhdGVfaW50ZXJ2YWwg Ki8KPiArICAgICBpb3dyaXRlMzJiZShUTVRNSVJfREVGQVVMVCwgJmRhdGEtPnJlZ3MtPnRtdG1p cik7Cj4gKwo+ICsgICAgIC8qIEVuYWJsZSBtb25pdG9yaW5nICovCj4gKyAgICAgaW93cml0ZTMy YmUoVE1SX0FMTCwgJmRhdGEtPnJlZ3MtPnRtcik7Cj4gK30KPiArCj4gK3N0YXRpYyBzdHJ1Y3Qg dGhlcm1hbF96b25lX29mX2RldmljZV9vcHMgdG11X3R6X29wcyA9IHsKPiArICAgICAuZ2V0X3Rl bXAgPSB0bXVfZ2V0X3RlbXAsCj4gK307Cj4gKwo+ICtzdGF0aWMgaW50IHFvcmlxX3RtdV9wcm9i ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICt7Cj4gKyAgICAgaW50IHJldDsKPiAr ICAgICBjb25zdCBzdHJ1Y3QgdGhlcm1hbF90cmlwICp0cmlwOwo+ICsgICAgIHN0cnVjdCBxb3Jp cV90bXVfZGF0YSAqZGF0YTsKPiArCj4gKyAgICAgaWYgKCFwZGV2LT5kZXYub2Zfbm9kZSkgewo+ ICsgICAgICAgICAgICAgZGV2X2VycigmcGRldi0+ZGV2LCAiRGV2aWNlIE9GLU5vZGUgaXMgTlVM TCIpOwo+ICsgICAgICAgICAgICAgcmV0dXJuIC1FRkFVTFQ7Cj4gKyAgICAgfQoKRUZBVUxUIGlz IGZvciBiYWQgdXNlciBhZGRyZXNzZXMgYW5kIGlzIG5vdCBhcHByb3ByaWF0ZSBoZXJlLgoKPiAr Cj4gKyAgICAgZGF0YSA9IGRldm1fa3phbGxvYygmcGRldi0+ZGV2LCBzaXplb2Yoc3RydWN0IHFv cmlxX3RtdV9kYXRhKSwKPiArICAgICAgICAgICAgICAgICAgICAgICAgIEdGUF9LRVJORUwpOwo+ ICsgICAgIGlmICghZGF0YSkKPiArICAgICAgICAgICAgIHJldHVybiAtRU5PTUVNOwo+ICsKPiAr ICAgICBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBkYXRhKTsKPiArICAgICBkYXRhLT5yZWdz ID0gb2ZfaW9tYXAocGRldi0+ZGV2Lm9mX25vZGUsIDApOwo+ICsKPiArICAgICBpZiAoIWRhdGEt PnJlZ3MpIHsKPiArICAgICAgICAgICAgIGRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0byBn ZXQgbWVtb3J5IHJlZ2lvblxuIik7Cj4gKyAgICAgICAgICAgICByZXQgPSAtRU5PREVWOwo+ICsg ICAgICAgICAgICAgZ290byBlcnJfaW9tYXA7Cj4gKyAgICAgfQo+ICsKPiArICAgICByZXQgPSBx b3JpcV90bXVfY2FsaWJyYXRpb24ocGRldik7ICAgICAgLyogVE1VIGNhbGlicmF0aW9uICovCj4g KyAgICAgaWYgKHJldCA8IDApIHsKPiArICAgICAgICAgICAgIGRldl9lcnIoJnBkZXYtPmRldiwg IlRNVSBjYWxpYnJhdGlvbiBmYWlsZWQuXG4iKTsKPiArICAgICAgICAgICAgIHJldCA9IC1FTk9E RVY7Cj4gKyAgICAgICAgICAgICBnb3RvIGVycl9pb21hcDsKPiArICAgICB9CgpUaGF0IGZ1bmN0 aW9uIHJldHVybnMgbmVnYXRpdmUgd2hlbiBkZXZpY2UgdHJlZSBwcm9wZXJ0aWVzIGFyZSBtaXNz aW5nLCBub3QgCndoZW4gYSBjYWxpYnJhdGlvbiBwcm9jZWR1cmUgZmFpbHMuCgo+ICsKPiArICAg ICBxb3JpcV90bXVfaW5pdF9kZXZpY2UoZGF0YSk7ICAgIC8qIFRNVSBpbml0aWFsaXphdGlvbiAq Lwo+ICsKPiArICAgICBkYXRhLT50eiA9IHRoZXJtYWxfem9uZV9vZl9zZW5zb3JfcmVnaXN0ZXIo JnBkZXYtPmRldiwgMCwKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLCAmdG11 X3R6X29wcyk7Cj4gKyAgICAgaWYgKElTX0VSUihkYXRhLT50eikpIHsKPiArICAgICAgICAgICAg IHJldCA9IFBUUl9FUlIoZGF0YS0+dHopOwo+ICsgICAgICAgICAgICAgZGV2X2VycigmcGRldi0+ ZGV2LAo+ICsgICAgICAgICAgICAgICAgICAgICAiRmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwg em9uZSBkZXZpY2UgJWRcbiIsIHJldCk7Cj4gKyAgICAgICAgICAgICBnb3RvIGVycl90aGVybWFs Owo+ICsgICAgIH0KPiArCj4gKyAgICAgdHJpcCA9IG9mX3RoZXJtYWxfZ2V0X3RyaXBfcG9pbnRz KGRhdGEtPnR6KTsKPiArCj4gKyAgICAgZGF0YS0+dHotPm9wcy0+c2V0X21vZGUoZGF0YS0+dHos IFRIRVJNQUxfREVWSUNFX0VOQUJMRUQpOwoKRG9lc24ndCB0aGVybWFsX3pvbmVfb2Zfc2Vuc29y X3JlZ2lzdGVyKCkgYWxyZWFkeSBjYWxsIG9wcy0+c2V0X21vZGUgd2l0aCAKVEVSTUFMX0RFVklD RV9FTkFCTEVEPwoKPiArCj4gKyAgICAgcmV0dXJuIDA7Cj4gKwo+ICtlcnJfdGhlcm1hbDoKPiAr ICAgICBpb3VubWFwKGRhdGEtPnJlZ3MpOwo+ICsKPiArZXJyX2lvbWFwOgo+ICsgICAgIHBsYXRm b3JtX3NldF9kcnZkYXRhKHBkZXYsIE5VTEwpOwo+ICsgICAgIGRldm1fa2ZyZWUoJnBkZXYtPmRl diwgZGF0YSk7Cj4gKwo+ICsgICAgIHJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQg cW9yaXFfdG11X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICt7Cj4gKyAg ICAgc3RydWN0IHFvcmlxX3RtdV9kYXRhICpkYXRhID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRl dik7Cj4gKwo+ICsgICAgIC8qIERpc2FibGUgbW9uaXRvcmluZyAqLwo+ICsgICAgIGlvd3JpdGUz MmJlKFRNUl9ESVNBQkxFLCAmZGF0YS0+cmVncy0+dG1yKTsKPiArCj4gKyAgICAgdGhlcm1hbF96 b25lX29mX3NlbnNvcl91bnJlZ2lzdGVyKCZwZGV2LT5kZXYsIGRhdGEtPnR6KTsKPiArICAgICBp b3VubWFwKGRhdGEtPnJlZ3MpOwo+ICsKPiArICAgICBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2 LCBOVUxMKTsKPiArICAgICBkZXZtX2tmcmVlKCZwZGV2LT5kZXYsIGRhdGEpOwo+ICsKPiArICAg ICByZXR1cm4gMDsKPiArfQo+ICsKPiArI2lmZGVmIENPTkZJR19QTV9TTEVFUAo+ICtzdGF0aWMg aW50IHFvcmlxX3RtdV9zdXNwZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPiArewo+ICsgICAgIHN0 cnVjdCBxb3JpcV90bXVfZGF0YSAqZGF0YSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ICsKPiAr ICAgICAvKiBEaXNhYmxlIG1vbml0b3JpbmcgKi8KPiArICAgICBpb3dyaXRlMzJiZShUTVJfRElT QUJMRSwgJmRhdGEtPnJlZ3MtPnRtcik7Cj4gKyAgICAgZGF0YS0+dHotPm9wcy0+c2V0X21vZGUo ZGF0YS0+dHosIFRIRVJNQUxfREVWSUNFX0RJU0FCTEVEKTsKPiArCj4gKyAgICAgcmV0dXJuIDA7 Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgcW9yaXFfdG11X3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpk ZXYpCj4gK3sKPiArICAgICBzdHJ1Y3QgcW9yaXFfdG11X2RhdGEgKmRhdGEgPSBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsKPiArCj4gKyAgICAgLyogRW5hYmxlIG1vbml0b3JpbmcgKi8KPiArICAgICBp b3dyaXRlMzJiZShUTVJfQUxMLCAmZGF0YS0+cmVncy0+dG1yKTsKPiArICAgICBkYXRhLT50ei0+ b3BzLT5zZXRfbW9kZShkYXRhLT50eiwgVEhFUk1BTF9ERVZJQ0VfRU5BQkxFRCk7Cj4gKwo+ICsg ICAgIHJldHVybiAwOwo+ICt9Cj4gKyNlbmRpZgo+ICsKPiArc3RhdGljIFNJTVBMRV9ERVZfUE1f T1BTKHFvcmlxX3RtdV9wbV9vcHMsCj4gKyAgICAgICAgICAgICAgICAgICAgICBxb3JpcV90bXVf c3VzcGVuZCwgcW9yaXFfdG11X3Jlc3VtZSk7Cj4gKwoKCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg b2ZfZGV2aWNlX2lkIHFvcmlxX3RtdV9tYXRjaFtdID0gewo+ICsgICAgIHsgLmNvbXBhdGlibGUg PSAiZnNsLHFvcmlxLXRtdSIsIH0sCj4gKyAgICAge30sCj4gK307CgpCaW5kaW5nPwoKPiArCj4g K3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyIHFvcmlxX3RtdSA9IHsKPiArICAgICAuZHJp dmVyID0gewo+ICsgICAgICAgICAgICAgLm5hbWUgICAgICAgICAgID0gInFvcmlxX3RoZXJtYWwi LAo+ICsgICAgICAgICAgICAgLnBtID0gJnFvcmlxX3RtdV9wbV9vcHMsCj4gKyAgICAgICAgICAg ICAub2ZfbWF0Y2hfdGFibGUgPSBxb3JpcV90bXVfbWF0Y2gsCj4gKyAgICAgfSwKCldoeSB0aGUg dGFicyBhZnRlciAiLm5hbWUiPwoKLVNjb3R0CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpMaW51eHBwYy1kZXYgbWFpbGluZyBsaXN0CkxpbnV4cHBjLWRl dkBsaXN0cy5vemxhYnMub3JnCmh0dHBzOi8vbGlzdHMub3psYWJzLm9yZy9saXN0aW5mby9saW51 eHBwYy1kZXY=