RE: [PATCH v12 2/6] video: add of helper for videomode
From: Manjunathappa, Prakash <hidden>
Date: 2012-11-21 10:12:43
Also in:
dri-devel, linux-devicetree, linux-media
SGkgU3RlZmZlbiwNCg0KT24gVHVlLCBOb3YgMjAsIDIwMTIgYXQgMjE6MjQ6NTIsIFN0ZWZmZW4g VHJ1bXRyYXIgd3JvdGU6DQo+IFRoaXMgYWRkcyBzdXBwb3J0IGZvciByZWFkaW5nIGRpc3BsYXkg dGltaW5ncyBmcm9tIERUIG9yL2FuZCBjb252ZXJ0IG9uZSBvZiB0aG9zZQ0KPiB0aW1pbmdzIHRv IGEgdmlkZW9tb2RlLg0KPiBUaGUgb2ZfZGlzcGxheV90aW1pbmcgaW1wbGVtZW50YXRpb24gc3Vw cG9ydHMgbXVsdGlwbGUgY2hpbGRyZW4gd2hlcmUgZWFjaA0KPiBwcm9wZXJ0eSBjYW4gaGF2ZSB1 cCB0byAzIHZhbHVlcy4gQWxsIGNoaWxkcmVuIGFyZSByZWFkIGludG8gYW4gYXJyYXksIHRoYXQN Cj4gY2FuIGJlIHF1ZXJpZWQuDQo+IG9mX2dldF92aWRlb21vZGUgY29udmVydHMgZXhhY3RseSBv bmUgb2YgdGhhdCB0aW1pbmdzIHRvIGEgc3RydWN0IHZpZGVvbW9kZS4NCj4gDQo+IFNpZ25lZC1v ZmYtYnk6IFN0ZWZmZW4gVHJ1bXRyYXIgPHMudHJ1bXRyYXJAcGVuZ3V0cm9uaXguZGU+DQo+IFNp Z25lZC1vZmYtYnk6IFBoaWxpcHAgWmFiZWwgPHAuemFiZWxAcGVuZ3V0cm9uaXguZGU+DQo+IEFj a2VkLWJ5OiBTdGVwaGVuIFdhcnJlbiA8c3dhcnJlbkBudmlkaWEuY29tPg0KPiBSZXZpZXdlZC1i eTogVGhpZXJyeSBSZWRpbmcgPHRoaWVycnkucmVkaW5nQGF2aW9uaWMtZGVzaWduLmRlPg0KPiBB Y2tlZC1ieTogVGhpZXJyeSBSZWRpbmcgPHRoaWVycnkucmVkaW5nQGF2aW9uaWMtZGVzaWduLmRl Pg0KPiBUZXN0ZWQtYnk6IFRoaWVycnkgUmVkaW5nIDx0aGllcnJ5LnJlZGluZ0BhdmlvbmljLWRl c2lnbi5kZT4NCj4gVGVzdGVkLWJ5OiBQaGlsaXBwIFphYmVsIDxwLnphYmVsQHBlbmd1dHJvbml4 LmRlPg0KPiBSZXZpZXdlZC1ieTogTGF1cmVudCBQaW5jaGFydCA8bGF1cmVudC5waW5jaGFydEBp ZGVhc29uYm9hcmQuY29tPg0KPiAtLS0NCj4gIC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdzL3ZpZGVv L2Rpc3BsYXktdGltaW5ncy50eHQgIHwgIDEwNyArKysrKysrKysrDQo+ICBkcml2ZXJzL3ZpZGVv L0tjb25maWcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTMgKysNCj4gIGRyaXZl cnMvdmlkZW8vTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMiArDQo+ ICBkcml2ZXJzL3ZpZGVvL29mX2Rpc3BsYXlfdGltaW5nLmMgICAgICAgICAgICAgICAgICB8ICAy MTYgKysrKysrKysrKysrKysrKysrKysNCj4gIGRyaXZlcnMvdmlkZW8vb2ZfdmlkZW9tb2RlLmMg ICAgICAgICAgICAgICAgICAgICAgIHwgICA0OCArKysrKw0KPiAgaW5jbHVkZS9saW51eC9vZl9k aXNwbGF5X3RpbWluZ3MuaCAgICAgICAgICAgICAgICAgfCAgIDIwICsrDQo+ICBpbmNsdWRlL2xp bnV4L29mX3ZpZGVvbW9kZS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTggKysNCj4gIDcg ZmlsZXMgY2hhbmdlZCwgNDI0IGluc2VydGlvbnMoKykNCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBE b2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdmlkZW8vZGlzcGxheS10aW1pbmdzLnR4 dA0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvdmlkZW8vb2ZfZGlzcGxheV90aW1pbmcu Yw0KPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvdmlkZW8vb2ZfdmlkZW9tb2RlLmMNCj4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBpbmNsdWRlL2xpbnV4L29mX2Rpc3BsYXlfdGltaW5ncy5oDQo+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgaW5jbHVkZS9saW51eC9vZl92aWRlb21vZGUuaA0KPiANCj4g ZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy92aWRlby9kaXNw bGF5LXRpbWluZ3MudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3ZpZGVv L2Rpc3BsYXktdGltaW5ncy50eHQNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAw MDAwMC4uYTA1Y2FkZQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL0RvY3VtZW50YXRpb24vZGV2 aWNldHJlZS9iaW5kaW5ncy92aWRlby9kaXNwbGF5LXRpbWluZ3MudHh0DQo+IEBAIC0wLDAgKzEs MTA3IEBADQo+ICtkaXNwbGF5LXRpbWluZ3MgYmluZGluZ3MNCj4gKz09PT09PT09PT09PT09PT09 PT09PT09PQ0KPiArDQo+ICtkaXNwbGF5LXRpbWluZ3Mgbm9kZQ0KPiArLS0tLS0tLS0tLS0tLS0t LS0tLS0NCj4gKw0KPiArcmVxdWlyZWQgcHJvcGVydGllczoNCj4gKyAtIG5vbmUNCj4gKw0KPiAr b3B0aW9uYWwgcHJvcGVydGllczoNCj4gKyAtIG5hdGl2ZS1tb2RlOiBUaGUgbmF0aXZlIG1vZGUg Zm9yIHRoZSBkaXNwbGF5LCBpbiBjYXNlIG11bHRpcGxlIG1vZGVzIGFyZQ0KPiArCQlwcm92aWRl ZC4gV2hlbiBvbWl0dGVkLCBhc3N1bWUgdGhlIGZpcnN0IG5vZGUgaXMgdGhlIG5hdGl2ZS4NCj4g Kw0KPiArdGltaW5ncyBzdWJub2RlDQo+ICstLS0tLS0tLS0tLS0tLS0NCj4gKw0KPiArcmVxdWly ZWQgcHJvcGVydGllczoNCj4gKyAtIGhhY3RpdmUsIHZhY3RpdmU6IERpc3BsYXkgcmVzb2x1dGlv bg0KPiArIC0gaGZyb250LXBvcmNoLCBoYmFjay1wb3JjaCwgaHN5bmMtbGVuOiBIb3Jpem9udGFs IERpc3BsYXkgdGltaW5nIHBhcmFtZXRlcnMNCj4gKyAgIGluIHBpeGVscw0KPiArICAgdmZyb250 LXBvcmNoLCB2YmFjay1wb3JjaCwgdnN5bmMtbGVuOiBWZXJ0aWNhbCBkaXNwbGF5IHRpbWluZyBw YXJhbWV0ZXJzIGluDQo+ICsgICBsaW5lcw0KPiArIC0gY2xvY2stZnJlcXVlbmN5OiBkaXNwbGF5 IGNsb2NrIGluIEh6DQo+ICsNCj4gK29wdGlvbmFsIHByb3BlcnRpZXM6DQo+ICsgLSBoc3luYy1h Y3RpdmU6IEhzeW5jIHB1bHNlIGlzIGFjdGl2ZSBsb3cvaGlnaC9pZ25vcmVkDQo+ICsgLSB2c3lu Yy1hY3RpdmU6IFZzeW5jIHB1bHNlIGlzIGFjdGl2ZSBsb3cvaGlnaC9pZ25vcmVkDQo+ICsgLSBk ZS1hY3RpdmU6IERhdGEtRW5hYmxlIHB1bHNlIGlzIGFjdGl2ZSBsb3cvaGlnaC9pZ25vcmVkDQo+ ICsgLSBwaXhlbGNsay1pbnZlcnRlZDogcGl4ZWxjbG9jayBpcyBpbnZlcnRlZC9ub24taW52ZXJ0 ZWQvaWdub3JlZA0KPiArIC0gaW50ZXJsYWNlZCAoYm9vbCkNCj4gKyAtIGRvdWJsZXNjYW4gKGJv b2wpDQo+ICsNCj4gK0FsbCB0aGUgb3B0aW9uYWwgcHJvcGVydGllcyB0aGF0IGFyZSBub3QgYm9v bCBmb2xsb3cgdGhlIGZvbGxvd2luZyBsb2dpYzoNCj4gKyAgICA8MT46IGhpZ2ggYWN0aXZlDQo+ ICsgICAgPDA+OiBsb3cgYWN0aXZlDQo+ICsgICAgb21pdHRlZDogbm90IHVzZWQgb24gaGFyZHdh cmUNCj4gKw0KPiArVGhlcmUgYXJlIGRpZmZlcmVudCB3YXlzIG9mIGRlc2NyaWJpbmcgdGhlIGNh cGFiaWxpdGllcyBvZiBhIGRpc3BsYXkuIFRoZSBkZXZpY2V0cmVlDQo+ICtyZXByZXNlbnRhdGlv biBjb3JyZXNwb25kcyB0byB0aGUgb25lIGNvbW1vbmx5IGZvdW5kIGluIGRhdGFzaGVldHMgZm9y IGRpc3BsYXlzLg0KPiArSWYgYSBkaXNwbGF5IHN1cHBvcnRzIG11bHRpcGxlIHNpZ25hbCB0aW1p bmdzLCB0aGUgbmF0aXZlLW1vZGUgY2FuIGJlIHNwZWNpZmllZC4NCj4gKw0KPiArVGhlIHBhcmFt ZXRlcnMgYXJlIGRlZmluZWQgYXMNCj4gKw0KPiArc3RydWN0IGRpc3BsYXlfdGltaW5nDQo+ICs9 PT09PT09PT09PT09PT09PT09PT0NCj4gKw0KPiArICArLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tKw0KPiAr ICB8ICAgICAgICAgIHwgICAgICAgICAgICAgICAg4oaRICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgfCAgICAgICB8DQo+ICsgIHwgICAgICAgICAgfCAgICAgICAgICAgICAg ICB8dmJhY2tfcG9yY2ggICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICB8DQo+ICsg IHwgICAgICAgICAgfCAgICAgICAgICAgICAgICDihpMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICB8ICAgICAgIHwNCj4gKyAgKy0tLS0tLS0tLS0jIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy0tLS0tLS0tLS0rLS0tLS0tLSsNCj4gKyAg fCAgICAgICAgICAjICAgICAgICAgICAgICAgIOKGkSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAjICAgICAgICAgIHwgICAgICAgfA0KPiArICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfA0KPiArICB8 ICBoYmFjayAgICMgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAj ICBoZnJvbnQgIHwgaHN5bmMgfA0KPiArICB8ICAgcG9yY2ggICMgICAgICAgICAgICAgICAgfCAg ICAgICBoYWN0aXZlICAgICAgICAgICAgICAjICBwb3JjaCAgIHwgIGxlbiAgfA0KPiArICB8PC0t LS0tLS0tPiM8LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLT4jPC0t LS0tLS0tPnw8LS0tLS0+fA0KPiArICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfA0KPiArICB8ICAgICAg ICAgICMgICAgICAgICAgICAgICAgfHZhY3RpdmUgICAgICAgICAgICAgICAgICAgICAjICAgICAg ICAgIHwgICAgICAgfA0KPiArICB8ICAgICAgICAgICMgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgIHwgICAgICAgfA0KPiArICB8ICAgICAgICAg ICMgICAgICAgICAgICAgICAg4oaTICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAg ICAgfCAgICAgICB8DQo+ICsgICstLS0tLS0tLS0tIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMtLS0tLS0tLS0tKy0tLS0tLS0rDQo+ICsgIHwgICAgICAgICAg fCAgICAgICAgICAgICAgICDihpEgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICB8ICAgICAgIHwNCj4gKyAgfCAgICAgICAgICB8ICAgICAgICAgICAgICAgIHx2ZnJvbnRfcG9y Y2ggICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgIHwNCj4gKyAgfCAgICAgICAgICB8 ICAgICAgICAgICAgICAgIOKGkyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg IHwgICAgICAgfA0KPiArICArLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tKw0KPiArICB8ICAgICAgICAgIHwg ICAgICAgICAgICAgICAg4oaRICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg fCAgICAgICB8DQo+ICsgIHwgICAgICAgICAgfCAgICAgICAgICAgICAgICB8dnN5bmNfbGVuICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICB8DQo+ICsgIHwgICAgICAgICAgfCAg ICAgICAgICAgICAgICDihpMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8 ICAgICAgIHwNCj4gKyAgKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLSsNCj4gKw0KPiArDQo+ICtFeGFtcGxl Og0KPiArDQo+ICsJZGlzcGxheS10aW1pbmdzIHsNCj4gKwkJbmF0aXZlLW1vZGUgPSA8JnRpbWlu ZzA+Ow0KPiArCQl0aW1pbmcwOiAxOTIwcDI0IHsNCj4gKwkJCS8qIDE5MjB4MTA4MHAyNCAqLw0K PiArCQkJY2xvY2stZnJlcXVlbmN5ID0gPDUyMDAwMDAwPjsNCj4gKwkJCWhhY3RpdmUgPSA8MTky MD47DQo+ICsJCQl2YWN0aXZlID0gPDEwODA+Ow0KPiArCQkJaGZyb250LXBvcmNoID0gPDI1PjsN Cj4gKwkJCWhiYWNrLXBvcmNoID0gPDI1PjsNCj4gKwkJCWhzeW5jLWxlbiA9IDwyNT47DQo+ICsJ CQl2YmFjay1wb3JjaCA9IDwyPjsNCj4gKwkJCXZmcm9udC1wb3JjaCA9IDwyPjsNCj4gKwkJCXZz eW5jLWxlbiA9IDwyPjsNCj4gKwkJCWhzeW5jLWFjdGl2ZSA9IDwxPjsNCj4gKwkJfTsNCj4gKwl9 Ow0KPiArDQo+ICtFdmVyeSByZXF1aXJlZCBwcm9wZXJ0eSBhbHNvIHN1cHBvcnRzIHRoZSB1c2Ug b2YgcmFuZ2VzLCBzbyB0aGUgY29tbW9ubHkgdXNlZA0KPiArZGF0YXNoZWV0IGRlc2NyaXB0aW9u IHdpdGggPG1pbiB0eXAgbWF4Pi10dXBsZXMgY2FuIGJlIHVzZWQuDQo+ICsNCj4gK0V4YW1wbGU6 DQo+ICsNCj4gKwl0aW1pbmcxOiB0aW1pbmcgew0KPiArCQkvKiAxOTIweDEwODBwMjQgKi8NCj4g KwkJY2xvY2stZnJlcXVlbmN5ID0gPDE0ODUwMDAwMD47DQo+ICsJCWhhY3RpdmUgPSA8MTkyMD47 DQo+ICsJCXZhY3RpdmUgPSA8MTA4MD47DQo+ICsJCWhzeW5jLWxlbiA9IDwwIDQ0IDYwPjsNCj4g KwkJaGZyb250LXBvcmNoID0gPDgwIDg4IDk1PjsNCj4gKwkJaGJhY2stcG9yY2ggPSA8MTAwIDE0 OCAxNjA+Ow0KPiArCQl2ZnJvbnQtcG9yY2ggPSA8MCA0IDY+Ow0KPiArCQl2YmFjay1wb3JjaCA9 IDwwIDM2IDUwPjsNCj4gKwkJdnN5bmMtbGVuID0gPDAgNSA2PjsNCj4gKwl9Ow0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy92aWRlby9LY29uZmlnIGIvZHJpdmVycy92aWRlby9LY29uZmlnDQo+IGlu ZGV4IDJhMjNiMTguLjgwN2ZlZGQgMTAwNjQ0DQo+IC0tLSBhL2RyaXZlcnMvdmlkZW8vS2NvbmZp Zw0KPiArKysgYi9kcml2ZXJzL3ZpZGVvL0tjb25maWcNCj4gQEAgLTM5LDYgKzM5LDE5IEBAIGNv bmZpZyBESVNQTEFZX1RJTUlORw0KPiAgY29uZmlnIFZJREVPTU9ERQ0KPiAgICAgICAgIGJvb2wN Cj4gIA0KPiArY29uZmlnIE9GX0RJU1BMQVlfVElNSU5HDQo+ICsJYm9vbCAiRW5hYmxlIE9GIGRp c3BsYXkgdGltaW5nIHN1cHBvcnQiDQo+ICsJc2VsZWN0IERJU1BMQVlfVElNSU5HDQo+ICsJaGVs cA0KPiArCSAgaGVscGVyIHRvIHBhcnNlIGRpc3BsYXkgdGltaW5ncyBmcm9tIHRoZSBkZXZpY2V0 cmVlDQo+ICsNCj4gK2NvbmZpZyBPRl9WSURFT01PREUNCj4gKwlib29sICJFbmFibGUgT0Ygdmlk ZW9tb2RlIHN1cHBvcnQiDQo+ICsJc2VsZWN0IFZJREVPTU9ERQ0KPiArCXNlbGVjdCBPRl9ESVNQ TEFZX1RJTUlORw0KPiArCWhlbHANCj4gKwkgIGhlbHBlciB0byBnZXQgdmlkZW9tb2RlcyBmcm9t IHRoZSBkZXZpY2V0cmVlDQo+ICsNCj4gIG1lbnVjb25maWcgRkINCj4gIAl0cmlzdGF0ZSAiU3Vw cG9ydCBmb3IgZnJhbWUgYnVmZmVyIGRldmljZXMiDQo+ICAJLS0taGVscC0tLQ0KPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy92aWRlby9NYWtlZmlsZSBiL2RyaXZlcnMvdmlkZW8vTWFrZWZpbGUNCj4g aW5kZXggZmMzMDQzOS4uYjkzNmIwMCAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy92aWRlby9NYWtl ZmlsZQ0KPiArKysgYi9kcml2ZXJzL3ZpZGVvL01ha2VmaWxlDQo+IEBAIC0xNjgsNCArMTY4LDYg QEAgb2JqLSQoQ09ORklHX0ZCX1ZJUlRVQUwpICAgICAgICAgICs9IHZmYi5vDQo+ICAjdmlkZW8g b3V0cHV0IHN3aXRjaCBzeXNmcyBkcml2ZXINCj4gIG9iai0kKENPTkZJR19WSURFT19PVVRQVVRf Q09OVFJPTCkgKz0gb3V0cHV0Lm8NCj4gIG9iai0kKENPTkZJR19ESVNQTEFZX1RJTUlORykgKz0g ZGlzcGxheV90aW1pbmcubw0KPiArb2JqLSQoQ09ORklHX09GX0RJU1BMQVlfVElNSU5HKSArPSBv Zl9kaXNwbGF5X3RpbWluZy5vDQo+ICBvYmotJChDT05GSUdfVklERU9NT0RFKSArPSB2aWRlb21v ZGUubw0KPiArb2JqLSQoQ09ORklHX09GX1ZJREVPTU9ERSkgKz0gb2ZfdmlkZW9tb2RlLm8NCj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vb2ZfZGlzcGxheV90aW1pbmcuYyBiL2RyaXZlcnMv dmlkZW8vb2ZfZGlzcGxheV90aW1pbmcuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRl eCAwMDAwMDAwLi4zZWI3MzFmDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZHJpdmVycy92aWRl by9vZl9kaXNwbGF5X3RpbWluZy5jDQo+IEBAIC0wLDAgKzEsMjE2IEBADQo+ICsvKg0KPiArICog T0YgaGVscGVycyBmb3IgcGFyc2luZyBkaXNwbGF5IHRpbWluZ3MNCj4gKyAqDQo+ICsgKiBDb3B5 cmlnaHQgKGMpIDIwMTIgU3RlZmZlbiBUcnVtdHJhciA8cy50cnVtdHJhckBwZW5ndXRyb25peC5k ZT4sIFBlbmd1dHJvbml4DQo+ICsgKg0KPiArICogYmFzZWQgb24gb2ZfdmlkZW9tb2RlLmMgYnkg U2FzY2hhIEhhdWVyIDxzLmhhdWVyQHBlbmd1dHJvbml4LmRlPg0KPiArICoNCj4gKyAqIFRoaXMg ZmlsZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgR1BMdjINCj4gKyAqLw0KPiArI2luY2x1ZGUgPGxp bnV4L29mLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvc2xhYi5oPg0KPiArI2luY2x1ZGUgPGxpbnV4 L2V4cG9ydC5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L29mX2Rpc3BsYXlfdGltaW5ncy5oPg0KPiAr DQo+ICsvKioNCj4gKyAqIHBhcnNlX3Byb3BlcnR5IC0gcGFyc2UgdGltaW5nX2VudHJ5IGZyb20g ZGV2aWNlX25vZGUNCj4gKyAqIEBucDogZGV2aWNlX25vZGUgd2l0aCB0aGUgcHJvcGVydHkNCj4g KyAqIEBuYW1lOiBuYW1lIG9mIHRoZSBwcm9wZXJ0eQ0KPiArICogQHJlc3VsdDogd2lsbCBiZSBz ZXQgdG8gdGhlIHJldHVybiB2YWx1ZQ0KPiArICoNCj4gKyAqIERFU0NSSVBUSU9OOg0KPiArICog RXZlcnkgZGlzcGxheV90aW1pbmcgY2FuIGJlIHNwZWNpZmllZCB3aXRoIGVpdGhlciBqdXN0IHRo ZSB0eXBpY2FsIHZhbHVlIG9yDQo+ICsgKiBhIHJhbmdlIGNvbnNpc3Rpbmcgb2YgbWluL3R5cC9t YXguIFRoaXMgZnVuY3Rpb24gaGVscHMgaGFuZGxpbmcgdGhpcw0KPiArICoqLw0KPiArc3RhdGlj IGludCBwYXJzZV9wcm9wZXJ0eShjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCBjb25zdCBj aGFyICpuYW1lLA0KPiArCQkJICBzdHJ1Y3QgdGltaW5nX2VudHJ5ICpyZXN1bHQpDQo+ICt7DQo+ ICsJc3RydWN0IHByb3BlcnR5ICpwcm9wOw0KPiArCWludCBsZW5ndGgsIGNlbGxzLCByZXQ7DQo+ ICsNCj4gKwlwcm9wID0gb2ZfZmluZF9wcm9wZXJ0eShucCwgbmFtZSwgJmxlbmd0aCk7DQo+ICsJ aWYgKCFwcm9wKSB7DQo+ICsJCXByX2VycigiJXM6IGNvdWxkIG5vdCBmaW5kIHByb3BlcnR5ICVz XG4iLCBfX2Z1bmNfXywgbmFtZSk7DQo+ICsJCXJldHVybiAtRUlOVkFMOw0KPiArCX0NCj4gKw0K PiArCWNlbGxzID0gbGVuZ3RoIC8gc2l6ZW9mKHUzMik7DQo+ICsJaWYgKGNlbGxzID09IDEpIHsN Cj4gKwkJcmV0ID0gb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsIG5hbWUsICZyZXN1bHQtPnR5cCk7 DQo+ICsJCXJlc3VsdC0+bWluID0gcmVzdWx0LT50eXA7DQo+ICsJCXJlc3VsdC0+bWF4ID0gcmVz dWx0LT50eXA7DQo+ICsJfSBlbHNlIGlmIChjZWxscyA9PSAzKSB7DQo+ICsJCXJldCA9IG9mX3By b3BlcnR5X3JlYWRfdTMyX2FycmF5KG5wLCBuYW1lLCAmcmVzdWx0LT5taW4sIGNlbGxzKTsNCj4g Kwl9IGVsc2Ugew0KPiArCQlwcl9lcnIoIiVzOiBpbGxlZ2FsIHRpbWluZyBzcGVjaWZpY2F0aW9u IGluICVzXG4iLCBfX2Z1bmNfXywgbmFtZSk7DQo+ICsJCXJldHVybiAtRUlOVkFMOw0KPiArCX0N Cj4gKw0KPiArCXJldHVybiByZXQ7DQo+ICt9DQo+ICsNCj4gKy8qKg0KPiArICogb2ZfZ2V0X2Rp c3BsYXlfdGltaW5nIC0gcGFyc2UgZGlzcGxheV90aW1pbmcgZW50cnkgZnJvbSBkZXZpY2Vfbm9k ZQ0KPiArICogQG5wOiBkZXZpY2Vfbm9kZSB3aXRoIHRoZSBwcm9wZXJ0aWVzDQo+ICsgKiovDQo+ ICtzdGF0aWMgc3RydWN0IGRpc3BsYXlfdGltaW5nICpvZl9nZXRfZGlzcGxheV90aW1pbmcoY29u c3Qgc3RydWN0IGRldmljZV9ub2RlICpucCkNCj4gK3sNCj4gKwlzdHJ1Y3QgZGlzcGxheV90aW1p bmcgKmR0Ow0KPiArCWludCByZXQgPSAwOw0KPiArDQo+ICsJZHQgPSBremFsbG9jKHNpemVvZigq ZHQpLCBHRlBfS0VSTkVMKTsNCj4gKwlpZiAoIWR0KSB7DQo+ICsJCXByX2VycigiJXM6IGNvdWxk IG5vdCBhbGxvY2F0ZSBkaXNwbGF5X3RpbWluZyBzdHJ1Y3RcbiIsIF9fZnVuY19fKTsNCj4gKwkJ cmV0dXJuIE5VTEw7DQo+ICsJfQ0KPiArDQo+ICsJcmV0IHw9IHBhcnNlX3Byb3BlcnR5KG5wLCAi aGJhY2stcG9yY2giLCAmZHQtPmhiYWNrX3BvcmNoKTsNCj4gKwlyZXQgfD0gcGFyc2VfcHJvcGVy dHkobnAsICJoZnJvbnQtcG9yY2giLCAmZHQtPmhmcm9udF9wb3JjaCk7DQo+ICsJcmV0IHw9IHBh cnNlX3Byb3BlcnR5KG5wLCAiaGFjdGl2ZSIsICZkdC0+aGFjdGl2ZSk7DQo+ICsJcmV0IHw9IHBh cnNlX3Byb3BlcnR5KG5wLCAiaHN5bmMtbGVuIiwgJmR0LT5oc3luY19sZW4pOw0KPiArCXJldCB8 PSBwYXJzZV9wcm9wZXJ0eShucCwgInZiYWNrLXBvcmNoIiwgJmR0LT52YmFja19wb3JjaCk7DQo+ ICsJcmV0IHw9IHBhcnNlX3Byb3BlcnR5KG5wLCAidmZyb250LXBvcmNoIiwgJmR0LT52ZnJvbnRf cG9yY2gpOw0KPiArCXJldCB8PSBwYXJzZV9wcm9wZXJ0eShucCwgInZhY3RpdmUiLCAmZHQtPnZh Y3RpdmUpOw0KPiArCXJldCB8PSBwYXJzZV9wcm9wZXJ0eShucCwgInZzeW5jLWxlbiIsICZkdC0+ dnN5bmNfbGVuKTsNCj4gKwlyZXQgfD0gcGFyc2VfcHJvcGVydHkobnAsICJjbG9jay1mcmVxdWVu Y3kiLCAmZHQtPnBpeGVsY2xvY2spOw0KPiArDQo+ICsJb2ZfcHJvcGVydHlfcmVhZF91MzIobnAs ICJ2c3luYy1hY3RpdmUiLCAmZHQtPnZzeW5jX3BvbF9hY3RpdmUpOw0KPiArCW9mX3Byb3BlcnR5 X3JlYWRfdTMyKG5wLCAiaHN5bmMtYWN0aXZlIiwgJmR0LT5oc3luY19wb2xfYWN0aXZlKTsNCj4g KwlvZl9wcm9wZXJ0eV9yZWFkX3UzMihucCwgImRlLWFjdGl2ZSIsICZkdC0+ZGVfcG9sX2FjdGl2 ZSk7DQo+ICsJb2ZfcHJvcGVydHlfcmVhZF91MzIobnAsICJwaXhlbGNsay1pbnZlcnRlZCIsICZk dC0+cGl4ZWxjbGtfcG9sKTsNCj4gKwlkdC0+aW50ZXJsYWNlZCA9IG9mX3Byb3BlcnR5X3JlYWRf Ym9vbChucCwgImludGVybGFjZWQiKTsNCj4gKwlkdC0+ZG91Ymxlc2NhbiA9IG9mX3Byb3BlcnR5 X3JlYWRfYm9vbChucCwgImRvdWJsZXNjYW4iKTsNCj4gKw0KPiArCWlmIChyZXQpIHsNCj4gKwkJ cHJfZXJyKCIlczogZXJyb3IgcmVhZGluZyB0aW1pbmcgcHJvcGVydGllc1xuIiwgX19mdW5jX18p Ow0KPiArCQlrZnJlZShkdCk7DQo+ICsJCXJldHVybiBOVUxMOw0KPiArCX0NCj4gKw0KPiArCXJl dHVybiBkdDsNCj4gK30NCj4gKw0KPiArLyoqDQo+ICsgKiBvZl9nZXRfZGlzcGxheV90aW1pbmdz IC0gcGFyc2UgYWxsIGRpc3BsYXlfdGltaW5nIGVudHJpZXMgZnJvbSBhIGRldmljZV9ub2RlDQo+ ICsgKiBAbnA6IGRldmljZV9ub2RlIHdpdGggdGhlIHN1Ym5vZGVzDQo+ICsgKiovDQo+ICtzdHJ1 Y3QgZGlzcGxheV90aW1pbmdzICpvZl9nZXRfZGlzcGxheV90aW1pbmdzKGNvbnN0IHN0cnVjdCBk ZXZpY2Vfbm9kZSAqbnApDQo+ICt7DQo+ICsJc3RydWN0IGRldmljZV9ub2RlICp0aW1pbmdzX25w Ow0KPiArCXN0cnVjdCBkZXZpY2Vfbm9kZSAqZW50cnk7DQo+ICsJc3RydWN0IGRldmljZV9ub2Rl ICpuYXRpdmVfbW9kZTsNCj4gKwlzdHJ1Y3QgZGlzcGxheV90aW1pbmdzICpkaXNwOw0KPiArDQo+ ICsJaWYgKCFucCkgew0KPiArCQlwcl9lcnIoIiVzOiBubyBkZXZpY2Vub2RlIGdpdmVuXG4iLCBf X2Z1bmNfXyk7DQo+ICsJCXJldHVybiBOVUxMOw0KPiArCX0NCj4gKw0KPiArCXRpbWluZ3NfbnAg PSBvZl9maW5kX25vZGVfYnlfbmFtZShucCwgImRpc3BsYXktdGltaW5ncyIpOw0KDQpJIGdldCBi ZWxvdyBidWlsZCB3YXJuaW5ncyBvbiB0aGlzIGxpbmUNCmRyaXZlcnMvdmlkZW8vb2ZfZGlzcGxh eV90aW1pbmcuYzogSW4gZnVuY3Rpb24gJ29mX2dldF9kaXNwbGF5X3RpbWluZ3MnOg0KZHJpdmVy cy92aWRlby9vZl9kaXNwbGF5X3RpbWluZy5jOjEwOToyOiB3YXJuaW5nOiBwYXNzaW5nIGFyZ3Vt ZW50IDEgb2YgJ29mX2ZpbmRfbm9kZV9ieV9uYW1lJyBkaXNjYXJkcyBxdWFsaWZpZXJzIGZyb20g cG9pbnRlciB0YXJnZXQgdHlwZQ0KaW5jbHVkZS9saW51eC9vZi5oOjE2NzoyODogbm90ZTogZXhw ZWN0ZWQgJ3N0cnVjdCBkZXZpY2Vfbm9kZSAqJyBidXQgYXJndW1lbnQgaXMgb2YgdHlwZSAnY29u c3Qgc3RydWN0IGRldmljZV9ub2RlIConDQoNCj4gKwlpZiAoIXRpbWluZ3NfbnApIHsNCj4gKwkJ cHJfZXJyKCIlczogY291bGQgbm90IGZpbmQgZGlzcGxheS10aW1pbmdzIG5vZGVcbiIsIF9fZnVu Y19fKTsNCj4gKwkJcmV0dXJuIE5VTEw7DQo+ICsJfQ0KPiArDQo+ICsJZGlzcCA9IGt6YWxsb2Mo c2l6ZW9mKCpkaXNwKSwgR0ZQX0tFUk5FTCk7DQo+ICsJaWYgKCFkaXNwKSB7DQo+ICsJCXByX2Vy cigiJXM6IGNvdWxkIG5vdCBhbGxvY2F0ZSBzdHJ1Y3QgZGlzcCdcbiIsIF9fZnVuY19fKTsNCj4g KwkJZ290byBkaXNwZmFpbDsNCj4gKwl9DQo+ICsNCj4gKwllbnRyeSA9IG9mX3BhcnNlX3BoYW5k bGUodGltaW5nc19ucCwgIm5hdGl2ZS1tb2RlIiwgMCk7DQo+ICsJLyogYXNzdW1lIGZpcnN0IGNo aWxkIGFzIG5hdGl2ZSBtb2RlIGlmIG5vbmUgcHJvdmlkZWQgKi8NCj4gKwlpZiAoIWVudHJ5KQ0K PiArCQllbnRyeSA9IG9mX2dldF9uZXh0X2NoaWxkKG5wLCBOVUxMKTsNCj4gKwkvKiBpZiB0aGVy ZSBpcyBubyBjaGlsZCwgaXQgaXMgdXNlbGVzcyB0byBnbyBvbiAqLw0KPiArCWlmICghZW50cnkp IHsNCj4gKwkJcHJfZXJyKCIlczogbm8gdGltaW5nIHNwZWNpZmljYXRpb25zIGdpdmVuXG4iLCBf X2Z1bmNfXyk7DQo+ICsJCWdvdG8gZW50cnlmYWlsOw0KPiArCX0NCj4gKw0KPiArCXByX2luZm8o IiVzOiB1c2luZyAlcyBhcyBkZWZhdWx0IHRpbWluZ1xuIiwgX19mdW5jX18sIGVudHJ5LT5uYW1l KTsNCj4gKw0KPiArCW5hdGl2ZV9tb2RlID0gZW50cnk7DQo+ICsNCj4gKwlkaXNwLT5udW1fdGlt aW5ncyA9IG9mX2dldF9jaGlsZF9jb3VudCh0aW1pbmdzX25wKTsNCj4gKwlpZiAoZGlzcC0+bnVt X3RpbWluZ3MgPT0gMCkgew0KPiArCQkvKiBzaG91bGQgbmV2ZXIgaGFwcGVuLCBhcyBlbnRyeSB3 YXMgYWxyZWFkeSBmb3VuZCBhYm92ZSAqLw0KPiArCQlwcl9lcnIoIiVzOiBubyB0aW1pbmdzIHNw ZWNpZmllZFxuIiwgX19mdW5jX18pOw0KPiArCQlnb3RvIGVudHJ5ZmFpbDsNCj4gKwl9DQo+ICsN Cj4gKwlkaXNwLT50aW1pbmdzID0ga3phbGxvYyhzaXplb2Yoc3RydWN0IGRpc3BsYXlfdGltaW5n ICopICogZGlzcC0+bnVtX3RpbWluZ3MsDQo+ICsJCQkJR0ZQX0tFUk5FTCk7DQo+ICsJaWYgKCFk aXNwLT50aW1pbmdzKSB7DQo+ICsJCXByX2VycigiJXM6IGNvdWxkIG5vdCBhbGxvY2F0ZSB0aW1p bmdzIGFycmF5XG4iLCBfX2Z1bmNfXyk7DQo+ICsJCWdvdG8gZW50cnlmYWlsOw0KPiArCX0NCj4g Kw0KPiArCWRpc3AtPm51bV90aW1pbmdzID0gMDsNCj4gKwlkaXNwLT5uYXRpdmVfbW9kZSA9IDA7 DQo+ICsNCj4gKwlmb3JfZWFjaF9jaGlsZF9vZl9ub2RlKHRpbWluZ3NfbnAsIGVudHJ5KSB7DQo+ ICsJCXN0cnVjdCBkaXNwbGF5X3RpbWluZyAqZHQ7DQo+ICsNCj4gKwkJZHQgPSBvZl9nZXRfZGlz cGxheV90aW1pbmcoZW50cnkpOw0KPiArCQlpZiAoIWR0KSB7DQo+ICsJCQkvKg0KPiArCQkJICog dG8gbm90IGVuY291cmFnZSB3cm9uZyBkZXZpY2V0cmVlcywgZmFpbCBpbiBjYXNlIG9mDQo+ICsJ CQkgKiBhbiBlcnJvcg0KPiArCQkJICovDQo+ICsJCQlwcl9lcnIoIiVzOiBlcnJvciBpbiB0aW1p bmcgJWRcbiIsIF9fZnVuY19fLA0KPiArCQkJICAgICAgIGRpc3AtPm51bV90aW1pbmdzICsgMSk7 DQo+ICsJCQlnb3RvIHRpbWluZ2ZhaWw7DQo+ICsJCX0NCj4gKw0KPiArCQlpZiAobmF0aXZlX21v ZGUgPT0gZW50cnkpDQo+ICsJCQlkaXNwLT5uYXRpdmVfbW9kZSA9IGRpc3AtPm51bV90aW1pbmdz Ow0KPiArDQo+ICsJCWRpc3AtPnRpbWluZ3NbZGlzcC0+bnVtX3RpbWluZ3NdID0gZHQ7DQo+ICsJ CWRpc3AtPm51bV90aW1pbmdzKys7DQo+ICsJfQ0KPiArCW9mX25vZGVfcHV0KHRpbWluZ3NfbnAp Ow0KPiArCW9mX25vZGVfcHV0KG5hdGl2ZV9tb2RlKTsNCj4gKw0KPiArCWlmIChkaXNwLT5udW1f dGltaW5ncyA+IDApDQo+ICsJCXByX2luZm8oIiVzOiBnb3QgJWQgdGltaW5ncy4gVXNpbmcgdGlt aW5nICMlZCBhcyBkZWZhdWx0XG4iLA0KPiArCQkJX19mdW5jX18sIGRpc3AtPm51bV90aW1pbmdz LCBkaXNwLT5uYXRpdmVfbW9kZSArIDEpOw0KPiArCWVsc2Ugew0KPiArCQlwcl9lcnIoIiVzOiBu byB2YWxpZCB0aW1pbmdzIHNwZWNpZmllZFxuIiwgX19mdW5jX18pOw0KPiArCQlkaXNwbGF5X3Rp bWluZ3NfcmVsZWFzZShkaXNwKTsNCj4gKwkJcmV0dXJuIE5VTEw7DQo+ICsJfQ0KPiArCXJldHVy biBkaXNwOw0KPiArDQo+ICt0aW1pbmdmYWlsOg0KPiArCWlmIChuYXRpdmVfbW9kZSkNCj4gKwkJ b2Zfbm9kZV9wdXQobmF0aXZlX21vZGUpOw0KPiArCWRpc3BsYXlfdGltaW5nc19yZWxlYXNlKGRp c3ApOw0KPiArZW50cnlmYWlsOg0KPiArCWlmIChkaXNwKQ0KPiArCQlrZnJlZShkaXNwKTsNCj4g K2Rpc3BmYWlsOg0KPiArCW9mX25vZGVfcHV0KHRpbWluZ3NfbnApOw0KPiArCXJldHVybiBOVUxM Ow0KPiArfQ0KPiArRVhQT1JUX1NZTUJPTF9HUEwob2ZfZ2V0X2Rpc3BsYXlfdGltaW5ncyk7DQo+ ICsNCj4gKy8qKg0KPiArICogb2ZfZGlzcGxheV90aW1pbmdzX2V4aXN0cyAtIGNoZWNrIGlmIGEg ZGlzcGxheS10aW1pbmdzIG5vZGUgaXMgcHJvdmlkZWQNCj4gKyAqIEBucDogZGV2aWNlX25vZGUg d2l0aCB0aGUgdGltaW5nDQo+ICsgKiovDQo+ICtpbnQgb2ZfZGlzcGxheV90aW1pbmdzX2V4aXN0 cyhjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wKQ0KPiArew0KPiArCXN0cnVjdCBkZXZpY2Vf bm9kZSAqdGltaW5nc19ucDsNCj4gKw0KPiArCWlmICghbnApDQo+ICsJCXJldHVybiAtRUlOVkFM Ow0KPiArDQo+ICsJdGltaW5nc19ucCA9IG9mX3BhcnNlX3BoYW5kbGUobnAsICJkaXNwbGF5LXRp bWluZ3MiLCAwKTsNCg0KQWxzbyBoZXJlOg0KZHJpdmVycy92aWRlby9vZl9kaXNwbGF5X3RpbWlu Zy5jOiBJbiBmdW5jdGlvbiAnb2ZfZGlzcGxheV90aW1pbmdzX2V4aXN0cyc6DQpkcml2ZXJzL3Zp ZGVvL29mX2Rpc3BsYXlfdGltaW5nLmM6MjA5OjI6IHdhcm5pbmc6IHBhc3NpbmcgYXJndW1lbnQg MSBvZiAnb2ZfcGFyc2VfcGhhbmRsZScgZGlzY2FyZHMgcXVhbGlmaWVycyBmcm9tIHBvaW50ZXIg dGFyZ2V0IHR5cGUNCmluY2x1ZGUvbGludXgvb2YuaDoyNTg6Mjg6IG5vdGU6IGV4cGVjdGVkICdz dHJ1Y3QgZGV2aWNlX25vZGUgKicgYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUgJ2NvbnN0IHN0cnVj dCBkZXZpY2Vfbm9kZSAqJw0KDQpUaGFua3MsDQpQcmFrYXNoDQoNCj4gKwlpZiAoIXRpbWluZ3Nf bnApDQo+ICsJCXJldHVybiAtRUlOVkFMOw0KPiArDQo+ICsJb2Zfbm9kZV9wdXQodGltaW5nc19u cCk7DQo+ICsJcmV0dXJuIDE7DQo+ICt9DQo+ICtFWFBPUlRfU1lNQk9MX0dQTChvZl9kaXNwbGF5 X3RpbWluZ3NfZXhpc3RzKTsNCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvdmlkZW8vb2ZfdmlkZW9t b2RlLmMgYi9kcml2ZXJzL3ZpZGVvL29mX3ZpZGVvbW9kZS5jDQo+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0DQo+IGluZGV4IDAwMDAwMDAuLmM1NzNmOTINCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9k cml2ZXJzL3ZpZGVvL29mX3ZpZGVvbW9kZS5jDQo+IEBAIC0wLDAgKzEsNDggQEANCj4gKy8qDQo+ ICsgKiBnZW5lcmljIHZpZGVvbW9kZSBoZWxwZXINCj4gKyAqDQo+ICsgKiBDb3B5cmlnaHQgKGMp IDIwMTIgU3RlZmZlbiBUcnVtdHJhciA8cy50cnVtdHJhckBwZW5ndXRyb25peC5kZT4sIFBlbmd1 dHJvbml4DQo+ICsgKg0KPiArICogVGhpcyBmaWxlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBHUEx2 Mg0KPiArICovDQo+ICsjaW5jbHVkZSA8bGludXgvb2YuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9v Zl9kaXNwbGF5X3RpbWluZ3MuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9vZl92aWRlb21vZGUuaD4N Cj4gKyNpbmNsdWRlIDxsaW51eC9leHBvcnQuaD4NCj4gKw0KPiArLyoqDQo+ICsgKiBvZl9nZXRf dmlkZW9tb2RlIC0gZ2V0IHRoZSB2aWRlb21vZGUgIzxpbmRleD4gZnJvbSBkZXZpY2V0cmVlDQo+ ICsgKiBAbnAgLSBkZXZpY2Vub2RlIHdpdGggdGhlIGRpc3BsYXlfdGltaW5ncw0KPiArICogQHZt IC0gc2V0IHRvIHJldHVybiB2YWx1ZQ0KPiArICogQGluZGV4IC0gaW5kZXggaW50byBsaXN0IG9m IGRpc3BsYXlfdGltaW5ncw0KPiArICogREVTQ1JJUFRJT046DQo+ICsgKiBHZXQgYSBsaXN0IG9m IGFsbCBkaXNwbGF5IHRpbWluZ3MgYW5kIHB1dCB0aGUgb25lDQo+ICsgKiBzcGVjaWZpZWQgYnkg aW5kZXggaW50byAqdm0uIFRoaXMgZnVuY3Rpb24gc2hvdWxkIG9ubHkgYmUgdXNlZCwgaWYNCj4g KyAqIG9ubHkgb25lIHZpZGVvbW9kZSBpcyB0byBiZSByZXRyaWV2ZWQuIEEgZHJpdmVyIHRoYXQg bmVlZHMgdG8gd29yaw0KPiArICogd2l0aCBtdWx0aXBsZS9hbGwgdmlkZW9tb2RlcyBzaG91bGQg d29yayB3aXRoDQo+ICsgKiBvZl9nZXRfZGlzcGxheV90aW1pbmdzIGluc3RlYWQuDQo+ICsgKiov DQo+ICtpbnQgb2ZfZ2V0X3ZpZGVvbW9kZShjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCBz dHJ1Y3QgdmlkZW9tb2RlICp2bSwNCj4gKwkJICAgICBpbnQgaW5kZXgpDQo+ICt7DQo+ICsJc3Ry dWN0IGRpc3BsYXlfdGltaW5ncyAqZGlzcDsNCj4gKwlpbnQgcmV0Ow0KPiArDQo+ICsJZGlzcCA9 IG9mX2dldF9kaXNwbGF5X3RpbWluZ3MobnApOw0KPiArCWlmICghZGlzcCkgew0KPiArCQlwcl9l cnIoIiVzOiBubyB0aW1pbmdzIHNwZWNpZmllZFxuIiwgX19mdW5jX18pOw0KPiArCQlyZXR1cm4g LUVJTlZBTDsNCj4gKwl9DQo+ICsNCj4gKwlpZiAoaW5kZXggPT0gT0ZfVVNFX05BVElWRV9NT0RF KQ0KPiArCQlpbmRleCA9IGRpc3AtPm5hdGl2ZV9tb2RlOw0KPiArDQo+ICsJcmV0ID0gdmlkZW9t b2RlX2Zyb21fdGltaW5nKGRpc3AsIHZtLCBpbmRleCk7DQo+ICsJaWYgKHJldCkNCj4gKwkJcmV0 dXJuIHJldDsNCj4gKw0KPiArCWRpc3BsYXlfdGltaW5nc19yZWxlYXNlKGRpc3ApOw0KPiArDQo+ ICsJcmV0dXJuIDA7DQo+ICt9DQo+ICtFWFBPUlRfU1lNQk9MX0dQTChvZl9nZXRfdmlkZW9tb2Rl KTsNCj4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvbGludXgvb2ZfZGlzcGxheV90aW1pbmdzLmggYi9p bmNsdWRlL2xpbnV4L29mX2Rpc3BsYXlfdGltaW5ncy5oDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0 DQo+IGluZGV4IDAwMDAwMDAuLjJiNGZhMGENCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9pbmNs dWRlL2xpbnV4L29mX2Rpc3BsYXlfdGltaW5ncy5oDQo+IEBAIC0wLDAgKzEsMjAgQEANCj4gKy8q DQo+ICsgKiBDb3B5cmlnaHQgMjAxMiBTdGVmZmVuIFRydW10cmFyIDxzLnRydW10cmFyQHBlbmd1 dHJvbml4LmRlPg0KPiArICoNCj4gKyAqIGRpc3BsYXkgdGltaW5ncyBvZiBoZWxwZXJzDQo+ICsg Kg0KPiArICogVGhpcyBmaWxlIGlzIHJlbGVhc2VkIHVuZGVyIHRoZSBHUEx2Mg0KPiArICovDQo+ ICsNCj4gKyNpZm5kZWYgX19MSU5VWF9PRl9ESVNQTEFZX1RJTUlOR1NfSA0KPiArI2RlZmluZSBf X0xJTlVYX09GX0RJU1BMQVlfVElNSU5HU19IDQo+ICsNCj4gKyNpbmNsdWRlIDxsaW51eC9kaXNw bGF5X3RpbWluZy5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L29mLmg+DQo+ICsNCj4gKyNkZWZpbmUg T0ZfVVNFX05BVElWRV9NT0RFIC0xDQo+ICsNCj4gK3N0cnVjdCBkaXNwbGF5X3RpbWluZ3MgKm9m X2dldF9kaXNwbGF5X3RpbWluZ3MoY29uc3Qgc3RydWN0IGRldmljZV9ub2RlICpucCk7DQo+ICtp bnQgb2ZfZGlzcGxheV90aW1pbmdzX2V4aXN0cyhjb25zdCBzdHJ1Y3QgZGV2aWNlX25vZGUgKm5w KTsNCj4gKw0KPiArI2VuZGlmDQo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L29mX3ZpZGVv bW9kZS5oIGIvaW5jbHVkZS9saW51eC9vZl92aWRlb21vZGUuaA0KPiBuZXcgZmlsZSBtb2RlIDEw MDY0NA0KPiBpbmRleCAwMDAwMDAwLi40ZGU1ZmNjDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIv aW5jbHVkZS9saW51eC9vZl92aWRlb21vZGUuaA0KPiBAQCAtMCwwICsxLDE4IEBADQo+ICsvKg0K PiArICogQ29weXJpZ2h0IDIwMTIgU3RlZmZlbiBUcnVtdHJhciA8cy50cnVtdHJhckBwZW5ndXRy b25peC5kZT4NCj4gKyAqDQo+ICsgKiB2aWRlb21vZGUgb2YtaGVscGVycw0KPiArICoNCj4gKyAq IFRoaXMgZmlsZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgR1BMdjINCj4gKyAqLw0KPiArDQo+ICsj aWZuZGVmIF9fTElOVVhfT0ZfVklERU9NT0RFX0gNCj4gKyNkZWZpbmUgX19MSU5VWF9PRl9WSURF T01PREVfSA0KPiArDQo+ICsjaW5jbHVkZSA8bGludXgvdmlkZW9tb2RlLmg+DQo+ICsjaW5jbHVk ZSA8bGludXgvb2YuaD4NCj4gKw0KPiAraW50IG9mX2dldF92aWRlb21vZGUoY29uc3Qgc3RydWN0 IGRldmljZV9ub2RlICpucCwgc3RydWN0IHZpZGVvbW9kZSAqdm0sDQo+ICsJCSAgICAgaW50IGlu ZGV4KTsNCj4gKw0KPiArI2VuZGlmIC8qIF9fTElOVVhfT0ZfVklERU9NT0RFX0ggKi8NCj4gLS0g DQo+IDEuNy4xMC40DQo+IA0KPiAtLQ0KPiBUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDog c2VuZCB0aGUgbGluZSAidW5zdWJzY3JpYmUgbGludXgtZmJkZXYiIGluDQo+IHRoZSBib2R5IG9m IGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnDQo+IE1vcmUgbWFqb3Jkb21v IGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbA0KPiAN Cg0K