From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp45.i.mail.ru ([94.100.177.105]) by bombadil.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1WcyrC-0000Uj-9n for linux-mtd@lists.infradead.org; Wed, 23 Apr 2014 15:13:08 +0000 Message-ID: <5357D869.4030103@list.ru> Date: Wed, 23 Apr 2014 19:12:41 +0400 From: Stas Sergeev MIME-Version: 1.0 To: linux-mtd@lists.infradead.org Subject: [PATCH 1/2] nandmarkblk: initial version References: <5357D808.5070101@list.ru> In-Reply-To: <5357D808.5070101@list.ru> Content-Type: multipart/mixed; boundary="------------000003090905080807050406" Cc: Stas Sergeev List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , This is a multi-part message in MIME format. --------------000003090905080807050406 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit --------------000003090905080807050406 Content-Type: application/x-patch; name="0001-nandmarkblk-initial-version.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="0001-nandmarkblk-initial-version.patch" RnJvbSBhMGI3MGI2Nzc2NzIxYTA1OTYwMTA1MmM4MTEzNjkzYmU5ZGVhZGFiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBTdGFzIFNlcmdlZXYgPHN0c3BAdXNlcnMuc291cmNl Zm9yZ2UubmV0PgpEYXRlOiBUdWUsIDIyIEFwciAyMDE0IDIwOjI2OjMyICswNDAwClN1Ympl Y3Q6IFtQQVRDSCAxLzJdIG5hbmRtYXJrYmxrOiBpbml0aWFsIHZlcnNpb24KClRoZSB0b29s IHRvIG1hcmsgbmFuZCBibG9ja3MgYXMgYmFkLgpJbiB0aGUgZnV0dXJlIC0gYWxzbyBhcyBn b29kLgoKU2lnbmVkLW9mZi1ieTogU3RhcyBTZXJnZWV2IDxzdHNwQHVzZXJzLnNvdXJjZWZv cmdlLm5ldD4KLS0tCiBNYWtlZmlsZSAgICAgIHwgICAyICstCiBuYW5kbWFya2Jsay5jIHwg MTUxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysKIDIgZmlsZXMgY2hhbmdlZCwgMTUyIGluc2VydGlvbnMoKyksIDEgZGVsZXRp b24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBuYW5kbWFya2Jsay5jCgpkaWZmIC0tZ2l0IGEv TWFrZWZpbGUgYi9NYWtlZmlsZQppbmRleCBkMzE2YTNkLi5hY2I5ODM3IDEwMDY0NAotLS0g YS9NYWtlZmlsZQorKysgYi9NYWtlZmlsZQpAQCAtMjAsNyArMjAsNyBAQCBNVERfQklOUyA9 IFwKIAlmdGxfZm9ybWF0IGZsYXNoX2VyYXNlIG5hbmRkdW1wIGRvY19sb2FkYmlvcyBcCiAJ ZnRsX2NoZWNrIG1rZnMuamZmczIgZmxhc2hfbG9jayBmbGFzaF91bmxvY2sgXAogCWZsYXNo X290cF9pbmZvIGZsYXNoX290cF9kdW1wIGZsYXNoX290cF9sb2NrIGZsYXNoX290cF93cml0 ZSBcCi0JbXRkX2RlYnVnIGZsYXNoY3AgbmFuZHdyaXRlIG5hbmR0ZXN0IFwKKwltdGRfZGVi dWcgZmxhc2hjcCBuYW5kd3JpdGUgbmFuZHRlc3QgbmFuZG1hcmtibGsgXAogCWpmZnMyZHVt cCBcCiAJbmZ0bGR1bXAgbmZ0bF9mb3JtYXQgZG9jZmRpc2sgXAogCXJmZGR1bXAgcmZkZm9y bWF0IFwKZGlmZiAtLWdpdCBhL25hbmRtYXJrYmxrLmMgYi9uYW5kbWFya2Jsay5jCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyNzIxOWMKLS0tIC9kZXYvbnVsbAor KysgYi9uYW5kbWFya2Jsay5jCkBAIC0wLDAgKzEsMTUxIEBACisvKgorICogIG5hbmRtYXJr YmxrLmMKKyAqCisgKiAgQXV0aG9yOiBTdGFzIFNlcmdlZXYgPHN0c3BAdXNlcnMuc291cmNl Zm9yZ2UubmV0PgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVy bXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcworICog cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKgorICovCisK KyNkZWZpbmUgUFJPR1JBTV9OQU1FICJuYW5kbWFya2JsayIKKworI2luY2x1ZGUgPGVycm5v Lmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDxzdGRsaWIuaD4KKyNpbmNsdWRl IDx1bmlzdGQuaD4KKyNpbmNsdWRlIDxzdHJpbmcuaD4KKyNpbmNsdWRlIDxnZXRvcHQuaD4K KyNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyNpbmNsdWRlICJtdGQvbXRkLXVzZXIuaCIKKyNp bmNsdWRlICJjb21tb24uaCIKKyNpbmNsdWRlIDxsaWJtdGQuaD4KKworc3RhdGljIHZvaWQg ZGlzcGxheV9oZWxwKGludCBzdGF0dXMpCit7CisJZnByaW50ZihzdGF0dXMgPT0gRVhJVF9T VUNDRVNTID8gc3Rkb3V0IDogc3RkZXJyLAorIlVzYWdlOiBuYW5kd3JpdGUgW09QVElPTl0g TVREX0RFVklDRSBbSU5QVVRGSUxFfC1dXG4iCisiV3JpdGVzIHRvIHRoZSBzcGVjaWZpZWQg TVREIGRldmljZS5cbiIKKyJcbiIKKyIgIC1iIG51bSwgLS1tYXJrYmFkPW51bSAgIE1hcmsg YmxvY2sgYmFkXG4iCisiICAtcSwgLS1xdWlldCAgICAgICAgICAgICBEb24ndCBkaXNwbGF5 IHByb2dyZXNzIG1lc3NhZ2VzXG4iCisiICAtaCwgLS1oZWxwICAgICAgICAgICAgICBEaXNw bGF5IHRoaXMgaGVscCBhbmQgZXhpdFxuIgorIiAgICAgIC0tdmVyc2lvbiAgICAgICAgICAg T3V0cHV0IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4aXRcbiIKKwkpOworCWV4aXQoc3Rh dHVzKTsKK30KKworc3RhdGljIHZvaWQgZGlzcGxheV92ZXJzaW9uKHZvaWQpCit7CisJcHJp bnRmKCIlMSRzICIgVkVSU0lPTiAiXG4iCisJCQkiXG4iCisJCQkiJTEkcyBjb21lcyB3aXRo IE5PIFdBUlJBTlRZXG4iCisJCQkidG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3Llxu IgorCQkJIlxuIgorCQkJIllvdSBtYXkgcmVkaXN0cmlidXRlIGNvcGllcyBvZiAlMSRzXG4i CisJCQkidW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5j ZS5cbiIKKwkJCSJTZWUgdGhlIGZpbGUgYENPUFlJTkcnIGZvciBtb3JlIGluZm9ybWF0aW9u LlxuIiwKKwkJCVBST0dSQU1fTkFNRSk7CisJZXhpdChFWElUX1NVQ0NFU1MpOworfQorCitz dGF0aWMgY29uc3QgY2hhcgkqbXRkX2RldmljZTsKK3N0YXRpYyBib29sCQlxdWlldCA9IGZh bHNlOworc3RhdGljIGludAkJbWFya2JhZCA9IC0xOworc3RhdGljIGludAkJbWFya2dvb2Qg PSAtMTsKKworc3RhdGljIHZvaWQgcHJvY2Vzc19vcHRpb25zKGludCBhcmdjLCBjaGFyICog Y29uc3QgYXJndltdKQoreworCWludCBlcnJvciA9IDA7CisKKwlmb3IgKDs7KSB7CisJCWlu dCBvcHRpb25faW5kZXggPSAwOworCQlzdGF0aWMgY29uc3QgY2hhciBzaG9ydF9vcHRpb25z W10gPSAidmhiOmc6cSI7CisJCXN0YXRpYyBjb25zdCBzdHJ1Y3Qgb3B0aW9uIGxvbmdfb3B0 aW9uc1tdID0geworCQkJLyogT3JkZXIgb2YgdGhlc2UgYXJncyB3aXRoIHZhbD09MCBtYXR0 ZXJzOyBzZWUgb3B0aW9uX2luZGV4LiAqLworCQkJeyJ2ZXJzaW9uIiwgbm9fYXJndW1lbnQs IDAsICd2J30sCisJCQl7ImhlbHAiLCBub19hcmd1bWVudCwgMCwgJ2gnfSwKKwkJCXsibWFy a2JhZCIsIHJlcXVpcmVkX2FyZ3VtZW50LCAwLCAnYid9LAorCQkJeyJtYXJrZ29vZCIsIHJl cXVpcmVkX2FyZ3VtZW50LCAwLCAnZyd9LAorCQkJeyJxdWlldCIsIG5vX2FyZ3VtZW50LCAw LCAncSd9LAorCQkJezAsIDAsIDAsIDB9LAorCQl9OworCisJCWludCBjID0gZ2V0b3B0X2xv bmcoYXJnYywgYXJndiwgc2hvcnRfb3B0aW9ucywKKwkJCQlsb25nX29wdGlvbnMsICZvcHRp b25faW5kZXgpOworCQlpZiAoYyA9PSBFT0YpCisJCQlicmVhazsKKworCQlzd2l0Y2ggKGMp IHsKKwkJY2FzZSAndic6CisJCQlkaXNwbGF5X3ZlcnNpb24oKTsKKwkJCWJyZWFrOworCQlj YXNlICdxJzoKKwkJCXF1aWV0ID0gdHJ1ZTsKKwkJCWJyZWFrOworCQljYXNlICdnJzoKKwkJ CW1hcmtnb29kID0gc2ltcGxlX3N0cnRvbGwob3B0YXJnLCAmZXJyb3IpOworCQkJYnJlYWs7 CisJCWNhc2UgJ2InOgorCQkJbWFya2JhZCA9IHNpbXBsZV9zdHJ0b2xsKG9wdGFyZywgJmVy cm9yKTsKKwkJCWJyZWFrOworCQljYXNlICdoJzoKKwkJCWRpc3BsYXlfaGVscChFWElUX1NV Q0NFU1MpOworCQkJYnJlYWs7CisJCWNhc2UgJz8nOgorCQkJZXJyb3IrKzsKKwkJCWJyZWFr OworCQl9CisJfQorCisJYXJnYyAtPSBvcHRpbmQ7CisJYXJndiArPSBvcHRpbmQ7CisKKwlp ZiAoYXJnYyAhPSAxIHx8IGVycm9yKQorCQlkaXNwbGF5X2hlbHAoRVhJVF9GQUlMVVJFKTsK KworCW10ZF9kZXZpY2UgPSBhcmd2WzBdOworfQorCisvKgorICogTWFpbiBwcm9ncmFtCisg Ki8KK2ludCBtYWluKGludCBhcmdjLCBjaGFyICogY29uc3QgYXJndltdKQoreworCWludCBm ZCA9IC0xOworCXN0cnVjdCBtdGRfZGV2X2luZm8gbXRkOworCS8qIGNvbnRhaW5zIGFsbCB0 aGUgZGF0YSByZWFkIGZyb20gdGhlIGZpbGUgc28gZmFyIGZvciB0aGUgY3VycmVudCBlcmFz ZWJsb2NrICovCisJbGlibXRkX3QgbXRkX2Rlc2M7CisKKwlwcm9jZXNzX29wdGlvbnMoYXJn YywgYXJndik7CisKKwkvKiBPcGVuIHRoZSBkZXZpY2UgKi8KKwlpZiAoKGZkID0gb3Blbiht dGRfZGV2aWNlLCBPX1JEV1IpKSA9PSAtMSkKKwkJc3lzX2Vycm1zZ19kaWUoIiVzIiwgbXRk X2RldmljZSk7CisKKwltdGRfZGVzYyA9IGxpYm10ZF9vcGVuKCk7CisJaWYgKCFtdGRfZGVz YykKKwkJZXJybXNnX2RpZSgiY2FuJ3QgaW5pdGlhbGl6ZSBsaWJtdGQiKTsKKworCS8qIEZp bGwgaW4gTVREIGRldmljZSBjYXBhYmlsaXR5IHN0cnVjdHVyZSAqLworCWlmIChtdGRfZ2V0 X2Rldl9pbmZvKG10ZF9kZXNjLCBtdGRfZGV2aWNlLCAmbXRkKSA8IDApCisJCWVycm1zZ19k aWUoIm10ZF9nZXRfZGV2X2luZm8gZmFpbGVkIik7CisKKwlpZiAobWFya2JhZCAhPSAtMSAm JiBtdGRfbWFya19iYWQoJm10ZCwgZmQsIG1hcmtiYWQpKSB7CisJCXN5c19lcnJtc2coIiVz OiBNVEQgTWFyayBiYWQgYmxvY2sgZmFpbHVyZSIsIG10ZF9kZXZpY2UpOworCQlnb3RvIGNs b3NlYWxsOworCX0KKworCWlmIChtYXJrZ29vZCAhPSAtMSkgeworCQlzeXNfZXJybXNnKCIl czogTVREIE1hcmsgZ29vZCBpcyBub3QgaW1wbGVtZW50ZWQiLCBtdGRfZGV2aWNlKTsKKwkJ Z290byBjbG9zZWFsbDsKKwl9CisKK2Nsb3NlYWxsOgorCWxpYm10ZF9jbG9zZShtdGRfZGVz Yyk7CisJY2xvc2UoZmQpOworCisJLyogUmV0dXJuIGhhcHB5ICovCisJcmV0dXJuIEVYSVRf U1VDQ0VTUzsKK30KLS0gCjEuNy4xMS43Cgo= --------------000003090905080807050406--