Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752938Ab3IWOn7 (ORCPT ); Mon, 23 Sep 2013 10:43:59 -0400 Received: from mail-ve0-f179.google.com ([209.85.128.179]:50571 "EHLO mail-ve0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752448Ab3IWOn5 (ORCPT ); Mon, 23 Sep 2013 10:43:57 -0400 MIME-Version: 1.0 In-Reply-To: <1379920736.30708.26.camel@dagon.hellion.org.uk> References: <1379852488-32147-1-git-send-email-cinifr@gmail.com> <1379852488-32147-2-git-send-email-cinifr@gmail.com> <1379861045.30708.22.camel@dagon.hellion.org.uk> <1379920736.30708.26.camel@dagon.hellion.org.uk> Date: Mon, 23 Sep 2013 22:43:55 +0800 Message-ID: Subject: Re: [PATCH 1/3] Add smp support for Allwinner A20(sunxi 7i). From: cinifr To: Ian Campbell Cc: "linux-sunxi@googlegroups.com" , "coosty@163.com" , "maxime.ripard@free-electrons.com" , "daniel.lezcano@linaro.org" , "linux@arm.linux.org.uk" , "tglx@linutronix.de" , "linux-arm-kernel@lists.infradead.org" , "linux-kernel@vger.kernel.org" , "mark.rutland@arm.com" , "pawel.moll@arm.co" , "rob.herring@calxeda.com" Content-Type: multipart/mixed; boundary=001a11c3b944b6dbca04e70e0cea Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 17231 Lines: 251 --001a11c3b944b6dbca04e70e0cea Content-Type: text/plain; charset=ISO-8859-1 > In which case this kernel patch needs instead to speak the bootloader > wakeup protocol instead of speaking to the h/w directly like you've done > here, right? > > Or is it possible for the bootloader to set these things up and then put > the CPU back to sleep such that it both retains any settings and is > wakable by this patch? This code contains core resets and power control, > which makes me suspect not. And I think secondary cpus remains setting after h/w boot. >> > Wouldn't it be better to do all this stuff in the bootloader and >> either >> > implement PSCI or have the bootloader do the traditional holding pen >> and >> > mbox address thing? Uboot doesnot support PSCI, it use traditional holding pen for sunxi platform now. >> > >> I have modified uboot to set cntfrq and cntvoff in all smp cpus,and it >> works well. I guess kernel should believe all cpu should be all same >> when kernel boot. Bootloader should do it to ensure that. > > Yes, I think all CPUs must be in the same state at boot. > > But if you've done all that then what is this patch for? > > Do you have links to your u-boot patches? > > Ian. Yes, This is my patch for uboot. My working uboot code is in https://github.com/linux-sunxi/u-boot-sunxi.git Note this is only test patch. I have not commit it formally for uboot. Fan --001a11c3b944b6dbca04e70e0cea Content-Type: application/octet-stream; name="0001-Add-setting-CNTVOFF-and-CNTFRQ-for-all-smp-cpus.patch" Content-Disposition: attachment; filename="0001-Add-setting-CNTVOFF-and-CNTFRQ-for-all-smp-cpus.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hlxt1afs0 RnJvbSA3NzNkMjVlM2VmNzA5ZmJiN2VjNWFjMzI5OWQ3YTk3NzYxODVhODY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGYW4gUm9uZyA8Y2luaWZyQGdtYWlsLmNvbT4KRGF0ZTogTW9u LCAyMyBTZXAgMjAxMyAyMjoyOTo1NiArMDgwMApTdWJqZWN0OiBbUEFUQ0hdIEFkZCBzZXR0aW5n IENOVFZPRkYgYW5kIENOVEZSUSBmb3IgYWxsIHNtcCBjcHVzCgpTaWduZWQtb2ZmLWJ5OiBGYW4g Um9uZyA8Y2luaWZyQGdtYWlsLmNvbT4KLS0tCiBhcmNoL2FybS9jcHUvYXJtdjcvc3VueGkvTWFr ZWZpbGUgICAgICAgICB8ICAgMiArCiBhcmNoL2FybS9jcHUvYXJtdjcvc3VueGkvbW9uaXRvci5T ICAgICAgICB8ICA5NyArKysrKysrKwogYXJjaC9hcm0vY3B1L2FybXY3L3N1bnhpL3NlY29uZGFy eV9pbml0LlMgfCAgIDIgKy0KIGFyY2gvYXJtL2NwdS9hcm12Ny9zdW54aS9zbXAuYyAgICAgICAg ICAgIHwgICA5ICstCiBhcmNoL2FybS9jcHUvYXJtdjcvc3VueGkvdmlyLmMgICAgICAgICAgICB8 IDM5OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGJvYXJkL3N1bnhpL2JvYXJkLmMg ICAgICAgICAgICAgICAgICAgICAgIHwgICAzICsKIGluY2x1ZGUvY29uZmlncy9zdW43aS5oICAg ICAgICAgICAgICAgICAgIHwgICAzICsKIDcgZmlsZXMgY2hhbmdlZCwgNTEwIGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCiBtb2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IGFyY2gvYXJt L2NwdS9hcm12Ny9zdW54aS9NYWtlZmlsZQogY3JlYXRlIG1vZGUgMTAwNzU1IGFyY2gvYXJtL2Nw dS9hcm12Ny9zdW54aS9tb25pdG9yLlMKIG1vZGUgY2hhbmdlIDEwMDY0NCA9PiAxMDA3NTUgYXJj aC9hcm0vY3B1L2FybXY3L3N1bnhpL3NlY29uZGFyeV9pbml0LlMKIG1vZGUgY2hhbmdlIDEwMDY0 NCA9PiAxMDA3NTUgYXJjaC9hcm0vY3B1L2FybXY3L3N1bnhpL3NtcC5jCiBjcmVhdGUgbW9kZSAx MDA3NTUgYXJjaC9hcm0vY3B1L2FybXY3L3N1bnhpL3Zpci5jCiBtb2RlIGNoYW5nZSAxMDA2NDQg PT4gMTAwNzU1IGluY2x1ZGUvY29uZmlncy9zdW43aS5oCgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0v Y3B1L2FybXY3L3N1bnhpL01ha2VmaWxlIGIvYXJjaC9hcm0vY3B1L2FybXY3L3N1bnhpL01ha2Vm aWxlCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5kZXggMTE1MTgxZi4uMWZmNWMy MQotLS0gYS9hcmNoL2FybS9jcHUvYXJtdjcvc3VueGkvTWFrZWZpbGUKKysrIGIvYXJjaC9hcm0v Y3B1L2FybXY3L3N1bnhpL01ha2VmaWxlCkBAIC0zNiw2ICszNiw4IEBAIENPQkpTCSs9IGJvYXJk Lm8KIENPQkpTCSs9IGNsb2NrLm8KIENPQkpTCSs9IHBpbm11eC5vCiBDT0JKUwkrPSB3YXRjaGRv Zy5vCitDT0JKUwkrPSB2aXIubworQ09CSlMJKz0gbW9uaXRvci5vCiBpZmRlZiBERUJVRwogQ09C SlMJKz0gZWFybHlfcHJpbnQubwogZW5kaWYKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NwdS9hcm12 Ny9zdW54aS9tb25pdG9yLlMgYi9hcmNoL2FybS9jcHUvYXJtdjcvc3VueGkvbW9uaXRvci5TCm5l dyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhkNTJhZDkKLS0tIC9kZXYvbnVsbAor KysgYi9hcmNoL2FybS9jcHUvYXJtdjcvc3VueGkvbW9uaXRvci5TCkBAIC0wLDAgKzEsOTcgQEAK Ky8qCisgKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEZhbiBSb25nIDxjaW5pZnJAZ21haWwuY29t Pi4KKyAqCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjoJR1BMLTIuMCsKKyAqCisgKi8KKwor CisKKwkudGV4dAorCS5wdXNoc2VjdGlvbiAgICAuaHlwLmlkbWFwLnRleHQsImF4IgorCS5hbGln biA1CisJLmFyY2hfZXh0ZW5zaW9uIHZpcnQKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioK K2NpbmkKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwkuYWxpZ24gNQorX192aXJfaW5pdF9zdGFy dDoKKwkuZ2xvYmwgX192aXJfaW5pdF9zdGFydAorCitfX3Zpcl9pbml0X21vbml0b3JfdmVjdG9y OgorCS5nbG9ibCBfX3Zpcl9pbml0X21vbml0b3JfdmVjdG9yCisJCisJQCBNb25pdG9yLW1vZGUg ZXhjZXB0aW9uIHZlY3RvcgorCS53b3JkIDAJLyogcmVzZXQgKi8KKwkud29yZCAwCS8qIHVuZGVm ICovCisJYgltb25fc21jCisJLndvcmQgMCAvKiBwYWJ0ICovCisJLndvcmQgMCAvKiBkYWJ0ICov CisJYgloeXBfaHZjCisJLndvcmQgMCAvKiBpcnEgKi8KKwkud29yZCAwIC8qIGZpcSAqLworCS5h bGlnbgorbW9uX3NtYzoKKwltb3YJc3AscjEJCisJcHVzaAl7bHJ9CisJbW92CWxyLHIwCQorCWJs eAlscgorCXBvcAl7bHJ9CQorCW1vdnMJcGMsIGxyCisJCisJQHB1c2gJe2xyfQorCUBtb3YJbHIs IHIwCisKKwlAYmx4CWxyCisJQHBvcAl7bHJ9CisJbW92cwlwYywgbHIKKwkKKwkuYWxpZ24gNQor X192aXJfaW5pdF9oeXBfdmVjdG9yOgorCS5nbG9ibCBfX3Zpcl9pbml0X2h5cF92ZWN0b3IKKwkK KwlAIE1vbml0b3ItbW9kZSBleGNlcHRpb24gdmVjdG9yCisJLndvcmQgMHgxMjM0CS8qIHJlc2V0 ICovCisJLndvcmQgMHg1Njc4CS8qIHVuZGVmICovCisJLndvcmQgMCAvKiBwYWJ0ICovCisJYglo eXBfaHl0CisJLndvcmQgMCAvKiBkYWJ0ICovCisJYgloeXBfaHl0CisJLndvcmQgMCAvKiBpcnEg Ki8KKwkud29yZCAwIC8qIGZpcSAqLworCS5hbGlnbgorCisKK2h5cF9odmM6CisJZXJldAorCWIJ aHlwX2h2YworCisKK2h5cF9oeXQ6CisJbW92CXNwLHIxCisJbW92CWxyLHIwCQorCWJseAlscgor CWVyZXQKKworCQorCXB1c2gJe2xyfQorCW1vdglscixyMAkKKwlibHgJbHIKKwlwb3AJe2xyfQor CUBiCWh5cF9oeXQKKworCisKKwkubHRvcmcKKworCS5nbG9ibCBfX3Zpcl9oeXBfaW5pdF9lbmQK K19fdmlyX2h5cF9pbml0X2VuZDoKKworX192aXJfaW5pdF9lbmQ6CisJLmdsb2JsIF9fdmlyX2lu aXRfZW5kCisKKwkucG9wc2VjdGlvbgpkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vY3B1L2FybXY3L3N1 bnhpL3NlY29uZGFyeV9pbml0LlMgYi9hcmNoL2FybS9jcHUvYXJtdjcvc3VueGkvc2Vjb25kYXJ5 X2luaXQuUwpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IDAzNGFjZGUuLmFm NjYzNTUKLS0tIGEvYXJjaC9hcm0vY3B1L2FybXY3L3N1bnhpL3NlY29uZGFyeV9pbml0LlMKKysr IGIvYXJjaC9hcm0vY3B1L2FybXY3L3N1bnhpL3NlY29uZGFyeV9pbml0LlMKQEAgLTM3LDcgKzM3 LDcgQEAgRU5UUlkoc2Vjb25kYXJ5X2luaXQpCiAJICogU2V0dXAgYSBzZWNvbmRhcnkgc3RhY2ss IGVhY2ggY29yZSBnZXRzIDEyOCBieXRlcy4KIAkgKi8KIAlsZHIJc3AsID1zZWNvbmRhcnlfc3Rh Y2sKLQltb3YJcjAsICMweDgwCisJbW92CXIwLCAjMHgxMDAwCiAJYWRkCXNwLCBzcCwgcjAsIGxz bCByNQogCiAJLyoKZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2NwdS9hcm12Ny9zdW54aS9zbXAuYyBi L2FyY2gvYXJtL2NwdS9hcm12Ny9zdW54aS9zbXAuYwpvbGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUg MTAwNzU1CmluZGV4IDU5NzE3YTIuLmZkMjAwZjUKLS0tIGEvYXJjaC9hcm0vY3B1L2FybXY3L3N1 bnhpL3NtcC5jCisrKyBiL2FyY2gvYXJtL2NwdS9hcm12Ny9zdW54aS9zbXAuYwpAQCAtMzIsNyAr MzIsNiBAQAogI2Vsc2UKICNlcnJvciB1bnN1cHBvcnRlZCBTb0MKICNlbmRpZgotCiBzdGF0aWMg dm9pZCBzZWNvbmRhcnlfcGVuKHZvaWQpCiB7CiAJc3RydWN0IHN1bnhpX2NwdWNmZyAqY3B1Y2Zn ID0gKHN0cnVjdCBzdW54aV9jcHVjZmcgKilTVU5YSV9DUFVDRkdfQkFTRTsKQEAgLTUwLDEwICs0 OSwxNCBAQCBzdGF0aWMgdm9pZCBzZWNvbmRhcnlfcGVuKHZvaWQpCiAJfTsKIH0KIAotdTMyIHNl Y29uZGFyeV9zdGFja1szMiooTlVNX0NPUkVTLTEpXTsKK3UzMiBzZWNvbmRhcnlfc3RhY2tbMHg0 MDAqKE5VTV9DT1JFUy0xKV07CiAKIHZvaWQgc2Vjb25kYXJ5X3N0YXJ0KHZvaWQpCiB7CisJLyog Q05URlJRID09IDI0IE1IeiAqLworCWFzbSB2b2xhdGlsZSgibWNyIHAxNSwgMCwgJTAsIGMxNCwg YzAsIDAiIDogOiAiciIoMjQwMDAwMDApKTsKKworCXZpcl9pbml0KCk7CiAJc2Vjb25kYXJ5X3Bl bigpOwogfQogCkBAIC02Miw3ICs2NSw3IEBAIHZvaWQgc3RhcnR1cF9zZWNvbmRhcmllcyh2b2lk KQogewogCWludCBpOwogCXN0cnVjdCBzdW54aV9jcHVjZmcgKmNwdWNmZyA9IChzdHJ1Y3Qgc3Vu eGlfY3B1Y2ZnICopU1VOWElfQ1BVQ0ZHX0JBU0U7Ci0KKwlwcmludGYoInN0YXJ0dXBfc2Vjb25k YXJpZXNcbiIpOwogCXdyaXRlbCgodTMyKXNlY29uZGFyeV9pbml0LCAmY3B1Y2ZnLT5ib290X2Fk ZHIpOwogCiAJZm9yIChpID0gMTsgaSA8IE5VTV9DT1JFUzsgaSsrKSB7CmRpZmYgLS1naXQgYS9h cmNoL2FybS9jcHUvYXJtdjcvc3VueGkvdmlyLmMgYi9hcmNoL2FybS9jcHUvYXJtdjcvc3VueGkv dmlyLmMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDIzMDllMAotLS0gL2Rl di9udWxsCisrKyBiL2FyY2gvYXJtL2NwdS9hcm12Ny9zdW54aS92aXIuYwpAQCAtMCwwICsxLDM5 OCBAQAorLyoKKyAqIChDKSBDb3B5cmlnaHQgMjAxMyBGYW4gUm9uZyA8Y2luaWZyQGdtYWlsLmNv bT4KKyAqCisgKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjoJR1BMLTIuMCsKKyAqLworCisKKwor I2luY2x1ZGUgPGNvbW1vbi5oPgorCisKK3ZvbGF0aWxlIHVuc2lnbmVkIGludCBkaXN0X2FkZHI7 IAordm9sYXRpbGUgdW5zaWduZWQgaW50IGNwdV9hZGRyOyAKKworCisKKy8qIEh5cCBTeXN0ZW0g Q29udHJvbCBSZWdpc3RlciAoSFNDVExSKSBiaXRzICovCisjZGVmaW5lIEhTQ1RMUl9URQkoMSA8 PCAzMCkKKyNkZWZpbmUgSFNDVExSX0VFCSgxIDw8IDI1KQorI2RlZmluZSBIU0NUTFJfRkkJKDEg PDwgMjEpCisjZGVmaW5lIEhTQ1RMUl9XWE4JKDEgPDwgMTkpCisjZGVmaW5lIEhTQ1RMUl9JCSgx IDw8IDEyKQorI2RlZmluZSBIU0NUTFJfQwkoMSA8PCAyKQorI2RlZmluZSBIU0NUTFJfQQkoMSA8 PCAxKQorI2RlZmluZSBIU0NUTFJfTQkxCisjZGVmaW5lIEhTQ1RMUl9NQVNLCShIU0NUTFJfTSB8 IEhTQ1RMUl9BIHwgSFNDVExSX0MgfCBIU0NUTFJfSSB8IFwKKwkJCSBIU0NUTFJfV1hOIHwgSFND VExSX0ZJIHwgSFNDVExSX0VFIHwgSFNDVExSX1RFKQorCisKKworZXh0ZXJuIGNoYXIgX192aXJf aW5pdF9tb25pdG9yX3ZlY3RvcltdOworCisKK3N0YXRpYyBjaGFyIHNtY19zdGFja1syMDQ4XTsK KworaW50IGk7CisKKyNkZWZpbmUgVklSX0lORk8oZm10LCAuLi4pICAgXAorcHJpbnRmKCJbJXNd ICIgZm10LF9fRlVOQ1RJT05fXywjIyBfX1ZBX0FSR1NfXykKKworI2RlZmluZSBWSVJfSU5GTyhm bXQsIC4uLikgCisKKworI2RlZmluZSBGVU5fU1BFKHJlZ25hbWUsLi4uKQlcCit2b2lkIHdyaXRl XyMjcmVnbmFtZSh1bnNpZ25lZCBpbnQgdG1wKQlcCit7CVwKKwlhc20JXAorCSgJXAorCQkibWNy ICIjIF9fVkFfQVJHU19fCVwKKwkJOglcCisJCToiciIodG1wKQlcCisJCToibWVtb3J5IglcCisJ KTsJXAorCVZJUl9JTkZPKCIweCV4XHJcbiIsdG1wKTsJXAkKK30JXAordW5zaWduZWQgaW50IHJl YWRfIyNyZWduYW1lKHZvaWQpCVwKK3sJXAorCXVuc2lnbmVkIGludCB0bXA7CVwKKwlhc20gXAor CSgJXAorCQkibXJjICIjIF9fVkFfQVJHU19fIFwKKwkJOiI9ciIodG1wKQlcCisJCToJXAorCQk6 Im1lbW9yeSIJXAorCSk7CVwKKwlWSVJfSU5GTygiMHgleFxyXG4iLHRtcCk7CVwJCisJcmV0dXJu IHRtcDsJXAorfQorCisKKworCisKKyNkZWZpbmUgRlVOX1NQRV9fTk9fUFJJTlQocmVnbmFtZSwu Li4pCVwKK3ZvaWQgd3JpdGVfIyNyZWduYW1lKGludCB0bXApCVwKK3sJXAorCWFzbQlcCisJKAlc CisJCSJtY3IgIiMgX19WQV9BUkdTX18JXAorCQk6CVwKKwkJOiJyIih0bXApCVwKKwkJOiJtZW1v cnkiCVwKKwkpOwlcCit9CVwKK3Vuc2lnbmVkIGludCByZWFkXyMjcmVnbmFtZSh2b2lkKQlcCit7 CVwKKwl1bnNpZ25lZCBpbnQgdG1wOwlcCisJYXNtIFwKKwkoCVwKKwkJIm1yYyAiIyBfX1ZBX0FS R1NfXyBcCisJCToiPXIiKHRtcCkJXAorCQk6CVwKKwkJOiJtZW1vcnkiCVwKKwkpOwlcCisJcmV0 dXJuIHRtcDsJXAorfQorCisKK0ZVTl9TUEUoc2N0bHIscDE1LDAsJTAsYzEsYzAsMCkKK0ZVTl9T UEUodmJhcixwMTUsMCwlMCxjMTIsYzAsMCkKK0ZVTl9TUEUobXZiYXIscDE1LDAsJTAsYzEyLGMw LDEpCitGVU5fU1BFKGh2YmFyLHAxNSw0LCUwLGMxMixjMCwwKQorRlVOX1NQRShzY3IscDE1LDAs JTAsYzEsYzEsMCkKK0ZVTl9TUEUoaGNyLHAxNSw0LCUwLGMxLGMxLDApCitGVU5fU1BFKGhkY3Is cDE1LDQsJTAsYzEsYzEsMSkKKworRlVOX1NQRShoc2N0bHIscDE1LDQsJTAsYzEsYzAsMCkKK0ZV Tl9TUEUoaGNwdHIscDE1LDQsJTAsYzEsYzEsMikKK0ZVTl9TUEUoaHN0cixwMTUsNCwlMCxjMSxj MSwzKQorCitGVU5fU1BFKHZwaWRyLHAxNSw0LCUwLGMwLGMwLDApCitGVU5fU1BFKHZtcGlkcixw MTUsNCwlMCxjMCxjMCw1KQorCitGVU5fU1BFKG1waWRyLHAxNSwwLCUwLGMwLGMwLDUpCisKKwor RlVOX1NQRSh0dGJyMCxwMTUsMCwlMCxjMixjMCwwKQorRlVOX1NQRSh0dGJyMSxwMTUsMCwlMCxj MixjMCwxKQorRlVOX1NQRSh0dGJjcixwMTUsMCwlMCxjMixjMCwyKQorRlVOX1NQRShwYXIscDE1 LDAsJTAsYzcsIGM0LCAwKQorCitGVU5fU1BFKHBycnIscDE1LDAsJTAsYzEwLGMyLDApCitGVU5f U1BFKG5tcnIscDE1LDAsJTAsYzEwLGMyLDEpCisKK0ZVTl9TUEUoZmNzZWlkcixwMTUsMCwlMCxj MTMsYzAsMCkKK0ZVTl9TUEUoY29udGV4dGlkcixwMTUsMCwlMCxjMTMsYzAsMSkKK0ZVTl9TUEUo dHBpZHJ1cncscDE1LDAsJTAsYzEzLGMwLDIpCitGVU5fU1BFKHRwaWRydXJvLHAxNSwwLCUwLGMx MyxjMCwzKQorRlVOX1NQRSh0cGlkcnBydyxwMTUsMCwlMCxjMTMsYzAsNCkKKworCitGVU5fU1BF KGNzc2VscixwMTUsMiwlMCxjMCxjMCwwKQorRlVOX1NQRShkYWNyLHAxNSwwLCUwLGMzLGMwLDAp CisKK0ZVTl9TUEUoZGZzcixwMTUsMCwlMCxjNSxjMCwwKQorRlVOX1NQRShpZnNyLHAxNSwwLCUw LGM1LGMwLDEpCisKKworRlVOX1NQRShkZmFyLHAxNSwwLCUwLGM2LGMwLDApCitGVU5fU1BFKGlm YXIscDE1LDAsJTAsYzYsYzAsMikKKworRlVOX1NQRShuc2FjcixwMTUsMCwlMCxjMSxjMSwyKQor CisKK0ZVTl9TUEVfX05PX1BSSU5UKGRjY2lzdyxwMTUsMCwlMCxjNyxjMTQsMikKKworRlVOX1NQ RSh0bGJpYWxsLHAxNSwwLCUwLGM4LGM3LDApCisKK0ZVTl9TUEUoY3BhY3IscDE1LDAsJTAsYzEs YzAsMikKKworCisKKworCisKK2ludCB3cml0ZV9jcHNyKGludCB0bXApCit7CisJYXNtCisJKAor CQkibXNyCWNwc3IsJTAiCisJCToKKwkJOiJyIih0bXApCisJCToibWVtb3J5IgorCSk7CisJVklS X0lORk8oIlZJUjogd3JpdGVfY3BzciAweCV4XHJcbiIsdG1wKTsJCQorCXJldHVybiB0bXA7Cit9 CisKK2ludCByZWFkX2Nwc3Iodm9pZCkKK3sKKwlpbnQgdG1wOworCWFzbQorCSgKKwkJIm1ycwkl MCxjcHNyIgorCQk6Ij1yIih0bXApCisJCToKKwkJOiJtZW1vcnkiCisJKTsKKwlWSVJfSU5GTygi VklSOiByZWFkX2Nwc3IgMHgleFxyXG4iLHRtcCk7CQkKKwlyZXR1cm4gdG1wOworfQorCisKK2lu dCB3cml0ZV9zcHNyKGludCB0bXApCit7CisJYXNtCisJKAorCQkibXNyCXNwc3IsJTAiCisJCToK KwkJOiJyIih0bXApCisJCToibWVtb3J5IgorCSk7CisJCisJVklSX0lORk8oIlZJUjogd3JpdGVf c3BzciAweCV4XHJcbiIsdG1wKTsKKwlyZXR1cm4gdG1wOworfQorCitpbnQgcmVhZF9zcHNyKHZv aWQpCit7CisJaW50IHRtcDsKKwlhc20KKwkoCisJCSJtcnMJJTAsc3BzciIKKwkJOiI9ciIodG1w KQorCQk6CisJCToibWVtb3J5IgorCSk7CisJCisJVklSX0lORk8oIlZJUjogcmVhZF9zcHNyIDB4 JXhcclxuIix0bXApOworCXJldHVybiB0bXA7Cit9CisKKworCitpbnQgd3JpdGVfY250dm9mZihp bnQgdG1wMSxpbnQgdG1wMikKK3sKKworCWFzbQorCSgKKwkJIm1jcnIJcDE1LCA0LCAlMCwlMSxj MTQiCisJCToKKwkJOiJyIih0bXAxKSwiciIodG1wMikJCQorCQk6Im1lbW9yeSIKKwkpOworCQor CVZJUl9JTkZPKCIweCV4IDB4JXhcclxuIix0bXAxLHRtcDIpOworCXJldHVybiAwOworfQorCitp bnQgcmVhZF9jbnR2b2ZmKGludCAqdG1wMSxpbnQgKnRtcDIpCit7CisJaW50IHRtcDsKKwlhc20K KwkoCisJCSJtcnJjCXAxNSwgNCwgJTAsJTEsYzE0IgorCQk6Ij1yIigqdG1wMSksIj1yIigqdG1w MikJCQorCQk6CisJCToibWVtb3J5IgorCSk7CisJCisJVklSX0lORk8oIjB4JXggMHgleFxyXG4i LCp0bXAxLCp0bXAyKTsKKwlyZXR1cm4gMDsKK30KKworCisKKworaW50IHdyaXRlX2h0dGJyKGlu dCB0bXAxLGludCB0bXAyKQoreworCisJYXNtCisJKAorCQkibWNycglwMTUsIDQsICUwLCUxLGMy IgorCQk6CisJCToiciIodG1wMSksInIiKHRtcDIpCQkKKwkJOiJtZW1vcnkiCisJKTsKKwkKKwlW SVJfSU5GTygiMHgleCAweCV4XHJcbiIsdG1wMSx0bXAyKTsKKwlyZXR1cm4gMDsKK30KKworaW50 IHJlYWRfaHR0YnIoaW50ICp0bXAxLGludCAqdG1wMikKK3sKKwlpbnQgdG1wOworCWFzbQorCSgK KwkJIm1ycmMJcDE1LCA0LCAlMCwlMSxjMiIKKwkJOiI9ciIoKnRtcDEpLCI9ciIoKnRtcDIpCQkK KwkJOgorCQk6Im1lbW9yeSIKKwkpOworCQorCVZJUl9JTkZPKCIweCV4IDB4JXhcclxuIiwqdG1w MSwqdG1wMik7CisJcmV0dXJuIDA7Cit9CisKKworCitpbnQgcmVhZF9zcCh2b2lkKQoreworCWlu dCB0bXA7CisJYXNtCisJKAorCQkibW92CSUwLHNwIgorCQk6Ij1yIih0bXApCisJCToKKwkJOiJt ZW1vcnkiCisJKTsKKwlWSVJfSU5GTygiMHgleFxyXG4iLHRtcCk7CQorCXJldHVybiB0bXA7Cit9 CisKKworCitpbnQgY2FsbF9zbWModm9pZCAqZm4sIC4uLikKK3sKKwlhc20KKwkoCisJCSJtb3Yg cjAsJTAiCisJCToKKwkJOiJyIihmbikKKwkJOiJtZW1vcnkiCisKKwkpOworCWFzbQorCSgKKwkJ Ii5hcmNoX2V4dGVuc2lvbiBzZWNcblx0IgkKKwkJIm1vdiByNywjMFxuXHQiCisJCSJtY3IgcDE1 LCAwLCByNywgYzcsIGM1LCA2XG5cdCIKKwkJImRzYlxuXHQiCisJCSJkbWJcblx0IgorCQkic21j ICMwXG5cdCIJCisJKTsKKwlyZWFkX2Nwc3IoKTsKKwlyZXR1cm4gMDsKK30KKworCitpbnQgY2Fs bF9odmModm9pZCAqZm4sIC4uLikKK3sKKwlhc20KKwkoCQorCQkiLmFyY2hfZXh0ZW5zaW9uIHZp cnQgXG5cdCIKKwkJImlzYglcblx0IgorCQkiaHZjICMwIgorCSk7CisJVklSX0lORk8oIlZJUjog Y2FsbF9odmMgXHJcbiIpOworCXJldHVybiAwOworfQorCisjZGVmaW5lIFZJUl9JTkZPKGZtdCwg Li4uKSAKKwordm9pZCBzbWNfaGFuZGxlcih2b2lkKQoreworCisJdW5zaWduZWQgaW50IHRtcDEs dG1wMjsKKwl1bnNpZ25lZCBpbnQgdG1wLHR0YnIwLHR0YnIxLHR0YmNyLHBhcix2YmFyLHBycnIs bm1ycjsKKwl1bnNpZ25lZCBpbnQgZGZzcixpZnNyLGRmYXIsaWZhcixjc3NlbHIsZGFjcixmY3Nl aWRyLGNvbnRleHRpZHIsdHBpZHJ1cncsdHBpZHJ1cm8sdHBpZHJwcnc7CisJCisJdW5zaWduZWQg aW50IHNjcjsKKwl1bnNpZ25lZCBpbnQgcGdkX2xvdyxwZ2RfaGlnaDsKKworCisJc2NyID0gcmVh ZF9zY3IoKTsKKworCXdyaXRlX3NjcihzY3J8MSk7CS8vc2V0IHRvIG5vbiBzZWN1cmUgYml0CisJ Lyogbm93IGNwdSBpbiBtb25pdG9yIHdpdGggTlM9MSovCisKKwlyZWFkX2NudHZvZmYoJnRtcDEs JnRtcDIpOworCisJdG1wMSA9IDA7CisJdG1wMiA9IDA7CisJCisJd3JpdGVfY250dm9mZih0bXAx LHRtcDIpOworCQorCXJlYWRfY250dm9mZigmdG1wMSwmdG1wMik7CisKKwl3cml0ZV9zY3Ioc2Ny KTsKKwkKKwlyZWFkX3NjcigpOworCXJldHVybiAwOworCisKKwkKK30KKworCitpbnQgdmlyX2lu aXQoKQoreworCWludCByZXN1bHQ7CisJdW5zaWduZWQgaW50IGNwc3Isc2N0bHI7CQorCXVuc2ln bmVkIGludCBjb250ZXh0aWRyOworCWludCBpPTA7CisJLy9wcmludGYoInZpcl9pbml0IG1waWRy IDB4JXhcbiIscmVhZF9tcGlkcigpKTsKKwlyZWFkX3R0YnIwKCk7CisJcmVhZF90dGJyMSgpOwor CWNwc3IgPSByZWFkX2Nwc3IoKTsKKwlzY3RsciA9IHJlYWRfc2N0bHIoKTsJCisJd3JpdGVfY3Bz cihjcHNyIHwoMHg4MCkpOyAvL2Rpc2FibGUgaXJxCisJd3JpdGVfc2N0bHIoc2N0bHImKH4weDEw MDQpKTsvL2Rpc2FibGUgY2FjaGUKKwl3cml0ZV9uc2FjcigweGZmYzAwKTsKKworCisJcmVhZF9t dmJhcigpOworCXdyaXRlX212YmFyKF9fdmlyX2luaXRfbW9uaXRvcl92ZWN0b3IpOworCXJlYWRf bXZiYXIoKTsKKworCWNhbGxfc21jKHNtY19oYW5kbGVyLHNtY19zdGFjaysyMDQ4KTsJCisJCisJ d3JpdGVfY3BzcihjcHNyKTsgICAvL3Jlc3RvcmUgY3BzcgkKKwl3cml0ZV9zY3RscihzY3Rscik7 Ly9yZXN0b3JlIHNjdGxyCQorCXJldHVybiAwOworfQkKKworCisKKwpkaWZmIC0tZ2l0IGEvYm9h cmQvc3VueGkvYm9hcmQuYyBiL2JvYXJkL3N1bnhpL2JvYXJkLmMKaW5kZXggODVmOTcwOC4uZmJk YTcxYyAxMDA3NTUKLS0tIGEvYm9hcmQvc3VueGkvYm9hcmQuYworKysgYi9ib2FyZC9zdW54aS9i b2FyZC5jCkBAIC00NSw2ICs0NSw5IEBAIGludCBib2FyZF9pbml0KHZvaWQpCiB7CiAJaW50IGlk X3BmcjE7CiAKKwl2aXJfaW5pdCgpOworCXN0YXJ0dXBfc2Vjb25kYXJpZXMoKTsKKwogCWdkLT5i ZC0+YmlfYm9vdF9wYXJhbXMgPSAoUEhZU19TRFJBTV8xICsgMHgxMDApOwogCiAJYXNtIHZvbGF0 aWxlKCJtcmMgcDE1LCAwLCAlMCwgYzAsIGMxLCAxIiA6ICI9ciIoaWRfcGZyMSkpOwpkaWZmIC0t Z2l0IGEvaW5jbHVkZS9jb25maWdzL3N1bjdpLmggYi9pbmNsdWRlL2NvbmZpZ3Mvc3VuN2kuaApv bGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmluZGV4IGE2ZWRlMmEuLmZjYjM2YmYKLS0t IGEvaW5jbHVkZS9jb25maWdzL3N1bjdpLmgKKysrIGIvaW5jbHVkZS9jb25maWdzL3N1bjdpLmgK QEAgLTM0LDYgKzM0LDkgQEAKICNkZWZpbmUgQ09ORklHX1NZU19QUk9NUFQJCSJzdW43aSMgIgog I2RlZmluZSBDT05GSUdfTUFDSF9UWVBFCQk0MjgzCiAKKworI2RlZmluZSBDT05GSUdfU1lTX1NF Q09OREFSWV9PTiAgIDEKKwogI2lmIGRlZmluZWQoQ09ORklHX1NZU19TRUNPTkRBUllfT04pCiAj ZGVmaW5lIENPTkZJR19CT0FSRF9QT1NUQ0xLX0lOSVQgMQogI2VuZGlmCi0tIAoxLjguMS4yCgo= --001a11c3b944b6dbca04e70e0cea-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/