From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?q?Daniel=20Gl=C3=B6ckner?= Subject: [patch 2/2] alsa: s6105 IP camera machine specific ASoC code Date: Thu, 26 Mar 2009 14:36:14 +0100 Message-ID: <1238074574-24734-2-git-send-email-dg@emlix.com> References: <1238074574-24734-1-git-send-email-dg@emlix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mx1.emlix.com (mx1.emlix.com [193.175.82.87]) by alsa0.perex.cz (Postfix) with ESMTP id 76CCD10385B for ; Thu, 26 Mar 2009 14:35:07 +0100 (CET) In-Reply-To: <1238074574-24734-1-git-send-email-dg@emlix.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: alsa-devel-bounces@alsa-project.org Errors-To: alsa-devel-bounces@alsa-project.org To: Mark Brown Cc: alsa-devel@alsa-project.org, =?utf-8?q?Daniel=20Gl=C3=B6ckner?= List-Id: alsa-devel@alsa-project.org VGhpcyBwYXRjaCBhZGRzIG1hY2hpbmUgc3BlY2lmaWMgY29kZSBmb3IgdGhlIGF1ZGlvIHBhcnQg b2YgdGhlIFN0cmV0Y2gKczYxMDUgSVAgY2FtZXJhIHJlZmVyZW5jZSBkZXNpZ24uCgpUaGUgZGV2 aWNlIHVzZXMgdGhlIHRsdjMyMGFpYzMxKDAxKSBjb2RlYyB0byBnZW5lcmF0ZSB0aGUgY2xvY2sg Zm9yCmJvdGggSTJTIHBvcnRzIG9mIHRoZSBzb2MuIFdoaWxlIHRoZSBtYXN0ZXIgY2xvY2sgaXMg Z2VuZXJhdGVkIGJ5IGEKY29uZmlndXJhYmxlIFBMTCBjaGlwLCB0aGUgY29kZSBhc3N1bWVzIHRo ZSBmYWN0b3J5IGRlZmF1bHQgc2V0dGluZ3MuCgpBbiBhZGRpdGlvbmFsIGtjb250cm9sIGhhcyBi ZWVuIGFkZGVkIHRvIGhhbmRsZSB0aGUgc3BlY2lhbCByb3V0aW5nIG9mCnRoZSBib2FyZCwgY29u bmVjdGluZyBib3RoIEhQTENPTSBhbmQgSFBST1VUIHRvIHRoZSBzYW1lIHBpbiBvZiB0aGUgYXVk aW8KamFjay4gT25lIG9mIHRoZXNlIHNob3VsZCBhbHdheXMgYmUgc3dpdGNoZWQgb2ZmLgoKU2ln bmVkLW9mZi1ieTogRGFuaWVsIEdsw7Zja25lciA8ZGdAZW1saXguY29tPgotLS0KIHNvdW5kL3Nv Yy9zNjAwMC9LY29uZmlnICAgICAgIHwgICAgOSArKwogc291bmQvc29jL3M2MDAwL01ha2VmaWxl ICAgICAgfCAgICA1ICsKIHNvdW5kL3NvYy9zNjAwMC9zNjEwNS1pcGNhbS5jIHwgIDI4NiArKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCAz MDAgaW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzb3Vu ZC9zb2MvczYwMDAvczYxMDUtaXBjYW0uYwoKZGlmZiAtLWdpdCBhL3NvdW5kL3NvYy9zNjAwMC9L Y29uZmlnIGIvc291bmQvc29jL3M2MDAwL0tjb25maWcKaW5kZXggNTYxMmVkMi4uNmNmNjA4MSAx MDA2NDQKLS0tIGEvc291bmQvc29jL3M2MDAwL0tjb25maWcKKysrIGIvc291bmQvc29jL3M2MDAw L0tjb25maWcKQEAgLTgsMyArOCwxMiBAQCBjb25maWcgU05EX1M2MDAwX1NPQwogCiBjb25maWcg U05EX1M2MDAwX1NPQ19JMlMKIAl0cmlzdGF0ZQorCitjb25maWcgU05EX1M2MDAwX1NPQ19TNklQ Q0FNCisJdHJpc3RhdGUgIlNvQyBBdWRpbyBzdXBwb3J0IGZvciBTdHJldGNoIDYxMDUgSVAgQ2Ft ZXJhIgorCWRlcGVuZHMgb24gU05EX1M2MDAwX1NPQyAmJiBYVEVOU0FfUExBVEZPUk1fUzYxMDUK KwlzZWxlY3QgU05EX1M2MDAwX1NPQ19JMlMKKwlzZWxlY3QgU05EX1NPQ19UTFYzMjBBSUMzWAor CWhlbHAKKwkgIFNheSBZIGlmIHlvdSB3YW50IHRvIGFkZCBzdXBwb3J0IGZvciBTb0MgYXVkaW8g b24gdGhlCisJICBTdHJldGNoIHM2MTA1IElQIENhbWVyYSBSZWZlcmVuY2UgRGVzaWduLgpkaWZm IC0tZ2l0IGEvc291bmQvc29jL3M2MDAwL01ha2VmaWxlIGIvc291bmQvc29jL3M2MDAwL01ha2Vm aWxlCmluZGV4IGRmMTVmODcuLjdhNjEzNjEgMTAwNjQ0Ci0tLSBhL3NvdW5kL3NvYy9zNjAwMC9N YWtlZmlsZQorKysgYi9zb3VuZC9zb2MvczYwMDAvTWFrZWZpbGUKQEAgLTQsMyArNCw4IEBAIHNu ZC1zb2MtczYwMDAtaTJzLW9ianMgOj0gczYwMDAtaTJzLm8KIAogb2JqLSQoQ09ORklHX1NORF9T NjAwMF9TT0MpICs9IHNuZC1zb2MtczYwMDAubwogb2JqLSQoQ09ORklHX1NORF9TNjAwMF9TT0Nf STJTKSArPSBzbmQtc29jLXM2MDAwLWkycy5vCisKKyMgczYxMDUgTWFjaGluZSBTdXBwb3J0Citz bmQtc29jLXM2aXBjYW0tb2JqcyA6PSBzNjEwNS1pcGNhbS5vCisKK29iai0kKENPTkZJR19TTkRf UzYwMDBfU09DX1M2SVBDQU0pICs9IHNuZC1zb2MtczZpcGNhbS5vCmRpZmYgLS1naXQgYS9zb3Vu ZC9zb2MvczYwMDAvczYxMDUtaXBjYW0uYyBiL3NvdW5kL3NvYy9zNjAwMC9zNjEwNS1pcGNhbS5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM3NzFlMmYKLS0tIC9kZXYvbnVs bAorKysgYi9zb3VuZC9zb2MvczYwMDAvczYxMDUtaXBjYW0uYwpAQCAtMCwwICsxLDI4NiBAQAor LyoKKyAqIEFTb0MgZHJpdmVyIGZvciBTdHJldGNoIHM2MTA1IElQIGNhbWVyYSBwbGF0Zm9ybQor ICoKKyAqIEF1dGhvcjogICAgICBEYW5pZWwgR2xvZWNrbmVyLCA8ZGdAZW1saXguY29tPgorICog Q29weXJpZ2h0OiAgIChDKSAyMDA5IGVtbGl4IEdtYkggPGluZm9AZW1saXguY29tPgorICoKKyAq IFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24uCisgKi8KKworI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2luY2x1 ZGUgPGxpbnV4L21vZHVsZXBhcmFtLmg+CisjaW5jbHVkZSA8bGludXgvdGltZXIuaD4KKyNpbmNs dWRlIDxsaW51eC9pbnRlcnJ1cHQuaD4KKyNpbmNsdWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2Uu aD4KKyNpbmNsdWRlIDxzb3VuZC9jb3JlLmg+CisjaW5jbHVkZSA8c291bmQvcGNtLmg+CisjaW5j bHVkZSA8c291bmQvc29jLmg+CisjaW5jbHVkZSA8c291bmQvc29jLWRhcG0uaD4KKworI2luY2x1 ZGUgPHBsYXRmb3JtL2lycS5oPgorI2luY2x1ZGUgPHZhcmlhbnQvZG1hYy5oPgorCisjaW5jbHVk ZSAiLi4vY29kZWNzL3RsdjMyMGFpYzN4LmgiCisjaW5jbHVkZSAiczYwMDAtcGNtLmgiCisjaW5j bHVkZSAiczYwMDAtaTJzLmgiCisKKyNkZWZpbmUgUzYxMDVfQ09ERUNfQ0xPQ0sgMTIyODgwMDAK Kworc3RhdGljIGludCBzNjEwNV9od19wYXJhbXMoc3RydWN0IHNuZF9wY21fc3Vic3RyZWFtICpz dWJzdHJlYW0sCisJCQkgICBzdHJ1Y3Qgc25kX3BjbV9od19wYXJhbXMgKnBhcmFtcykKK3sKKwlz dHJ1Y3Qgc25kX3NvY19wY21fcnVudGltZSAqcnRkID0gc3Vic3RyZWFtLT5wcml2YXRlX2RhdGE7 CisJc3RydWN0IHNuZF9zb2NfZGFpICpjb2RlY19kYWkgPSBydGQtPmRhaS0+Y29kZWNfZGFpOwor CXN0cnVjdCBzbmRfc29jX2RhaSAqY3B1X2RhaSA9IHJ0ZC0+ZGFpLT5jcHVfZGFpOworCWludCBy ZXQgPSAwOworCisJLyogc2V0IGNvZGVjIERBSSBjb25maWd1cmF0aW9uICovCisJcmV0ID0gc25k X3NvY19kYWlfc2V0X2ZtdChjb2RlY19kYWksIFNORF9TT0NfREFJRk1UX0kyUyB8CisJCQkJCSAg ICAgU05EX1NPQ19EQUlGTVRfQ0JNX0NGTSk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7 CisKKwkvKiBzZXQgY3B1IERBSSBjb25maWd1cmF0aW9uICovCisJcmV0ID0gc25kX3NvY19kYWlf c2V0X2ZtdChjcHVfZGFpLCBTTkRfU09DX0RBSUZNVF9DQk1fQ0ZNIHwKKwkJCQkJICAgU05EX1NP Q19EQUlGTVRfSUJfSUYpOworCWlmIChyZXQgPCAwKQorCQlyZXR1cm4gcmV0OworCisJLyogc2V0 IHRoZSBjb2RlYyBzeXN0ZW0gY2xvY2sgKi8KKwlyZXQgPSBzbmRfc29jX2RhaV9zZXRfc3lzY2xr KGNvZGVjX2RhaSwgMCwgUzYxMDVfQ09ERUNfQ0xPQ0ssCisJCQkJCSAgICBTTkRfU09DX0NMT0NL X09VVCk7CisJaWYgKHJldCA8IDApCisJCXJldHVybiByZXQ7CisKKwlyZXR1cm4gMDsKK30KKwor c3RhdGljIHN0cnVjdCBzbmRfc29jX29wcyBzNjEwNV9vcHMgPSB7CisJLmh3X3BhcmFtcyA9IHM2 MTA1X2h3X3BhcmFtcywKK307CisKKy8qIHM2MTA1IG1hY2hpbmUgZGFwbSB3aWRnZXRzICovCitz dGF0aWMgY29uc3Qgc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQgYWljM3hfZGFwbV93aWRnZXRz W10gPSB7CisJU05EX1NPQ19EQVBNX0xJTkUoIkF1ZGlvIE91dCBEaWZmZXJlbnRpYWwiLCBOVUxM KSwKKwlTTkRfU09DX0RBUE1fTElORSgiQXVkaW8gT3V0IFN0ZXJlbyIsIE5VTEwpLAorCVNORF9T T0NfREFQTV9MSU5FKCJBdWRpbyBJbiIsIE5VTEwpLAorfTsKKworLyogczYxMDUgbWFjaGluZSBh dWRpb19tYXBuZWN0aW9ucyB0byB0aGUgY29kZWMgcGlucyAqLworc3RhdGljIGNvbnN0IHN0cnVj dCBzbmRfc29jX2RhcG1fcm91dGUgYXVkaW9fbWFwW10gPSB7CisJLyogQXVkaW8gT3V0IGNvbm5l Y3RlZCB0byBIUExPVVQsIEhQTENPTSwgSFBST1VUICovCisJeyJBdWRpbyBPdXQgRGlmZmVyZW50 aWFsIiwgTlVMTCwgIkhQTE9VVCJ9LAorCXsiQXVkaW8gT3V0IERpZmZlcmVudGlhbCIsIE5VTEws ICJIUExDT00ifSwKKwl7IkF1ZGlvIE91dCBTdGVyZW8iLCBOVUxMLCAiSFBMT1VUIn0sCisJeyJB dWRpbyBPdXQgU3RlcmVvIiwgTlVMTCwgIkhQUk9VVCJ9LAorCisJLyogQXVkaW8gSW4gY29ubmVj dGVkIHRvIExJTkUxTCwgTElORTFSICovCisJeyJMSU5FMUwiLCBOVUxMLCAiQXVkaW8gSW4ifSwK Kwl7IkxJTkUxUiIsIE5VTEwsICJBdWRpbyBJbiJ9LAorfTsKKworc3RhdGljIGludCBvdXRwdXRf dHlwZV9pbmZvKHN0cnVjdCBzbmRfa2NvbnRyb2wgKmtjb250cm9sLAorCQkJICAgIHN0cnVjdCBz bmRfY3RsX2VsZW1faW5mbyAqdWluZm8pCit7CisJdWluZm8tPnR5cGUgPSBTTkRSVl9DVExfRUxF TV9UWVBFX0VOVU1FUkFURUQ7CisJdWluZm8tPmNvdW50ID0gMTsKKwl1aW5mby0+dmFsdWUuZW51 bWVyYXRlZC5pdGVtcyA9IDI7CisJaWYgKHVpbmZvLT52YWx1ZS5lbnVtZXJhdGVkLml0ZW0pIHsK KwkJdWluZm8tPnZhbHVlLmVudW1lcmF0ZWQuaXRlbSA9IDE7CisJCXN0cmNweSh1aW5mby0+dmFs dWUuZW51bWVyYXRlZC5uYW1lLCAiSFBMT1VUL0hQUk9VVCIpOworCX0gZWxzZSB7CisJCXN0cmNw eSh1aW5mby0+dmFsdWUuZW51bWVyYXRlZC5uYW1lLCAiSFBMT1VUL0hQTENPTSIpOworCX0KKwly ZXR1cm4gMDsKK30KKworc3RhdGljIGludCBvdXRwdXRfdHlwZV9nZXQoc3RydWN0IHNuZF9rY29u dHJvbCAqa2NvbnRyb2wsCisJCQkgICBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJv bCkKK3sKKwl1Y29udHJvbC0+dmFsdWUuZW51bWVyYXRlZC5pdGVtWzBdID0ga2NvbnRyb2wtPnBy aXZhdGVfdmFsdWU7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgc25kX3NvY19kYXBtX3Nl dF9lbmRwb2ludChzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMsIGNoYXIgKm5hbWUsCisJCQkJ ICAgICBpbnQgc3RhdHVzKQoreworCWlmIChzdGF0dXMpCisJCXJldHVybiBzbmRfc29jX2RhcG1f ZW5hYmxlX3Bpbihjb2RlYywgbmFtZSk7CisJZWxzZQorCQlyZXR1cm4gc25kX3NvY19kYXBtX2Rp c2FibGVfcGluKGNvZGVjLCBuYW1lKTsKK30KKworc3RhdGljIGludCBvdXRwdXRfdHlwZV9wdXQo c3RydWN0IHNuZF9rY29udHJvbCAqa2NvbnRyb2wsCisJCQkgICBzdHJ1Y3Qgc25kX2N0bF9lbGVt X3ZhbHVlICp1Y29udHJvbCkKK3sKKwlzdHJ1Y3Qgc25kX3NvY19jb2RlYyAqY29kZWMgPSBrY29u dHJvbC0+cHJpdmF0ZV9kYXRhOworCXVuc2lnbmVkIGludCB2YWwgPSAodWNvbnRyb2wtPnZhbHVl LmVudW1lcmF0ZWQuaXRlbVswXSAhPSAwKTsKKworCWlmIChrY29udHJvbC0+cHJpdmF0ZV92YWx1 ZSA9PSB2YWwpCisJCXJldHVybiAwOworCWtjb250cm9sLT5wcml2YXRlX3ZhbHVlID0gdmFsOwor CisJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkF1ZGlvIE91dCBEaWZmZXJlbnRp YWwiLCAhdmFsKTsKKwlzbmRfc29jX2RhcG1fc2V0X2VuZHBvaW50KGNvZGVjLCAiQXVkaW8gT3V0 IFN0ZXJlbyIsIHZhbCk7CisJc25kX3NvY19kYXBtX3N5bmMoY29kZWMpOworCisJcmV0dXJuIDE7 Cit9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBhdWRpb19vdXRfbXV4 ID0geworCS5pZmFjZSA9IFNORFJWX0NUTF9FTEVNX0lGQUNFX01JWEVSLAorCS5uYW1lID0gIk1h c3RlciBPdXRwdXQgTXV4IiwKKwkuaW5kZXggPSAwLAorCS5hY2Nlc3MgPSBTTkRSVl9DVExfRUxF TV9BQ0NFU1NfUkVBRFdSSVRFLAorCS5pbmZvID0gb3V0cHV0X3R5cGVfaW5mbywKKwkuZ2V0ID0g b3V0cHV0X3R5cGVfZ2V0LAorCS5wdXQgPSBvdXRwdXRfdHlwZV9wdXQsCisJLnByaXZhdGVfdmFs dWUgPSAxIC8qIGRlZmF1bHQgdG8gc3RlcmVvICovCit9OworCisvKiBMb2dpYyBmb3IgYSBhaWMz eCBhcyBjb25uZWN0ZWQgb24gdGhlIHM2MTA1IGlwIGNhbWVyYSByZWYgZGVzaWduICovCitzdGF0 aWMgaW50IHM2MTA1X2FpYzN4X2luaXQoc3RydWN0IHNuZF9zb2NfY29kZWMgKmNvZGVjKQorewor CS8qIEFkZCBzNjEwNSBzcGVjaWZpYyB3aWRnZXRzICovCisJc25kX3NvY19kYXBtX25ld19jb250 cm9scyhjb2RlYywgYWljM3hfZGFwbV93aWRnZXRzLAorCQkJCSAgQVJSQVlfU0laRShhaWMzeF9k YXBtX3dpZGdldHMpKTsKKworCS8qIFNldCB1cCBzNjEwNSBzcGVjaWZpYyBhdWRpbyBwYXRoIGF1 ZGlvX21hcCAqLworCXNuZF9zb2NfZGFwbV9hZGRfcm91dGVzKGNvZGVjLCBhdWRpb19tYXAsIEFS UkFZX1NJWkUoYXVkaW9fbWFwKSk7CisKKwkvKiBub3QgcHJlc2VudCAqLworCXNuZF9zb2NfZGFw bV9uY19waW4oY29kZWMsICJNT05PX0xPVVQiKTsKKwlzbmRfc29jX2RhcG1fbmNfcGluKGNvZGVj LCAiTElORTJMIik7CisJc25kX3NvY19kYXBtX25jX3Bpbihjb2RlYywgIkxJTkUyUiIpOworCisJ Lyogbm90IGNvbm5lY3RlZCAqLworCXNuZF9zb2NfZGFwbV9uY19waW4oY29kZWMsICJNSUMzTCIp OyAvKiBMSU5FMkwgb24gdGhpcyBjaGlwICovCisJc25kX3NvY19kYXBtX25jX3Bpbihjb2RlYywg Ik1JQzNSIik7IC8qIExJTkUyUiBvbiB0aGlzIGNoaXAgKi8KKwlzbmRfc29jX2RhcG1fbmNfcGlu KGNvZGVjLCAiTExPVVQiKTsKKwlzbmRfc29jX2RhcG1fbmNfcGluKGNvZGVjLCAiUkxPVVQiKTsK KwlzbmRfc29jX2RhcG1fbmNfcGluKGNvZGVjLCAiSFBSQ09NIik7CisKKwkvKiBhbHdheXMgY29u bmVjdGVkICovCisJc25kX3NvY19kYXBtX2VuYWJsZV9waW4oY29kZWMsICJBdWRpbyBJbiIpOwor CisJc25kX3NvY19kYXBtX3NldF9lbmRwb2ludChjb2RlYywgIkF1ZGlvIE91dCBEaWZmZXJlbnRp YWwiLAorCQkJCSAgIWF1ZGlvX291dF9tdXgucHJpdmF0ZV92YWx1ZSk7CisJc25kX3NvY19kYXBt X3NldF9lbmRwb2ludChjb2RlYywgIkF1ZGlvIE91dCBTdGVyZW8iLAorCQkJCSAgYXVkaW9fb3V0 X211eC5wcml2YXRlX3ZhbHVlKTsKKworCXNuZF9zb2NfZGFwbV9zeW5jKGNvZGVjKTsKKworCXNu ZF9jdGxfYWRkKGNvZGVjLT5jYXJkLCBzbmRfY3RsX25ldzEoJmF1ZGlvX291dF9tdXgsIGNvZGVj KSk7CisKKwlyZXR1cm4gMDsKK30KKworLyogczYxMDUgZGlnaXRhbCBhdWRpbyBpbnRlcmZhY2Ug Z2x1ZSAtIGNvbm5lY3RzIGNvZGVjIDwtLT4gQ1BVICovCitzdGF0aWMgc3RydWN0IHNuZF9zb2Nf ZGFpX2xpbmsgczYxMDVfZGFpID0geworCS5uYW1lID0gIlRMVjMyMEFJQzMxIiwKKwkuc3RyZWFt X25hbWUgPSAiQUlDMzEiLAorCS5jcHVfZGFpID0gJnM2MDAwX2kyc19kYWksCisJLmNvZGVjX2Rh aSA9ICZhaWMzeF9kYWksCisJLmluaXQgPSBzNjEwNV9haWMzeF9pbml0LAorCS5vcHMgPSAmczYx MDVfb3BzLAorfTsKKworLyogczYxMDUgYXVkaW8gbWFjaGluZSBkcml2ZXIgKi8KK3N0YXRpYyBz dHJ1Y3Qgc25kX3NvY19jYXJkIHNuZF9zb2NfY2FyZF9zNjEwNSA9IHsKKwkubmFtZSA9ICJTdHJl dGNoIElQIENhbWVyYSIsCisJLnBsYXRmb3JtID0gJnM2MDAwX3NvY19wbGF0Zm9ybSwKKwkuZGFp X2xpbmsgPSAmczYxMDVfZGFpLAorCS5udW1fbGlua3MgPSAxLAorfTsKKworLyogczYxMDUgYXVk aW8gcHJpdmF0ZSBkYXRhICovCitzdGF0aWMgc3RydWN0IGFpYzN4X3NldHVwX2RhdGEgczYxMDVf YWljM3hfc2V0dXAgPSB7CisJLmkyY19idXMgPSAwLAorCS5pMmNfYWRkcmVzcyA9IDB4MTgsCit9 OworCisvKiBzNjEwNSBhdWRpbyBzdWJzeXN0ZW0gKi8KK3N0YXRpYyBzdHJ1Y3Qgc25kX3NvY19k ZXZpY2UgczYxMDVfc25kX2RldmRhdGEgPSB7CisJLmNhcmQgPSAmc25kX3NvY19jYXJkX3M2MTA1 LAorCS5jb2RlY19kZXYgPSAmc29jX2NvZGVjX2Rldl9haWMzeCwKKwkuY29kZWNfZGF0YSA9ICZz NjEwNV9haWMzeF9zZXR1cCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgczYxMDVfc25k X3Jlc291cmNlc1tdID0geworCXsKKwkJLnN0YXJ0ID0gUzZfUkVHX0kyUywKKwkJLmVuZCA9IFM2 X1JFR19JMlMgKyAweDEwMDAwIC0gMSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9NRU0KKwl9LAor CXsKKwkJLnN0YXJ0ID0gUzZfTUVNX0kyUywKKwkJLmVuZCA9IFM2X01FTV9JMlMgKyAweDIwMDAw MDAgLSAxLAorCQkuZmxhZ3MgPSBJT1JFU09VUkNFX01FTQorCX0sCisJeworCQkuc3RhcnQgPSBE TUFfQ0hOTChTNl9SRUdfSElGRE1BLCBTNl9ISUZETUFfSTJTMCksCisJCS5lbmQgPSBETUFfQ0hO TChTNl9SRUdfSElGRE1BLCBTNl9ISUZETUFfSTJTMCkgKyAweDEwMCAtIDEsCisJCS5mbGFncyA9 IElPUkVTT1VSQ0VfRE1BCisJfSwKKwl7CisJCS5zdGFydCA9IERNQV9DSE5MKFM2X1JFR19ISUZE TUEsIFM2X0hJRkRNQV9JMlMxKSwKKwkJLmVuZCA9IERNQV9DSE5MKFM2X1JFR19ISUZETUEsIFM2 X0hJRkRNQV9JMlMxKSArIDB4MTAwIC0gMSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9ETUEKKwl9 LAorCXsKKwkJLnN0YXJ0ID0gSTJTX0lOVE5VTSwKKwkJLmZsYWdzID0gSU9SRVNPVVJDRV9JUlEs CisJfQorfTsKKworc3RhdGljIHN0cnVjdCBzNjAwMF9zbmRfcGxhdGZvcm1fZGF0YSBzNjEwNV9z bmRfZGF0YSA9IHsKKwkud2lkZQkJPSAwLAorCS5jaGFubmVsX2luCT0gMCwKKwkuY2hhbm5lbF9v dXQJPSAxLAorCS5saW5lc19pbgk9IDEsCisJLmxpbmVzX291dAk9IDEsCisJLnNhbWVfcmF0ZQk9 IDEsCit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSAqczYxMDVfc25kX2Rldmlj ZTsKKworc3RhdGljIGludCBfX2luaXQgczYxMDVfaW5pdCh2b2lkKQoreworCWludCByZXQ7CisK KwlzNjEwNV9zbmRfZGV2aWNlID0gcGxhdGZvcm1fZGV2aWNlX2FsbG9jKCJzb2MtYXVkaW8iLCAt MSk7CisJaWYgKCFzNjEwNV9zbmRfZGV2aWNlKQorCQlyZXR1cm4gLUVOT01FTTsKKworCXBsYXRm b3JtX3NldF9kcnZkYXRhKHM2MTA1X3NuZF9kZXZpY2UsICZzNjEwNV9zbmRfZGV2ZGF0YSk7CisJ czYxMDVfc25kX2RldmRhdGEuZGV2ID0gJnM2MTA1X3NuZF9kZXZpY2UtPmRldjsKKwlzNjEwNV9z bmRfZGV2aWNlLT5kZXYucGxhdGZvcm1fZGF0YSA9ICZzNjEwNV9zbmRfZGF0YTsKKworCXJldCA9 IHBsYXRmb3JtX2RldmljZV9hZGRfcmVzb3VyY2VzKHM2MTA1X3NuZF9kZXZpY2UsCisJCQkJCSAg ICBzNjEwNV9zbmRfcmVzb3VyY2VzLAorCQkJCQkgICAgQVJSQVlfU0laRShzNjEwNV9zbmRfcmVz b3VyY2VzKSk7CisJaWYgKHJldCkgeworCQlwbGF0Zm9ybV9kZXZpY2VfcHV0KHM2MTA1X3NuZF9k ZXZpY2UpOworCQlyZXR1cm4gcmV0OworCX0KKworCXJldCA9IHBsYXRmb3JtX2RldmljZV9hZGQo czYxMDVfc25kX2RldmljZSk7CisJaWYgKHJldCkKKwkJcGxhdGZvcm1fZGV2aWNlX3B1dChzNjEw NV9zbmRfZGV2aWNlKTsKKworCXJldHVybiByZXQ7Cit9CisKK3N0YXRpYyB2b2lkIF9fZXhpdCBz NjEwNV9leGl0KHZvaWQpCit7CisJcGxhdGZvcm1fZGV2aWNlX3VucmVnaXN0ZXIoczYxMDVfc25k X2RldmljZSk7Cit9CisKK21vZHVsZV9pbml0KHM2MTA1X2luaXQpOworbW9kdWxlX2V4aXQoczYx MDVfZXhpdCk7CisKK01PRFVMRV9BVVRIT1IoIkRhbmllbCBHbG9lY2tuZXIiKTsKK01PRFVMRV9E RVNDUklQVElPTigiU3RyZXRjaCBzNjEwNSBJUCBjYW1lcmEgQVNvQyBkcml2ZXIiKTsKK01PRFVM RV9MSUNFTlNFKCJHUEwiKTsKLS0gCjEuNi4yLjEwNy5nZTQ3ZWUKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFsc2EtZGV2ZWwgbWFpbGluZyBsaXN0CkFs c2EtZGV2ZWxAYWxzYS1wcm9qZWN0Lm9yZwpodHRwOi8vbWFpbG1hbi5hbHNhLXByb2plY3Qub3Jn L21haWxtYW4vbGlzdGluZm8vYWxzYS1kZXZlbAo=