RE: [RESEND PATCH] memory: Freescale CoreNet Coherency Fabric error reporting driver
From: Bharat.Bhushan@freescale.com <hidden>
Date: 2014-06-04 08:18:17
Also in:
lkml
DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTGludXhwcGMtZGV2IFtt YWlsdG86bGludXhwcGMtZGV2LQ0KPiBib3VuY2VzK2JoYXJhdC5iaHVzaGFuPWZyZWVzY2FsZS5j b21AbGlzdHMub3psYWJzLm9yZ10gT24gQmVoYWxmIE9mIFNjb3R0IFdvb2QNCj4gU2VudDogU2F0 dXJkYXksIE1heSAzMSwgMjAxNCAzOjU4IEFNDQo+IFRvOiBHcmVnIEtyb2FoLUhhcnRtYW4NCj4g Q2M6IGxpbnV4cHBjLWRldkBsaXN0cy5vemxhYnMub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJu ZWwub3JnDQo+IFN1YmplY3Q6IFtSRVNFTkQgUEFUQ0hdIG1lbW9yeTogRnJlZXNjYWxlIENvcmVO ZXQgQ29oZXJlbmN5IEZhYnJpYyBlcnJvcg0KPiByZXBvcnRpbmcgZHJpdmVyDQo+IA0KPiBUaGUg Q29yZU5ldCBDb2hlcmVuY3kgRmFicmljIGlzIHBhcnQgb2YgdGhlIG1lbW9yeSBzdWJzeXN0ZW0g b24gc29tZSBGcmVlc2NhbGUNCj4gUW9ySVEgY2hpcHMuICBJdCBjYW4gcmVwb3J0IGNvaGVyZW5j eSB2aW9sYXRpb25zIChlLmcuDQo+IGR1ZSB0byBtaXN1c2luZyBtZW1vcnkgdGhhdCBpcyBtYXBw ZWQgbm9uY29oZXJlbnQpIGFzIHdlbGwgYXMgdHJhbnNhY3Rpb25zIHRoYXQNCj4gZG8gbm90IGhp dCBhbnkgbG9jYWwgYWNjZXNzIHdpbmRvdywgb3Igd2hpY2ggaGl0IGEgbG9jYWwgYWNjZXNzIHdp bmRvdyB3aXRoIGFuDQo+IGludmFsaWQgdGFyZ2V0IElELg0KPiANCj4gU2lnbmVkLW9mZi1ieTog U2NvdHQgV29vZCA8c2NvdHR3b29kQGZyZWVzY2FsZS5jb20+DQo+IC0tLQ0KPiBSZXNlbmRpbmcg dG8gdGhlIHByb3BlciBsaXN0IGFkZHJlc3NlcyAtLSBzb3JyeSBmb3IgdGhlIGR1cGxpY2F0ZS4N Cj4gDQo+ICBhcmNoL3Bvd2VycGMvY29uZmlncy9jb3JlbmV0MzJfc21wX2RlZmNvbmZpZyB8ICAg MSArDQo+ICBhcmNoL3Bvd2VycGMvY29uZmlncy9jb3JlbmV0NjRfc21wX2RlZmNvbmZpZyB8ICAg MSArDQo+ICBkcml2ZXJzL21lbW9yeS9LY29uZmlnICAgICAgICAgICAgICAgICAgICAgICB8ICAx MCArKw0KPiAgZHJpdmVycy9tZW1vcnkvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKw0KPiAgZHJpdmVycy9tZW1vcnkvZnNsLWNvcmVuZXQtY2YuYyAgICAgICAgICAgICAgfCAy NDYgKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ICA1IGZpbGVzIGNoYW5nZWQsIDI1OSBp bnNlcnRpb25zKCspDQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9tZW1vcnkvZnNsLWNv cmVuZXQtY2YuYw0KPiANCj4gZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9jb25maWdzL2NvcmVu ZXQzMl9zbXBfZGVmY29uZmlnDQo+IGIvYXJjaC9wb3dlcnBjL2NvbmZpZ3MvY29yZW5ldDMyX3Nt cF9kZWZjb25maWcNCj4gaW5kZXggYzE5ZmYwNS4uMGM5OWQ3ZSAxMDA2NDQNCj4gLS0tIGEvYXJj aC9wb3dlcnBjL2NvbmZpZ3MvY29yZW5ldDMyX3NtcF9kZWZjb25maWcNCj4gKysrIGIvYXJjaC9w b3dlcnBjL2NvbmZpZ3MvY29yZW5ldDMyX3NtcF9kZWZjb25maWcNCj4gQEAgLTE3OSwzICsxNzks NCBAQCBDT05GSUdfQ1JZUFRPX1NIQTUxMj15ICBDT05GSUdfQ1JZUFRPX0FFUz15ICAjDQo+IENP TkZJR19DUllQVE9fQU5TSV9DUFJORyBpcyBub3Qgc2V0ICBDT05GSUdfQ1JZUFRPX0RFVl9GU0xf Q0FBTT15DQo+ICtDT05GSUdfRlNMX0NPUkVORVRfQ0Y9eQ0KPiBkaWZmIC0tZ2l0IGEvYXJjaC9w b3dlcnBjL2NvbmZpZ3MvY29yZW5ldDY0X3NtcF9kZWZjb25maWcNCj4gYi9hcmNoL3Bvd2VycGMv Y29uZmlncy9jb3JlbmV0NjRfc21wX2RlZmNvbmZpZw0KPiBpbmRleCA1YzdmYTE5Li44ZmI2MTZk IDEwMDY0NA0KPiAtLS0gYS9hcmNoL3Bvd2VycGMvY29uZmlncy9jb3JlbmV0NjRfc21wX2RlZmNv bmZpZw0KPiArKysgYi9hcmNoL3Bvd2VycGMvY29uZmlncy9jb3JlbmV0NjRfc21wX2RlZmNvbmZp Zw0KPiBAQCAtMTc1LDMgKzE3NSw0IEBAIENPTkZJR19DUllQVE9fU0hBMjU2PXkgIENPTkZJR19D UllQVE9fU0hBNTEyPXkgICMNCj4gQ09ORklHX0NSWVBUT19BTlNJX0NQUk5HIGlzIG5vdCBzZXQg IENPTkZJR19DUllQVE9fREVWX0ZTTF9DQUFNPXkNCj4gK0NPTkZJR19GU0xfQ09SRU5FVF9DRj15 DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21lbW9yeS9LY29uZmlnIGIvZHJpdmVycy9tZW1vcnkv S2NvbmZpZyBpbmRleA0KPiBjNTllOWM5Li5mYWI4MWExIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJz L21lbW9yeS9LY29uZmlnDQo+ICsrKyBiL2RyaXZlcnMvbWVtb3J5L0tjb25maWcNCj4gQEAgLTYx LDYgKzYxLDE2IEBAIGNvbmZpZyBURUdSQTMwX01DDQo+ICAJICBhbmFseXNpcywgZXNwZWNpYWxs eSBmb3IgSU9NTVUvU01NVShTeXN0ZW0gTWVtb3J5IE1hbmFnZW1lbnQNCj4gIAkgIFVuaXQpIG1v ZHVsZS4NCj4gDQo+ICtjb25maWcgRlNMX0NPUkVORVRfQ0YNCj4gKwl0cmlzdGF0ZSAiRnJlZXNj YWxlIENvcmVOZXQgRXJyb3IgUmVwb3J0aW5nIg0KPiArCWRlcGVuZHMgb24gRlNMX1NPQ19CT09L RQ0KPiArCWhlbHANCj4gKwkgIFNheSBZIGZvciByZXBvcnRpbmcgb2YgZXJyb3JzIGZyb20gdGhl IEZyZWVzY2FsZSBDb3JlTmV0DQo+ICsJICBDb2hlcmVuY3kgRmFicmljLiAgRXJyb3JzIHJlcG9y dGVkIGluY2x1ZGUgYWNjZXNzZXMgdG8NCj4gKwkgIHBoeXNpY2FsIGFkZHJlc3NlcyB0aGF0IG1h cHBlZCBieSBubyBsb2NhbCBhY2Nlc3Mgd2luZG93DQo+ICsJICAoTEFXKSBvciBhbiBpbnZhbGlk IExBVywgYXMgd2VsbCBhcyBiYWQgY2FjaGUgc3RhdGUgdGhhdA0KPiArCSAgcmVwcmVzZW50cyBh IGNvaGVyZW5jeSB2aW9sYXRpb24uDQo+ICsNCj4gIGNvbmZpZyBGU0xfSUZDDQo+ICAJYm9vbA0K PiAgCWRlcGVuZHMgb24gRlNMX1NPQw0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZW1vcnkvTWFr ZWZpbGUgYi9kcml2ZXJzL21lbW9yeS9NYWtlZmlsZSBpbmRleA0KPiA3MTE2MGEyLi40MDU1YzQ3 IDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL21lbW9yeS9NYWtlZmlsZQ0KPiArKysgYi9kcml2ZXJz L21lbW9yeS9NYWtlZmlsZQ0KPiBAQCAtNyw2ICs3LDcgQEAgb2JqLSQoQ09ORklHX09GKQkJKz0g b2ZfbWVtb3J5Lm8NCj4gIGVuZGlmDQo+ICBvYmotJChDT05GSUdfVElfQUVNSUYpCQkrPSB0aS1h ZW1pZi5vDQo+ICBvYmotJChDT05GSUdfVElfRU1JRikJCSs9IGVtaWYubw0KPiArb2JqLSQoQ09O RklHX0ZTTF9DT1JFTkVUX0NGKQkrPSBmc2wtY29yZW5ldC1jZi5vDQo+ICBvYmotJChDT05GSUdf RlNMX0lGQykJCSs9IGZzbF9pZmMubw0KPiAgb2JqLSQoQ09ORklHX01WRUJVX0RFVkJVUykJKz0g bXZlYnUtZGV2YnVzLm8NCj4gIG9iai0kKENPTkZJR19URUdSQTIwX01DKQkrPSB0ZWdyYTIwLW1j Lm8NCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWVtb3J5L2ZzbC1jb3JlbmV0LWNmLmMgYi9kcml2 ZXJzL21lbW9yeS9mc2wtY29yZW5ldC1jZi5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0IGluZGV4 IDAwMDAwMDAuLmE1N2E2MTQNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9kcml2ZXJzL21lbW9y eS9mc2wtY29yZW5ldC1jZi5jDQo+IEBAIC0wLDAgKzEsMjQ2IEBADQo+ICsvKg0KPiArICogQ29y ZU5ldCBDb2hlcmVuY3kgRmFicmljIGVycm9yIHJlcG9ydGluZw0KPiArICoNCj4gKyAqIENvcHly aWdodCAyMDE0IEZyZWVzY2FsZSBTZW1pY29uZHVjdG9yIEluYy4NCj4gKyAqDQo+ICsgKiBUaGlz IHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgIGl0IGFuZC9v cg0KPiArbW9kaWZ5IGl0DQo+ICsgKiB1bmRlciAgdGhlIHRlcm1zIG9mICB0aGUgR05VIEdlbmVy YWwgIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQ0KPiArdGhlDQo+ICsgKiBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247ICBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSAgTGljZW5zZSwgb3Ig KGF0DQo+ICt5b3VyDQo+ICsgKiBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLg0KPiArICovDQo+ ICsNCj4gKyNpbmNsdWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4NCj4gKyNpbmNsdWRlIDxsaW51eC9p by5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L2lycS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L21vZHVs ZS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L29mLmg+DQo+ICsjaW5jbHVkZSA8bGludXgvb2ZfYWRk cmVzcy5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPg0KPiArI2luY2x1ZGUgPGxp bnV4L29mX2lycS5oPg0KPiArI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPg0KPiAr DQo+ICtlbnVtIGNjZl92ZXJzaW9uIHsNCj4gKwlDQ0YxLA0KPiArCUNDRjIsDQo+ICt9Ow0KPiAr DQo+ICtzdHJ1Y3QgY2NmX2luZm8gew0KPiArCWVudW0gY2NmX3ZlcnNpb24gdmVyc2lvbjsNCj4g KwlpbnQgZXJyX3JlZ19vZmZzOw0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IHN0cnVjdCBj Y2ZfaW5mbyBjY2YxX2luZm8gPSB7DQo+ICsJLnZlcnNpb24gPSBDQ0YxLA0KPiArCS5lcnJfcmVn X29mZnMgPSAweGEwMCwNCj4gK307DQo+ICsNCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2NmX2lu Zm8gY2NmMl9pbmZvID0gew0KPiArCS52ZXJzaW9uID0gQ0NGMiwNCj4gKwkuZXJyX3JlZ19vZmZz ID0gMHhlNDAsDQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9p ZCBjY2ZfbWF0Y2hlc1tdID0gew0KPiArCXsNCj4gKwkJLmNvbXBhdGlibGUgPSAiZnNsLGNvcmVu ZXQxLWNmIiwNCj4gKwkJLmRhdGEgPSAmY2NmMV9pbmZvLA0KPiArCX0sDQo+ICsJew0KPiArCQku Y29tcGF0aWJsZSA9ICJmc2wsY29yZW5ldDItY2YiLA0KPiArCQkuZGF0YSA9ICZjY2YyX2luZm8s DQo+ICsJfSwNCj4gKwl7fQ0KPiArfTsNCj4gKw0KPiArc3RydWN0IGNjZl9lcnJfcmVncyB7DQo+ ICsJdTMyIGVycmRldDsJCS8qIDB4MDAgRXJyb3IgRGV0ZWN0IFJlZ2lzdGVyICovDQo+ICsJLyog MHgwNCBFcnJvciBFbmFibGUgKGNjZjEpL0Rpc2FibGUgKGNjZjIpIFJlZ2lzdGVyICovDQo+ICsJ dTMyIGVycmRpczsNCj4gKwkvKiAweDA4IEVycm9yIEludGVycnVwdCBFbmFibGUgUmVnaXN0ZXIg KGNjZjIgb25seSkgKi8NCj4gKwl1MzIgZXJyaW50ZW47DQo+ICsJdTMyIGNlY2FyOwkJLyogMHgw YyBFcnJvciBDYXB0dXJlIEF0dHJpYnV0ZSBSZWdpc3RlciAqLw0KPiArCXUzMiBjZWNhZHJoOwkJ LyogMHgxMCBFcnJvciBDYXB0dXJlIEFkZHJlc3MgSGlnaCAqLw0KDQpzL2NlY2FkcmgvY2VjYWRk cmgvZw0KVGhpcyB3YXkgd2Ugd2lsbCBiZSBjb25zaXN0ZW50IHdpdGggUmVmZXJlbmNlIG1hbnVh bC4NCg0KPiArCXUzMiBjZWNhZHJsOwkJLyogMHgxNCBFcnJvciBDYXB0dXJlIEFkZHJlc3MgTG93 ICovDQoNCnMvY2VjYWRybC9jZWNhZGRybC9nDQoNCj4gKwl1MzIgY2VjYXIyOwkJLyogMHgxOCBF cnJvciBDYXB0dXJlIEF0dHJpYnV0ZSBSZWdpc3RlciAyICovDQo+ICt9Ow0KPiArDQo+ICsvKiBM QUUvQ1YgYWxzbyB2YWxpZCBmb3IgZXJyZGlzIGFuZCBlcnJpbnRlbiAqLw0KPiArI2RlZmluZSBF UlJERVRfTEFFCQkoMSA8PCAwKSAgLyogTG9jYWwgQWNjZXNzIEVycm9yICovDQo+ICsjZGVmaW5l IEVSUkRFVF9DVgkJKDEgPDwgMSkgIC8qIENvaGVyZW5jeSBWaW9sYXRpb24gKi8NCj4gKyNkZWZp bmUgRVJSREVUX0NUWVBFX1NISUZUCTI2CSAgLyogQ2FwdHVyZSBUeXBlIChjY2YyIG9ubHkpICov DQo+ICsjZGVmaW5lIEVSUkRFVF9DVFlQRV9NQVNLCSgweDNmIDw8IEVSUkRFVF9DVFlQRV9TSElG VCkNCg0KU2hvdWxkIG5vdCB0aGlzIGJlICgweDFmIDw8IEVSUkRFVF9DVFlQRV9TSElGVCkNCg0K PiArI2RlZmluZSBFUlJERVRfQ0FQCQkoMSA8PCAzMSkgLyogQ2FwdHVyZSBWYWxpZCAoY2NmMiBv bmx5KSAqLw0KPiArDQo+ICsjZGVmaW5lIENFQ0FSX1ZBTAkJKDEgPDwgMCkgIC8qIFZhbGlkIChj Y2YxIG9ubHkpICovDQo+ICsjZGVmaW5lIENFQ0FSX1VWVAkJKDEgPDwgMTUpIC8qIFVuYXZhaWxh YmxlIHRhcmdldCBJRCAoY2NmMSkgKi8NCj4gKyNkZWZpbmUgQ0VDQVJfU1JDSURfU0hJRlRfQ0NG MQkyNA0KPiArI2RlZmluZSBDRUNBUl9TUkNJRF9NQVNLX0NDRjEJKDB4ZmYgPDwgQ0VDQVJfU1JD SURfU0hJRlRfQ0NGMSkNCj4gKyNkZWZpbmUgQ0VDQVJfU1JDSURfU0hJRlRfQ0NGMgkxOA0KPiAr I2RlZmluZSBDRUNBUl9TUkNJRF9NQVNLX0NDRjIJKDB4ZmYgPDwgQ0VDQVJfU1JDSURfU0hJRlRf Q0NGMikNCj4gKw0KPiArI2RlZmluZSBDRUNBRFJIX0FERFJICQkweGYNCg0KT24gY2NmMiB0aGlz IGlkIDB4ZmYuDQoNCj4gKw0KPiArc3RydWN0IGNjZl9wcml2YXRlIHsNCj4gKwljb25zdCBzdHJ1 Y3QgY2NmX2luZm8gKmluZm87DQo+ICsJc3RydWN0IGRldmljZSAqZGV2Ow0KPiArCXZvaWQgX19p b21lbSAqcmVnczsNCj4gKwlzdHJ1Y3QgY2NmX2Vycl9yZWdzIF9faW9tZW0gKmVycl9yZWdzOyB9 Ow0KPiArDQo+ICtzdGF0aWMgaXJxcmV0dXJuX3QgY2NmX2lycShpbnQgaXJxLCB2b2lkICpkZXZf aWQpIHsNCj4gKwlzdHJ1Y3QgY2NmX3ByaXZhdGUgKmNjZiA9IGRldl9pZDsNCj4gKwlzdGF0aWMg REVGSU5FX1JBVEVMSU1JVF9TVEFURShyYXRlbGltaXQsIERFRkFVTFRfUkFURUxJTUlUX0lOVEVS VkFMLA0KPiArCQkJCSAgICAgIERFRkFVTFRfUkFURUxJTUlUX0JVUlNUKTsNCj4gKwl1MzIgZXJy ZGV0LCBjZWNhciwgY2VjYXIyOw0KPiArCXU2NCBhZGRyOw0KPiArCXUzMiBzcmNfaWQ7DQo+ICsJ Ym9vbCB1dnQgPSBmYWxzZTsNCj4gKwlib29sIGNhcF92YWxpZCA9IGZhbHNlOw0KPiArDQo+ICsJ ZXJyZGV0ID0gaW9yZWFkMzJiZSgmY2NmLT5lcnJfcmVncy0+ZXJyZGV0KTsNCj4gKwljZWNhciA9 IGlvcmVhZDMyYmUoJmNjZi0+ZXJyX3JlZ3MtPmNlY2FyKTsNCj4gKwljZWNhcjIgPSBpb3JlYWQz MmJlKCZjY2YtPmVycl9yZWdzLT5jZWNhcjIpOw0KPiArCWFkZHIgPSBpb3JlYWQzMmJlKCZjY2Yt PmVycl9yZWdzLT5jZWNhZHJsKTsNCj4gKwlhZGRyIHw9ICgodTY0KShpb3JlYWQzMmJlKCZjY2Yt PmVycl9yZWdzLT5jZWNhZHJoKSAmDQo+ICsJCSAgICAgICBDRUNBRFJIX0FERFJIKSkgPDwgMzI7 DQoNClNvIHRoaXMgZ28gZG93biB0byBjY2YgdmVyc2lvbiB0eXBlIHN3aXRjaC4gDQoNCj4gKw0K PiArCWlmICghX19yYXRlbGltaXQoJnJhdGVsaW1pdCkpDQo+ICsJCWdvdG8gb3V0Ow0KPiArDQo+ ICsJc3dpdGNoIChjY2YtPmluZm8tPnZlcnNpb24pIHsNCj4gKwljYXNlIENDRjE6DQo+ICsJCWlm IChjZWNhciAmIENFQ0FSX1ZBTCkgew0KPiArCQkJaWYgKGNlY2FyICYgQ0VDQVJfVVZUKQ0KPiAr CQkJCXV2dCA9IHRydWU7DQo+ICsNCj4gKwkJCXNyY19pZCA9IChjZWNhciAmIENFQ0FSX1NSQ0lE X01BU0tfQ0NGMSkgPj4NCj4gKwkJCQkgQ0VDQVJfU1JDSURfU0hJRlRfQ0NGMTsNCj4gKwkJCWNh cF92YWxpZCA9IHRydWU7DQo+ICsJCX0NCj4gKw0KPiArCQlicmVhazsNCj4gKwljYXNlIENDRjI6 DQo+ICsJCWlmIChlcnJkZXQgJiBFUlJERVRfQ0FQKSB7DQo+ICsJCQlzcmNfaWQgPSAoY2VjYXIg JiBDRUNBUl9TUkNJRF9NQVNLX0NDRjIpID4+DQo+ICsJCQkJIENFQ0FSX1NSQ0lEX1NISUZUX0ND RjI7DQo+ICsJCQljYXBfdmFsaWQgPSB0cnVlOw0KPiArCQl9DQo+ICsNCj4gKwkJYnJlYWs7DQo+ ICsJfQ0KPiArDQo+ICsJZGV2X2NyaXQoY2NmLT5kZXYsICJlcnJkZXQgMHglMDh4IGNlY2FyIDB4 JTA4eCBjZWNhcjIgMHglMDh4XG4iLA0KPiArCQkgZXJyZGV0LCBjZWNhciwgY2VjYXIyKTsNCj4g Kw0KPiArCWlmIChlcnJkZXQgJiBFUlJERVRfTEFFKSB7DQo+ICsJCWlmICh1dnQpDQo+ICsJCQlk ZXZfY3JpdChjY2YtPmRldiwgIkxBVyBVbmF2YWlsYWJsZSBUYXJnZXQgSURcbiIpOw0KPiArCQll bHNlDQo+ICsJCQlkZXZfY3JpdChjY2YtPmRldiwgIkxvY2FsIEFjY2VzcyBXaW5kb3cgRXJyb3Jc biIpOw0KPiArCX0NCj4gKw0KPiArCWlmIChlcnJkZXQgJiBFUlJERVRfQ1YpDQo+ICsJCWRldl9j cml0KGNjZi0+ZGV2LCAiQ29oZXJlbmN5IFZpb2xhdGlvblxuIik7DQo+ICsNCj4gKwlpZiAoY2Fw X3ZhbGlkKSB7DQo+ICsJCWRldl9jcml0KGNjZi0+ZGV2LCAiYWRkcmVzcyAweCUwOWxseCwgc3Jj IGlkIDB4JXhcbiIsDQo+ICsJCQkgYWRkciwgc3JjX2lkKTsNCj4gKwl9DQo+ICsNCj4gK291dDoN Cj4gKwlpb3dyaXRlMzJiZShlcnJkZXQsICZjY2YtPmVycl9yZWdzLT5lcnJkZXQpOw0KPiArCXJl dHVybiBlcnJkZXQgPyBJUlFfSEFORExFRCA6IElSUV9OT05FOyB9DQo+ICsNCj4gK3N0YXRpYyBp bnQgY2NmX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpIHsNCj4gKwlzdHJ1Y3Qg Y2NmX3ByaXZhdGUgKmNjZjsNCj4gKwlzdHJ1Y3QgcmVzb3VyY2UgKnI7DQo+ICsJY29uc3Qgc3Ry dWN0IG9mX2RldmljZV9pZCAqbWF0Y2g7DQo+ICsJaW50IHJldCwgaXJxOw0KPiArDQo+ICsJbWF0 Y2ggPSBvZl9tYXRjaF9kZXZpY2UoY2NmX21hdGNoZXMsICZwZGV2LT5kZXYpOw0KPiArCWlmIChX QVJOX09OKCFtYXRjaCkpDQo+ICsJCXJldHVybiAtRU5PREVWOw0KPiArDQo+ICsJY2NmID0gZGV2 bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqY2NmKSwgR0ZQX0tFUk5FTCk7DQo+ICsJaWYg KCFjY2YpDQo+ICsJCXJldHVybiAtRU5PTUVNOw0KPiArDQo+ICsJciA9IHBsYXRmb3JtX2dldF9y ZXNvdXJjZShwZGV2LCBJT1JFU09VUkNFX01FTSwgMCk7DQo+ICsJaWYgKCFyKSB7DQo+ICsJCWRl dl9lcnIoJnBkZXYtPmRldiwgIiVzOiBubyBtZW0gcmVzb3VyY2VcbiIsIF9fZnVuY19fKTsNCj4g KwkJcmV0dXJuIC1FTlhJTzsNCj4gKwl9DQo+ICsNCj4gKwljY2YtPnJlZ3MgPSBkZXZtX2lvcmVt YXBfcmVzb3VyY2UoJnBkZXYtPmRldiwgcik7DQo+ICsJaWYgKElTX0VSUihjY2YtPnJlZ3MpKSB7 DQo+ICsJCWRldl9lcnIoJnBkZXYtPmRldiwgIiVzOiBjYW4ndCBtYXAgbWVtIHJlc291cmNlXG4i LCBfX2Z1bmNfXyk7DQo+ICsJCXJldHVybiBQVFJfRVJSKGNjZi0+cmVncyk7DQo+ICsJfQ0KPiAr DQo+ICsJY2NmLT5kZXYgPSAmcGRldi0+ZGV2Ow0KPiArCWNjZi0+aW5mbyA9IG1hdGNoLT5kYXRh Ow0KPiArCWNjZi0+ZXJyX3JlZ3MgPSBjY2YtPnJlZ3MgKyBjY2YtPmluZm8tPmVycl9yZWdfb2Zm czsNCj4gKw0KPiArCWRldl9zZXRfZHJ2ZGF0YSgmcGRldi0+ZGV2LCBjY2YpOw0KPiArDQo+ICsJ aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsNCj4gKwlpZiAoIWlycSkgew0KPiArCQlk ZXZfZXJyKCZwZGV2LT5kZXYsICIlczogbm8gaXJxXG4iLCBfX2Z1bmNfXyk7DQo+ICsJCXJldHVy biAtRU5YSU87DQo+ICsJfQ0KPiArDQo+ICsJcmV0ID0gZGV2bV9yZXF1ZXN0X2lycSgmcGRldi0+ ZGV2LCBpcnEsIGNjZl9pcnEsIDAsIHBkZXYtPm5hbWUsIGNjZik7DQo+ICsJaWYgKHJldCkgew0K PiArCQlkZXZfZXJyKCZwZGV2LT5kZXYsICIlczogY2FuJ3QgcmVxdWVzdCBpcnFcbiIsIF9fZnVu Y19fKTsNCj4gKwkJcmV0dXJuIHJldDsNCj4gKwl9DQo+ICsNCj4gKwlzd2l0Y2ggKGNjZi0+aW5m by0+dmVyc2lvbikgew0KPiArCWNhc2UgQ0NGMToNCj4gKwkJLyogT24gQ0NGMSB0aGlzIHJlZ2lz dGVyIGVuYWJsZXMgcmF0aGVyIHRoYW4gZGlzYWJsZXMuICovDQo+ICsJCWlvd3JpdGUzMmJlKEVS UkRFVF9MQUUgfCBFUlJERVRfQ1YsICZjY2YtPmVycl9yZWdzLT5lcnJkaXMpOw0KPiArCQlicmVh azsNCj4gKw0KPiArCWNhc2UgQ0NGMjoNCj4gKwkJaW93cml0ZTMyYmUoMCwgJmNjZi0+ZXJyX3Jl Z3MtPmVycmRpcyk7DQo+ICsJCWlvd3JpdGUzMmJlKEVSUkRFVF9MQUUgfCBFUlJERVRfQ1YsICZj Y2YtPmVycl9yZWdzLT5lcnJpbnRlbik7DQo+ICsJCWJyZWFrOw0KPiArCX0NCj4gKw0KPiArCXJl dHVybiAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgaW50IGNjZl9yZW1vdmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikgew0KPiArCXN0cnVjdCBjY2ZfcHJpdmF0ZSAqY2NmID0gZGV2X2dl dF9kcnZkYXRhKCZwZGV2LT5kZXYpOw0KPiArDQo+ICsJc3dpdGNoIChjY2YtPmluZm8tPnZlcnNp b24pIHsNCj4gKwljYXNlIENDRjE6DQo+ICsJCWlvd3JpdGUzMmJlKDAsICZjY2YtPmVycl9yZWdz LT5lcnJkaXMpOw0KPiArCQlicmVhazsNCj4gKw0KPiArCWNhc2UgQ0NGMjoNCj4gKwkJaW93cml0 ZTMyYmUoMCwgJmNjZi0+ZXJyX3JlZ3MtPmVycmludGVuKTsNCg0KRG8geW91IHRoaW5rIGl0IGlz IHNhbWUgdG8gZGlzYWJsZSBkZXRlY3Rpb24gYml0cyBpbiBjY2YtPmVycl9yZWdzLT5lcnJkaXM/ DQoNClRoYW5rcw0KLUJoYXJhdA0KDQo+ICsJCWJyZWFrOw0KPiArCX0NCj4gKw0KPiArCXJldHVy biAwOw0KPiArfQ0KPiArDQo+ICtzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBjY2ZfZHJp dmVyID0gew0KPiArCS5kcml2ZXIgPSB7DQo+ICsJCS5uYW1lID0gS0JVSUxEX01PRE5BTUUsDQo+ ICsJCS5vd25lciA9IFRISVNfTU9EVUxFLA0KPiArCQkub2ZfbWF0Y2hfdGFibGUgPSBjY2ZfbWF0 Y2hlcywNCj4gKwl9LA0KPiArCS5wcm9iZSA9IGNjZl9wcm9iZSwNCj4gKwkucmVtb3ZlID0gY2Nm X3JlbW92ZSwNCj4gK307DQo+ICsNCj4gK21vZHVsZV9wbGF0Zm9ybV9kcml2ZXIoY2NmX2RyaXZl cik7DQo+ICsNCj4gK01PRFVMRV9MSUNFTlNFKCJHUEwiKTsNCj4gK01PRFVMRV9BVVRIT1IoIkZy ZWVzY2FsZSBTZW1pY29uZHVjdG9yIik7IE1PRFVMRV9ERVNDUklQVElPTigiRnJlZXNjYWxlDQo+ ICtDb3JlTmV0IENvaGVyZW5jeSBGYWJyaWMgZXJyb3IgcmVwb3J0aW5nIik7DQo+IC0tDQo+IDEu OS4xDQo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQo+ IExpbnV4cHBjLWRldiBtYWlsaW5nIGxpc3QNCj4gTGludXhwcGMtZGV2QGxpc3RzLm96bGFicy5v cmcNCj4gaHR0cHM6Ly9saXN0cy5vemxhYnMub3JnL2xpc3RpbmZvL2xpbnV4cHBjLWRldg0K