From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= Subject: [PATCH 02/16] spi/imx: convert driver to use platform ids Date: Fri, 17 Sep 2010 11:54:20 +0200 Message-ID: <1284717274-12850-2-git-send-email-u.kleine-koenig@pengutronix.de> References: <20100917095247.GB30441@pengutronix.de> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Cc: spi-devel-general-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, Sascha Hauer , amit.kucheria-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org To: Jason Wang Return-path: In-Reply-To: <20100917095247.GB30441-bIcnvbaLZ9MEGnE8C9+IrQ@public.gmane.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: spi-devel-general-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: linux-spi.vger.kernel.org VGhpcyBoYXMgdGhlIGFkdmFudGFnZSBub3QgdG8gbmVlZCB0byBtdWNoIGNwdV9pc18uLi4gbWFj cm9zLiAgU3RpbGwgbW9yZQp3aGVuIGlteDUxIHN1cHBvcnQgaXMgYWRkZWQgd2hpY2ggaGFzIHR3 byBkaWZmZXJlbnQgc3BpIGludGVyZmFjZXMgd2hpY2gKd291bGQgaW50cm9kdWNlIGFkZGl0aW9u YWwgY2hlY2tzIG9uIHRoZSBkZXZpY2UgaWQuCgpXaXRoIHRoaXMgc2V0dXAgaXQncyBub3QgcG9z c2libGUgZm9yIHRoZSBjb21waWxlciBhbnltb3JlIHRvIGRldGVjdCB0aGUKdW51c2VkIGZ1bmN0 aW9ucywgc28gZm91ciBhZGRpdGlvbmFsIGtjb25maWcgc3ltYm9scyBhcmUgaW50cm9kdWNlZCB0 bwppZmRlZiBvdXQgdGhlIHVubmVlZGVkIGZ1bmN0aW9ucyBpbiB0aGUgY2FsbGJhY2sgYXJyYXkg YW5kIGFsbCB0aGVzZQpmdW5jdGlvbnMgYXJlIG1hcmtlZCB3aXRoIF9fbWF5YmVfdW51c2VkIHRv IHN1cHByZXNzIHRoZSBjb3JyZXNwb25kaW5nCmdjYyB3YXJuaW5ncy4KCkNvbXBhcmluZyB0aGUg ZHJpdmVyIGZvb3RwcmludCB3aXRoIGFuZCB3aXRob3V0IHRoZSBwYXRjaCBmb3IgYSBteDI3Cmtl cm5lbCB5aWVsZHM6CgphZGQvcmVtb3ZlOiAyLzAgZ3Jvdy9zaHJpbms6IDIvMCB1cC9kb3duOiAy ODAvMCAoMjgwKQpmdW5jdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv bGQgICAgIG5ldyAgIGRlbHRhCnNwaV9pbXhfZGV2dHlwZSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLSAgICAgMTkyICAgICsxOTIKc3BpX2lteF9wcm9iZSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgOTgwICAgIDEwMzIgICAgICs1MgpzcGlfaW14X2RldnR5cGVfZGF0YSAg ICAgICAgICAgICAgICAgICAgICAgICAgIC0gICAgICAzMiAgICAgKzMyCnNwaV9pbXhfc2V0dXB4 ZmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgIDI3NiAgICAgMjgwICAgICAgKzQKCkxhdGVy IHdoZW4gdGhlIHBsYXRmb3JtIGNvZGUgaXMgdXBkYXRlZCB0byB1c2UgdGhlIHBsYXRmb3JtIGlk cywgdGhlCmF1dG9kZXRlY3Rpb24gY2FuIGJlIHJlbW92ZWQgd2hpY2ggd2lsbCBtYWtlIHRoZSBk cml2ZXIgYSBiaXQgc21hbGxlcgphZ2Fpbi4gICh+NjAgQnl0ZXMgaW4gbXkgdGVzdC4pCgpTaWdu ZWQtb2ZmLWJ5OiBVd2UgS2xlaW5lLUvDtm5pZyA8dS5rbGVpbmUta29lbmlnQHBlbmd1dHJvbml4 LmRlPgotLS0KIGRyaXZlcnMvc3BpL0tjb25maWcgICB8ICAgMTIgKysrKwogZHJpdmVycy9zcGkv c3BpX2lteC5jIHwgIDE3MyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0t LS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE0MyBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL3NwaS9LY29uZmlnIGIvZHJpdmVycy9zcGkvS2Nv bmZpZwppbmRleCAzMGFlYTZkLi40ZTlkNzdiIDEwMDY0NAotLS0gYS9kcml2ZXJzL3NwaS9LY29u ZmlnCisrKyBiL2RyaXZlcnMvc3BpL0tjb25maWcKQEAgLTE0Myw2ICsxNDMsMTggQEAgY29uZmln IFNQSV9HUElPCiAJICBHUElPIG9wZXJhdGlvbnMsIHlvdSBzaG91bGQgYmUgYWJsZSB0byBsZXZl cmFnZSB0aGF0IGZvciBiZXR0ZXIKIAkgIHNwZWVkIHdpdGggYSBjdXN0b20gdmVyc2lvbiBvZiB0 aGlzIGRyaXZlcjsgc2VlIHRoZSBzb3VyY2UgY29kZS4KIAorY29uZmlnIFNQSV9JTVhfVkVSX0lN WDEKKwlkZWZfYm9vbCB5IGlmIFNPQ19JTVgxCisKK2NvbmZpZyBTUElfSU1YX1ZFUl8wXzAKKwlk ZWZfYm9vbCB5IGlmIFNPQ19JTVgyMSB8fCBTT0NfSU1YMjcKKworY29uZmlnIFNQSV9JTVhfVkVS XzBfNAorCWRlZl9ib29sIHkgaWYgQVJDSF9NWDMxCisKK2NvbmZpZyBTUElfSU1YX1ZFUl8wXzcK KwlkZWZfYm9vbCB5IGlmIEFSQ0hfTVgyNSB8fCBBUkNIX01YMzUKKwogY29uZmlnIFNQSV9JTVgK IAl0cmlzdGF0ZSAiRnJlZXNjYWxlIGkuTVggU1BJIGNvbnRyb2xsZXJzIgogCWRlcGVuZHMgb24g QVJDSF9NWEMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvc3BpL3NwaV9pbXguYyBiL2RyaXZlcnMvc3Bp L3NwaV9pbXguYwppbmRleCA3OTcyZTkwLi4yMGNkZWUzIDEwMDY0NAotLS0gYS9kcml2ZXJzL3Nw aS9zcGlfaW14LmMKKysrIGIvZHJpdmVycy9zcGkvc3BpX2lteC5jCkBAIC01OSw2ICs1OSwyNCBA QCBzdHJ1Y3Qgc3BpX2lteF9jb25maWcgewogCWludCBjczsKIH07CiAKK2VudW0gc3BpX2lteF9k ZXZ0eXBlIHsKKwlTUElfSU1YX1ZFUl9JTVgxLAorCVNQSV9JTVhfVkVSXzBfMCwKKwlTUElfSU1Y X1ZFUl8wXzQsCisJU1BJX0lNWF9WRVJfMF81LAorCVNQSV9JTVhfVkVSXzBfNywKKwlTUElfSU1Y X1ZFUl9BVVRPREVURUNULAorfTsKKworc3RydWN0IHNwaV9pbXhfZGF0YTsKKworc3RydWN0IHNw aV9pbXhfZGV2dHlwZV9kYXRhIHsKKwl2b2lkICgqaW50Y3RybCkoc3RydWN0IHNwaV9pbXhfZGF0 YSAqLCBpbnQpOworCWludCAoKmNvbmZpZykoc3RydWN0IHNwaV9pbXhfZGF0YSAqLCBzdHJ1Y3Qg c3BpX2lteF9jb25maWcgKik7CisJdm9pZCAoKnRyaWdnZXIpKHN0cnVjdCBzcGlfaW14X2RhdGEg Kik7CisJaW50ICgqcnhfYXZhaWxhYmxlKShzdHJ1Y3Qgc3BpX2lteF9kYXRhICopOworfTsKKwog c3RydWN0IHNwaV9pbXhfZGF0YSB7CiAJc3RydWN0IHNwaV9iaXRiYW5nIGJpdGJhbmc7CiAKQEAg LTc2LDExICs5NCw3IEBAIHN0cnVjdCBzcGlfaW14X2RhdGEgewogCWNvbnN0IHZvaWQgKnR4X2J1 ZjsKIAl1bnNpZ25lZCBpbnQgdHhmaWZvOyAvKiBudW1iZXIgb2Ygd29yZHMgcHVzaGVkIGluIHR4 IEZJRk8gKi8KIAotCS8qIFNvQyBzcGVjaWZpYyBmdW5jdGlvbnMgKi8KLQl2b2lkICgqaW50Y3Ry bCkoc3RydWN0IHNwaV9pbXhfZGF0YSAqLCBpbnQpOwotCWludCAoKmNvbmZpZykoc3RydWN0IHNw aV9pbXhfZGF0YSAqLCBzdHJ1Y3Qgc3BpX2lteF9jb25maWcgKik7Ci0Jdm9pZCAoKnRyaWdnZXIp KHN0cnVjdCBzcGlfaW14X2RhdGEgKik7Ci0JaW50ICgqcnhfYXZhaWxhYmxlKShzdHJ1Y3Qgc3Bp X2lteF9kYXRhICopOworCXN0cnVjdCBzcGlfaW14X2RldnR5cGVfZGF0YSBkZXZ0eXBlX2RhdGE7 CiB9OwogCiAjZGVmaW5lIE1YQ19TUElfQlVGX1JYKHR5cGUpCQkJCQkJXApAQCAtMTc4LDcgKzE5 Miw3IEBAIHN0YXRpYyB1bnNpZ25lZCBpbnQgc3BpX2lteF9jbGtkaXZfMih1bnNpZ25lZCBpbnQg ZmluLAogICogdGhlIGkuTVgzNSBoYXMgYSBzbGlnaHRseSBkaWZmZXJlbnQgcmVnaXN0ZXIgbGF5 b3V0IGZvciBiaXRzCiAgKiB3ZSBkbyBub3QgdXNlIGhlcmUuCiAgKi8KLXN0YXRpYyB2b2lkIG14 MzFfaW50Y3RybChzdHJ1Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14LCBpbnQgZW5hYmxlKQorc3Rh dGljIHZvaWQgX19tYXliZV91bnVzZWQgbXgzMV9pbnRjdHJsKHN0cnVjdCBzcGlfaW14X2RhdGEg KnNwaV9pbXgsIGludCBlbmFibGUpCiB7CiAJdW5zaWduZWQgaW50IHZhbCA9IDA7CiAKQEAgLTE5 MCw3ICsyMDQsNyBAQCBzdGF0aWMgdm9pZCBteDMxX2ludGN0cmwoc3RydWN0IHNwaV9pbXhfZGF0 YSAqc3BpX2lteCwgaW50IGVuYWJsZSkKIAl3cml0ZWwodmFsLCBzcGlfaW14LT5iYXNlICsgTVhD X0NTUElJTlQpOwogfQogCi1zdGF0aWMgdm9pZCBteDMxX3RyaWdnZXIoc3RydWN0IHNwaV9pbXhf ZGF0YSAqc3BpX2lteCkKK3N0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkIG14MzFfdHJpZ2dlcihz dHJ1Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14KQogewogCXVuc2lnbmVkIGludCByZWc7CiAKQEAg LTE5OSw3ICsyMTMsNyBAQCBzdGF0aWMgdm9pZCBteDMxX3RyaWdnZXIoc3RydWN0IHNwaV9pbXhf ZGF0YSAqc3BpX2lteCkKIAl3cml0ZWwocmVnLCBzcGlfaW14LT5iYXNlICsgTVhDX0NTUElDVFJM KTsKIH0KIAotc3RhdGljIGludCBteDMxX2NvbmZpZyhzdHJ1Y3Qgc3BpX2lteF9kYXRhICpzcGlf aW14LAorc3RhdGljIGludCBfX21heWJlX3VudXNlZCBteDMxX2NvbmZpZyhzdHJ1Y3Qgc3BpX2lt eF9kYXRhICpzcGlfaW14LAogCQlzdHJ1Y3Qgc3BpX2lteF9jb25maWcgKmNvbmZpZykKIHsKIAl1 bnNpZ25lZCBpbnQgcmVnID0gTVgzMV9DU1BJQ1RSTF9FTkFCTEUgfCBNWDMxX0NTUElDVFJMX01B U1RFUjsKQEAgLTIzMiw3ICsyNDYsNyBAQCBzdGF0aWMgaW50IG14MzFfY29uZmlnKHN0cnVjdCBz cGlfaW14X2RhdGEgKnNwaV9pbXgsCiAJcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyBpbnQgbXgzMV9y eF9hdmFpbGFibGUoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCkKK3N0YXRpYyBpbnQgX19t YXliZV91bnVzZWQgbXgzMV9yeF9hdmFpbGFibGUoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lt eCkKIHsKIAlyZXR1cm4gcmVhZGwoc3BpX2lteC0+YmFzZSArIE1YMzFfQ1NQSVNUQVRVUykgJiBN WDMxX1NUQVRVU19SUjsKIH0KQEAgLTI1MCw3ICsyNjQsNyBAQCBzdGF0aWMgaW50IG14MzFfcnhf YXZhaWxhYmxlKHN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXgpCiAjZGVmaW5lIE1YMjdfQ1NQ SUNUUkxfRFJfU0hJRlQJMTQKICNkZWZpbmUgTVgyN19DU1BJQ1RSTF9DU19TSElGVAkxOQogCi1z dGF0aWMgdm9pZCBteDI3X2ludGN0cmwoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCwgaW50 IGVuYWJsZSkKK3N0YXRpYyB2b2lkIF9fbWF5YmVfdW51c2VkIG14MjdfaW50Y3RybChzdHJ1Y3Qg c3BpX2lteF9kYXRhICpzcGlfaW14LCBpbnQgZW5hYmxlKQogewogCXVuc2lnbmVkIGludCB2YWwg PSAwOwogCkBAIC0yNjIsNyArMjc2LDcgQEAgc3RhdGljIHZvaWQgbXgyN19pbnRjdHJsKHN0cnVj dCBzcGlfaW14X2RhdGEgKnNwaV9pbXgsIGludCBlbmFibGUpCiAJd3JpdGVsKHZhbCwgc3BpX2lt eC0+YmFzZSArIE1YQ19DU1BJSU5UKTsKIH0KIAotc3RhdGljIHZvaWQgbXgyN190cmlnZ2VyKHN0 cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXgpCitzdGF0aWMgdm9pZCBfX21heWJlX3VudXNlZCBt eDI3X3RyaWdnZXIoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCkKIHsKIAl1bnNpZ25lZCBp bnQgcmVnOwogCkBAIC0yNzEsNyArMjg1LDcgQEAgc3RhdGljIHZvaWQgbXgyN190cmlnZ2VyKHN0 cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXgpCiAJd3JpdGVsKHJlZywgc3BpX2lteC0+YmFzZSAr IE1YQ19DU1BJQ1RSTCk7CiB9CiAKLXN0YXRpYyBpbnQgbXgyN19jb25maWcoc3RydWN0IHNwaV9p bXhfZGF0YSAqc3BpX2lteCwKK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgbXgyN19jb25maWco c3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCwKIAkJc3RydWN0IHNwaV9pbXhfY29uZmlnICpj b25maWcpCiB7CiAJdW5zaWduZWQgaW50IHJlZyA9IE1YMjdfQ1NQSUNUUkxfRU5BQkxFIHwgTVgy N19DU1BJQ1RSTF9NQVNURVI7CkBAIC0yOTQsNyArMzA4LDcgQEAgc3RhdGljIGludCBteDI3X2Nv bmZpZyhzdHJ1Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14LAogCXJldHVybiAwOwogfQogCi1zdGF0 aWMgaW50IG14MjdfcnhfYXZhaWxhYmxlKHN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXgpCitz dGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIG14MjdfcnhfYXZhaWxhYmxlKHN0cnVjdCBzcGlfaW14 X2RhdGEgKnNwaV9pbXgpCiB7CiAJcmV0dXJuIHJlYWRsKHNwaV9pbXgtPmJhc2UgKyBNWENfQ1NQ SUlOVCkgJiBNWDI3X0lOVFJFR19SUjsKIH0KQEAgLTMxMCw3ICszMjQsNyBAQCBzdGF0aWMgaW50 IG14MjdfcnhfYXZhaWxhYmxlKHN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXgpCiAjZGVmaW5l IE1YMV9DU1BJQ1RSTF9NQVNURVIJKDEgPDwgMTApCiAjZGVmaW5lIE1YMV9DU1BJQ1RSTF9EUl9T SElGVAkxMwogCi1zdGF0aWMgdm9pZCBteDFfaW50Y3RybChzdHJ1Y3Qgc3BpX2lteF9kYXRhICpz cGlfaW14LCBpbnQgZW5hYmxlKQorc3RhdGljIHZvaWQgX19tYXliZV91bnVzZWQgbXgxX2ludGN0 cmwoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCwgaW50IGVuYWJsZSkKIHsKIAl1bnNpZ25l ZCBpbnQgdmFsID0gMDsKIApAQCAtMzIyLDcgKzMzNiw3IEBAIHN0YXRpYyB2b2lkIG14MV9pbnRj dHJsKHN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXgsIGludCBlbmFibGUpCiAJd3JpdGVsKHZh bCwgc3BpX2lteC0+YmFzZSArIE1YQ19DU1BJSU5UKTsKIH0KIAotc3RhdGljIHZvaWQgbXgxX3Ry aWdnZXIoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCkKK3N0YXRpYyB2b2lkIF9fbWF5YmVf dW51c2VkIG14MV90cmlnZ2VyKHN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXgpCiB7CiAJdW5z aWduZWQgaW50IHJlZzsKIApAQCAtMzMxLDcgKzM0NSw3IEBAIHN0YXRpYyB2b2lkIG14MV90cmln Z2VyKHN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXgpCiAJd3JpdGVsKHJlZywgc3BpX2lteC0+ YmFzZSArIE1YQ19DU1BJQ1RSTCk7CiB9CiAKLXN0YXRpYyBpbnQgbXgxX2NvbmZpZyhzdHJ1Y3Qg c3BpX2lteF9kYXRhICpzcGlfaW14LAorc3RhdGljIGludCBfX21heWJlX3VudXNlZCBteDFfY29u ZmlnKHN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXgsCiAJCXN0cnVjdCBzcGlfaW14X2NvbmZp ZyAqY29uZmlnKQogewogCXVuc2lnbmVkIGludCByZWcgPSBNWDFfQ1NQSUNUUkxfRU5BQkxFIHwg TVgxX0NTUElDVFJMX01BU1RFUjsKQEAgLTM1MCwxMSArMzY0LDUwIEBAIHN0YXRpYyBpbnQgbXgx X2NvbmZpZyhzdHJ1Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14LAogCXJldHVybiAwOwogfQogCi1z dGF0aWMgaW50IG14MV9yeF9hdmFpbGFibGUoc3RydWN0IHNwaV9pbXhfZGF0YSAqc3BpX2lteCkK K3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgbXgxX3J4X2F2YWlsYWJsZShzdHJ1Y3Qgc3BpX2lt eF9kYXRhICpzcGlfaW14KQogewogCXJldHVybiByZWFkbChzcGlfaW14LT5iYXNlICsgTVhDX0NT UElJTlQpICYgTVgxX0lOVFJFR19SUjsKIH0KIAorLyoKKyAqIFRoZXNlIHZlcnNpb24gbnVtYmVy cyBhcmUgdGFrZW4gZnJvbSB0aGUgRnJlZXNjYWxlIGRyaXZlci4gIFVuZm9ydHVuYXRlbHkgaXQK KyAqIGRvZXNuJ3Qgc3VwcG9ydCBpLk1YMSwgc28gdGhpcyBlbnRyeSBkb2Vzbid0IG1hdGNoIHRo ZSBzY2hlbWUuIDotKAorICovCitzdGF0aWMgc3RydWN0IHNwaV9pbXhfZGV2dHlwZV9kYXRhIHNw aV9pbXhfZGV2dHlwZV9kYXRhW10gX19kZXZpbml0ZGF0YSA9IHsKKyNpZmRlZiBDT05GSUdfU1BJ X0lNWF9WRVJfSU1YMQorCVtTUElfSU1YX1ZFUl9JTVgxXSA9IHsKKwkJLmludGN0cmwgPSBteDFf aW50Y3RybCwKKwkJLmNvbmZpZyA9IG14MV9jb25maWcsCisJCS50cmlnZ2VyID0gbXgxX3RyaWdn ZXIsCisJCS5yeF9hdmFpbGFibGUgPSBteDFfcnhfYXZhaWxhYmxlLAorCX0sCisjZW5kaWYKKyNp ZmRlZiBDT05GSUdfU1BJX0lNWF9WRVJfMF8wCisJW1NQSV9JTVhfVkVSXzBfMF0gPSB7CisJCS5p bnRjdHJsID0gbXgyN19pbnRjdHJsLAorCQkuY29uZmlnID0gbXgyN19jb25maWcsCisJCS50cmln Z2VyID0gbXgyN190cmlnZ2VyLAorCQkucnhfYXZhaWxhYmxlID0gbXgyN19yeF9hdmFpbGFibGUs CisJfSwKKyNlbmRpZgorI2lmZGVmIENPTkZJR19TUElfSU1YX1ZFUl8wXzQKKwlbU1BJX0lNWF9W RVJfMF80XSA9IHsKKwkJLmludGN0cmwgPSBteDMxX2ludGN0cmwsCisJCS5jb25maWcgPSBteDMx X2NvbmZpZywKKwkJLnRyaWdnZXIgPSBteDMxX3RyaWdnZXIsCisJCS5yeF9hdmFpbGFibGUgPSBt eDMxX3J4X2F2YWlsYWJsZSwKKwl9LAorI2VuZGlmCisjaWZkZWYgQ09ORklHX1NQSV9JTVhfVkVS XzBfNworCVtTUElfSU1YX1ZFUl8wXzddID0geworCQkuaW50Y3RybCA9IG14MzFfaW50Y3RybCwK KwkJLmNvbmZpZyA9IG14MzFfY29uZmlnLAorCQkudHJpZ2dlciA9IG14MzFfdHJpZ2dlciwKKwkJ LnJ4X2F2YWlsYWJsZSA9IG14MzFfcnhfYXZhaWxhYmxlLAorCX0sCisjZW5kaWYKK307CisKIHN0 YXRpYyB2b2lkIHNwaV9pbXhfY2hpcHNlbGVjdChzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLCBpbnQg aXNfYWN0aXZlKQogewogCXN0cnVjdCBzcGlfaW14X2RhdGEgKnNwaV9pbXggPSBzcGlfbWFzdGVy X2dldF9kZXZkYXRhKHNwaS0+bWFzdGVyKTsKQEAgLTM3NywxNCArNDMwLDE0IEBAIHN0YXRpYyB2 b2lkIHNwaV9pbXhfcHVzaChzdHJ1Y3Qgc3BpX2lteF9kYXRhICpzcGlfaW14KQogCQlzcGlfaW14 LT50eGZpZm8rKzsKIAl9CiAKLQlzcGlfaW14LT50cmlnZ2VyKHNwaV9pbXgpOworCXNwaV9pbXgt PmRldnR5cGVfZGF0YS50cmlnZ2VyKHNwaV9pbXgpOwogfQogCiBzdGF0aWMgaXJxcmV0dXJuX3Qg c3BpX2lteF9pc3IoaW50IGlycSwgdm9pZCAqZGV2X2lkKQogewogCXN0cnVjdCBzcGlfaW14X2Rh dGEgKnNwaV9pbXggPSBkZXZfaWQ7CiAKLQl3aGlsZSAoc3BpX2lteC0+cnhfYXZhaWxhYmxlKHNw aV9pbXgpKSB7CisJd2hpbGUgKHNwaV9pbXgtPmRldnR5cGVfZGF0YS5yeF9hdmFpbGFibGUoc3Bp X2lteCkpIHsKIAkJc3BpX2lteC0+cngoc3BpX2lteCk7CiAJCXNwaV9pbXgtPnR4Zmlmby0tOwog CX0KQEAgLTM5OCwxMSArNDUxLDEyIEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBzcGlfaW14X2lzcihp bnQgaXJxLCB2b2lkICpkZXZfaWQpCiAJCS8qIE5vIGRhdGEgbGVmdCB0byBwdXNoLCBidXQgc3Rp bGwgd2FpdGluZyBmb3IgcnggZGF0YSwKIAkJICogZW5hYmxlIHJlY2VpdmUgZGF0YSBhdmFpbGFi bGUgaW50ZXJydXB0LgogCQkgKi8KLQkJc3BpX2lteC0+aW50Y3RybChzcGlfaW14LCBNWENfSU5U X1JSKTsKKwkJc3BpX2lteC0+ZGV2dHlwZV9kYXRhLmludGN0cmwoCisJCQkJc3BpX2lteCwgTVhD X0lOVF9SUik7CiAJCXJldHVybiBJUlFfSEFORExFRDsKIAl9CiAKLQlzcGlfaW14LT5pbnRjdHJs KHNwaV9pbXgsIDApOworCXNwaV9pbXgtPmRldnR5cGVfZGF0YS5pbnRjdHJsKHNwaV9pbXgsIDAp OwogCWNvbXBsZXRlKCZzcGlfaW14LT54ZmVyX2RvbmUpOwogCiAJcmV0dXJuIElSUV9IQU5ETEVE OwpAQCAtNDM5LDcgKzQ5Myw3IEBAIHN0YXRpYyBpbnQgc3BpX2lteF9zZXR1cHhmZXIoc3RydWN0 IHNwaV9kZXZpY2UgKnNwaSwKIAl9IGVsc2UKIAkJQlVHKCk7CiAKLQlzcGlfaW14LT5jb25maWco c3BpX2lteCwgJmNvbmZpZyk7CisJc3BpX2lteC0+ZGV2dHlwZV9kYXRhLmNvbmZpZyhzcGlfaW14 LCAmY29uZmlnKTsKIAogCXJldHVybiAwOwogfQpAQCAtNDU4LDcgKzUxMiw3IEBAIHN0YXRpYyBp bnQgc3BpX2lteF90cmFuc2ZlcihzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpLAogCiAJc3BpX2lteF9w dXNoKHNwaV9pbXgpOwogCi0Jc3BpX2lteC0+aW50Y3RybChzcGlfaW14LCBNWENfSU5UX1RFKTsK KwlzcGlfaW14LT5kZXZ0eXBlX2RhdGEuaW50Y3RybChzcGlfaW14LCBNWENfSU5UX1RFKTsKIAog CXdhaXRfZm9yX2NvbXBsZXRpb24oJnNwaV9pbXgtPnhmZXJfZG9uZSk7CiAKQEAgLTQ4NSw2ICs1 MzksMzMgQEAgc3RhdGljIHZvaWQgc3BpX2lteF9jbGVhbnVwKHN0cnVjdCBzcGlfZGV2aWNlICpz cGkpCiB7CiB9CiAKK3N0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlX2lkIHNwaV9pbXhfZGV2 dHlwZVtdID0geworCXsKKwkJLm5hbWUgPSBEUklWRVJfTkFNRSwKKwkJLmRyaXZlcl9kYXRhID0g U1BJX0lNWF9WRVJfQVVUT0RFVEVDVCwKKwl9LCB7CisJCS5uYW1lID0gImlteDEtY3NwaSIsCisJ CS5kcml2ZXJfZGF0YSA9IFNQSV9JTVhfVkVSX0lNWDEsCisJfSwgeworCQkubmFtZSA9ICJpbXgy MS1jc3BpIiwKKwkJLmRyaXZlcl9kYXRhID0gU1BJX0lNWF9WRVJfMF8wLAorCX0sIHsKKwkJLm5h bWUgPSAiaW14MjUtY3NwaSIsCisJCS5kcml2ZXJfZGF0YSA9IFNQSV9JTVhfVkVSXzBfNywKKwl9 LCB7CisJCS5uYW1lID0gImlteDI3LWNzcGkiLAorCQkuZHJpdmVyX2RhdGEgPSBTUElfSU1YX1ZF Ul8wXzAsCisJfSwgeworCQkubmFtZSA9ICJpbXgzMS1jc3BpIiwKKwkJLmRyaXZlcl9kYXRhID0g U1BJX0lNWF9WRVJfMF80LAorCX0sIHsKKwkJLm5hbWUgPSAiaW14MzUtY3NwaSIsCisJCS5kcml2 ZXJfZGF0YSA9IFNQSV9JTVhfVkVSXzBfNywKKwl9LCB7CisJCS8qIHNlbnRpbmVsICovCisJfQor fTsKKwogc3RhdGljIGludCBfX2RldmluaXQgc3BpX2lteF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCBzcGlfaW14X21hc3RlciAqbXhjX3BsYXRmb3JtX2lu Zm87CkBAIC01MzYsNiArNjE3LDMxIEBAIHN0YXRpYyBpbnQgX19kZXZpbml0IHNwaV9pbXhfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKIAogCWluaXRfY29tcGxldGlvbigmc3Bp X2lteC0+eGZlcl9kb25lKTsKIAorCWlmIChwZGV2LT5pZF9lbnRyeS0+ZHJpdmVyX2RhdGEgPT0g U1BJX0lNWF9WRVJfQVVUT0RFVEVDVCkgeworCQlpZiAoY3B1X2lzX214MjUoKSB8fCBjcHVfaXNf bXgzNSgpKQorCQkJc3BpX2lteC0+ZGV2dHlwZV9kYXRhID0KKwkJCQlzcGlfaW14X2RldnR5cGVf ZGF0YVtTUElfSU1YX1ZFUl8wXzddOworCQllbHNlIGlmIChjcHVfaXNfbXgyNSgpIHx8IGNwdV9p c19teDMxKCkgfHwgY3B1X2lzX214MzUoKSkKKwkJCXNwaV9pbXgtPmRldnR5cGVfZGF0YSA9CisJ CQkJc3BpX2lteF9kZXZ0eXBlX2RhdGFbU1BJX0lNWF9WRVJfMF80XTsKKwkJZWxzZSBpZiAoY3B1 X2lzX214MjcoKSB8fCBjcHVfaXNfbXgyMSgpKQorCQkJc3BpX2lteC0+ZGV2dHlwZV9kYXRhID0K KwkJCQlzcGlfaW14X2RldnR5cGVfZGF0YVtTUElfSU1YX1ZFUl8wXzBdOworCQllbHNlIGlmIChj cHVfaXNfbXgxKCkpCisJCQlzcGlfaW14LT5kZXZ0eXBlX2RhdGEgPQorCQkJCXNwaV9pbXhfZGV2 dHlwZV9kYXRhW1NQSV9JTVhfVkVSX0lNWDFdOworCQllbHNlCisJCQlCVUcoKTsKKwl9IGVsc2UK KwkJc3BpX2lteC0+ZGV2dHlwZV9kYXRhID0KKwkJCXNwaV9pbXhfZGV2dHlwZV9kYXRhW3BkZXYt PmlkX2VudHJ5LT5kcml2ZXJfZGF0YV07CisKKwlpZiAoIXNwaV9pbXgtPmRldnR5cGVfZGF0YS5p bnRjdHJsKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIm5vIHN1cHBvcnQgZm9yIHRoaXMgZGV2 aWNlIGNvbXBpbGVkIGluXG4iKTsKKwkJcmV0ID0gLUVOT0RFVjsKKwkJZ290byBvdXRfZ3Bpb19m cmVlOworCX0KKwogCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZShwZGV2LCBJT1JFU09VUkNF X01FTSwgMCk7CiAJaWYgKCFyZXMpIHsKIAkJZGV2X2VycigmcGRldi0+ZGV2LCAiY2FuJ3QgZ2V0 IHBsYXRmb3JtIHJlc291cmNlXG4iKTsKQEAgLTU2NywyNCArNjczLDYgQEAgc3RhdGljIGludCBf X2RldmluaXQgc3BpX2lteF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQln b3RvIG91dF9pb3VubWFwOwogCX0KIAotCWlmIChjcHVfaXNfbXgyNSgpIHx8IGNwdV9pc19teDMx KCkgfHwgY3B1X2lzX214MzUoKSkgewotCQlzcGlfaW14LT5pbnRjdHJsID0gbXgzMV9pbnRjdHJs OwotCQlzcGlfaW14LT5jb25maWcgPSBteDMxX2NvbmZpZzsKLQkJc3BpX2lteC0+dHJpZ2dlciA9 IG14MzFfdHJpZ2dlcjsKLQkJc3BpX2lteC0+cnhfYXZhaWxhYmxlID0gbXgzMV9yeF9hdmFpbGFi bGU7Ci0JfSBlbHNlICBpZiAoY3B1X2lzX214MjcoKSB8fCBjcHVfaXNfbXgyMSgpKSB7Ci0JCXNw aV9pbXgtPmludGN0cmwgPSBteDI3X2ludGN0cmw7Ci0JCXNwaV9pbXgtPmNvbmZpZyA9IG14Mjdf Y29uZmlnOwotCQlzcGlfaW14LT50cmlnZ2VyID0gbXgyN190cmlnZ2VyOwotCQlzcGlfaW14LT5y eF9hdmFpbGFibGUgPSBteDI3X3J4X2F2YWlsYWJsZTsKLQl9IGVsc2UgaWYgKGNwdV9pc19teDEo KSkgewotCQlzcGlfaW14LT5pbnRjdHJsID0gbXgxX2ludGN0cmw7Ci0JCXNwaV9pbXgtPmNvbmZp ZyA9IG14MV9jb25maWc7Ci0JCXNwaV9pbXgtPnRyaWdnZXIgPSBteDFfdHJpZ2dlcjsKLQkJc3Bp X2lteC0+cnhfYXZhaWxhYmxlID0gbXgxX3J4X2F2YWlsYWJsZTsKLQl9IGVsc2UKLQkJQlVHKCk7 Ci0KIAlzcGlfaW14LT5jbGsgPSBjbGtfZ2V0KCZwZGV2LT5kZXYsIE5VTEwpOwogCWlmIChJU19F UlIoc3BpX2lteC0+Y2xrKSkgewogCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJ1bmFibGUgdG8gZ2V0 IGNsb2NrXG4iKTsKQEAgLTYwMyw3ICs2OTEsNyBAQCBzdGF0aWMgaW50IF9fZGV2aW5pdCBzcGlf aW14X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJCXdoaWxlIChyZWFkbChz cGlfaW14LT5iYXNlICsgTVgzX0NTUElTVEFUKSAmIE1YM19DU1BJU1RBVF9SUikKIAkJCXJlYWRs KHNwaV9pbXgtPmJhc2UgKyBNWENfQ1NQSVJYREFUQSk7CiAKLQlzcGlfaW14LT5pbnRjdHJsKHNw aV9pbXgsIDApOworCXNwaV9pbXgtPmRldnR5cGVfZGF0YS5pbnRjdHJsKHNwaV9pbXgsIDApOwog CiAJcmV0ID0gc3BpX2JpdGJhbmdfc3RhcnQoJnNwaV9pbXgtPmJpdGJhbmcpOwogCWlmIChyZXQp IHsKQEAgLTY2OCw2ICs3NTYsNyBAQCBzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBzcGlf aW14X2RyaXZlciA9IHsKIAkJICAgLm5hbWUgPSBEUklWRVJfTkFNRSwKIAkJICAgLm93bmVyID0g VEhJU19NT0RVTEUsCiAJCSAgIH0sCisJLmlkX3RhYmxlID0gc3BpX2lteF9kZXZ0eXBlLAogCS5w cm9iZSA9IHNwaV9pbXhfcHJvYmUsCiAJLnJlbW92ZSA9IF9fZGV2ZXhpdF9wKHNwaV9pbXhfcmVt b3ZlKSwKIH07Ci0tIAoxLjcuMi4zCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClN0YXJ0IHVuY292 ZXJpbmcgdGhlIG1hbnkgYWR2YW50YWdlcyBvZiB2aXJ0dWFsIGFwcGxpYW5jZXMKYW5kIHN0YXJ0 IHVzaW5nIHRoZW0gdG8gc2ltcGxpZnkgYXBwbGljYXRpb24gZGVwbG95bWVudCBhbmQKYWNjZWxl cmF0ZSB5b3VyIHNoaWZ0IHRvIGNsb3VkIGNvbXB1dGluZy4KaHR0cDovL3Auc2YubmV0L3NmdS9u b3ZlbGwtc2ZkZXYyZGV2Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCnNwaS1kZXZlbC1nZW5lcmFsIG1haWxpbmcgbGlzdApzcGktZGV2ZWwtZ2VuZXJhbEBs aXN0cy5zb3VyY2Vmb3JnZS5uZXQKaHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMv bGlzdGluZm8vc3BpLWRldmVsLWdlbmVyYWwK