From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from m15-113.126.com ([220.181.15.113]) by merlin.infradead.org with esmtp (Exim 4.76 #1 (Red Hat Linux)) id 1TcoIW-0004Rn-Dz for barebox@lists.infradead.org; Mon, 26 Nov 2012 02:19:54 +0000 Date: Mon, 26 Nov 2012 10:17:35 +0800 From: =?utf-8?B?5byg5b+g5bGx?= Message-ID: <20121126021735.GC19824@greatfirst.com> References: <20121123155224.GV8327@game.jcrosoft.org> <1353686104-31295-1-git-send-email-plagnioj@jcrosoft.com> <1353686104-31295-4-git-send-email-plagnioj@jcrosoft.com> <20121124034241.GA19824@greatfirst.com> <20121124084544.GY8327@game.jcrosoft.org> <20121125081149.GB19824@greatfirst.com> <20121125193208.GZ8327@game.jcrosoft.org> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20121125193208.GZ8327@game.jcrosoft.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: barebox-bounces@lists.infradead.org Errors-To: barebox-bounces+u.kleine-koenig=pengutronix.de@lists.infradead.org Subject: Re: [PATCH 4/4] Revert "mtd: atmel_nand: optimize read/write buffer functions" To: Jean-Christophe PLAGNIOL-VILLARD Cc: barebox SW4gbWVzc2FnZSA8MjAxMjExMjUxOTMyMDguR1o4MzI3QGdhbWUuamNyb3NvZnQub3JnPiBKZWFu LUNocmlzdG9waGUgUExBR05JT0wtVklMTEFSRCB3cm90ZToKPiBPbiAxNjoxMSBTdW4gMjUgTm92 ICAgICAsIOW8oOW/oOWxsSB3cm90ZToKPiA+ID4gPgo+ID4gPiA+IFRoaXMgcGF0Y2ggcmVzb2x2 ZXMgbXkgcHJvYmxlbQo+ID4gPiBJJ20gZXhwZWN0aW5nIHRvIHNlZSB5b3VyIHBhdGNoZXMKPiA+ ID4KPiA+Cj4gPiBNeSBmaXJzdCBwYXRjaCB2ZXJ5IHNpbXBsZToKPiB5b3VyIGJvYXJkIHBhdGNo Cj4KVGhlIGZsb3dpbmcgaXMgbXkgYm9hcmQgcGF0Y2gsIHNvcnJ5IGZvciBzb21lIGNoaW5lc2Ug Y29tbWVudHMuCkJ1dCBteSBib2FyZCBwYXRjaCBoYWQgbm90aGluZyBhYm91dCBkcml2ZXJzIQoK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9NYWtlZmls ZSBiL01ha2VmaWxlCmluZGV4IDA1YjhiZTUuLmVlZGFkMDcgMTAwNjQ0Ci0tLSBhL01ha2VmaWxl CisrKyBiL01ha2VmaWxlCkBAIC02ODEsMTAgKzY4MSwyOSBAQCBlbmRlZgogcXVpZXRfY21kX29i amNvcHkgPSBPQkpDT1BZICRACiAgICAgICBjbWRfb2JqY29weSA9ICQoT0JKQ09QWSkgJChPQkpD T1BZRkxBR1MpICQoT0JKQ09QWUZMQUdTXyQoQEYpKSAkPCAkQAoKK2lmZXEgKCQoQ09ORklHX0dS RUFURklSU1QpLHkpCitNRDVTVU1fVkFSTkFNRT1fX21kNXN1bV9fCitxdWlldF9jbWRfbWQ1c3Vt ID0gTUQ1U1VNICRACisgICAgICBjbWRfbWQ1c3VtID0gKGFkZHI9JCQoJChOTSkgJChiYXNlbmFt ZSAkQCkgfCBncmVwICQoTUQ1U1VNX1ZBUk5BTUUpIHwgc2VkIC1lICdzJVwoWzAtOWEtZkEtRl1c K1wpIFwrLiolMHhcMSUnKTsgXAorICAgICAgICAgICAgICAgICAgICBpZiBbICIkJGFkZHIiID0g IiIgXTsgdGhlbiBlY2hvIENhblwndCBmaW5kICQoTUQ1U1VNX1ZBUk5BTUUpOyBleGl0IDE7IGZp OyBcCisgICAgICAgICAgICAgICAgICAgIGFkZHI9JCQoKCQkYWRkciAtICQoVEVYVF9CQVNFKSkp OyBcCisgICAgICAgICAgICAgICAgICAgIHN1bT0kJChtZDVzdW0gLWIgJEAgfCBzZWQgLWUgJ3Ml XCguKlwpIFwrXCokQCVcMSUnKSAmJiBcCisgICAgICAgICAgICAgICAgICAgIGRkIGlicz0xIGNv dW50PSQkYWRkciBzdGF0dXM9bm94ZmVyIDwgJEAgPiAkQC5tZDU7IFwKKwkJICAgIGVjaG8gLW4g JCRzdW0gPj4gJEAubWQ1OyBcCisJCSAgICBhZGRyPSQkKCgkJGFkZHIgKyAzMikpOyBcCisJCSAg ICBkZCBpYnM9MSBza2lwPSQkYWRkciBzdGF0dXM9bm94ZmVyIDwgJEAgPj4gJEAubWQ1OyBcCisJ CSAgICBtdiAkQC5tZDUgJEA7IFwKKyAgICAgICAgICAgICAgICAgICAgZWNobyAtbiAkJHN1bSA+ ICRALm1kNSApCitlbHNlCitjbWRfbWQ1c3VtID0KK2VuZGlmCisKIE9CSkNPUFlGTEFHU19iYXJl Ym94LmJpbiA9IC1PIGJpbmFyeQoKIGJhcmVib3guYmluOiBiYXJlYm94IEZPUkNFCiAJJChjYWxs IGlmX2NoYW5nZWQsb2JqY29weSkKKwkkKGNhbGwgY21kLG1kNXN1bSkKKwogaWZuZGVmIENPTkZJ R19QQkxfSU1BR0UKIAkkKGNhbGwgY21kLGNoZWNrX2ZpbGVfc2l6ZSwkKENPTkZJR19CQVJFQk9Y X01BWF9JTUFHRV9TSVpFKSkKIGVuZGlmCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvZ3Jl YXRmaXJzdC9jb205MjAwL01ha2VmaWxlIGIvYXJjaC9hcm0vYm9hcmRzL2dyZWF0Zmlyc3QvY29t OTIwMC9NYWtlZmlsZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWZiNzE2 Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vYm9hcmRzL2dyZWF0Zmlyc3QvY29tOTIwMC9N YWtlZmlsZQpAQCAtMCwwICsxLDQgQEAKKyMgRVhUUkFfQ0ZMQUdTICs9IC1EUFJPSkVDVF9OQU1F PSIkKFBST0pFQ1RfTkFNRSkiIC1EUFJPSkVDVF9WRVJTSU9OPSIkKFBST0pFQ1RfVkVSU0lPTiki CisKK29iai0kKENPTkZJR19NQUNIX1NTUjYwMFQpICs9IGJhc2ljX2luaXQubyB0aW55X2luaXQu bworb2JqLSQoQ09ORklHX01BQ0hfU1NSNjAwKSAgKz0gYmFzaWNfaW5pdC5vIGluaXQubwpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRzL2dyZWF0Zmlyc3QvY29tOTIwMC9iYXNpY19pbml0LmMg Yi9hcmNoL2FybS9ib2FyZHMvZ3JlYXRmaXJzdC9jb205MjAwL2Jhc2ljX2luaXQuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zYjIxYjVmCi0tLSAvZGV2L251bGwKKysrIGIv YXJjaC9hcm0vYm9hcmRzL2dyZWF0Zmlyc3QvY29tOTIwMC9iYXNpY19pbml0LmMKQEAgLTAsMCAr MSw1NSBAQAorI2luY2x1ZGUgPGNvbW1vbi5oPgorI2luY2x1ZGUgPG5ldC5oPgorI2luY2x1ZGUg PGluaXQuaD4KKyNpbmNsdWRlIDxlbnZpcm9ubWVudC5oPgorI2luY2x1ZGUgPGFzbS9hcm1saW51 eC5oPgorI2luY2x1ZGUgPGdlbmVyYXRlZC9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8cGFydGl0 aW9uLmg+CisjaW5jbHVkZSA8ZnMuaD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGlv Lmg+CisjaW5jbHVkZSA8c2l6ZXMuaD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNs dWRlIDxtYWNoL2F0OTFfcG1jLmg+CisjaW5jbHVkZSA8bWFjaC9ib2FyZC5oPgorI2luY2x1ZGUg PG1hY2gvZ3Bpby5oPgorI2luY2x1ZGUgPG1hY2gvaW8uaD4KKworCitzdGF0aWMgaW50IG1lbV9p bml0KHZvaWQpCit7CisJYXQ5MV9hZGRfZGV2aWNlX3NkcmFtKDY0ICogMTAyNCAqIDEwMjQpOwor CisJcmV0dXJuIDA7Cit9CittZW1faW5pdGNhbGwobWVtX2luaXQpOworCitzdGF0aWMgaW50IGNv bnNvbGVfaW5pdCh2b2lkKQoreworCWF0OTFfcmVnaXN0ZXJfdWFydCgwLCAwKTsKKwlyZXR1cm4g MDsKK30KK2NvbnNvbGVfaW5pdGNhbGwoY29uc29sZV9pbml0KTsKKworc3RhdGljIHN0cnVjdCBh dDkxX2V0aGVyX3BsYXRmb3JtX2RhdGEgZXRoZXJfcGRhdGEgPSB7CisJLmZsYWdzID0gQVQ5MVNB TV9FVEhFUl9STUlJLAorCS5waHlfYWRkciA9IDAsCit9OworCit2b2lkIGluaXRfZXRoX2Rldmlj ZSh2b2lkKQoreworCWF0OTFfYWRkX2RldmljZV9ldGgoMCwgJmV0aGVyX3BkYXRhKTsKK30KKwor Lyog5q2k5pWw57uE5ZCN6Iez5bCR6KaB6KKr5byV55So5LiA5qyh77yMbm0g5omN6IO95Zyo5paH 5Lu2IGJhcmVib3gg5om+5Yiw5a6DICovCitjb25zdCBjaGFyIF9fbWQ1c3VtX19bMzNdID0gezB9 OworCit2b2lkIGluaXRfaXAodm9pZCkKK3sKKwlzZXRlbnYoImV0aDAuaXBhZGRyIiwgIjE5Mi4x NjguMC4xMyIpOworCXNldGVudigiZXRoMC5zZXJ2ZXJpcCIsICIxOTIuMTY4LjAuMTIiKTsKKwor CS8qIOS/neivgeW8leeUqCBfX21kNXN1bV9fICovCisJcHJpbnRmKCJtZDVzdW09JXNcbiIsIF9f bWQ1c3VtX18pOworfQorCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvZ3JlYXRmaXJzdC9j b205MjAwL2Jhc2ljX2luaXQuaCBiL2FyY2gvYXJtL2JvYXJkcy9ncmVhdGZpcnN0L2NvbTkyMDAv YmFzaWNfaW5pdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA4N2YzNzYK LS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMvZ3JlYXRmaXJzdC9jb205MjAwL2Jh c2ljX2luaXQuaApAQCAtMCwwICsxLDE3IEBACisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tIEhFQURFUiBHVUFSRCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tICovCisjaWZuZGVmIF9fQkFTSUNfSU5JVF9fSF9fCisjZGVmaW5lIF9fQkFT SUNfSU5JVF9fSF9fCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEhFQURFUiBHVUFSRCAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisKK3ZvaWQgaW5pdF9l dGhfZGV2aWNlKHZvaWQpOwordm9pZCBpbml0X2lwKHZvaWQpOworCisvKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEhFQURFUiBHVUFSRCAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRp ZgorI2VuZGlmCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIEhF QURFUiBHVUFSRCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCmRp ZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvZ3JlYXRmaXJzdC9jb205MjAwL2NvbmZpZy5oIGIv YXJjaC9hcm0vYm9hcmRzL2dyZWF0Zmlyc3QvY29tOTIwMC9jb25maWcuaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi5iYjY2NjU0Ci0tLSAvZGV2L251bGwKKysrIGIvYXJjaC9h cm0vYm9hcmRzL2dyZWF0Zmlyc3QvY29tOTIwMC9jb25maWcuaApAQCAtMCwwICsxLDcxIEBACisj aWZuZGVmIF9fQ09ORklHX0gKKyNkZWZpbmUgX19DT05GSUdfSAorCisjZGVmaW5lIEFUOTFfTUFJ Tl9DTE9DSwkJMTg0MzIwMDAJLyogMTguNDMyIE1IeiBjcnlzdGFsICovCisKKyNkZWZpbmUgTUFT VEVSX1BMTF9NVUwJCTM5CisjZGVmaW5lIE1BU1RFUl9QTExfRElWCQk0CisKKy8qIGNsb2NrcyAq LworI2RlZmluZSBDT05GSUdfU1lTX01PUl9WQUwJCQkJCQlcCisJCShBVDkxX1BNQ19NT1NDRU4g fAkJCQkJXAorCQkgKDI1NSA8PCA4KSkJCS8qIE1haW4gT3NjaWxsYXRvciBTdGFydC11cCBUaW1l ICovCisjZGVmaW5lIENPTkZJR19TWVNfUExMQVJfVkFMCQkJCQkJXAorCQkoQVQ5MV9QTUNfUExM QV9XUl9FUlJBVEEgfCAvKiBCaXQgMjkgbXVzdCBiZSAxIHdoZW4gcHJvZyAqLyBcCisJCSAoMHgz ZSA8PCA4KSB8CQkvKiBQTEwgQ291bnRlciAqLwkJXAorCQkgKDAgPDwgMTQpIHwJCS8qIERpdmlk ZXIgQSAqLwkJCVwKKwkJICgoTUFTVEVSX1BMTF9NVUwgLSAxKSA8PCAxNikgfCAoTUFTVEVSX1BM TF9ESVYpKQorCisjZGVmaW5lIENPTkZJR19TWVNfUExMQlJfVkFMCTB4MTA0ODNFMEUgLyogNDgu MDU0ODU3IE1IeiAoZGl2aWRlciBieSAyIGZvciBVU0IpICovCisvKiBQQ0svMiA9IE1DSyBNYXN0 ZXIgQ2xvY2sgZnJvbSBTTE9XICovCisjZGVmaW5lCUNPTkZJR19TWVNfTUNLUjJfVkFMMQkJXAor CQkoQVQ5MV9QTUNfQ1NTX1NMT1cgfAlcCisJCSBBVDkxUk05MjAwX1BNQ19NRElWXzIpIFwKKwor LyogUENLLzMgPSBNQ0sgTWFzdGVyIENsb2NrID0gNTkuOTA0MDAwTUh6IGZyb20gUExMQSAqLwor I2RlZmluZQlDT05GSUdfU1lTX01DS1IyX1ZBTDIJCVwKKwkJKEFUOTFfUE1DX0NTU19QTExBIHwJ XAorCQkgQVQ5MV9QTUNfUFJFU18xIHwJXAorCQkgQVQ5MVJNOTIwMF9QTUNfTURJVl8zIHxcCisJ CSBBVDkxX1BNQ19QRElWXzEpCisKKy8qIGZsYXNoICovCisjZGVmaW5lIENPTkZJR19TWVNfRUJJ X0NGR1JfVkFMCTB4MDAwMDAwMDAKKyNkZWZpbmUgQ09ORklHX1NZU19TTUNfQ1NSMF9WQUwJCQkJ CQkJXAorCQkoQVQ5MV9TTUNfTldTXyg0KSB8CS8qIE51bWJlciBvZiBXYWl0IFN0YXRlcyAqLwkJ XAorCQkgQVQ5MV9TTUNfV1NFTiB8CS8qIFdhaXQgU3RhdGUgRW5hYmxlICovCQkJXAorCQkgQVQ5 MV9TTUNfVERGXygyKSB8CS8qIERhdGEgRmxvYXQgVGltZSAqLwkJCVwKKwkJIEFUOTFfU01DX0JB VCB8CQkvKiBCeXRlIEFjY2VzcyBUeXBlICovCQkJXAorCQkgQVQ5MV9TTUNfREJXXzE2KQkvKiBE YXRhIEJ1cyBXaWR0aCAqLworCisvKiBzZHJhbSAqLworI2RlZmluZSBDT05GSUdfU1lTX1BJT0Nf QVNSX1ZBTAkweEZGRkYwMDAwIC8qIENvbmZpZ3VyZSBQSU9DIGFzIHBlcmlwaGVyYWwgKEQxNi9E MzEpICovCisjZGVmaW5lIENPTkZJR19TWVNfUElPQ19CU1JfVkFMCTB4MDAwMDAwMDAKKyNkZWZp bmUgQ09ORklHX1NZU19QSU9DX1BEUl9WQUwJMHhGRkZGMDAwMAorI2RlZmluZSBDT05GSUdfU1lT X0VCSV9DU0FfVkFMCQkJCQkJCVwKKwkJKEFUOTFfRUJJX0NTMEFfU01DIHwJCQkJCQlcCisJCSBB VDkxX0VCSV9DUzFBX1NEUkFNQyB8CQkJCQkJXAorCQkgQVQ5MV9FQklfQ1MzQV9TTUMgfAkJCQkJ CVwKKwkJIEFUOTFfRUJJX0NTNEFfU01DKQkJCQkJCVwKKworLyogU0RSQU0gKi8KKy8qIFNEUkFN Q19NUiBNb2RlIHJlZ2lzdGVyICovCisvKiBTRFJBTUNfQ1IgLSBDb25maWd1cmF0aW9uIHJlZ2lz dGVyKi8KKyNkZWZpbmUgQ09ORklHX1NZU19TRFJDX0NSX1ZBTAkJCQkJCQlcCisJCShBVDkxX1NE UkFNQ19OQ185IHwJCQkJCQlcCisJCSBBVDkxX1NEUkFNQ19OUl8xMyB8CQkJCQkJXAorCQkgQVQ5 MV9TRFJBTUNfTkJfNCB8CQkJCQkJXAorCQkgQVQ5MV9TRFJBTUNfQ0FTXzIgfAkJCQkJCVwKKwkJ ICgxIDw8ICA4KSB8CQkvKiBXcml0ZSBSZWNvdmVyeSBEZWxheSAqLwkJXAorCQkgKDEyIDw8IDEy KSB8CQkvKiBSb3cgQ3ljbGUgRGVsYXkgKi8JCQlcCisJCSAoOCA8PCAxNikgfAkJLyogUm93IFBy ZWNoYXJnZSBEZWxheSAqLwkJXAorCQkgKDggPDwgMjApIHwJCS8qIFJvdyB0byBDb2x1bW4gRGVs YXkgKi8JCVwKKwkJICgxIDw8IDI0KSB8CQkvKiBBY3RpdmUgdG8gUHJlY2hhcmdlIERlbGF5ICov CQlcCisJCSAoMiA8PCAyOCkpCQkvKiBFeGl0IFNlbGYgUmVmcmVzaCB0byBBY3RpdmUgRGVsYXkg Ki8KKworI2RlZmluZSBDT05GSUdfU1lTX1NEUkNfVFJfVkFMCTB4MDAwMDAyRTAgLyogV3JpdGUg cmVmcmVzaCByYXRlICovCisKKyNkZWZpbmUgQk9BUkRfTk9SX0ZMQVNIX1NJWkUgU1pfOE0KKyNk ZWZpbmUgVEVNUF9NRU1fQkFTRSAweDIwMTAwMDAwCisjZGVmaW5lIFRFTVBfTUVNX1NJWkUgU1pf MTZNCisjZW5kaWYJLyogX19DT05GSUdfSCAqLwpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vYm9hcmRz L2dyZWF0Zmlyc3QvY29tOTIwMC9lbnYvYmluL2RscnVuIGIvYXJjaC9hcm0vYm9hcmRzL2dyZWF0 Zmlyc3QvY29tOTIwMC9lbnYvYmluL2RscnVuCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmZmNmRhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMvZ3JlYXRm aXJzdC9jb205MjAwL2Vudi9iaW4vZGxydW4KQEAgLTAsMCArMSwxNCBAQAorIyEvYmluL3NoCisK K2lmIFsgJCMgLWdlIDEgXTsgdGhlbgorCW5hbWU9IiQxIgorZWxzZQorCW5hbWU9emJhcmVib3gu YmluCitmaQorCitjZCAvCitpZiBbIC1lICIvZGV2L3RlbXBtZW0iIF07IHRoZW4KKwl0ZnRwICR7 Z2xvYmFsLnByai5uYW1lfS0ke2dsb2JhbC5wcmoudmVyfS8kbmFtZSAvZGV2L3RlbXBtZW0gJiYg Z28gL2Rldi90ZW1wbWVtCitlbHNlCisJdGZ0cCAke2dsb2JhbC5wcmoubmFtZX0tJHtnbG9iYWwu cHJqLnZlcn0vJG5hbWUgJiYgLi8kbmFtZQorZmkKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2JvYXJk cy9ncmVhdGZpcnN0L2NvbTkyMDAvZW52L2Jpbi9pbml0IGIvYXJjaC9hcm0vYm9hcmRzL2dyZWF0 Zmlyc3QvY29tOTIwMC9lbnYvYmluL2luaXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uNTA4NjM1NwotLS0gL2Rldi9udWxsCisrKyBiL2FyY2gvYXJtL2JvYXJkcy9ncmVhdGZp cnN0L2NvbTkyMDAvZW52L2Jpbi9pbml0CkBAIC0wLDAgKzEsMTUgQEAKKyMhL2Jpbi9zaAorCitl eHBvcnQgUEFUSD0vZW52L2JpbgorCisjIGF1dG9tb3VudCB0ZnRwIHNlcnZlciBiYXNlZCBvbiAk ZXRoMC5zZXJ2ZXJpcAorbWtkaXIgLXAgL21udC90ZnRwCithdXRvbW91bnQgL21udC90ZnRwICdt b3VudCAtdCB0ZnRwICRldGgwLnNlcnZlcmlwIC9tbnQvdGZ0cCcKKworbm9yX3BhcnRzPSIyNTZr KGJhcmVib3gpLDEyOGsoYmFyZWJveGVudiksM00oa2VybmVsKSwtKHJvb3QpIgoraWYgWyAtZSAv ZGV2L25vcjAgLWEgLW4gIiRub3JfcGFydHMiIF07IHRoZW4KKwlhZGRwYXJ0IC9kZXYvbm9yMCAk bm9yX3BhcnRzCitmaQorCisjIHNldCBhIGZhbmN5IHByb21wdCAoaWYgc3VwcG9ydCBpcyBjb21w aWxlZCBpbikKK1BTMT0iXGVbMTszMW1bYmFyZWJveEBcaF06XHdcZVswbVxuIyAiCmRpZmYgLS1n aXQgYS9hcmNoL2FybS9ib2FyZHMvZ3JlYXRmaXJzdC9jb205MjAwL2Vudi9iaW4vdXBkYXRlIGIv YXJjaC9hcm0vYm9hcmRzL2dyZWF0Zmlyc3QvY29tOTIwMC9lbnYvYmluL3VwZGF0ZQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yOWJiOTkwCi0tLSAvZGV2L251bGwKKysrIGIv YXJjaC9hcm0vYm9hcmRzL2dyZWF0Zmlyc3QvY29tOTIwMC9lbnYvYmluL3VwZGF0ZQpAQCAtMCww ICsxLDEzIEBACisjIS9iaW4vc2gKKworY2QgLwordGFyZ2V0PSIvZGV2L25vcjAuYmFyZWJveCIK K2lmIFsgISAtZSAkdGFyZ2V0IF07IHRoZW4KKwllY2hvIGVycm9yIHVwZGF0ZSAkdGFyZ2V0IG5v dCBleGlzdCEKKwlleGl0IDEKK2Vsc2UKKwllcmFzZSAkdGFyZ2V0ICYmIHRmdHAgJHtnbG9iYWwu cHJqLm5hbWV9LSR7Z2xvYmFsLnByai52ZXJ9L3piYXJlYm94LmJpbiAkdGFyZ2V0ICYmIGVjaG8g VXBkYXRlIE9LCisJZXhpdCAwCitmaQorZWNobyBVcGRhdGUgRmFpbAorZXhpdCAxCmRpZmYgLS1n aXQgYS9hcmNoL2FybS9ib2FyZHMvZ3JlYXRmaXJzdC9jb205MjAwL2luaXQuYyBiL2FyY2gvYXJt L2JvYXJkcy9ncmVhdGZpcnN0L2NvbTkyMDAvaW5pdC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjczMTA3YmYKLS0tIC9kZXYvbnVsbAorKysgYi9hcmNoL2FybS9ib2FyZHMv Z3JlYXRmaXJzdC9jb205MjAwL2luaXQuYwpAQCAtMCwwICsxLDE2NCBAQAorI2luY2x1ZGUgPGNv bW1vbi5oPgorI2luY2x1ZGUgPG5ldC5oPgorI2luY2x1ZGUgPGluaXQuaD4KKyNpbmNsdWRlIDxl bnZpcm9ubWVudC5oPgorI2luY2x1ZGUgPGFzbS9hcm1saW51eC5oPgorI2luY2x1ZGUgPGdlbmVy YXRlZC9tYWNoLXR5cGVzLmg+CisjaW5jbHVkZSA8cGFydGl0aW9uLmg+CisjaW5jbHVkZSA8ZnMu aD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGlvLmg+CisjaW5jbHVkZSA8c2l6ZXMu aD4KKyNpbmNsdWRlIDxhc20vaGFyZHdhcmUuaD4KKyNpbmNsdWRlIDxtYWNoL2F0OTFfcG1jLmg+ CisjaW5jbHVkZSA8bWFjaC9ib2FyZC5oPgorI2luY2x1ZGUgPG1hY2gvZ3Bpby5oPgorI2luY2x1 ZGUgPG1hY2gvaW8uaD4KKworI2luY2x1ZGUgPGdsb2JhbHZhci5oPgorI2luY2x1ZGUgPGxpbnV4 L3N0cmluZ2lmeS5oPgorI2luY2x1ZGUgPG1hY2gvYXQ5MXJtOTIwMF9tYy5oPgorCisjaW5jbHVk ZSAiYmFzaWNfaW5pdC5oIgorCitzdGF0aWMgdm9pZCBub3JfaHdfaW5pdCh2b2lkKQoreworCS8q IOWmguaenCBiYXJlYm94IOWcqCBmbGFzaCDkuK3lkK/liqjvvIzov5nph4znmoTku6PnoIHph43l pI3kuoYKKwkgKiBhcmNoL2FybS9tYWNoLWF0OTEvYXQ5MXJtOTIwMF9sb3dsZXZlbF9pbml0LmM6 cmVzZXQoKSDkuK3nmoTlt6XkvZzvvIzkvYbmmK/lpoLmnpzkvb/nlKgKKwkgKiBib290LmJpbi0+ Ym9vdC16YmFyZWJveC5iaW4g5byV5a+86K+d77yM5Zug5Li66L+Z5Lik5Liq56iL5bqP5Lit5rKh 5pyJ5Yid5aeL5YyWIGZsYXNoKG5jczApIOeahOS7o+egge+8jOaJgOS7pei/mQorCSAqIOmHjOea hOS7o+eggeWwseaYr+W/hemcgOeahOS6hgorCSAqLworCS8qIEVCSSBDaGlwIFNlbGVjdCBBc3Np Z25tZW50IFJlZ2lzdGVyCisJICog5bCGIGNzMCDnva7kuLrpnZnmgIHlrZjlgqjlmajmjqfliLbl magKKwkgKi8KKwlhdDkxX3N5c193cml0ZShBVDkxX0VCSV9DU0EsIChhdDkxX3N5c19yZWFkKEFU OTFfRUJJX0NTQSkgJiB+QVQ5MV9FQklfQ1MwQSkgfCBBVDkxX0VCSV9DUzBBX1NNQyk7CisKKwkv KiBFQkkgQ29uZmlndXJhdGlvbiBSZWdpc3RlcgorCSAqIOiuvue9riBEMTUuLjAg5LiK5ouJ55S1 6Zi7CisJICovCisJYXQ5MV9zeXNfd3JpdGUoQVQ5MV9FQklfQ0ZHUiwgQ09ORklHX1NZU19FQklf Q0ZHUl9WQUwpOworCisJLyogU01DMl9DU1JbMF06IDE2Yml0LCAyIFRERiwgNCBXUyAqLworCWF0 OTFfc3lzX3dyaXRlKEFUOTFfU01DX0NTUigwKSwgQ09ORklHX1NZU19TTUNfQ1NSMF9WQUwpOwor fQorCitzdGF0aWMgdm9pZCBhZGRfbm9yX2RldmljZSh2b2lkKQoreworCW5vcl9od19pbml0KCk7 CisKKwlhZGRfY2ZpX2ZsYXNoX2RldmljZSgwLCBBVDkxX0NISVBTRUxFQ1RfMCwgQk9BUkRfTk9S X0ZMQVNIX1NJWkUsIDApOworCisvKiAJaWYgKElTX0VOQUJMRUQoQ09ORklHX0RSSVZFUl9DRkkp ICYmIGNkZXZfYnlfbmFtZSgibm9yMCIpKSB7CisgKiAJCWRldmZzX2FkZF9wYXJ0aXRpb24oIm5v cjAiLCAweDAwMDAwLCAweDQwMDAwLCBERVZGU19QQVJUSVRJT05fRklYRUQsICJzZWxmIik7Cisg KiAJCWRldmZzX2FkZF9wYXJ0aXRpb24oIm5vcjAiLCAweDQwMDAwLCAweDIwMDAwLCBERVZGU19Q QVJUSVRJT05fRklYRUQsICJlbnYwIik7CisgKiAJfQorICovCit9CisKKyNpZmRlZiBDT05GSUdf TEVEX0dQSU8KK3N0cnVjdCBncGlvX2xlZCBla19sZWRzW10gPSB7CisJeworCQkuZ3BpbwkJPSBB VDkxX1BJTl9QQzE0LAorCQkuYWN0aXZlX2xvdwk9IDEsCisJCS5sZWQgPSB7CisJCQkubmFtZSA9 ICJEUzItZ3JlZW4iLAorCQl9LAorCX0sIHsKKwkJLmdwaW8JCT0gQVQ5MV9QSU5fUEMxNSwKKwkJ LmFjdGl2ZV9sb3cJPSAxLAorCQkubGVkID0geworCQkJLm5hbWUgPSAiRFMzLXllbGxvdyIsCisJ CX0sCisJfSwgeworCQkuZ3BpbwkJPSBBVDkxX1BJTl9QQzEzLAorCQkuYWN0aXZlX2xvdwk9IDEs CisJCS5sZWQgPSB7CisJCQkubmFtZSA9ICJEUzQtcmVkIiwKKwkJfSwKKwl9LCB7CisJCS5ncGlv CQk9IEFUOTFfUElOX1BDMTIsCisJCS5hY3RpdmVfbG93CT0gMSwKKwkJLmxlZCA9IHsKKwkJCS5u YW1lID0gIkRTNS15ZWxsb3ciLAorCQl9LAorCX0sCit9OworCitzdGF0aWMgdm9pZCBhZGRfbGVk X2RldmljZSh2b2lkKQoreworCWludCBpOworCisJZm9yIChpID0gMDsgaSA8IEFSUkFZX1NJWkUo ZWtfbGVkcyk7IGkrKykgeworCQlhdDkxX3NldF9ncGlvX291dHB1dChla19sZWRzW2ldLmdwaW8s IGVrX2xlZHNbaV0uYWN0aXZlX2xvdyk7CisJCWxlZF9ncGlvX3JlZ2lzdGVyKCZla19sZWRzW2ld KTsKKwl9CisJbGVkX3NldF90cmlnZ2VyKExFRF9UUklHR0VSX0hFQVJUQkVBVCwgJmVrX2xlZHNb MF0ubGVkKTsKK30KKyNlbHNlCitzdGF0aWMgdm9pZCBhZGRfbGVkX2RldmljZSh2b2lkKSB7fQor I2VuZGlmCisKK3N0YXRpYyBzdHJ1Y3QgYXRtZWxfbmFuZF9kYXRhIG5hbmRfcGRhdGEgPSB7CisJ LmFsZQkJPSA3LAorCS5jbGUJCT0gNiwKKy8qCS5kZXRfcGluCT0gLi4uIG5vdCBjb25uZWN0ZWQg Ki8KKwkucmR5X3Bpbgk9IEFUOTFfUElOX1BDMiwKKwkuZW5hYmxlX3Bpbgk9IEFUOTFfUElOX1BD MCwKKyNpZiBkZWZpbmVkKENPTkZJR19NVERfTkFORF9BVE1FTF9CVVNXSURUSF8xNikKKwkuYnVz X3dpZHRoXzE2CT0gMSwKKyNlbHNlCisJLmJ1c193aWR0aF8xNgk9IDAsCisjZW5kaWYKKwkvKiBv biBmbGFzaCBiYWQgYmxvY2sgdGFibGUgKi8KKy8qIAkub25fZmxhc2hfYmJ0CT0gMSwKKyAqLwor fTsKKworc3RhdGljIHZvaWQgYWRkX25hbmRfZGV2aWNlKHZvaWQpCit7CisJYXQ5MV9hZGRfZGV2 aWNlX25hbmQoJm5hbmRfcGRhdGEpOworfQorCisKK3N0YXRpYyBpbnQgZGV2aWNlc19pbml0KHZv aWQpCit7CisJaW5pdF9ldGhfZGV2aWNlKCk7CisKKwlhZGRfbGVkX2RldmljZSgpOworCWFkZF9u b3JfZGV2aWNlKCk7CisJYWRkX25hbmRfZGV2aWNlKCk7CisKKwlhcm1saW51eF9zZXRfYm9vdHBh cmFtcygodm9pZCAqKShBVDkxX0NISVBTRUxFQ1RfMSArIDB4MTAwKSk7CisJYXJtbGludXhfc2V0 X2FyY2hpdGVjdHVyZShNQUNIX1RZUEVfU1NSNjAwKTsKKworCXJldHVybiAwOworfQorZGV2aWNl X2luaXRjYWxsKGRldmljZXNfaW5pdCk7CisKK3N0YXRpYyBpbnQgbXlfaW5pdF9lbnYodm9pZCkK K3sKKwlnbG9iYWx2YXJfYWRkX3NpbXBsZSgicHJqLm5hbWUiKTsKKwlnbG9iYWx2YXJfYWRkX3Np bXBsZSgicHJqLnZlciIpOworCWdsb2JhbHZhcl9hZGRfc2ltcGxlKCJ0bXBtZW0uYmFzZSIpOwor CWdsb2JhbHZhcl9hZGRfc2ltcGxlKCJ0bXBtZW0uc2l6ZSIpOworCXNldGVudigiZ2xvYmFsLnBy ai5uYW1lIiwgX19zdHJpbmdpZnkoUFJPSkVDVF9OQU1FKSk7CisJc2V0ZW52KCJnbG9iYWwucHJq LnZlciIsIF9fc3RyaW5naWZ5KFBST0pFQ1RfVkVSU0lPTikpOworCXNldGVudigiZ2xvYmFsLnRt cG1lbS5iYXNlIiwgX19zdHJpbmdpZnkoVEVNUF9NRU1fQkFTRSkpOworCXNldGVudigiZ2xvYmFs LnRtcG1lbS5zaXplIiwgX19zdHJpbmdpZnkoVEVNUF9NRU1fU0laRSkpOworCisJLyog5Lmf5Y+v 5Lul5Zyo6ISa5pys5Lit55SoIGBgYWRkcGFydCAtbiAvZGV2L21lbSAxNk1AMHgyMDEwMDAwMCh0 ZW1wbWVtKScnIOa3u+WKoOatpOiuvuWkhyAqLworCWFkZF9tZW1fZGV2aWNlKCJ0ZW1wbWVtIiwg VEVNUF9NRU1fQkFTRSwgVEVNUF9NRU1fU0laRSwgSU9SRVNPVVJDRV9NRU1fV1JJVEVBQkxFKTsK KworCXJldHVybiAwOworfQorbGF0ZV9pbml0Y2FsbChteV9pbml0X2Vudik7CisKKy8qIOazqOaE j++8miBiYXJlYm94IOaMieeFp+WjsOaYjueahOmAhuW6j+adpeiwg+eUqOWQjOS4gOauteS4reea hOWHveaVsCwg5omA5Lul5bCG5YW25pS+5Zyo5pyA5ZCO6Z2iICovCitzdGF0aWMgaW50IGxhdGVf aW5pdCh2b2lkKQoreworCWluaXRfaXAoKTsKKworCXJldHVybiAwOworfQorbGF0ZV9pbml0Y2Fs bChsYXRlX2luaXQpOworCmRpZmYgLS1naXQgYS9hcmNoL2FybS9ib2FyZHMvZ3JlYXRmaXJzdC9j b205MjAwL3RpbnlfaW5pdC5jIGIvYXJjaC9hcm0vYm9hcmRzL2dyZWF0Zmlyc3QvY29tOTIwMC90 aW55X2luaXQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45Y2RjNWQ3Ci0t LSAvZGV2L251bGwKKysrIGIvYXJjaC9hcm0vYm9hcmRzL2dyZWF0Zmlyc3QvY29tOTIwMC90aW55 X2luaXQuYwpAQCAtMCwwICsxLDUwIEBACisjaW5jbHVkZSA8Y29tbW9uLmg+CisjaW5jbHVkZSA8 bmV0Lmg+CisjaW5jbHVkZSA8aW5pdC5oPgorI2luY2x1ZGUgPGVudmlyb25tZW50Lmg+CisjaW5j bHVkZSA8YXNtL2FybWxpbnV4Lmg+CisjaW5jbHVkZSA8Z2VuZXJhdGVkL21hY2gtdHlwZXMuaD4K KyNpbmNsdWRlIDxwYXJ0aXRpb24uaD4KKyNpbmNsdWRlIDxmcy5oPgorI2luY2x1ZGUgPGZjbnRs Lmg+CisjaW5jbHVkZSA8aW8uaD4KKyNpbmNsdWRlIDxzaXplcy5oPgorI2luY2x1ZGUgPGFzbS9o YXJkd2FyZS5oPgorI2luY2x1ZGUgPG1hY2gvYXQ5MV9wbWMuaD4KKyNpbmNsdWRlIDxtYWNoL2Jv YXJkLmg+CisjaW5jbHVkZSA8bWFjaC9ncGlvLmg+CisjaW5jbHVkZSA8bWFjaC9pby5oPgorCisj aW5jbHVkZSA8bGludXgvc3RyaW5naWZ5Lmg+CisjaW5jbHVkZSAiYmFzaWNfaW5pdC5oIgorCitz dGF0aWMgaW50IGRldmljZXNfaW5pdCh2b2lkKQoreworCWluaXRfZXRoX2RldmljZSgpOworCisJ cmV0dXJuIDA7Cit9CitkZXZpY2VfaW5pdGNhbGwoZGV2aWNlc19pbml0KTsKKworI2RlZmluZSBG SUxFTkFNRSAiemJhcmVib3guYmluIgorI2RlZmluZSBSVU5BRERSICIweDIxMDAwMDAwIgorI2Rl ZmluZSBETCAidGZ0cCAiX19zdHJpbmdpZnkoUFJPSkVDVF9OQU1FKSItIl9fc3RyaW5naWZ5KFBS T0pFQ1RfVkVSU0lPTikiLyJGSUxFTkFNRQorI2RlZmluZSBDUCAibWVtY3B5IC1zIkZJTEVOQU1F IiAwICJSVU5BRERSCisjZGVmaW5lIFJVTiAiZ28gIlJVTkFERFIKKy8qIOazqOaEj++8miBiYXJl Ym94IOaMieeFp+WjsOaYjueahOmAhuW6j+adpeiwg+eUqOWQjOS4gOauteS4reeahOWHveaVsCAq Lworc3RhdGljIGludCBsYXRlX2luaXQodm9pZCkKK3sKKwlpbnQgcmV0OworCisJaW5pdF9pcCgp OworCisJcmV0ID0gcnVuX2NvbW1hbmQoREwsIDApOworCWlmKCFyZXQpCisJCXJldCA9IHJ1bl9j b21tYW5kKENQLCAwKTsKKwlpZighcmV0KQorCQlyZXQgPSBydW5fY29tbWFuZChSVU4sIDApOwor CisJcmV0dXJuIDA7Cit9CitsYXRlX2luaXRjYWxsKGxhdGVfaW5pdCk7CisKZGlmZiAtLWdpdCBh L2FyY2gvYXJtL3BibC9NYWtlZmlsZSBiL2FyY2gvYXJtL3BibC9NYWtlZmlsZQppbmRleCAyOTk5 NDczLi5mZjVlNjgyIDEwMDY0NAotLS0gYS9hcmNoL2FybS9wYmwvTWFrZWZpbGUKKysrIGIvYXJj aC9hcm0vcGJsL01ha2VmaWxlCkBAIC0xMiw2ICsxMiw5IEBAIHRhcmdldHMgOj0gemJhcmVib3gu bGRzIHpiYXJlYm94IHpiYXJlYm94LmJpbiB6YmFyZWJveC5TIFwKIGV4dHJhLXkgICAgICAgKz0g cGlnZ3kuZ3ppcCBwaWdneS5sem8gcGlnZ3kubHptYSBwaWdneS54emtlcm4gemJhcmVib3gubWFw CgogaWZlcSAoJChDT05GSUdfR1JFQVRGSVJTVCkseSkKK3F1aWV0X2NtZF9hZGRtZDVzdW0gPSBB RERNRDVTVU0gJEAKKyAgICAgIGNtZF9hZGRtZDVzdW0gPSAoIGNwICRAICRALmJhazsgY2F0ICQo b2JqdHJlZSkvYmFyZWJveC5iaW4ubWQ1ID4+ICRAICkKKwogQ1BGSUxFTkFNRSA9ICQoVEZUUF9S T09UX0RJUikvJChQUk9KRUNUX05BTUUpLSQoUFJPSkVDVF9WRVJTSU9OKS8kKGlmICQoQ09ORklH X1RJTlkpLGJvb3QtKSQobm90ZGlyICRAKQogREVGQ0ZHTkFNRSA9ICQoUFJPSkVDVF9OQU1FKSQo aWYgJChDT05GSUdfVElOWSksdCkkKGlmICQoQ09ORklHX0JPQVJEX0NQVSksLSQoQ09ORklHX0JP QVJEX0NQVSkpX2RlZmNvbmZpZwogR0ZQT1NUUFJPQyA9IFwKQEAgLTIxLDExICsyNCwxMyBAQCBH RlBPU1RQUk9DID0gXAogCSAgIGVjaG8gIiAgRklMRS1TSVpFOiAkJGFjdHVhbCBieXRlcyIgMT4m MgogZWxzZQogR0ZQT1NUUFJPQyAgPSA6CitjbWRfYWRkbWQ1c3VtID0KIGVuZGlmCgogJChvYmop L3piYXJlYm94LmJpbjoJJChvYmopL3piYXJlYm94IEZPUkNFCiAJJChjYWxsIGlmX2NoYW5nZWQs b2JqY29weSkKIAkkKGNhbGwgY21kLGNoZWNrX2ZpbGVfc2l6ZSwkKENPTkZJR19CQVJFQk9YX01B WF9JTUFHRV9TSVpFKSkKKwkkKGNhbGwgY21kLGFkZG1kNXN1bSkKIAlAJChHRlBPU1RQUk9DKQog CSQoUSkkKGtlY2hvKSAnICBCYXJlYm94OiAkQCBpcyByZWFkeScKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCgotLSAKQmVzdCBSZWdhcmRzLAp6enMKCgoKX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KYmFyZWJveCBtYWlsaW5nIGxpc3QK YmFyZWJveEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vYmFyZWJveAo=