RE: [PATCH v12 2/6] video: add of helper for videomode

4 messages, 4 authors, 2012-11-21 · open the first message on its own page

RE: [PATCH v12 2/6] video: add of helper for videomode

From: Manjunathappa, Prakash <hidden>
Date: 2012-11-21 10:12:43

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

Re: [PATCH v12 2/6] video: add of helper for videomode

From: Steffen Trumtrar <hidden>
Date: 2012-11-21 11:48:43

Hi!

On Wed, Nov 21, 2012 at 10:12:43AM +0000, Manjunathappa, Prakash wrote:
Hi Steffen,

On Tue, Nov 20, 2012 at 21:24:52, Steffen Trumtrar wrote:
quoted
+/**
+ * of_get_display_timings - parse all display_timing entries from a device_node
+ * @np: device_node with the subnodes
+ **/
+struct display_timings *of_get_display_timings(const struct device_node *np)
+{
+	struct device_node *timings_np;
+	struct device_node *entry;
+	struct device_node *native_mode;
+	struct display_timings *disp;
+
+	if (!np) {
+		pr_err("%s: no devicenode given\n", __func__);
+		return NULL;
+	}
+
+	timings_np = of_find_node_by_name(np, "display-timings");
I get below build warnings on this line
drivers/video/of_display_timing.c: In function 'of_get_display_timings':
drivers/video/of_display_timing.c:109:2: warning: passing argument 1 of 'of_find_node_by_name' discards qualifiers from pointer target type
include/linux/of.h:167:28: note: expected 'struct device_node *' but argument is of type 'const struct device_node *'
quoted
+ * of_display_timings_exists - check if a display-timings node is provided
+ * @np: device_node with the timing
+ **/
+int of_display_timings_exists(const struct device_node *np)
+{
+	struct device_node *timings_np;
+
+	if (!np)
+		return -EINVAL;
+
+	timings_np = of_parse_phandle(np, "display-timings", 0);
Also here:
drivers/video/of_display_timing.c: In function 'of_display_timings_exists':
drivers/video/of_display_timing.c:209:2: warning: passing argument 1 of 'of_parse_phandle' discards qualifiers from pointer target type
include/linux/of.h:258:28: note: expected 'struct device_node *' but argument is of type 'const struct device_node *'
The warnings are because the of-functions do not use const pointers where they
should. I had two options: don't use const pointers even if they should be and
have no warnings or use const pointers and have a correct API. (Third option:
send patches for of-functions). I chose the second option.

Regards,
Steffen


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

Re: [PATCH v12 2/6] video: add of helper for videomode

From: Thierry Reding <hidden>
Date: 2012-11-21 11:52:36

On Wed, Nov 21, 2012 at 12:48:43PM +0100, Steffen Trumtrar wrote:
Hi!

On Wed, Nov 21, 2012 at 10:12:43AM +0000, Manjunathappa, Prakash wrote:
quoted
Hi Steffen,

On Tue, Nov 20, 2012 at 21:24:52, Steffen Trumtrar wrote:
quoted
+/**
+ * of_get_display_timings - parse all display_timing entries from a device_node
+ * @np: device_node with the subnodes
+ **/
+struct display_timings *of_get_display_timings(const struct device_node *np)
+{
+	struct device_node *timings_np;
+	struct device_node *entry;
+	struct device_node *native_mode;
+	struct display_timings *disp;
+
+	if (!np) {
+		pr_err("%s: no devicenode given\n", __func__);
+		return NULL;
+	}
+
+	timings_np = of_find_node_by_name(np, "display-timings");
I get below build warnings on this line
drivers/video/of_display_timing.c: In function 'of_get_display_timings':
drivers/video/of_display_timing.c:109:2: warning: passing argument 1 of 'of_find_node_by_name' discards qualifiers from pointer target type
include/linux/of.h:167:28: note: expected 'struct device_node *' but argument is of type 'const struct device_node *'
quoted
+ * of_display_timings_exists - check if a display-timings node is provided
+ * @np: device_node with the timing
+ **/
+int of_display_timings_exists(const struct device_node *np)
+{
+	struct device_node *timings_np;
+
+	if (!np)
+		return -EINVAL;
+
+	timings_np = of_parse_phandle(np, "display-timings", 0);
Also here:
drivers/video/of_display_timing.c: In function 'of_display_timings_exists':
drivers/video/of_display_timing.c:209:2: warning: passing argument 1 of 'of_parse_phandle' discards qualifiers from pointer target type
include/linux/of.h:258:28: note: expected 'struct device_node *' but argument is of type 'const struct device_node *'
The warnings are because the of-functions do not use const pointers where they
should. I had two options: don't use const pointers even if they should be and
have no warnings or use const pointers and have a correct API. (Third option:
send patches for of-functions). I chose the second option.
Maybe a better approach would be a combination of 1 and 3: don't use
const pointers for struct device_node for now and bring the issue up
with the OF maintainers, possibly with patches attached that fix the
problematic functions.

Thierry

Re: [PATCH v12 2/6] video: add of helper for videomode

From: Rob Herring <hidden>
Date: 2012-11-21 15:03:38

On 11/21/2012 05:52 AM, Thierry Reding wrote:
On Wed, Nov 21, 2012 at 12:48:43PM +0100, Steffen Trumtrar wrote:
quoted
Hi!

On Wed, Nov 21, 2012 at 10:12:43AM +0000, Manjunathappa, Prakash wrote:
quoted
Hi Steffen,

On Tue, Nov 20, 2012 at 21:24:52, Steffen Trumtrar wrote:
quoted
+/**
+ * of_get_display_timings - parse all display_timing entries from a device_node
+ * @np: device_node with the subnodes
+ **/
+struct display_timings *of_get_display_timings(const struct device_node *np)
+{
+	struct device_node *timings_np;
+	struct device_node *entry;
+	struct device_node *native_mode;
+	struct display_timings *disp;
+
+	if (!np) {
+		pr_err("%s: no devicenode given\n", __func__);
+		return NULL;
+	}
+
+	timings_np = of_find_node_by_name(np, "display-timings");
I get below build warnings on this line
drivers/video/of_display_timing.c: In function 'of_get_display_timings':
drivers/video/of_display_timing.c:109:2: warning: passing argument 1 of 'of_find_node_by_name' discards qualifiers from pointer target type
include/linux/of.h:167:28: note: expected 'struct device_node *' but argument is of type 'const struct device_node *'
quoted
+ * of_display_timings_exists - check if a display-timings node is provided
+ * @np: device_node with the timing
+ **/
+int of_display_timings_exists(const struct device_node *np)
+{
+	struct device_node *timings_np;
+
+	if (!np)
+		return -EINVAL;
+
+	timings_np = of_parse_phandle(np, "display-timings", 0);
Also here:
drivers/video/of_display_timing.c: In function 'of_display_timings_exists':
drivers/video/of_display_timing.c:209:2: warning: passing argument 1 of 'of_parse_phandle' discards qualifiers from pointer target type
include/linux/of.h:258:28: note: expected 'struct device_node *' but argument is of type 'const struct device_node *'
The warnings are because the of-functions do not use const pointers where they
should. I had two options: don't use const pointers even if they should be and
have no warnings or use const pointers and have a correct API. (Third option:
send patches for of-functions). I chose the second option.
Maybe a better approach would be a combination of 1 and 3: don't use
const pointers for struct device_node for now and bring the issue up
with the OF maintainers, possibly with patches attached that fix the
problematic functions.
Why does this need to be const? Since some DT functions increment
refcount the node, I'm not sure that making struct device_node const in
general is right thing to do. I do think it should be okay for
of_parse_phandle.

Rob
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help