Thread (8 messages) 8 messages, 3 authors, 2011-03-23

RE: [PATCH RESEND v2]IIO driver for Analog Devices Digital Output Gyroscope ADXRS450

flat view

From: Cai, Cliff <hidden>
Date: 2011-03-22 07:25:22
Also in: lkml

DQoNCj4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPkZyb206IEpvbmF0aGFuIENhbWVyb24g
W21haWx0bzpqaWMyM0BjYW0uYWMudWtdDQo+U2VudDogMjAxMcTqM9TCMjLI1SAxOjQwDQo+VG86
IENhaSwgQ2xpZmYNCj5DYzogbGludXgtaWlvQHZnZXIua2VybmVsLm9yZzsgbGludXgta2VybmVs
QHZnZXIua2VybmVsLm9yZzsNCj5Ecml2ZXJzOyBkZXZpY2UtZHJpdmVycy1kZXZlbEBibGFja2Zp
bi51Y2xpbnV4Lm9yZzsgQ2xpZmYgQ2FpDQo+U3ViamVjdDogUmU6IFtQQVRDSCBSRVNFTkQgdjJd
SUlPIGRyaXZlciBmb3IgQW5hbG9nIERldmljZXMNCj5EaWdpdGFsIE91dHB1dCBHeXJvc2NvcGUg
QURYUlM0NTANCj4NCj5PbiAwMy8xOS8xMSAwOToyNywgY2xpZmYuY2FpQGFuYWxvZy5jb20gd3Jv
dGU6DQo+PiBGcm9tOiBDbGlmZiBDYWkgPGNsaWZmLmNhaUBhbmFsb2cuY29tPg0KPj4NCj4+IENo
YW5nZSB2Mjp2MToNCj4+DQo+PiBNYWtlIG1vZGlmaWNhdGlvbiBhY2NvcmRpbmcgdG8gTWljaGFl
bCBIZW5uZXJpY2gncyBjb21tZW50cywgY29ycmVjdA0KPj4gdGhlIHNwaSB0cmFuc2ZlciB3YXks
dXNlIGV4aXN0aW5nIHN5c2ZzIGludGVyZmFjZXMuDQo+SGkgQ2xpZmYsDQo+DQo+QXMgeW91IGFy
ZSBwcm9wb3NpbmcgYSBjb3VwbGUgb2YgbmV3IGludGVyZmFjZXMgd2UgbmVlZCB0bw0KPmhhdmUg
ZG9jdW1lbnRhdGlvbiBmb3IgdGhlbS4gVGhleSBhcmUgcXVhZCBhbmQgZHluYW1pY19udWxsX2Nv
cnJlY3Rpb24uDQo+V2UgbmVlZCB0byBmaXJzdCBlc3RhYmxpc2ggd2hldGhlciB0aGV5IGFyZSBv
ZiBnZW5lcmFsIHV0aWxpdHkNCj5hbmQgaGVuY2Ugc2hvdWxkIGJlIGluIHRoZSBtYWluIGFiaSBk
b2MuIFRoZSBxdWFkcmF0dXJlIG9uZQ0KPmlzbid0IHNvbWV0aGluZyBJJ3ZlIHNlZW4gYmVmb3Jl
LiBJcyBpdCBjb21tb24gaW4gZ3lyb3M/DQoNCkknbSBub3Qgc3VyZSBhYm91dCB0aGlzLg0KTWlj
aGFlbCxkbyB5b3UgaGF2ZSBhbnkgaWRlYXM/DQoNCj5EeW5hbWljIG51bGwgY29ycmVjdGlvbiBs
b29rcyBsaWtlIGl0IHNob3VsZCBiZQ0KPmd5cm9fel9jYWxpYmJpYXMgdG8gbWUgYnV0IEkgY291
bGQgYmUgd3JvbmcuICBUaGUgZG9jIHNheXMgIg0KPlRoZSB1c2VyIGNhbiBtYWtlIHNtYWxsIGFk
anVzdG1lbnRzIHRvIHRoZSByYXRlb3V0IG9mIHRoZQ0KPmRldmljZSBieSBhc3NlcnRpbmcgdGhl
c2UgYml0cy4gVGhpcyAxMC1iaXQgcmVnaXN0ZXIgYWxsb3dzDQo+dGhlIHVzZXIgdG8gYWRqdXN0
IHRoZSBzdGF0aWMgcmF0ZW91dCBvZiB0aGUgZGV2aWNlIGJ5IHVwIHRvIKHANi40oeMvc2VjLg0K
PiINCj4NCj53aGljaCBtYWtlcyBtZSB0aGluayBpdCBpcyBhbiBpbnRlcm5hbGx5IGFwcGxpZWQg
b2Zmc2V0IG9uIHRoZQ0KPm91dHB1dCBzaWduYWwgYW5kIGhlbmNlIGNhbGliYmlhcyBpbiBvdXIg
YWJpLg0KDQpUaGFua3MNCg0KPk90aGVyIHRoYW4gdGhhdCwgdmFyaW91cyBtaW5vciBuaXRwaWNr
cyBpbmxpbmUuDQo+DQo+Sm9uYXRoYW4NCj4NCj4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBDbGlm
ZiBDYWk8Y2xpZmZAYW5hbG9nLmNvbT4NCj4+IC0tLQ0KPj4gIGRyaXZlcnMvc3RhZ2luZy9paW8v
Z3lyby9LY29uZmlnICAgICAgICAgfCAgIDEwICsNCj4+ICBkcml2ZXJzL3N0YWdpbmcvaWlvL2d5
cm8vTWFrZWZpbGUgICAgICAgIHwgICAgMyArDQo+PiAgZHJpdmVycy9zdGFnaW5nL2lpby9neXJv
L2FkeHJzNDUwLmggICAgICB8ICAgNTkgKysrKw0KPj4gIGRyaXZlcnMvc3RhZ2luZy9paW8vZ3ly
by9hZHhyczQ1MF9jb3JlLmMgfCAgNDcxDQo+PiArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysNCj4+ICA0IGZpbGVzIGNoYW5nZWQsIDU0MyBpbnNlcnRpb25zKCspLCAwIGRlbGV0aW9ucygt
KSAgY3JlYXRlIG1vZGUNCj4+IDEwMDY0NCBkcml2ZXJzL3N0YWdpbmcvaWlvL2d5cm8vYWR4cnM0
NTAuaA0KPj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3N0YWdpbmcvaWlvL2d5cm8vYWR4
cnM0NTBfY29yZS5jDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3RhZ2luZy9paW8vZ3ly
by9LY29uZmlnDQo+PiBiL2RyaXZlcnMvc3RhZ2luZy9paW8vZ3lyby9LY29uZmlnDQo+PiBpbmRl
eCAyMzZmMTVmLi4zNDMyOTY3IDEwMDY0NA0KPj4gLS0tIGEvZHJpdmVycy9zdGFnaW5nL2lpby9n
eXJvL0tjb25maWcNCj4+ICsrKyBiL2RyaXZlcnMvc3RhZ2luZy9paW8vZ3lyby9LY29uZmlnDQo+
PiBAQCAtNDUsMyArNDUsMTMgQEAgY29uZmlnIEFESVMxNjI1MQ0KPj4NCj4+ICAgICAgICBUaGlz
IGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxl
DQo+PiAgICAgICAgd2lsbCBiZSBjYWxsZWQgYWRpczE2MjUxLg0KPj4gKw0KPj4gK2NvbmZpZyBB
RFhSUzQ1MA0KPj4gKyAgICB0cmlzdGF0ZSAiQW5hbG9nIERldmljZXMgQURYUlM0NTAgRGlnaXRh
bCBPdXRwdXQNCj5HeXJvc2NvcGUgU1BJIGRyaXZlciINCj4+ICsgICAgZGVwZW5kcyBvbiBTUEkN
Cj4+ICsgICAgaGVscA0KPj4gKyAgICAgIFNheSB5ZXMgaGVyZSB0byBidWlsZCBzdXBwb3J0IGZv
ciBBbmFsb2cgRGV2aWNlcw0KPkFEWFJTNDUwIHByb2dyYW1tYWJsZQ0KPj4gKyAgICAgIGRpZ2l0
YWwgb3V0cHV0IGd5cm9zY29wZS4NCj4+ICsNCj4+ICsgICAgICBUaGlzIGRyaXZlciBjYW4gYWxz
byBiZSBidWlsdCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlDQo+PiArICAgICAgd2ls
bCBiZSBjYWxsZWQgYWR4cnM0NTAuDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9zdGFnaW5nL2lp
by9neXJvL01ha2VmaWxlDQo+PiBiL2RyaXZlcnMvc3RhZ2luZy9paW8vZ3lyby9NYWtlZmlsZQ0K
Pj4gaW5kZXggMjc2NGMxNS4uMjIxMjI0MCAxMDA2NDQNCj4+IC0tLSBhL2RyaXZlcnMvc3RhZ2lu
Zy9paW8vZ3lyby9NYWtlZmlsZQ0KPj4gKysrIGIvZHJpdmVycy9zdGFnaW5nL2lpby9neXJvL01h
a2VmaWxlDQo+PiBAQCAtMTcsMyArMTcsNiBAQCBvYmotJChDT05GSUdfQURJUzE2MjYwKSArPSBh
ZGlzMTYyNjAubw0KPj4NCj4+ICBhZGlzMTYyNTEteSAgICAgICAgICAgICA6PSBhZGlzMTYyNTFf
Y29yZS5vDQo+PiAgb2JqLSQoQ09ORklHX0FESVMxNjI1MSkgKz0gYWRpczE2MjUxLm8NCj4+ICsN
Cj4+ICthZHhyczQ1MC15ICAgICAgICAgICAgIDo9IGFkeHJzNDUwX2NvcmUubw0KPj4gK29iai0k
KENPTkZJR19BRFhSUzQ1MCkgKz0gYWR4cnM0NTAubw0KPj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMv
c3RhZ2luZy9paW8vZ3lyby9hZHhyczQ1MC5oDQo+PiBiL2RyaXZlcnMvc3RhZ2luZy9paW8vZ3ly
by9hZHhyczQ1MC5oDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5kZXggMDAwMDAwMC4u
NDYzM2VmOQ0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvZHJpdmVycy9zdGFnaW5nL2lpby9n
eXJvL2FkeHJzNDUwLmgNCj4+IEBAIC0wLDAgKzEsNTkgQEANCj4+ICsjaWZuZGVmIFNQSV9BRFhS
UzQ1MF9IXw0KPj4gKyNkZWZpbmUgU1BJX0FEWFJTNDUwX0hfDQo+PiArDQo+PiArI2RlZmluZSBB
RFhSUzQ1MF9TVEFSVFVQX0RFTEFZICAgICAgNTAgLyogbXMgKi8NCj4+ICsNCj4+ICsvKiBUaGUg
TVNCIGZvciB0aGUgc3BpIGNvbW1hbmRzICovDQo+PiArI2RlZmluZSBBRFhSUzQ1MF9TRU5TT1Jf
REFUQSAgICAweDIwDQo+PiArI2RlZmluZSBBRFhSUzQ1MF9XUklURV9EQVRBIDB4NDANCj4+ICsj
ZGVmaW5lIEFEWFJTNDUwX1JFQURfREFUQSAgMHg4MA0KPj4gKw0KPj4gKyNkZWZpbmUgQURYUlM0
NTBfUkFURTEgICAgICAweDAwICAgIC8qIFJhdGUgUmVnaXN0ZXJzICovDQo+PiArI2RlZmluZSBB
RFhSUzQ1MF9URU1QMSAgICAgIDB4MDIgICAgLyogVGVtcGVyYXR1cmUgUmVnaXN0ZXJzICovDQo+
PiArI2RlZmluZSBBRFhSUzQ1MF9MT0NTVDEgICAgIDB4MDQgICAgLyogTG93IENTVCBNZW1vcnkg
UmVnaXN0ZXJzICovDQo+PiArI2RlZmluZSBBRFhSUzQ1MF9ISUNTVDEgICAgIDB4MDYgICAgLyog
SGlnaCBDU1QgTWVtb3J5IFJlZ2lzdGVycyAqLw0KPj4gKyNkZWZpbmUgQURYUlM0NTBfUVVBRDEg
ICAgICAweDA4ICAgIC8qIFF1YWQgTWVtb3J5IFJlZ2lzdGVycyAqLw0KPj4gKyNkZWZpbmUgQURY
UlM0NTBfRkFVTFQxICAgICAweDBBICAgIC8qIEZhdWx0IFJlZ2lzdGVycyAqLw0KPj4gKyNkZWZp
bmUgQURYUlM0NTBfUElEMSAgICAgICAweDBDICAgIC8qIFBhcnQgSUQgUmVnaXN0ZXIgMSAqLw0K
Pj4gKyNkZWZpbmUgQURYUlM0NTBfUElEMCAgICAgICAweDBEICAgIC8qIFBhcnQgSUQgUmVnaXN0
ZXIgMCAqLw0KPj4gKyNkZWZpbmUgQURYUlM0NTBfU05IICAgICAgICAweDBFICAgIC8qIFNlcmlh
bCBOdW1iZXINCj5SZWdpc3RlcnMsIDQgYnl0ZXMgKi8NCj4+ICsjZGVmaW5lIEFEWFJTNDUwX1NO
TCAgICAgICAgMHgxMA0KPj4gKyNkZWZpbmUgQURYUlM0NTBfRE5DMSAgICAgICAweDEyICAgIC8q
IER5bmFtaWMgTnVsbA0KPkNvcnJlY3Rpb24gUmVnaXN0ZXJzICovDQo+PiArLyogQ2hlY2sgYml0
cyAqLw0KPj4gKyNkZWZpbmUgQURYUlM0NTBfUCAgMHgwMQ0KPj4gKyNkZWZpbmUgQURYUlM0NTBf
Q0hLICAgICAgICAweDAyDQo+PiArI2RlZmluZSBBRFhSUzQ1MF9DU1QgICAgICAgIDB4MDQNCj4+
ICsjZGVmaW5lIEFEWFJTNDUwX1BXUiAgICAgICAgMHgwOA0KPj4gKyNkZWZpbmUgQURYUlM0NTBf
UE9SICAgICAgICAweDEwDQo+PiArI2RlZmluZSBBRFhSUzQ1MF9OVk0gICAgICAgIDB4MjANCj4+
ICsjZGVmaW5lIEFEWFJTNDUwX1EgIDB4NDANCj4+ICsjZGVmaW5lIEFEWFJTNDUwX1BMTCAgICAg
ICAgMHg4MA0KPj4gKyNkZWZpbmUgQURYUlM0NTBfVVYgMHgxMDANCj4+ICsjZGVmaW5lIEFEWFJT
NDUwX09WIDB4MjAwDQo+PiArI2RlZmluZSBBRFhSUzQ1MF9BTVAgICAgICAgIDB4NDAwDQo+PiAr
I2RlZmluZSBBRFhSUzQ1MF9GQUlMICAgICAgIDB4ODAwDQo+PiArDQo+PiArI2RlZmluZSBBRFhS
UzQ1MF9XUkVSUl9NQVNLICgweDcgPDwgMjkpDQo+PiArDQo+PiArI2RlZmluZSBBRFhSUzQ1MF9N
QVhfUlggOA0KPj4gKyNkZWZpbmUgQURYUlM0NTBfTUFYX1RYIDgNCj4+ICsNCj4+ICsjZGVmaW5l
IEFEWFJTNDUwX0dFVF9TVChhKSAgKChhID4+IDI2KSAmIDB4MykNCj4+ICsNCj4+ICsvKioNCj4+
ICsgKiBzdHJ1Y3QgYWR4cnM0NTBfc3RhdGUgLSBkZXZpY2UgaW5zdGFuY2Ugc3BlY2lmaWMgZGF0
YQ0KPj4gKyAqIEB1czogICAgICAgICAgICAgICAgICAgICBhY3R1YWwgc3BpX2RldmljZQ0KPj4g
KyAqIEBpbmRpb19kZXY6ICAgICAgICAgICAgICBpbmR1c3RyaWFsIEkvTyBkZXZpY2Ugc3RydWN0
dXJlDQo+PiArICogQHR4OiAgICAgICAgICAgICAgICAgICAgIHRyYW5zbWl0IGJ1ZmZlcg0KPj4g
KyAqIEByeDogICAgICAgICAgICAgICAgICAgICByZWNpZXZlIGJ1ZmZlcg0KPj4gKyAqIEBidWZf
bG9jazogICAgICAgICAgICAgICBtdXRleCB0byBwcm90ZWN0IHR4IGFuZCByeA0KPj4gKyAqKi8N
Cj4+ICtzdHJ1Y3QgYWR4cnM0NTBfc3RhdGUgew0KPj4gKyAgICBzdHJ1Y3Qgc3BpX2RldmljZSAg
ICAgICAgICAgICAgICp1czsNCj4+ICsgICAgc3RydWN0IGlpb19kZXYgICAgICAgICAgICAgICAg
ICAqaW5kaW9fZGV2Ow0KPj4gKyAgICB1OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICp0
eDsNCj4+ICsgICAgdTggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcng7DQo+PiArICAg
IHN0cnVjdCBtdXRleCAgICAgICAgICAgICAgICAgICAgYnVmX2xvY2s7DQo+PiArfTsNCj4+ICsN
Cj4+ICsjZW5kaWYgLyogU1BJX0FEWFJTNDUwX0hfICovDQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy
cy9zdGFnaW5nL2lpby9neXJvL2FkeHJzNDUwX2NvcmUuYw0KPj4gYi9kcml2ZXJzL3N0YWdpbmcv
aWlvL2d5cm8vYWR4cnM0NTBfY29yZS5jDQo+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPj4gaW5k
ZXggMDAwMDAwMC4uZjRmOWQ0OQ0KPj4gLS0tIC9kZXYvbnVsbA0KPj4gKysrIGIvZHJpdmVycy9z
dGFnaW5nL2lpby9neXJvL2FkeHJzNDUwX2NvcmUuYw0KPj4gQEAgLTAsMCArMSw0NzEgQEANCj4+
ICsvKg0KPj4gKyAqIEFEWFJTNDUwIERpZ2l0YWwgT3V0cHV0IEd5cm9zY29wZSBEcml2ZXINCj4+
ICsgKg0KPj4gKyAqIENvcHlyaWdodCAyMDEwIEFuYWxvZyBEZXZpY2VzIEluYy4NCj4+ICsgKg0K
Pj4gKyAqIExpY2Vuc2VkIHVuZGVyIHRoZSBHUEwtMiBvciBsYXRlci4NCj4+ICsgKi8NCj4+ICsN
Cj4+ICsjaW5jbHVkZSA8bGludXgvaW50ZXJydXB0Lmg+DQo+PiArI2luY2x1ZGUgPGxpbnV4L2ly
cS5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9ncGlvLmg+DQo+PiArI2luY2x1ZGUgPGxpbnV4L2Rl
bGF5Lmg+DQo+PiArI2luY2x1ZGUgPGxpbnV4L211dGV4Lmg+DQo+PiArI2luY2x1ZGUgPGxpbnV4
L2RldmljZS5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4NCj4+ICsjaW5jbHVkZSA8
bGludXgvc3BpL3NwaS5oPg0KPj4gKyNpbmNsdWRlIDxsaW51eC9zbGFiLmg+DQo+PiArI2luY2x1
ZGUgPGxpbnV4L3N5c2ZzLmg+DQo+PiArI2luY2x1ZGUgPGxpbnV4L2xpc3QuaD4NCj4+ICsNCj4+
ICsjaW5jbHVkZSAiLi4vaWlvLmgiDQo+PiArI2luY2x1ZGUgIi4uL3N5c2ZzLmgiDQo+PiArI2lu
Y2x1ZGUgImd5cm8uaCINCj4+ICsjaW5jbHVkZSAiLi4vYWRjL2FkYy5oIg0KPj4gKw0KPj4gKyNp
bmNsdWRlICJhZHhyczQ1MC5oIg0KPj4gKw0KPlRoaXMgaXMgb25seSB1c2VkIGluIG9uZSBwbGFj
ZSwgSSdkIGhhcmQgY29kZSBpdCB0aGVyZS4NCj4+ICsjZGVmaW5lIERSSVZFUl9OQU1FICAgICAg
ICAgIkFEWFJTNDUwIg0KPj4gKw0KPj4gKy8qKg0KPj4gKyAqIGFkeHJzNDUwX3NwaV9yZWFkX3Jl
Z18xNigpIC0gcmVhZCAyIGJ5dGVzIGZyb20gYSByZWdpc3RlciBwYWlyDQo+PiArICogQGRldjog
ZGV2aWNlIGFzc29jaWF0ZWQgd2l0aCBjaGlsZCBvZiBhY3R1YWwgZGV2aWNlIChpaW9fZGV2IG9y
DQo+PiAraWlvX3RyaWcpDQo+PiArICogQHJlZ19hZGRyZXNzOiB0aGUgYWRkcmVzcyBvZiB0aGUg
bG93ZXIgb2YgdGhlIHR3bw0KPnJlZ2lzdGVycyx3aGljaA0KPj4gK3Nob3VsZCBiZSBhbiBldmVu
IGFkZHJlc3MsDQo+PiArICogU2Vjb25kIHJlZ2lzdGVyJ3MgYWRkcmVzcyBpcyByZWdfYWRkcmVz
cyArIDEuDQo+PiArICogQHZhbDogc29tZXdoZXJlIHRvIHBhc3MgYmFjayB0aGUgdmFsdWUgcmVh
ZCAgKiovIHN0YXRpYyBpbnQNCj4+ICthZHhyczQ1MF9zcGlfcmVhZF9yZWdfMTYoc3RydWN0IGRl
dmljZSAqZGV2LA0KPj4gKyAgICAgICAgICAgIHU4IHJlZ19hZGRyZXNzLA0KPj4gKyAgICAgICAg
ICAgIHUxNiAqdmFsKQ0KPj4gK3sNCj4+ICsgICAgc3RydWN0IHNwaV9tZXNzYWdlIG1zZzsNCj4+
ICsgICAgc3RydWN0IGlpb19kZXYgKmluZGlvX2RldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0K
Pj4gKyAgICBzdHJ1Y3QgYWR4cnM0NTBfc3RhdGUgKnN0ID0gaWlvX2Rldl9nZXRfZGV2ZGF0YShp
bmRpb19kZXYpOw0KPj4gKyAgICBpbnQgcmV0Ow0KPiAgVGhlIGFycmF5IG9ubHkgaGFzIG9uZSBl
bGVtZW50LiBQbGVhc2UgbWFrZSBpdCBub3QgYmUgYW4gYXJyYXkuDQo+PiArICAgIHN0cnVjdCBz
cGlfdHJhbnNmZXIgeGZlcnNbXSA9IHsNCj4+ICsgICAgICAgICAgICB7DQo+PiArICAgICAgICAg
ICAgICAgICAgICAudHhfYnVmID0gc3QtPnR4LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgLnJ4
X2J1ZiA9IHN0LT5yeCwNCj4+ICsgICAgICAgICAgICAgICAgICAgIC5iaXRzX3Blcl93b3JkID0g
OCwNCj4+ICsgICAgICAgICAgICAgICAgICAgIC5sZW4gPSA0LA0KPj4gKyAgICAgICAgICAgIH0s
DQo+PiArICAgIH07DQo+PiArICAgIC8qIE5lZWRzIHRvIHNlbmQgdGhlIGNvbW1hbmQgdHdpY2Ug
dG8gZ2V0IHRoZSB3YW50ZWQgdmFsdWUgKi8NCj4+ICsgICAgbXV0ZXhfbG9jaygmc3QtPmJ1Zl9s
b2NrKTsNCj4+ICsgICAgc3QtPnR4WzBdID0gQURYUlM0NTBfUkVBRF9EQVRBIHwgcmVnX2FkZHJl
c3MgPj4gNzsNCj4+ICsgICAgc3QtPnR4WzFdID0gcmVnX2FkZHJlc3MgPDwgMTsNCj4+ICsgICAg
c3QtPnR4WzJdID0gMDsNCj4+ICsgICAgc3QtPnR4WzNdID0gMDsNCj4+ICsgICAgc3BpX21lc3Nh
Z2VfaW5pdCgmbXNnKTsNCj4+ICsgICAgc3BpX21lc3NhZ2VfYWRkX3RhaWwoJnhmZXJzWzBdLCAm
bXNnKTsNCj4+ICsgICAgcmV0ID0gc3BpX3N5bmMoc3QtPnVzLCAmbXNnKTsNCj4+ICsgICAgaWYg
KHJldCkgew0KPj4gKyAgICAgICAgICAgIGRldl9lcnIoJnN0LT51cy0+ZGV2LCAicHJvYmxlbSB3
aGlsZSByZWFkaW5nIDE2DQo+Yml0IHJlZ2lzdGVyIDB4JTAyeFxuIiwNCj4+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVnX2FkZHJlc3MpOw0KPj4gKyAgICAgICAgICAgIGdvdG8gZXJy
b3JfcmV0Ow0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIHNwaV9tZXNzYWdlX2luaXQoJm1zZyk7
DQo+PiArICAgIHNwaV9tZXNzYWdlX2FkZF90YWlsKCZ4ZmVyc1swXSwgJm1zZyk7DQo+PiArICAg
IHJldCA9IHNwaV9zeW5jKHN0LT51cywgJm1zZyk7DQo+PiArICAgIGlmIChyZXQpIHsNCj4+ICsg
ICAgICAgICAgICBkZXZfZXJyKCZzdC0+dXMtPmRldiwgInByb2JsZW0gd2hpbGUgcmVhZGluZyAx
Ng0KPmJpdCByZWdpc3RlciAweCUwMnhcbiIsDQo+PiArICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHJlZ19hZGRyZXNzKTsNCj4+ICsgICAgICAgICAgICBnb3RvIGVycm9yX3JldDsNCj4+ICsg
ICAgfQ0KPj4gKw0KPj4gKyAgICAqdmFsID0gKHN0LT5yeFsxXSAmIDB4MWYpIDw8IDExIHwgc3Qt
PnJ4WzJdIDw8IDMgfCAoc3QtPnJ4WzNdICYNCj4+ICsweGUwKSA+PiA1Ow0KPj4gKw0KPj4gK2Vy
cm9yX3JldDoNCj4+ICsgICAgbXV0ZXhfdW5sb2NrKCZzdC0+YnVmX2xvY2spOw0KPj4gKyAgICBy
ZXR1cm4gcmV0Ow0KPj4gK30NCj4+ICsNCj4+ICsvKioNCj4+ICsgKiBhZHhyczQ1MF9zcGlfd3Jp
dGVfcmVnXzE2KCkgLSB3cml0ZSAyIGJ5dGVzIGRhdGEgdG8gYSByZWdpc3Rlcg0KPj4gK3BhaXIN
Cj4+ICsgKiBAZGV2OiBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIGNoaWxkIG9mIGFjdHVhbCBkZXZp
Y2UgKGlpb19kZXYgb3INCj4+ICtpaW9fdHJpZykNCj5JZiBpdCdzIGFuIGlpb190cmlnLCBjYXN0
aW5nIGl0IHRvIGFuIGlpb19kZXYgd2lsbCBnaXZlIHlvdQ0KPnNvbWV3aGF0IGludGVycmVzdGlu
ZyByZXN1bHRzIQ0KPj4gKyAqIEByZWdfYWRkcmVzczogdGhlIGFkZHJlc3Mgb2YgdGhlIGxvd2Vy
IG9mIHRoZSB0d28NCj5yZWdpc3RlcnMsd2hpY2gNCj4+ICtzaG91bGQgYmUgYW4gZXZlbiBhZGRy
ZXNzLA0KPj4gKyAqIFNlY29uZCByZWdpc3RlcidzIGFkZHJlc3MgaXMgcmVnX2FkZHJlc3MgKyAx
Lg0KPj4gKyAqIEB2YWw6IHZhbHVlIHRvIGJlIHdyaXR0ZW4uDQo+PiArICoqLw0KPj4gK3N0YXRp
YyBpbnQgYWR4cnM0NTBfc3BpX3dyaXRlX3JlZ18xNihzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+PiAr
ICAgICAgICAgICAgdTggcmVnX2FkZHJlc3MsDQo+PiArICAgICAgICAgICAgdTE2ICp2YWwpDQo+
PiArew0KPj4gKyAgICBzdHJ1Y3Qgc3BpX21lc3NhZ2UgbXNnOw0KPj4gKyAgICBzdHJ1Y3QgaWlv
X2RldiAqaW5kaW9fZGV2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+PiArICAgIHN0cnVjdCBh
ZHhyczQ1MF9zdGF0ZSAqc3QgPSBpaW9fZGV2X2dldF9kZXZkYXRhKGluZGlvX2Rldik7DQo+PiAr
ICAgIGludCByZXQ7DQo+QWdhaW4sIHNob3VsZG4ndCBiZSBhbiBhcnJheS4NCj4+ICsgICAgc3Ry
dWN0IHNwaV90cmFuc2ZlciB4ZmVyc1tdID0gew0KPj4gKyAgICAgICAgICAgIHsNCj4+ICsgICAg
ICAgICAgICAgICAgICAgIC50eF9idWYgPSBzdC0+dHgsDQo+PiArICAgICAgICAgICAgICAgICAg
ICAucnhfYnVmID0gc3QtPnJ4LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgLmJpdHNfcGVyX3dv
cmQgPSA4LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgLmxlbiA9IDQsDQo+PiArICAgICAgICAg
ICAgfSwNCj4+ICsgICAgfTsNCj4+ICsNCj4+ICsgICAgbXV0ZXhfbG9jaygmc3QtPmJ1Zl9sb2Nr
KTsNCj4+ICsgICAgc3QtPnR4WzBdID0gQURYUlM0NTBfV1JJVEVfREFUQSB8IHJlZ19hZGRyZXNz
ID4+IDc7DQo+PiArICAgIHN0LT50eFsxXSA9IHJlZ19hZGRyZXNzIDw8IDEgfCAqdmFsID4+IDE1
Ow0KPj4gKyAgICBzdC0+dHhbMl0gPSAqdmFsID4+IDc7DQo+PiArICAgIHN0LT50eFszXSA9ICp2
YWwgPDwgMTsNCj4+ICsgICAgc3BpX21lc3NhZ2VfaW5pdCgmbXNnKTsNCj4+ICsgICAgc3BpX21l
c3NhZ2VfYWRkX3RhaWwoJnhmZXJzWzBdLCAmbXNnKTsNCj4+ICsgICAgcmV0ID0gc3BpX3N5bmMo
c3QtPnVzLCAmbXNnKTsNCj4+ICsgICAgaWYgKHJldCkgew0KPj4gKyAgICAgICAgICAgIGRldl9l
cnIoJnN0LT51cy0+ZGV2LCAicHJvYmxlbSB3aGlsZSB3cml0aW5nIDE2DQo+Yml0IHJlZ2lzdGVy
IDB4JTAyeFxuIiwNCj4+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnX2FkZHJlc3Mp
Ow0KPj4gKyAgICAgICAgICAgIGdvdG8gZXJyb3JfcmV0Ow0KPm9ubHkgZ29pbmcgdG8gbmV4dCBs
aW5lIHNvIGRvbid0IG5lZWQgdGhlIGdvdG8gYW5kIGFzIGEgcmVzdWx0DQo+bm8gbmVlZCBmb3Ig
dGhlIGJyYWNrZXRzIGVpdGhlci4NCj4+ICsgICAgfQ0KPj4gKw0KPj4gK2Vycm9yX3JldDoNCj4+
ICsgICAgbXV0ZXhfdW5sb2NrKCZzdC0+YnVmX2xvY2spOw0KPj4gKyAgICByZXR1cm4gcmV0Ow0K
Pj4gK30NCj4+ICsNCj4+ICsvKioNCj4+ICsgKiBhZHhyczQ1MF9zcGlfc2Vuc29yX2RhdGEoKSAt
IHJlYWQgMiBieXRlcyBzZW5zb3IgZGF0YQ0KPj4gKyAqIEBkZXY6IGRldmljZSBhc3NvY2lhdGVk
IHdpdGggY2hpbGQgb2YgYWN0dWFsIGRldmljZSAoaWlvX2RldiBvcg0KPj4gK2lpb190cmlnKQ0K
Pj4gKyAqIEB2YWw6IHNvbWV3aGVyZSB0byBwYXNzIGJhY2sgdGhlIHZhbHVlIHJlYWQgICoqLyBz
dGF0aWMgaW50DQo+PiArYWR4cnM0NTBfc3BpX3NlbnNvcl9kYXRhKHN0cnVjdCBkZXZpY2UgKmRl
diwgdTE2ICp2YWwpIHsNCj4+ICsgICAgc3RydWN0IHNwaV9tZXNzYWdlIG1zZzsNCj4+ICsgICAg
c3RydWN0IGlpb19kZXYgKmluZGlvX2RldiA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOw0KPj4gKyAg
ICBzdHJ1Y3QgYWR4cnM0NTBfc3RhdGUgKnN0ID0gaWlvX2Rldl9nZXRfZGV2ZGF0YShpbmRpb19k
ZXYpOw0KPj4gKyAgICBpbnQgcmV0Ow0KPlNhbWUgYXJyYXkgY29tbWVudC4NCj4+ICsgICAgc3Ry
dWN0IHNwaV90cmFuc2ZlciB4ZmVyc1tdID0gew0KPj4gKyAgICAgICAgICAgIHsNCj4+ICsgICAg
ICAgICAgICAgICAgICAgIC50eF9idWYgPSBzdC0+dHgsDQo+PiArICAgICAgICAgICAgICAgICAg
ICAucnhfYnVmID0gc3QtPnJ4LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgLmJpdHNfcGVyX3dv
cmQgPSA4LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgLmxlbiA9IDQsDQo+PiArICAgICAgICAg
ICAgfQ0KPj4gKyAgICB9Ow0KPj4gKw0KPj4gKyAgICBtdXRleF9sb2NrKCZzdC0+YnVmX2xvY2sp
Ow0KPj4gKyAgICBzdC0+dHhbMF0gPSBBRFhSUzQ1MF9TRU5TT1JfREFUQTsNCj4+ICsgICAgc3Qt
PnR4WzFdID0gMDsNCj4+ICsgICAgc3QtPnR4WzJdID0gMDsNCj4+ICsgICAgc3QtPnR4WzNdID0g
MDsNCj4+ICsNCj4+ICsgICAgc3BpX21lc3NhZ2VfaW5pdCgmbXNnKTsNCj4+ICsgICAgc3BpX21l
c3NhZ2VfYWRkX3RhaWwoJnhmZXJzWzBdLCAmbXNnKTsNCj4+ICsgICAgcmV0ID0gc3BpX3N5bmMo
c3QtPnVzLCAmbXNnKTsNCj4+ICsgICAgaWYgKHJldCkgew0KPj4gKyAgICAgICAgICAgIGRldl9l
cnIoJnN0LT51cy0+ZGV2LCAiUHJvYmxlbSB3aGlsZSByZWFkaW5nDQo+c2Vuc29yIGRhdGFcbiIp
Ow0KPj4gKyAgICAgICAgICAgIGdvdG8gZXJyb3JfcmV0Ow0KPj4gKyAgICB9DQo+PiArDQo+PiAr
ICAgIHNwaV9tZXNzYWdlX2luaXQoJm1zZyk7DQo+PiArICAgIHNwaV9tZXNzYWdlX2FkZF90YWls
KCZ4ZmVyc1swXSwgJm1zZyk7DQo+PiArICAgIHJldCA9IHNwaV9zeW5jKHN0LT51cywgJm1zZyk7
DQo+PiArICAgIGlmIChyZXQpIHsNCj4+ICsgICAgICAgICAgICBkZXZfZXJyKCZzdC0+dXMtPmRl
diwgIlByb2JsZW0gd2hpbGUgcmVhZGluZw0KPnNlbnNvciBkYXRhXG4iKTsNCj4+ICsgICAgICAg
ICAgICBnb3RvIGVycm9yX3JldDsNCj4+ICsgICAgfQ0KPj4gKw0KPj4gKyAgICAqdmFsID0gKHN0
LT5yeFswXSAmIDB4MDMpIDw8IDE0IHwgc3QtPnJ4WzFdIDw8IDYgfCAoc3QtPnJ4WzJdICYNCj4+
ICsweGZjKSA+PiAyOw0KPj4gK2Vycm9yX3JldDoNCj4+ICsgICAgbXV0ZXhfdW5sb2NrKCZzdC0+
YnVmX2xvY2spOw0KPj4gKyAgICByZXR1cm4gcmV0Ow0KPj4gK30NCj4+ICsNCj4NCj5UaGlzIGxv
b2tzIHRvIG9ubHkgYmUgY2FsbGVkIGZyb20gaW5pdGlhbCBzZXR1cC4gTWlnaHQgYXMgd2VsbA0K
Pmp1c3QgbWFrZSBpdCB0YWtlIGFuIGFkeHJzNDUwX3N0YXRlIGRpcmVjdGx5IGFuZCBzYXZlIHRo
ZQ0KPmNhcmVmdWwgaW5kaXJlY3Rpb24gdGhhdCBpcyBjdXJyZW50bHkgZ29pbmcgb24gdG8gZW5z
dXJlIGl0DQo+Z2V0cyB0aGUgc2FtZSBkZXYgYXMgdGhlIG90aGVyIHdyaXRlIGZ1bmN0aW9ucy4N
Cj4+ICsvKioNCj4+ICsgKiBhZHhyczQ1MF9zcGlfaW5pdGlhbCgpIC0gdXNlIGZvciBpbml0aWFs
aXppbmcgcHJvY2VkdXJlLg0KPj4gKyAqIEBkZXY6IGRldmljZSBhc3NvY2lhdGVkIHdpdGggY2hp
bGQgb2YgYWN0dWFsIGRldmljZSAoaWlvX2RldiBvcg0KPj4gK2lpb190cmlnKQ0KPj4gKyAqIEB2
YWw6IHNvbWV3aGVyZSB0byBwYXNzIGJhY2sgdGhlIHZhbHVlIHJlYWQgICoqLyBzdGF0aWMgaW50
DQo+PiArYWR4cnM0NTBfc3BpX2luaXRpYWwoc3RydWN0IGRldmljZSAqZGV2LA0KPj4gKyAgICAg
ICAgICAgIHUzMiAqdmFsLCBjaGFyIGNoaykNCj4+ICt7DQo+PiArICAgIHN0cnVjdCBzcGlfbWVz
c2FnZSBtc2c7DQo+PiArICAgIHN0cnVjdCBpaW9fZGV2ICppbmRpb19kZXYgPSBkZXZfZ2V0X2Ry
dmRhdGEoZGV2KTsNCj4+ICsgICAgc3RydWN0IGFkeHJzNDUwX3N0YXRlICpzdCA9IGlpb19kZXZf
Z2V0X2RldmRhdGEoaW5kaW9fZGV2KTsNCj4+ICsgICAgaW50IHJldDsNCj5Bbm90aGVyIHVubmVl
ZGVkIGFycmF5Lg0KPj4gKyAgICBzdHJ1Y3Qgc3BpX3RyYW5zZmVyIHhmZXJzW10gPSB7DQo+PiAr
ICAgICAgICAgICAgew0KPj4gKyAgICAgICAgICAgICAgICAgICAgLnR4X2J1ZiA9IHN0LT50eCwN
Cj4+ICsgICAgICAgICAgICAgICAgICAgIC5yeF9idWYgPSBzdC0+cngsDQo+PiArICAgICAgICAg
ICAgICAgICAgICAuYml0c19wZXJfd29yZCA9IDgsDQo+PiArICAgICAgICAgICAgICAgICAgICAu
bGVuID0gNCwNCj4+ICsgICAgICAgICAgICB9LA0KPj4gKyAgICB9Ow0KPj4gKw0KPj4gKyAgICBt
dXRleF9sb2NrKCZzdC0+YnVmX2xvY2spOw0KPj4gKyAgICBzdC0+dHhbMF0gPSBBRFhSUzQ1MF9T
RU5TT1JfREFUQTsNCj4+ICsgICAgc3QtPnR4WzFdID0gMDsNCj4+ICsgICAgc3QtPnR4WzJdID0g
MDsNCj4+ICsgICAgc3QtPnR4WzNdID0gMDsNCj4+ICsgICAgaWYgKGNoaykNCj4+ICsgICAgICAg
ICAgICBzdC0+dHhbM10gfD0gKEFEWFJTNDUwX0NISyB8IEFEWFJTNDUwX1ApOw0KPj4gKyAgICBz
cGlfbWVzc2FnZV9pbml0KCZtc2cpOw0KPj4gKyAgICBzcGlfbWVzc2FnZV9hZGRfdGFpbCgmeGZl
cnNbMF0sICZtc2cpOw0KPj4gKyAgICByZXQgPSBzcGlfc3luYyhzdC0+dXMsICZtc2cpOw0KPj4g
KyAgICBpZiAocmV0KSB7DQo+PiArICAgICAgICAgICAgZGV2X2Vycigmc3QtPnVzLT5kZXYsICJQ
cm9ibGVtIHdoaWxlIHJlYWRpbmcNCj5pbml0aWFsaXppbmcgZGF0YVxuIik7DQo+PiArICAgICAg
ICAgICAgZ290byBlcnJvcl9yZXQ7DQo+PiArICAgIH0NCj4+ICsNCj5Mb29rcyBsaWtlIGFuIGVu
ZGluYW5lc3MgY29udmVyc2lvbiB0byBtZS4gYmUzMnRvY3B1Lg0KPg0KPj4gKyAgICAqdmFsID0g
c3QtPnJ4WzBdIDw8IDI0IHwgc3QtPnJ4WzFdIDw8IDE2IHwgc3QtPnJ4WzJdIDw8IDggfA0KPj4g
K3N0LT5yeFszXTsNCj4+ICsNCj4+ICtlcnJvcl9yZXQ6DQo+PiArICAgIG11dGV4X3VubG9jaygm
c3QtPmJ1Zl9sb2NrKTsNCj4+ICsgICAgcmV0dXJuIHJldDsNCj4+ICt9DQo+PiArDQo+PiArc3Rh
dGljIHNzaXplX3QgYWR4cnM0NTBfcmVhZF90ZW1wKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4+ICsg
ICAgICAgICAgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwNCj4+ICsgICAgICAgICAg
ICBjaGFyICpidWYpDQo+PiArew0KPj4gKyAgICBpbnQgcmV0LCBsZW4gPSAwOw0KPk5vIG5lZWQg
dG8gaW5pdGlhbGl6ZSBsZW4uDQo+PiArICAgIHUxNiB0Ow0KPj4gKyAgICByZXQgPSBhZHhyczQ1
MF9zcGlfcmVhZF9yZWdfMTYoZGV2LA0KPj4gKyAgICAgICAgICAgICAgICAgICAgQURYUlM0NTBf
VEVNUDEsDQo+PiArICAgICAgICAgICAgICAgICAgICAmdCk7DQo+PiArICAgIGlmIChyZXQpDQo+
PiArICAgICAgICAgICAgcmV0dXJuIHJldDsNCj4+ICsgICAgbGVuID0gc3ByaW50ZihidWYsICIl
ZFxuIiwgdCk7DQo+PiArICAgIHJldHVybiBsZW47DQo+PiArfQ0KPj4gKw0KPj4gK3N0YXRpYyBz
c2l6ZV90IGFkeHJzNDUwX3JlYWRfcXVhZChzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+PiArICAgICAg
ICAgICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsDQo+PiArICAgICAgICAgICAgY2hh
ciAqYnVmKQ0KPj4gK3sNCj4+ICsgICAgaW50IHJldCwgbGVuID0gMDsNCj5TYW1lIGZvciB0aGlz
IGxlbg0KPj4gKyAgICB1MTYgdDsNCj4+ICsgICAgcmV0ID0gYWR4cnM0NTBfc3BpX3JlYWRfcmVn
XzE2KGRldiwNCj4+ICsgICAgICAgICAgICAgICAgICAgIEFEWFJTNDUwX1FVQUQxLA0KPj4gKyAg
ICAgICAgICAgICAgICAgICAgJnQpOw0KPj4gKyAgICBpZiAocmV0KQ0KPj4gKyAgICAgICAgICAg
IHJldHVybiByZXQ7DQo+PiArICAgIGxlbiA9IHNwcmludGYoYnVmLCAiJWRcbiIsIHQpOw0KPj4g
KyAgICByZXR1cm4gbGVuOw0KPj4gK30NCj4+ICsNCj4+ICtzdGF0aWMgc3NpemVfdCBhZHhyczQ1
MF93cml0ZV9kbmMoc3RydWN0IGRldmljZSAqZGV2LA0KPj4gKyAgICAgICAgICAgIHN0cnVjdCBk
ZXZpY2VfYXR0cmlidXRlICphdHRyLA0KPj4gKyAgICAgICAgICAgIGNvbnN0IGNoYXIgKmJ1ZiwN
Cj4+ICsgICAgICAgICAgICBzaXplX3QgbGVuKQ0KPj4gK3sNCj4+ICsgICAgaW50IHJldDsNCj4+
ICsgICAgdTE2IHZhbDsNCj4+ICsNCj4+ICsgICAgaWYgKGxlbiA9PSAwIHx8IGxlbiA+IDIpDQo+
PiArICAgICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+PiArICAgIG1lbWNweSgmdmFsLCBidWYs
IGxlbik7DQo+PiArICAgIHJldCA9IGFkeHJzNDUwX3NwaV93cml0ZV9yZWdfMTYoZGV2LA0KPj4g
KyAgICAgICAgICAgICAgICAgICAgQURYUlM0NTBfRE5DMSwNCj4+ICsgICAgICAgICAgICAgICAg
ICAgICZ2YWwpOw0KPkVyciwgc28gd2hhdCBpcyBtZWFudCB0byBiZSB3cml0dGVuIHRvIHRoaXM/
ICBMb29rcyBsaWtlDQo+eW91J2xsIGJlIGR1bXBpbmcgYSByYW5kb20gc2luZ2xlIGNoYXJhY3Rl
ciBpbiB0byB0aGUgcmVnaXN0ZXIuLi4NCj5Eb2N1bWVudGF0aW9uIHdvdWxkIGNsZWFyIHRoaXMg
dXAuDQo+DQo+PiArICAgIHJldHVybiByZXQgPyByZXQgOiBsZW47DQo+PiArfQ0KPj4gKw0KPj4g
K3N0YXRpYyBzc2l6ZV90IGFkeHJzNDUwX3JlYWRfc2Vuc29yX2RhdGEoc3RydWN0IGRldmljZSAq
ZGV2LA0KPj4gKyAgICAgICAgICAgIHN0cnVjdCBkZXZpY2VfYXR0cmlidXRlICphdHRyLA0KPj4g
KyAgICAgICAgICAgIGNoYXIgKmJ1ZikNCj4+ICt7DQo+PiArICAgIGludCByZXQsIGxlbiA9IDA7
DQo+YW5vdGhlciB1bm5lZWRlZCBpbml0IG9mIGxlbg0KPj4gKyAgICB1MTYgdDsNCj4+ICsNCj4+
ICsgICAgcmV0ID0gYWR4cnM0NTBfc3BpX3NlbnNvcl9kYXRhKGRldiwgJnQpOw0KPj4gKyAgICBp
ZiAocmV0KQ0KPj4gKyAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArDQo+PiArICAgIGxlbiA9
IHNwcmludGYoYnVmLCAiJWRcbiIsIHQpOw0KPj4gKyAgICByZXR1cm4gbGVuOw0KPj4gK30NCj4+
ICsNCj4+ICsvKiBSZWNvbW1lbmRlZCBTdGFydHVwIFNlcXVlbmNlIGJ5IHNwZWMgKi8gc3RhdGlj
IGludA0KPj4gK2FkeHJzNDUwX2luaXRpYWxfc2V0dXAoc3RydWN0IGFkeHJzNDUwX3N0YXRlICpz
dCkgew0KPj4gKyAgICB1MzIgdDsNCj4+ICsgICAgdTE2IGRhdGE7DQo+PiArICAgIGludCByZXQ7
DQo+PiArICAgIHN0cnVjdCBkZXZpY2UgKmRldiA9ICZzdC0+aW5kaW9fZGV2LT5kZXY7DQo+PiAr
DQo+PiArICAgIG1zbGVlcChBRFhSUzQ1MF9TVEFSVFVQX0RFTEFZKjIpOw0KPj4gKyAgICByZXQg
PSBhZHhyczQ1MF9zcGlfaW5pdGlhbChkZXYsICZ0LCAxKTsNCj4+ICsgICAgaWYgKHJldCkNCj4+
ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4gKyAgICBpZiAodCAhPSAweDAxKSB7DQo+PiAr
ICAgICAgICAgICAgZGV2X2Vycigmc3QtPnVzLT5kZXYsICJUaGUgaW5pdGlhbCByZXNwb25zZSBp
cw0KPm5vdCBjb3JyZWN0IVxuIik7DQo+PiArICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7DQo+
PiArDQo+PiArICAgIH0NCj4+ICsNCj4+ICsgICAgbXNsZWVwKEFEWFJTNDUwX1NUQVJUVVBfREVM
QVkpOw0KPj4gKyAgICByZXQgPSBhZHhyczQ1MF9zcGlfaW5pdGlhbChkZXYsICZ0LCAwKTsNCj4+
ICsgICAgaWYgKHJldCkNCj4+ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4gKw0KPj4gKyAg
ICBtc2xlZXAoQURYUlM0NTBfU1RBUlRVUF9ERUxBWSk7DQo+PiArICAgIHJldCA9IGFkeHJzNDUw
X3NwaV9pbml0aWFsKGRldiwgJnQsIDApOw0KPj4gKyAgICBpZiAocmV0KQ0KPj4gKyAgICAgICAg
ICAgIHJldHVybiByZXQ7DQo+PiArICAgIGlmICgoKHQgJiAweGZmKSB8IDB4MDEpICE9IDB4ZmYg
fHwgQURYUlM0NTBfR0VUX1NUKHQpICE9IDIpIHsNCj4+ICsgICAgICAgICAgICBkZXZfZXJyKCZz
dC0+dXMtPmRldiwgIlRoZSBzZWNvbmQgcmVzcG9uc2UgaXMNCj5ub3QgY29ycmVjdCFcbiIpOw0K
Pj4gKyAgICAgICAgICAgIHJldHVybiAtRUlPOw0KPj4gKw0KPj4gKyAgICB9DQo+PiArICAgIHJl
dCA9IGFkeHJzNDUwX3NwaV9pbml0aWFsKGRldiwgJnQsIDApOw0KPj4gKyAgICBpZiAocmV0KQ0K
Pj4gKyAgICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgIGlmICgoKHQgJiAweGZmKSB8IDB4
MDEpICE9IDB4ZmYgfHwgQURYUlM0NTBfR0VUX1NUKHQpICE9IDIpIHsNCj4+ICsgICAgICAgICAg
ICBkZXZfZXJyKCZzdC0+dXMtPmRldiwgIlRoZSB0aGlyZCByZXNwb25zZSBpcw0KPm5vdCBjb3Jy
ZWN0IVxuIik7DQo+PiArICAgICAgICAgICAgcmV0dXJuIC1FSU87DQo+PiArDQo+PiArICAgIH0N
Cj4+ICsgICAgcmV0ID0gYWR4cnM0NTBfc3BpX3JlYWRfcmVnXzE2KGRldiwgQURYUlM0NTBfRkFV
TFQxLCAmZGF0YSk7DQo+PiArICAgIGlmIChyZXQpDQo+PiArICAgICAgICAgICAgcmV0dXJuIHJl
dDsNCj4+ICsgICAgaWYgKGRhdGEgJiAweDBmZmYpIHsNCj4+ICsgICAgICAgICAgICBkZXZfZXJy
KCZzdC0+dXMtPmRldiwgIlRoZSBkZXZpY2UgaXMgbm90IGluDQo+bm9ybWFsIHN0YXR1cyFcbiIp
Ow0KPj4gKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KPj4gKyAgICB9DQo+PiArICAgIHJl
dCA9IGFkeHJzNDUwX3NwaV9yZWFkX3JlZ18xNihkZXYsIEFEWFJTNDUwX1BJRDEsICZkYXRhKTsN
Cj4+ICsgICAgaWYgKHJldCkNCj4+ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPj4gKyAgICBk
ZXZfaW5mbygmc3QtPnVzLT5kZXYsICJUaGUgUGFydCBJRCBpcyAweCV4XG4iLCBkYXRhKTsNCj4+
ICsNCj4+ICsgICAgcmV0ID0gYWR4cnM0NTBfc3BpX3JlYWRfcmVnXzE2KGRldiwgQURYUlM0NTBf
U05MLCAmZGF0YSk7DQo+PiArICAgIGlmIChyZXQpDQo+PiArICAgICAgICAgICAgcmV0dXJuIHJl
dDsNCj4+ICsgICAgdCA9IGRhdGE7DQo+PiArICAgIHJldCA9IGFkeHJzNDUwX3NwaV9yZWFkX3Jl
Z18xNihkZXYsIEFEWFJTNDUwX1NOSCwgJmRhdGEpOw0KPj4gKyAgICBpZiAocmV0KQ0KPj4gKyAg
ICAgICAgICAgIHJldHVybiByZXQ7DQo+PiArICAgIHQgfD0gZGF0YSA8PCAxNjsNCj4+ICsgICAg
ZGV2X2luZm8oJnN0LT51cy0+ZGV2LCAiVGhlIFNlcmlhbCBOdW1iZXIgaXMgMHgleFxuIiwgdCk7
DQo+PiArDQo+PiArICAgIGRldl9pbmZvKCZzdC0+dXMtPmRldiwgIiVzIGF0IENTJWRcbiIsIERS
SVZFUl9OQU1FLA0KPj4gKyAgICAgICAgICAgICAgICAgICAgc3QtPnVzLT5jaGlwX3NlbGVjdCk7
DQo+Tm90IHJlYWxseSB1c2VmdWwgaW5mbyB0byB0aGUgYXZlcmFnZSByZWFkZXIgb2YgdGhlIGxv
Zy4NCj5QbGVhc2UgY2xlYW4gdGhpcyBvbmUgb3V0Lg0KPj4gKw0KPj4gKyAgICByZXR1cm4gMDsN
Cj4+ICt9DQo+PiArDQo+SSBub3RlIHRoZXJlIGFyZSB0d28gdmVyc2lvbnMgb2YgdGhpcyBjaGlw
IChmcm9tIGRhdGFzaGVldCkuDQo+V2Ugc2hvdWxkIHByb2JhYmx5IHN1cHBvcnQgY2hhbmdpbmcg
dGhpcyBheGlzIGFjY29yZGluZyB0bw0KPndoaWNoIG9uZSB3ZSBoYXZlLiAgWiBpcyBvdXQgb2Yg
Y2hpcCBwbGFuZS4gVGhlIG90aGVyIHR3byBhcmUNCj5hcmJpdHJhcnkgaWYgd2Ugb25seSBoYXZl
IDEgYXhpcyBvbiB0aGUgY2hpcC4NCj4+ICtzdGF0aWMgSUlPX0RFVl9BVFRSX0dZUk9fWihhZHhy
czQ1MF9yZWFkX3NlbnNvcl9kYXRhLCAwKTsgc3RhdGljDQo+PiArSUlPX0RFVl9BVFRSX1RFTVBf
UkFXKGFkeHJzNDUwX3JlYWRfdGVtcCk7DQo+PiArc3RhdGljIElJT19ERVZJQ0VfQVRUUihxdWFk
LCBTX0lSVUdPLA0KPj4gKyAgICAgICAgICAgIGFkeHJzNDUwX3JlYWRfcXVhZCwgTlVMTCwgMCk7
DQo+PiArc3RhdGljIElJT19ERVZJQ0VfQVRUUihkeW5hbWljX251bGxfY29ycmVjdGlvbiwgU19J
V1VHTywNCj5JV1VTUiBwbGVhc2UuIFBlb3BsZSBnZXQgbmVydm91cyBmb3IgYW55IGdyZWF0ZXIg
cGVybWlzc2lvbnMgdGhhbiB0aGF0Lg0KPj4gKyAgICAgICAgICAgIE5VTEwsIGFkeHJzNDUwX3dy
aXRlX2RuYywgMCk7DQo+PiArc3RhdGljIElJT19DT05TVF9BVFRSKG5hbWUsICJhZHhyczQ1MCIp
Ow0KPj4gKw0KPj4gK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICphZHhyczQ1MF9hdHRyaWJ1dGVz
W10gPSB7DQo+Ym9udXMgYmxhbmsgbGluZSBoZXJlLiBQbGVhc2UgcmVtb3ZlLg0KPj4gKw0KPj4g
KyAgICAmaWlvX2Rldl9hdHRyX2d5cm9fel9yYXcuZGV2X2F0dHIuYXR0ciwNCj4+ICsgICAgJmlp
b19kZXZfYXR0cl90ZW1wX3Jhdy5kZXZfYXR0ci5hdHRyLA0KPj4gKyAgICAmaWlvX2Rldl9hdHRy
X3F1YWQuZGV2X2F0dHIuYXR0ciwNCj4+ICsgICAgJmlpb19kZXZfYXR0cl9keW5hbWljX251bGxf
Y29ycmVjdGlvbi5kZXZfYXR0ci5hdHRyLA0KPj4gKyAgICAmaWlvX2NvbnN0X2F0dHJfbmFtZS5k
ZXZfYXR0ci5hdHRyLA0KPj4gKyAgICBOVUxMDQo+PiArfTsNCj4+ICsNCj4+ICtzdGF0aWMgY29u
c3Qgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBhZHhyczQ1MF9hdHRyaWJ1dGVfZ3JvdXAgPSB7DQo+
PiArICAgIC5hdHRycyA9IGFkeHJzNDUwX2F0dHJpYnV0ZXMsDQo+PiArfTsNCj4+ICsNCj4+ICtz
dGF0aWMgaW50IF9fZGV2aW5pdCBhZHhyczQ1MF9wcm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3Bp
KSB7DQo+PiArICAgIGludCByZXQsIHJlZ2RvbmUgPSAwOw0KPj4gKyAgICBzdHJ1Y3QgYWR4cnM0
NTBfc3RhdGUgKnN0ID0ga3phbGxvYyhzaXplb2YgKnN0LCBHRlBfS0VSTkVMKTsNCj4+ICsgICAg
aWYgKCFzdCkgew0KPj4gKyAgICAgICAgICAgIHJldCA9ICAtRU5PTUVNOw0KPj4gKyAgICAgICAg
ICAgIGdvdG8gZXJyb3JfcmV0Ow0KPj4gKyAgICB9DQo+PiArICAgIC8qIFRoaXMgaXMgb25seSB1
c2VkIGZvciByZW1vdmFsIHB1cnBvc2VzICovDQo+PiArICAgIHNwaV9zZXRfZHJ2ZGF0YShzcGks
IHN0KTsNCj4+ICsNCj4+ICsgICAgLyogQWxsb2NhdGUgdGhlIGNvbW1zIGJ1ZmZlcnMgKi8NCj4+
ICsgICAgc3QtPnJ4ID0ga3phbGxvYyhzaXplb2YoKnN0LT5yeCkqQURYUlM0NTBfTUFYX1JYLCBH
RlBfS0VSTkVMKTsNCj4+ICsgICAgaWYgKHN0LT5yeCA9PSBOVUxMKSB7DQo+PiArICAgICAgICAg
ICAgcmV0ID0gLUVOT01FTTsNCj4+ICsgICAgICAgICAgICBnb3RvIGVycm9yX2ZyZWVfc3Q7DQo+
PiArICAgIH0NCj4+ICsgICAgc3QtPnR4ID0ga3phbGxvYyhzaXplb2YoKnN0LT50eCkqQURYUlM0
NTBfTUFYX1RYLCBHRlBfS0VSTkVMKTsNCj4+ICsgICAgaWYgKHN0LT50eCA9PSBOVUxMKSB7DQo+
PiArICAgICAgICAgICAgcmV0ID0gLUVOT01FTTsNCj4+ICsgICAgICAgICAgICBnb3RvIGVycm9y
X2ZyZWVfcng7DQo+PiArICAgIH0NCj4+ICsgICAgc3QtPnVzID0gc3BpOw0KPj4gKyAgICBtdXRl
eF9pbml0KCZzdC0+YnVmX2xvY2spOw0KPj4gKyAgICAvKiBzZXR1cCB0aGUgaW5kdXN0cmlhbGlv
IGRyaXZlciBhbGxvY2F0ZWQgZWxlbWVudHMgKi8NCj4+ICsgICAgc3QtPmluZGlvX2RldiA9IGlp
b19hbGxvY2F0ZV9kZXZpY2UoKTsNCj4+ICsgICAgaWYgKHN0LT5pbmRpb19kZXYgPT0gTlVMTCkg
ew0KPj4gKyAgICAgICAgICAgIHJldCA9IC1FTk9NRU07DQo+PiArICAgICAgICAgICAgZ290byBl
cnJvcl9mcmVlX3R4Ow0KPj4gKyAgICB9DQo+PiArDQo+PiArICAgIHN0LT5pbmRpb19kZXYtPmRl
di5wYXJlbnQgPSAmc3BpLT5kZXY7DQo+PiArICAgIHN0LT5pbmRpb19kZXYtPmF0dHJzID0gJmFk
eHJzNDUwX2F0dHJpYnV0ZV9ncm91cDsNCj4+ICsgICAgc3QtPmluZGlvX2Rldi0+ZGV2X2RhdGEg
PSAodm9pZCAqKShzdCk7DQo+PiArICAgIHN0LT5pbmRpb19kZXYtPmRyaXZlcl9tb2R1bGUgPSBU
SElTX01PRFVMRTsNCj4+ICsgICAgc3QtPmluZGlvX2Rldi0+bW9kZXMgPSBJTkRJT19ESVJFQ1Rf
TU9ERTsNCj4+ICsNCj4+ICsgICAgcmV0ID0gaWlvX2RldmljZV9yZWdpc3RlcihzdC0+aW5kaW9f
ZGV2KTsNCj4+ICsgICAgaWYgKHJldCkNCj4+ICsgICAgICAgICAgICBnb3RvIGVycm9yX2ZyZWVf
ZGV2Ow0KPj4gKyAgICByZWdkb25lID0gMTsNCj4+ICsNCj4+ICsgICAgLyogR2V0IHRoZSBkZXZp
Y2UgaW50byBhIHNhbmUgaW5pdGlhbCBzdGF0ZSAqLw0KPj4gKyAgICByZXQgPSBhZHhyczQ1MF9p
bml0aWFsX3NldHVwKHN0KTsNCj4+ICsgICAgaWYgKHJldCkNCj4+ICsgICAgICAgICAgICBnb3Rv
IGVycm9yX2luaXRpYWw7DQo+PiArICAgIHJldHVybiAwOw0KPj4gKw0KPj4gK2Vycm9yX2luaXRp
YWw6DQo+PiArZXJyb3JfZnJlZV9kZXY6DQo+PiArICAgIGlmIChyZWdkb25lKQ0KPj4gKyAgICAg
ICAgICAgIGlpb19kZXZpY2VfdW5yZWdpc3RlcihzdC0+aW5kaW9fZGV2KTsNCj4+ICsgICAgZWxz
ZQ0KPj4gKyAgICAgICAgICAgIGlpb19mcmVlX2RldmljZShzdC0+aW5kaW9fZGV2KTsNCj4+ICtl
cnJvcl9mcmVlX3R4Og0KPj4gKyAgICBrZnJlZShzdC0+dHgpOw0KPj4gK2Vycm9yX2ZyZWVfcng6
DQo+PiArICAgIGtmcmVlKHN0LT5yeCk7DQo+PiArZXJyb3JfZnJlZV9zdDoNCj4+ICsgICAga2Zy
ZWUoc3QpOw0KPj4gK2Vycm9yX3JldDoNCj4+ICsgICAgcmV0dXJuIHJldDsNCj4+ICt9DQo+PiAr
DQo+PiArLyogZml4bWUsIGNvbmZpcm0gb3JkZXJpbmcgaW4gdGhpcyBmdW5jdGlvbiAqLyBzdGF0
aWMgaW50DQo+PiArYWR4cnM0NTBfcmVtb3ZlKHN0cnVjdCBzcGlfZGV2aWNlICpzcGkpIHsNCj4+
ICsgICAgc3RydWN0IGFkeHJzNDUwX3N0YXRlICpzdCA9IHNwaV9nZXRfZHJ2ZGF0YShzcGkpOw0K
Pg0KPk1pZ2h0IGFzIHdlbGwganVzdCBnbyB3aXRoDQo+DQo+aWlvX2RldmljZV91bnJlZ2lzdGVy
KHN0LT5pbmRpb19kZXYpOw0KPj4gKyAgICBzdHJ1Y3QgaWlvX2RldiAqaW5kaW9fZGV2ID0gc3Qt
PmluZGlvX2RldjsNCj4+ICsNCj4+ICsgICAgaWlvX2RldmljZV91bnJlZ2lzdGVyKGluZGlvX2Rl
dik7DQo+PiArICAgIGtmcmVlKHN0LT50eCk7DQo+PiArICAgIGtmcmVlKHN0LT5yeCk7DQo+PiAr
ICAgIGtmcmVlKHN0KTsNCj4+ICsNCj4+ICsgICAgcmV0dXJuIDA7DQo+PiArfQ0KPj4gKw0KPj4g
K3N0YXRpYyBzdHJ1Y3Qgc3BpX2RyaXZlciBhZHhyczQ1MF9kcml2ZXIgPSB7DQo+PiArICAgIC5k
cml2ZXIgPSB7DQo+PiArICAgICAgICAgICAgLm5hbWUgPSAiYWR4cnM0NTAiLA0KPj4gKyAgICAg
ICAgICAgIC5vd25lciA9IFRISVNfTU9EVUxFLA0KPj4gKyAgICB9LA0KPj4gKyAgICAucHJvYmUg
PSBhZHhyczQ1MF9wcm9iZSwNCj4+ICsgICAgLnJlbW92ZSA9IF9fZGV2ZXhpdF9wKGFkeHJzNDUw
X3JlbW92ZSksIH07DQo+PiArDQo+PiArc3RhdGljIF9faW5pdCBpbnQgYWR4cnM0NTBfaW5pdCh2
b2lkKSB7DQo+PiArICAgIHJldHVybiBzcGlfcmVnaXN0ZXJfZHJpdmVyKCZhZHhyczQ1MF9kcml2
ZXIpOw0KPj4gK30NCj4+ICttb2R1bGVfaW5pdChhZHhyczQ1MF9pbml0KTsNCj4+ICsNCj4+ICtz
dGF0aWMgX19leGl0IHZvaWQgYWR4cnM0NTBfZXhpdCh2b2lkKSB7DQo+PiArICAgIHNwaV91bnJl
Z2lzdGVyX2RyaXZlcigmYWR4cnM0NTBfZHJpdmVyKTsNCj4+ICt9DQo+PiArbW9kdWxlX2V4aXQo
YWR4cnM0NTBfZXhpdCk7DQo+PiArDQo+PiArTU9EVUxFX0FVVEhPUigiQ2xpZmYgQ2FpIDxjbGlm
Zi5jYWlAYW5hbG9nLmNvbT4iKTsNCj4+ICtNT0RVTEVfREVTQ1JJUFRJT04oIkFuYWxvZyBEZXZp
Y2VzIEFEWFJTNDUwIEd5cm9zY29wZSBTUEkgZHJpdmVyIik7DQo+PiArTU9EVUxFX0xJQ0VOU0Uo
IkdQTCB2MiIpOw0KPg0KPg0K
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help