From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v8,01/12] drivers: base: Unified device connection lookup From: Heikki Krogerus Message-Id: <20180314131215.70833-2-heikki.krogerus@linux.intel.com> Date: Wed, 14 Mar 2018 16:12:04 +0300 To: Greg Kroah-Hartman , Hans de Goede Cc: Darren Hart , Andy Shevchenko , MyungJoo Ham , Chanwoo Choi , Mathias Nyman , Guenter Roeck , Jun Li , platform-driver-x86@vger.kernel.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org List-ID: U2V2ZXJhbCBmcmFtZXdvcmtzIC0gY2xrLCBncGlvLCBwaHksIHBtdywgZXRjLiAtIG1haW50YWlu Cmxvb2t1cCB0YWJsZXMgZm9yIGRlc2NyaWJpbmcgY29ubmVjdGlvbnMgYW5kIHByb3ZpZGUgY3Vz dG9tCkFQSSBmb3IgaGFuZGxpbmcgdGhlbS4gVGhpcyBpbnRyb2R1Y2VzIGEgc2luZ2xlIGdlbmVy aWMKbG9va3VwIHRhYmxlIGFuZCBBUEkgZm9yIHRoZSBjb25uZWN0aW9ucy4KClRoZSBtb3RpdmF0 aW9uIGZvciB0aGlzIGNvbW1pdCBpcyBjZW50cmFsaXppbmcgdGhlCmNvbm5lY3Rpb24gbG9va3Vw LCBidXQgdGhlIGdvYWwgaXMgdG8gdWx0aW1hdGVseSBleHRyYWN0IHRoZQpjb25uZWN0aW9uIGRl c2NyaXB0aW9ucyBhbHNvIGZyb20gZmlybXdhcmUgYnkgdXNpbmcgdGhlCmZ3bm9kZV9ncmFwaF8q IGZ1bmN0aW9ucyBhbmQgb3RoZXIgbWVjaGFuaXNtcyB0aGF0IGFyZQphdmFpbGFibGUuCgpSZXZp ZXdlZC1ieTogSGFucyBkZSBHb2VkZSA8aGRlZ29lZGVAcmVkaGF0LmNvbT4KUmV2aWV3ZWQtYnk6 IEFuZHkgU2hldmNoZW5rbyA8YW5keS5zaGV2Y2hlbmtvQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1i eTogSGVpa2tpIEtyb2dlcnVzIDxoZWlra2kua3JvZ2VydXNAbGludXguaW50ZWwuY29tPgotLS0K Q2hhbmdlcyBpbiB2ODoKLSBObyBsb25nZXIgdXNpbmcgcmN1LgoKQ2hhbmdlcyBpbiB2NzoKLSBB UEkgbmFtaW5nIGltcHJvdmVtZW50cyBzdWdnZXN0ZWQgYnkgR3JlZwotIFByb3RvdHlwZXMgdG8g ZGV2aWNlLmgsIGFsc28gc3VnZ2VzdGVkIGJ5IEdyZWcKLSBJIHJlbW92ZWQgdGhlIERFVkNPTigp IG1hY3JvIGFzIGl0IHdhcyBub3QgdXNlZCB5ZXQgYW5kIGl0IG5lZWRzIHRvIGJlCiAgcmV3cml0 dGVuCgpDaGFuZ2VzIGluIHY2OgotRml4IGRhdGEgYW5kIG1hdGNoIGFyZ3VtZW50cyBiZWluZyBz d2FwcGVkIGluIF9fZGV2aWNlX2ZpbmRfY29ubmVjdGlvbigpCiBjYWxsIGluIGRldmljZV9maW5k X2Nvbm5lY3Rpb24oKSAoYXMgbm90aWNlZCBieSBKdW4gTGkpCgpDaGFuZ2VzIGluIHY1OgotQWRk IG1pc3NpbmcgZG9jdW1lbnRhdGlvbiBmb3IgQGxpc3Qgc3RydWN0IGRldmNvbiBtZW1iZXIKCkNo YW5nZXMgaW4gdjQ6Ci1BZGQgQW5keSdzIFJldmlld2VkLWJ5CgpDaGFuZ2VzIGluIHYzOgotVmFy aW91cyBzcGVsbGluZyBhbmQgZ3JhbWFyIGZpeGVzIGluIHRoZSBkb2NzIHBvaW50ZWQgb3V0IGJ5 IFJhbmR5IER1bmxhcAoKQ2hhbmdlcyBpbiB2MjoKLUFkZCBhIChzdHJ1Y3QgZGV2Y29uKSBjYXN0 IHRvIHRoZSBERVZDT04oKSBtYWNybwotLS0KIERvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kZXZp Y2VfY29ubmVjdGlvbi5yc3QgfCAgNDMgKysrKysrKysKIGRyaXZlcnMvYmFzZS9NYWtlZmlsZSAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGRyaXZlcnMvYmFzZS9kZXZjb24uYyAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAxMzYgKysrKysrKysrKysrKysrKysrKysrKysrKwog aW5jbHVkZS9saW51eC9kZXZpY2UuaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMiArKysr CiA0IGZpbGVzIGNoYW5nZWQsIDIwMyBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL2RldmljZV9jb25uZWN0aW9u LnJzdAogY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvYmFzZS9kZXZjb24uYwoKZGlmZiAtLWdp dCBhL0RvY3VtZW50YXRpb24vZHJpdmVyLWFwaS9kZXZpY2VfY29ubmVjdGlvbi5yc3QgYi9Eb2N1 bWVudGF0aW9uL2RyaXZlci1hcGkvZGV2aWNlX2Nvbm5lY3Rpb24ucnN0Cm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYWZmYmM1NTY2YWIwCi0tLSAvZGV2L251bGwKKysr IGIvRG9jdW1lbnRhdGlvbi9kcml2ZXItYXBpL2RldmljZV9jb25uZWN0aW9uLnJzdApAQCAtMCww ICsxLDQzIEBACis9PT09PT09PT09PT09PT09PT0KK0RldmljZSBjb25uZWN0aW9ucworPT09PT09 PT09PT09PT09PT09CisKK0ludHJvZHVjdGlvbgorLS0tLS0tLS0tLS0tCisKK0RldmljZXMgb2Z0 ZW4gaGF2ZSBjb25uZWN0aW9ucyB0byBvdGhlciBkZXZpY2VzIHRoYXQgYXJlIG91dHNpZGUgb2Yg dGhlIGRpcmVjdAorY2hpbGQvcGFyZW50IHJlbGF0aW9uc2hpcC4gQSBzZXJpYWwgb3IgbmV0d29y ayBjb21tdW5pY2F0aW9uIGNvbnRyb2xsZXIsIHdoaWNoCitjb3VsZCBiZSBhIFBDSSBkZXZpY2Us IG1heSBuZWVkIHRvIGJlIGFibGUgdG8gZ2V0IGEgcmVmZXJlbmNlIHRvIGl0cyBQSFkKK2NvbXBv bmVudCwgd2hpY2ggY291bGQgYmUgYXR0YWNoZWQgZm9yIGV4YW1wbGUgdG8gdGhlIEkyQyBidXMu IFNvbWUgZGV2aWNlCitkcml2ZXJzIG5lZWQgdG8gYmUgYWJsZSB0byBjb250cm9sIHRoZSBjbG9j a3Mgb3IgdGhlIEdQSU9zIGZvciB0aGVpciBkZXZpY2VzLAorYW5kIHNvIG9uLgorCitEZXZpY2Ug Y29ubmVjdGlvbnMgYXJlIGdlbmVyaWMgZGVzY3JpcHRpb25zIG9mIGFueSB0eXBlIG9mIGNvbm5l Y3Rpb24gYmV0d2VlbgordHdvIHNlcGFyYXRlIGRldmljZXMuCisKK0RldmljZSBjb25uZWN0aW9u cyBhbG9uZSBkbyBub3QgY3JlYXRlIGEgZGVwZW5kZW5jeSBiZXR3ZWVuIHRoZSB0d28gZGV2aWNl cy4KK1RoZXkgYXJlIG9ubHkgZGVzY3JpcHRpb25zIHdoaWNoIGFyZSBub3QgdGllZCB0byBlaXRo ZXIgb2YgdGhlIGRldmljZXMgZGlyZWN0bHkuCitBIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgdHdv IGRldmljZXMgZXhpc3RzIG9ubHkgaWYgb25lIG9mIHRoZSB0d28gZW5kcG9pbnQKK2RldmljZXMg cmVxdWVzdHMgYSByZWZlcmVuY2UgdG8gdGhlIG90aGVyLiBUaGUgZGVzY3JpcHRpb25zIHRoZW1z ZWx2ZXMgY2FuIGJlCitkZWZpbmVkIGluIGZpcm13YXJlIChub3QgeWV0IHN1cHBvcnRlZCkgb3Ig dGhleSBjYW4gYmUgYnVpbHQtaW4uCisKK1VzYWdlCistLS0tLQorCitEZXZpY2UgY29ubmVjdGlv bnMgc2hvdWxkIGV4aXN0IGJlZm9yZSBkZXZpY2UgYGAtPnByb2JlYGAgY2FsbGJhY2sgaXMgY2Fs bGVkIGZvcgorZWl0aGVyIGVuZHBvaW50IGRldmljZSBpbiB0aGUgZGVzY3JpcHRpb24uIElmIHRo ZSBjb25uZWN0aW9ucyBhcmUgZGVmaW5lZCBpbgorZmlybXdhcmUsIHRoaXMgaXMgbm90IGEgcHJv YmxlbS4gSXQgc2hvdWxkIGJlIGNvbnNpZGVyZWQgaWYgdGhlIGNvbm5lY3Rpb24KK2Rlc2NyaXB0 aW9ucyBhcmUgImJ1aWx0LWluIiwgYW5kIG5lZWQgdG8gYmUgYWRkZWQgc2VwYXJhdGVseS4KKwor VGhlIGNvbm5lY3Rpb24gZGVzY3JpcHRpb24gY29uc2lzdHMgb2YgdGhlIG5hbWVzIG9mIHRoZSB0 d28gZGV2aWNlcyB3aXRoIHRoZQorY29ubmVjdGlvbiwgaS5lLiB0aGUgZW5kcG9pbnRzLCBhbmQg dW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBjb25uZWN0aW9uIHdoaWNoCitpcyBuZWVkZWQgaWYg dGhlcmUgYXJlIG11bHRpcGxlIGNvbm5lY3Rpb25zIGJldHdlZW4gdGhlIHR3byBkZXZpY2VzLgor CitBZnRlciBhIGRlc2NyaXB0aW9uIGV4aXN0cywgdGhlIGRldmljZXMgaW4gaXQgY2FuIHJlcXVl c3QgcmVmZXJlbmNlIHRvIHRoZSBvdGhlcgorZW5kcG9pbnQgZGV2aWNlLCBvciB0aGV5IGNhbiBy ZXF1ZXN0IHRoZSBkZXNjcmlwdGlvbiBpdHNlbGYuCisKK0FQSQorLS0tCisKKy4uIGtlcm5lbC1k b2M6OiBkcml2ZXJzL2Jhc2UvZGV2Y29uLmMKKyAgIDogZnVuY3Rpb25zOiBkZXZpY2VfY29ubmVj dGlvbl9maW5kX21hdGNoIGRldmljZV9jb25uZWN0aW9uX2ZpbmQgZGV2aWNlX2Nvbm5lY3Rpb25f YWRkIGRldmljZV9jb25uZWN0aW9uX3JlbW92ZQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9iYXNlL01h a2VmaWxlIGIvZHJpdmVycy9iYXNlL01ha2VmaWxlCmluZGV4IGUzMmE1MjQ5MDA1MS4uMTJhN2Y2 NGQzNWE5IDEwMDY0NAotLS0gYS9kcml2ZXJzL2Jhc2UvTWFrZWZpbGUKKysrIGIvZHJpdmVycy9i YXNlL01ha2VmaWxlCkBAIC01LDcgKzUsOCBAQCBvYmoteQkJCTo9IGNvbXBvbmVudC5vIGNvcmUu byBidXMubyBkZC5vIHN5c2NvcmUubyBcCiAJCQkgICBkcml2ZXIubyBjbGFzcy5vIHBsYXRmb3Jt Lm8gXAogCQkJICAgY3B1Lm8gZmlybXdhcmUubyBpbml0Lm8gbWFwLm8gZGV2cmVzLm8gXAogCQkJ ICAgYXR0cmlidXRlX2NvbnRhaW5lci5vIHRyYW5zcG9ydF9jbGFzcy5vIFwKLQkJCSAgIHRvcG9s b2d5Lm8gY29udGFpbmVyLm8gcHJvcGVydHkubyBjYWNoZWluZm8ubworCQkJICAgdG9wb2xvZ3ku byBjb250YWluZXIubyBwcm9wZXJ0eS5vIGNhY2hlaW5mby5vIFwKKwkJCSAgIGRldmNvbi5vCiBv YmotJChDT05GSUdfREVWVE1QRlMpCSs9IGRldnRtcGZzLm8KIG9iai0kKENPTkZJR19ETUFfQ01B KSArPSBkbWEtY29udGlndW91cy5vCiBvYmoteQkJCSs9IHBvd2VyLwpkaWZmIC0tZ2l0IGEvZHJp dmVycy9iYXNlL2RldmNvbi5jIGIvZHJpdmVycy9iYXNlL2RldmNvbi5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMjUxMzk2MWEzNzEyCi0tLSAvZGV2L251bGwKKysr IGIvZHJpdmVycy9iYXNlL2RldmNvbi5jCkBAIC0wLDAgKzEsMTM2IEBACisvLyBTUERYLUxpY2Vu c2UtSWRlbnRpZmllcjogR1BMLTIuMAorLyoqCisgKiBEZXZpY2UgY29ubmVjdGlvbnMKKyAqCisg KiBDb3B5cmlnaHQgKEMpIDIwMTggSW50ZWwgQ29ycG9yYXRpb24KKyAqIEF1dGhvcjogSGVpa2tp IEtyb2dlcnVzIDxoZWlra2kua3JvZ2VydXNAbGludXguaW50ZWwuY29tPgorICovCisKKyNpbmNs dWRlIDxsaW51eC9kZXZpY2UuaD4KKworc3RhdGljIERFRklORV9NVVRFWChkZXZjb25fbG9jayk7 CitzdGF0aWMgTElTVF9IRUFEKGRldmNvbl9saXN0KTsKKworLyoqCisgKiBkZXZpY2VfY29ubmVj dGlvbl9maW5kX21hdGNoIC0gRmluZCBwaHlzaWNhbCBjb25uZWN0aW9uIHRvIGEgZGV2aWNlCisg KiBAZGV2OiBEZXZpY2Ugd2l0aCB0aGUgY29ubmVjdGlvbgorICogQGNvbl9pZDogSWRlbnRpZmll ciBmb3IgdGhlIGNvbm5lY3Rpb24KKyAqIEBkYXRhOiBEYXRhIGZvciB0aGUgbWF0Y2ggZnVuY3Rp b24KKyAqIEBtYXRjaDogRnVuY3Rpb24gdG8gY2hlY2sgYW5kIGNvbnZlcnQgdGhlIGNvbm5lY3Rp b24gZGVzY3JpcHRpb24KKyAqCisgKiBGaW5kIGEgY29ubmVjdGlvbiB3aXRoIHVuaXF1ZSBpZGVu dGlmaWVyIEBjb25faWQgYmV0d2VlbiBAZGV2IGFuZCBhbm90aGVyCisgKiBkZXZpY2UuIEBtYXRj aCB3aWxsIGJlIHVzZWQgdG8gY29udmVydCB0aGUgY29ubmVjdGlvbiBkZXNjcmlwdGlvbiB0byBk YXRhIHRoZQorICogY2FsbGVyIGlzIGV4cGVjdGluZyB0byBiZSByZXR1cm5lZC4KKyAqLwordm9p ZCAqZGV2aWNlX2Nvbm5lY3Rpb25fZmluZF9tYXRjaChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNvbnN0 IGNoYXIgKmNvbl9pZCwKKwkJCSAgICAgICB2b2lkICpkYXRhLAorCQkJICAgICAgIHZvaWQgKigq bWF0Y2gpKHN0cnVjdCBkZXZpY2VfY29ubmVjdGlvbiAqY29uLAorCQkJCQkgICAgICBpbnQgZXAs IHZvaWQgKmRhdGEpKQoreworCWNvbnN0IGNoYXIgKmRldm5hbWUgPSBkZXZfbmFtZShkZXYpOwor CXN0cnVjdCBkZXZpY2VfY29ubmVjdGlvbiAqY29uOworCXZvaWQgKnJldCA9IE5VTEw7CisJaW50 IGVwOworCisJaWYgKCFtYXRjaCkKKwkJcmV0dXJuIE5VTEw7CisKKwltdXRleF9sb2NrKCZkZXZj b25fbG9jayk7CisKKwlsaXN0X2Zvcl9lYWNoX2VudHJ5X3JjdShjb24sICZkZXZjb25fbGlzdCwg bGlzdCkgeworCQllcCA9IG1hdGNoX3N0cmluZyhjb24tPmVuZHBvaW50LCAyLCBkZXZuYW1lKTsK KwkJaWYgKGVwIDwgMCkKKwkJCWNvbnRpbnVlOworCisJCWlmIChjb25faWQgJiYgc3RyY21wKGNv bi0+aWQsIGNvbl9pZCkpCisJCQljb250aW51ZTsKKworCQlyZXQgPSBtYXRjaChjb24sICFlcCwg ZGF0YSk7CisJCWlmIChyZXQpCisJCQlicmVhazsKKwl9CisKKwltdXRleF91bmxvY2soJmRldmNv bl9sb2NrKTsKKworCXJldHVybiByZXQ7Cit9CitFWFBPUlRfU1lNQk9MX0dQTChkZXZpY2VfY29u bmVjdGlvbl9maW5kX21hdGNoKTsKKworI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5o PgorI2luY2x1ZGUgPGxpbnV4L3NwaS9zcGkuaD4KKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KKyNp bmNsdWRlIDxsaW51eC9wY2kuaD4KKworc3RhdGljIHN0cnVjdCBidXNfdHlwZSAqZ2VuZXJpY19t YXRjaF9idXNlc1tdID0geworCSZwbGF0Zm9ybV9idXNfdHlwZSwKKyNpZmRlZiBDT05GSUdfUENJ CisJJnBjaV9idXNfdHlwZSwKKyNlbmRpZgorI2lmZGVmIENPTkZJR19JMkMKKwkmaTJjX2J1c190 eXBlLAorI2VuZGlmCisjaWZkZWYgQ09ORklHX1NQSV9NQVNURVIKKwkmc3BpX2J1c190eXBlLAor I2VuZGlmCisJTlVMTCwKK307CisKKy8qIFRoaXMgdHJpZXMgdG8gZmluZCB0aGUgZGV2aWNlIGZy b20gdGhlIG1vc3QgY29tbW9uIGJ1cyB0eXBlcyBieSBuYW1lLiAqLworc3RhdGljIHZvaWQgKmdl bmVyaWNfbWF0Y2goc3RydWN0IGRldmljZV9jb25uZWN0aW9uICpjb24sIGludCBlcCwgdm9pZCAq ZGF0YSkKK3sKKwlzdHJ1Y3QgYnVzX3R5cGUgKmJ1czsKKwlzdHJ1Y3QgZGV2aWNlICpkZXY7CisK Kwlmb3IgKGJ1cyA9IGdlbmVyaWNfbWF0Y2hfYnVzZXNbMF07IGJ1czsgYnVzKyspIHsKKwkJZGV2 ID0gYnVzX2ZpbmRfZGV2aWNlX2J5X25hbWUoYnVzLCBOVUxMLCBjb24tPmVuZHBvaW50W2VwXSk7 CisJCWlmIChkZXYpCisJCQlyZXR1cm4gZGV2OworCX0KKworCS8qCisJICogV2Ugb25seSBnZXQg Y2FsbGVkIGlmIGEgY29ubmVjdGlvbiB3YXMgZm91bmQsIHRlbGwgdGhlIGNhbGxlciB0bworCSAq IHdhaXQgZm9yIHRoZSBvdGhlciBkZXZpY2UgdG8gc2hvdyB1cC4KKwkgKi8KKwlyZXR1cm4gRVJS X1BUUigtRVBST0JFX0RFRkVSKTsKK30KKworLyoqCisgKiBkZXZpY2VfY29ubmVjdGlvbl9maW5k IC0gRmluZCB0d28gZGV2aWNlcyBjb25uZWN0ZWQgdG9nZXRoZXIKKyAqIEBkZXY6IERldmljZSB3 aXRoIHRoZSBjb25uZWN0aW9uCisgKiBAY29uX2lkOiBJZGVudGlmaWVyIGZvciB0aGUgY29ubmVj dGlvbgorICoKKyAqIEZpbmQgYSBjb25uZWN0aW9uIHdpdGggdW5pcXVlIGlkZW50aWZpZXIgQGNv bl9pZCBiZXR3ZWVuIEBkZXYgYW5kCisgKiBhbm90aGVyIGRldmljZS4gT24gc3VjY2VzcyByZXR1 cm5zIGhhbmRsZSB0byB0aGUgZGV2aWNlIHRoYXQgaXMgY29ubmVjdGVkCisgKiB0byBAZGV2LCB3 aXRoIHRoZSByZWZlcmVuY2UgY291bnQgZm9yIHRoZSBmb3VuZCBkZXZpY2UgaW5jcmVtZW50ZWQu IFJldHVybnMKKyAqIE5VTEwgaWYgbm8gbWF0Y2hpbmcgY29ubmVjdGlvbiB3YXMgZm91bmQsIG9y IEVSUl9QVFIoLUVQUk9CRV9ERUZFUikgd2hlbiBhCisgKiBjb25uZWN0aW9uIHdhcyBmb3VuZCBi dXQgdGhlIG90aGVyIGRldmljZSBoYXMgbm90IGJlZW4gZW51bWVyYXRlZCB5ZXQuCisgKi8KK3N0 cnVjdCBkZXZpY2UgKmRldmljZV9jb25uZWN0aW9uX2ZpbmQoc3RydWN0IGRldmljZSAqZGV2LCBj b25zdCBjaGFyICpjb25faWQpCit7CisJcmV0dXJuIGRldmljZV9jb25uZWN0aW9uX2ZpbmRfbWF0 Y2goZGV2LCBjb25faWQsIE5VTEwsIGdlbmVyaWNfbWF0Y2gpOworfQorRVhQT1JUX1NZTUJPTF9H UEwoZGV2aWNlX2Nvbm5lY3Rpb25fZmluZCk7CisKKy8qKgorICogZGV2aWNlX2Nvbm5lY3Rpb25f YWRkIC0gUmVnaXN0ZXIgYSBjb25uZWN0aW9uIGRlc2NyaXB0aW9uCisgKiBAY29uOiBUaGUgY29u bmVjdGlvbiBkZXNjcmlwdGlvbiB0byBiZSByZWdpc3RlcmVkCisgKi8KK3ZvaWQgZGV2aWNlX2Nv bm5lY3Rpb25fYWRkKHN0cnVjdCBkZXZpY2VfY29ubmVjdGlvbiAqY29uKQoreworCW11dGV4X2xv Y2soJmRldmNvbl9sb2NrKTsKKwlsaXN0X2FkZF90YWlsX3JjdSgmY29uLT5saXN0LCAmZGV2Y29u X2xpc3QpOworCW11dGV4X3VubG9jaygmZGV2Y29uX2xvY2spOworfQorRVhQT1JUX1NZTUJPTF9H UEwoZGV2aWNlX2Nvbm5lY3Rpb25fYWRkKTsKKworLyoqCisgKiBkZXZpY2VfY29ubmVjdGlvbnNf cmVtb3ZlIC0gVW5yZWdpc3RlciBjb25uZWN0aW9uIGRlc2NyaXB0aW9uCisgKiBAY29uOiBUaGUg Y29ubmVjdGlvbiBkZXNjcmlwdGlvbiB0byBiZSB1bnJlZ2lzdGVyZWQKKyAqLwordm9pZCBkZXZp Y2VfY29ubmVjdGlvbl9yZW1vdmUoc3RydWN0IGRldmljZV9jb25uZWN0aW9uICpjb24pCit7CisJ bXV0ZXhfbG9jaygmZGV2Y29uX2xvY2spOworCWxpc3RfZGVsX3JjdSgmY29uLT5saXN0KTsKKwlt dXRleF91bmxvY2soJmRldmNvbl9sb2NrKTsKK30KK0VYUE9SVF9TWU1CT0xfR1BMKGRldmljZV9j b25uZWN0aW9uX3JlbW92ZSk7CmRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L2RldmljZS5oIGIv aW5jbHVkZS9saW51eC9kZXZpY2UuaAppbmRleCBiMDkzNDA1ZWQ1MjUuLjIwNGZmNjQyNzlmZCAx MDA2NDQKLS0tIGEvaW5jbHVkZS9saW51eC9kZXZpY2UuaAorKysgYi9pbmNsdWRlL2xpbnV4L2Rl dmljZS5oCkBAIC03MjksNiArNzI5LDI4IEBAIHN0cnVjdCBkZXZpY2VfZG1hX3BhcmFtZXRlcnMg ewogCXVuc2lnbmVkIGxvbmcgc2VnbWVudF9ib3VuZGFyeV9tYXNrOwogfTsKIAorLyoqCisgKiBz dHJ1Y3QgZGV2aWNlX2Nvbm5lY3Rpb24gLSBEZXZpY2UgQ29ubmVjdGlvbiBEZXNjcmlwdG9yCisg KiBAZW5kcG9pbnQ6IFRoZSBuYW1lcyBvZiB0aGUgdHdvIGRldmljZXMgY29ubmVjdGVkIHRvZ2V0 aGVyCisgKiBAaWQ6IFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgY29ubmVjdGlvbgorICogQGxp c3Q6IExpc3QgaGVhZCwgcHJpdmF0ZSwgZm9yIGludGVybmFsIHVzZSBvbmx5CisgKi8KK3N0cnVj dCBkZXZpY2VfY29ubmVjdGlvbiB7CisJY29uc3QgY2hhcgkJKmVuZHBvaW50WzJdOworCWNvbnN0 IGNoYXIJCSppZDsKKwlzdHJ1Y3QgbGlzdF9oZWFkCWxpc3Q7Cit9OworCit2b2lkICpkZXZpY2Vf Y29ubmVjdGlvbl9maW5kX21hdGNoKHN0cnVjdCBkZXZpY2UgKmRldiwgY29uc3QgY2hhciAqY29u X2lkLAorCQkJCXZvaWQgKmRhdGEsCisJCQkJdm9pZCAqKCptYXRjaCkoc3RydWN0IGRldmljZV9j b25uZWN0aW9uICpjb24sCisJCQkJCSAgICAgICBpbnQgZXAsIHZvaWQgKmRhdGEpKTsKKworc3Ry dWN0IGRldmljZSAqZGV2aWNlX2Nvbm5lY3Rpb25fZmluZChzdHJ1Y3QgZGV2aWNlICpkZXYsIGNv bnN0IGNoYXIgKmNvbl9pZCk7CisKK3ZvaWQgZGV2aWNlX2Nvbm5lY3Rpb25fYWRkKHN0cnVjdCBk ZXZpY2VfY29ubmVjdGlvbiAqY29uKTsKK3ZvaWQgZGV2aWNlX2Nvbm5lY3Rpb25fcmVtb3ZlKHN0 cnVjdCBkZXZpY2VfY29ubmVjdGlvbiAqY29uKTsKKwogLyoqCiAgKiBlbnVtIGRldmljZV9saW5r X3N0YXRlIC0gRGV2aWNlIGxpbmsgc3RhdGVzLgogICogQERMX1NUQVRFX05PTkU6IFRoZSBwcmVz ZW5jZSBvZiB0aGUgZHJpdmVycyBpcyBub3QgYmVpbmcgdHJhY2tlZC4K