Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754100Ab1CNNJl (ORCPT ); Mon, 14 Mar 2011 09:09:41 -0400 Received: from na3sys009aog116.obsmtp.com ([74.125.149.240]:41738 "EHLO na3sys009aog116.obsmtp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752966Ab1CNNJj (ORCPT ); Mon, 14 Mar 2011 09:09:39 -0400 From: Haojian Zhuang To: Samuel Ortiz CC: "johnpol@2ka.mipt.ru" , "a.zummo@towertech.it" , "lrg@slimlogic.co.uk" , "broonie@opensource.wolfsonmicro.com" , "dmitry.torokhov@gmail.com" , "dtor@mail.ru" , "rpurdie@rpsys.net" , "linux-kernel@vger.kernel.org" Date: Mon, 14 Mar 2011 06:09:17 -0700 Subject: RE: [PATCH] rtc: add 88pm860x rtc Thread-Topic: [PATCH] rtc: add 88pm860x rtc Thread-Index: AcviNcJ8uM7hHwRiSfOZQL5NhzkqzQAExrNA Message-ID: <25B60CDC2F704E4E9D88FFD52780CB4C05CEAFFBB7@SC-VEXCH1.marvell.com> References: <1299512600-29047-1-git-send-email-haojian.zhuang@marvell.com> <1299512600-29047-2-git-send-email-haojian.zhuang@marvell.com> <1299512600-29047-3-git-send-email-haojian.zhuang@marvell.com> <1299512600-29047-4-git-send-email-haojian.zhuang@marvell.com> <1299512600-29047-5-git-send-email-haojian.zhuang@marvell.com> <1299512600-29047-6-git-send-email-haojian.zhuang@marvell.com> <1299512600-29047-7-git-send-email-haojian.zhuang@marvell.com> <1299512600-29047-8-git-send-email-haojian.zhuang@marvell.com> <1299512600-29047-9-git-send-email-haojian.zhuang@marvell.com> <20110314105118.GE31153@sortiz-mobl> In-Reply-To: <20110314105118.GE31153@sortiz-mobl> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: multipart/mixed; boundary="_002_25B60CDC2F704E4E9D88FFD52780CB4C05CEAFFBB7SCVEXCH1marve_" MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 26545 Lines: 355 --_002_25B60CDC2F704E4E9D88FFD52780CB4C05CEAFFBB7SCVEXCH1marve_ Content-Type: text/plain; charset="gb2312" Content-Transfer-Encoding: base64 DQoNCj4tLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPkZyb206IFNhbXVlbCBPcnRpeiBbbWFp bHRvOnNhbWVvQGxpbnV4LmludGVsLmNvbV0NCj5TZW50OiAyMDExxOoz1MIxNMjVIDY6NTEgUE0N Cj5UbzogSGFvamlhbiBaaHVhbmcNCj5DYzogam9obnBvbEAya2EubWlwdC5ydTsgYS56dW1tb0B0 b3dlcnRlY2guaXQ7IGxyZ0BzbGltbG9naWMuY28udWs7DQo+YnJvb25pZUBvcGVuc291cmNlLndv bGZzb25taWNyby5jb207IGRtaXRyeS50b3Jva2hvdkBnbWFpbC5jb207DQo+ZHRvckBtYWlsLnJ1 OyBycHVyZGllQHJwc3lzLm5ldDsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZw0KPlN1Ympl Y3Q6IFJlOiBbUEFUQ0hdIHJ0YzogYWRkIDg4cG04NjB4IHJ0Yw0KPg0KPkhpIEhhb2ppYW4sDQo+ DQo+T24gTW9uLCBNYXIgMDcsIDIwMTEgYXQgMTE6NDM6MTdQTSArMDgwMCwgSGFvamlhbiBaaHVh bmcgd3JvdGU6DQo+PiBTdXBwb3J0IFJUQyBjb21wb25lbnQgaW4gODhQTTg2MHguIEFsc28gc3Vw cG9ydCBzeW5jaHJvbml6ZSB0aW1lDQo+PiA4OFBNODYweCBSVEMgdG8gYW5vdGhlciBSVEMgZGV2 aWNlLiBJdCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgaW4NCj4+IHN5bmMgY2FsbGJhY2sgQVBJLg0K Pj4NCj4+IFdoaWxlIDg4UE04NjB4IFJUQyBpcyBlbmFibGVkLCBpdCBjYW4gZG8gUlRDIGNhbGli cmF0aW9uIHRvIGd1cmFudGVlDQo+PiBlbm91Z2ggcG93ZXIgaXMgc3VwcGxpZWQgb24gVlJUQyBk b21haW4gb2YgODhQTTg2MHguDQo+Pg0KPj4gU2lnbmVkLW9mZi1ieTogSGFvamlhbiBaaHVhbmcg PGhhb2ppYW4uemh1YW5nQG1hcnZlbGwuY29tPg0KPj4gLS0tDQo+PiAgZHJpdmVycy9tZmQvODhw bTg2MHgtY29yZS5jICB8ICAgMzAgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+PiAg ZHJpdmVycy9ydGMvS2NvbmZpZyAgICAgICAgICB8ICAgMTAgKysrKysrKysrKw0KPj4gIGRyaXZl cnMvcnRjL01ha2VmaWxlICAgICAgICAgfCAgICAxICsNCj4+ICBpbmNsdWRlL2xpbnV4L21mZC84 OHBtODYweC5oIHwgICAgNiArKysrKysNCj5ydGMtODhwbTg2MHguYyBpcyBtaXNzaW5nIGZyb20g dGhpcyBwYXRjaC4NCj4NCj5DaGVlcnMsDQo+U2FtdWVsLg0KPg0KPi0tDQo+SW50ZWwgT3BlbiBT b3VyY2UgVGVjaG5vbG9neSBDZW50cmUNCj5odHRwOi8vb3NzLmludGVsLmNvbS8NCg0KSGkgU2Ft dWVsLA0KDQpJJ20gc29ycnkgb24gbWlzc2luZyB0aGUgcnRjIGZpbGUuIE5vdyBJIGF0dGFjaCBp dCBpbiBtYWlsLiBJJ20gc29ycnkgb24gaW5jb252aWVudC4NCg0KVGhhbmtzDQpIYW9qaWFuDQo= --_002_25B60CDC2F704E4E9D88FFD52780CB4C05CEAFFBB7SCVEXCH1marve_ Content-Type: application/octet-stream; name="0001-rtc-add-88pm860x-rtc.patch" Content-Description: 0001-rtc-add-88pm860x-rtc.patch Content-Disposition: attachment; filename="0001-rtc-add-88pm860x-rtc.patch"; size=17691; creation-date="Mon, 14 Mar 2011 06:07:43 GMT"; modification-date="Mon, 14 Mar 2011 06:05:26 GMT" Content-Transfer-Encoding: base64 RnJvbSAzMzlkZjU3NjIzOWEzOGZhMTBhM2YwYTYyZDM5NTdjZDZiZjZjYzMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIYW9qaWFuIFpodWFuZyA8aGFvamlhbi56aHVhbmdAbWFydmVs bC5jb20+CkRhdGU6IFR1ZSwgMSBNYXIgMjAxMSAyMTo1NTozNiArMDgwMApTdWJqZWN0OiBbUEFU Q0hdIHJ0YzogYWRkIDg4cG04NjB4IHJ0YwoKU3VwcG9ydCBSVEMgY29tcG9uZW50IGluIDg4UE04 NjB4LiBBbHNvIHN1cHBvcnQgc3luY2hyb25pemUgdGltZSBmcm9tCjg4UE04NjB4IFJUQyB0byBh bm90aGVyIFJUQyBkZXZpY2UuIEl0IHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbgpzeW5jIGNhbGxi YWNrIEFQSS4KCldoaWxlIDg4UE04NjB4IFJUQyBpcyBlbmFibGVkLCBpdCBjYW4gZG8gUlRDIGNh bGlicmF0aW9uIHRvIGd1cmFudGVlCmVub3VnaCBwb3dlciBpcyBzdXBwbGllZCBvbiBWUlRDIGRv bWFpbiBvZiA4OFBNODYweC4KClNpZ25lZC1vZmYtYnk6IEhhb2ppYW4gWmh1YW5nIDxoYW9qaWFu LnpodWFuZ0BtYXJ2ZWxsLmNvbT4KLS0tCiBkcml2ZXJzL21mZC84OHBtODYweC1jb3JlLmMgIHwg ICAzMCArKysKIGRyaXZlcnMvcnRjL0tjb25maWcgICAgICAgICAgfCAgIDEwICsKIGRyaXZlcnMv cnRjL01ha2VmaWxlICAgICAgICAgfCAgICAxICsKIGRyaXZlcnMvcnRjL3J0Yy04OHBtODYweC5j ICAgfCAgNDMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogaW5j bHVkZS9saW51eC9tZmQvODhwbTg2MHguaCB8ICAgIDYgKwogNSBmaWxlcyBjaGFuZ2VkLCA0Nzkg aW5zZXJ0aW9ucygrKSwgMCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJz L3J0Yy9ydGMtODhwbTg2MHguYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkLzg4cG04NjB4LWNv cmUuYyBiL2RyaXZlcnMvbWZkLzg4cG04NjB4LWNvcmUuYwppbmRleCA3ODc5NTY5Li44NjRlNmEz IDEwMDY0NAotLS0gYS9kcml2ZXJzL21mZC84OHBtODYweC1jb3JlLmMKKysrIGIvZHJpdmVycy9t ZmQvODhwbTg2MHgtY29yZS5jCkBAIC01Nyw2ICs1NywxMCBAQCBzdGF0aWMgc3RydWN0IHJlc291 cmNlIHJlZ3VsYXRvcl9yZXNvdXJjZXNbXSBfX2luaXRkYXRhID0gewogCXtQTTg2MDdfSURfTERP MTUsIFBNODYwN19JRF9MRE8xNSwgImxkby0xNSIsIElPUkVTT1VSQ0VfSU8sfSwKIH07CiAKK3N0 YXRpYyBzdHJ1Y3QgcmVzb3VyY2UgcnRjX3Jlc291cmNlc1tdIF9faW5pdGRhdGEgPSB7CisJe1BN ODYwN19JUlFfUlRDLCBQTTg2MDdfSVJRX1JUQywgInJ0YyIsIElPUkVTT1VSQ0VfSVJRLH0sCit9 OworCiBzdGF0aWMgc3RydWN0IHJlc291cmNlIHRvdWNoX3Jlc291cmNlc1tdIF9faW5pdGRhdGEg PSB7CiAJe1BNODYwN19JUlFfUEVOLCBQTTg2MDdfSVJRX1BFTiwgInRvdWNoIiwgSU9SRVNPVVJD RV9JUlEsfSwKIH07CkBAIC0xMjYsNiArMTMwLDEwIEBAIHN0YXRpYyBzdHJ1Y3QgbWZkX2NlbGwg cmVndWxhdG9yX2RldnNbXSBfX2luaXRkYXRhID0gewogCXsiODhwbTg2MHgtcmVndWxhdG9yIiwg MTcsfSwKIH07CiAKK3N0YXRpYyBzdHJ1Y3QgbWZkX2NlbGwgcnRjX2RldnNbXSBfX2luaXRkYXRh ID0geworCXsiODhwbTg2MHgtcnRjIiwgLTEsfSwKK307CisKIHN0YXRpYyBzdHJ1Y3QgbWZkX2Nl bGwgdG91Y2hfZGV2c1tdIF9faW5pdGRhdGEgPSB7CiAJeyI4OHBtODYweC10b3VjaCIsIC0xLH0s CiB9OwpAQCAtMTQ4LDYgKzE1Niw3IEBAIHN0YXRpYyBzdHJ1Y3QgcG04NjB4X2xlZF9wZGF0YSBs ZWRfcGRhdGFbQVJSQVlfU0laRShsZWRfZGV2cyldOwogc3RhdGljIHN0cnVjdCByZWd1bGF0b3Jf aW5pdF9kYXRhIHJlZ3VsYXRvcl9wZGF0YVtBUlJBWV9TSVpFKHJlZ3VsYXRvcl9kZXZzKV07CiBz dGF0aWMgc3RydWN0IHBtODYweF90b3VjaF9wZGF0YSB0b3VjaF9wZGF0YTsKIHN0YXRpYyBzdHJ1 Y3QgcG04NjB4X3Bvd2VyX3BkYXRhIHBvd2VyX3BkYXRhOworc3RhdGljIHN0cnVjdCBwbTg2MHhf cnRjX3BkYXRhIHJ0Y19wZGF0YTsKIAogc3RydWN0IHBtODYweF9pcnFfZGF0YSB7CiAJaW50CXJl ZzsKQEAgLTU4OCw2ICs1OTcsMjYgQEAgb3V0OgogCXJldHVybjsKIH0KIAorc3RhdGljIHZvaWQg X19kZXZpbml0IGRldmljZV9ydGNfaW5pdChzdHJ1Y3QgcG04NjB4X2NoaXAgKmNoaXAsCisJCQkJ ICAgICAgc3RydWN0IGkyY19jbGllbnQgKmkyYywKKwkJCQkgICAgICBzdHJ1Y3QgcG04NjB4X3Bs YXRmb3JtX2RhdGEgKnBkYXRhKQoreworCWludCByZXQ7CisKKwlpZiAoKHBkYXRhID09IE5VTEwp IHx8IChwZGF0YS0+cnRjID09IE5VTEwpKQorCQlyZXR1cm47CisKKwltZW1jcHkoJnJ0Y19wZGF0 YSwgcGRhdGEtPnJ0Yywgc2l6ZW9mKHN0cnVjdCBwbTg2MHhfcnRjX3BkYXRhKSk7CisJcnRjX2Rl dnNbMF0ubWZkX2RhdGEgPSAmcnRjX3BkYXRhOworCXJ0Y19kZXZzWzBdLm51bV9yZXNvdXJjZXMg PSBBUlJBWV9TSVpFKHJ0Y19yZXNvdXJjZXMpOworCXJ0Y19kZXZzWzBdLnJlc291cmNlcyA9ICZy dGNfcmVzb3VyY2VzWzBdOworCXJldCA9IG1mZF9hZGRfZGV2aWNlcyhjaGlwLT5kZXYsIDAsICZy dGNfZGV2c1swXSwKKwkJCSAgICAgIEFSUkFZX1NJWkUocnRjX2RldnMpLCAmcnRjX3Jlc291cmNl c1swXSwKKwkJCSAgICAgIGNoaXAtPmlycV9iYXNlKTsKKwlpZiAocmV0IDwgMCkKKwkJZGV2X2Vy cihjaGlwLT5kZXYsICJGYWlsZWQgdG8gYWRkIHJ0YyBzdWJkZXZcbiIpOworfQorCiBzdGF0aWMg dm9pZCBfX2RldmluaXQgZGV2aWNlX3RvdWNoX2luaXQoc3RydWN0IHBtODYweF9jaGlwICpjaGlw LAogCQkJCQlzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjLAogCQkJCQlzdHJ1Y3QgcG04NjB4X3BsYXRm b3JtX2RhdGEgKnBkYXRhKQpAQCAtNzIyLDYgKzc1MSw3IEBAIHN0YXRpYyB2b2lkIF9fZGV2aW5p dCBkZXZpY2VfODYwN19pbml0KHN0cnVjdCBwbTg2MHhfY2hpcCAqY2hpcCwKIAl9CiAKIAlkZXZp Y2VfcmVndWxhdG9yX2luaXQoY2hpcCwgaTJjLCBwZGF0YSk7CisJZGV2aWNlX3J0Y19pbml0KGNo aXAsIGkyYywgcGRhdGEpOwogCWRldmljZV9vbmtleV9pbml0KGNoaXAsIGkyYywgcGRhdGEpOwog CWRldmljZV90b3VjaF9pbml0KGNoaXAsIGkyYywgcGRhdGEpOwogCWRldmljZV9wb3dlcl9pbml0 KGNoaXAsIGkyYywgcGRhdGEpOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvS2NvbmZpZyBiL2Ry aXZlcnMvcnRjL0tjb25maWcKaW5kZXggNDk0MWNhZC4uNGY3YjlmNCAxMDA2NDQKLS0tIGEvZHJp dmVycy9ydGMvS2NvbmZpZworKysgYi9kcml2ZXJzL3J0Yy9LY29uZmlnCkBAIC0xMjgsNiArMTI4 LDE2IEBAIGNvbW1lbnQgIkkyQyBSVEMgZHJpdmVycyIKIAogaWYgSTJDCiAKK2NvbmZpZyBSVENf RFJWXzg4UE04NjBYCisJdHJpc3RhdGUgIk1hcnZlbGwgODhQTTg2MHgiCisJZGVwZW5kcyBvbiBS VENfQ0xBU1MgJiYgSTJDICYmIE1GRF84OFBNODYwWAorCWhlbHAKKwkgIElmIHlvdSBzYXkgeWVz IGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBSVEMgZnVuY3Rpb24gaW4gTWFydmVsbAorCSAgODhQ TTg2MHggY2hpcHMuCisKKwkgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0IGFzIGEgbW9k dWxlLiBJZiBzbywgdGhlIG1vZHVsZQorCSAgd2lsbCBiZSBjYWxsZWQgcnRjLTg4cG04NjB4Lgor CiBjb25maWcgUlRDX0RSVl9EUzEzMDcKIAl0cmlzdGF0ZSAiRGFsbGFzL01heGltIERTMTMwNy8z Ny8zOC8zOS80MCwgU1QgTTQxVDAwLCBFUFNPTiBSWC04MDI1IgogCWhlbHAKZGlmZiAtLWdpdCBh L2RyaXZlcnMvcnRjL01ha2VmaWxlIGIvZHJpdmVycy9ydGMvTWFrZWZpbGUKaW5kZXggMmFmZGFm My4uZWRjOTMyNSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ydGMvTWFrZWZpbGUKKysrIGIvZHJpdmVy cy9ydGMvTWFrZWZpbGUKQEAgLTE3LDYgKzE3LDcgQEAgcnRjLWNvcmUtJChDT05GSUdfUlRDX0lO VEZfU1lTRlMpICs9IHJ0Yy1zeXNmcy5vCiAKICMgS2VlcCB0aGUgbGlzdCBvcmRlcmVkLgogCitv YmotJChDT05GSUdfUlRDX0RSVl84OFBNODYwWCkgICs9IHJ0Yy04OHBtODYweC5vCiBvYmotJChD T05GSUdfUlRDX0RSVl9BQjMxMDApCSs9IHJ0Yy1hYjMxMDAubwogb2JqLSQoQ09ORklHX1JUQ19E UlZfQUI4NTAwKQkrPSBydGMtYWI4NTAwLm8KIG9iai0kKENPTkZJR19SVENfRFJWX0FUMzJBUDcw MFgpKz0gcnRjLWF0MzJhcDcwMHgubwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ydGMvcnRjLTg4cG04 NjB4LmMgYi9kcml2ZXJzL3J0Yy9ydGMtODhwbTg2MHguYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi42YWQ1MDdiCi0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9ydGMvcnRj LTg4cG04NjB4LmMKQEAgLTAsMCArMSw0MzIgQEAKKy8qCisgKiBSZWFsIFRpbWUgQ2xvY2sgZHJp dmVyIGZvciBNYXJ2ZWxsIDg4UE04NjB4IFBNSUMKKyAqCisgKiBDb3B5cmlnaHQgKGMpIDIwMTAg TWFydmVsbCBJbnRlcm5hdGlvbmFsIEx0ZC4KKyAqIEF1dGhvcjoJSGFvamlhbiBaaHVhbmcgPGhh b2ppYW4uemh1YW5nQG1hcnZlbGwuY29tPgorICoKKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNv ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBh cworICogcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisgKi8KKwor I2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgorI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgorI2lu Y2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4K KyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgorI2luY2x1ZGUgPGxpbnV4L3J0Yy5oPgorI2luY2x1 ZGUgPGxpbnV4L2RlbGF5Lmg+CisjaW5jbHVkZSA8bGludXgvbWZkL2NvcmUuaD4KKyNpbmNsdWRl IDxsaW51eC9tZmQvODhwbTg2MHguaD4KKworI2RlZmluZSBWUlRDX0NBTElCUkFUSU9OCisKK3N0 cnVjdCBwbTg2MHhfcnRjX2luZm8geworCXN0cnVjdCBwbTg2MHhfY2hpcAkqY2hpcDsKKwlzdHJ1 Y3QgaTJjX2NsaWVudAkqaTJjOworCXN0cnVjdCBydGNfZGV2aWNlCSpydGNfZGV2OworCXN0cnVj dCBkZXZpY2UJCSpkZXY7CisJc3RydWN0IGRlbGF5ZWRfd29yawljYWxpYl93b3JrOworCisJaW50 CQkJaXJxOworCWludAkJCXZydGM7CisJaW50CQkJKCpzeW5jKSh1bnNpZ25lZCBpbnQgdGlja3Mp OworfTsKKworI2RlZmluZSBSRUdfVlJUQ19NRUFTMQkJMHg3RAorCisjZGVmaW5lIFJFRzBfQURE UgkJMHhCMAorI2RlZmluZSBSRUcxX0FERFIJCTB4QjIKKyNkZWZpbmUgUkVHMl9BRERSCQkweEI0 CisjZGVmaW5lIFJFRzNfQUREUgkJMHhCNgorCisjZGVmaW5lIFJFRzBfREFUQQkJMHhCMQorI2Rl ZmluZSBSRUcxX0RBVEEJCTB4QjMKKyNkZWZpbmUgUkVHMl9EQVRBCQkweEI1CisjZGVmaW5lIFJF RzNfREFUQQkJMHhCNworCisvKiBiaXQgZGVmaW5pdGlvbnMgb2YgTWVhc3VyZW1lbnQgRW5hYmxl IFJlZ2lzdGVyIDIgKDB4NTEpICovCisjZGVmaW5lIE1FQVMyX1ZSVEMJCSgxIDw8IDApCisKKy8q IGJpdCBkZWZpbml0aW9ucyBvZiBSVEMgUmVnaXN0ZXIgMSAoMHhBMCkgKi8KKyNkZWZpbmUgQUxB Uk1fRU4JCSgxIDw8IDMpCisjZGVmaW5lIEFMQVJNX1dBS0VVUAkJKDEgPDwgNCkKKyNkZWZpbmUg QUxBUk0JCQkoMSA8PCA1KQorI2RlZmluZSBSVEMxX1VTRV9YTwkJKDEgPDwgNykKKworI2RlZmlu ZSBWUlRDX0NBTElCX0lOVEVSVkFMCShIWiAqIDYwICogMTApCQkvKiAxMCBtaW51dGVzICovCisK K3N0YXRpYyBpcnFyZXR1cm5fdCBydGNfdXBkYXRlX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0 YSkKK3sKKwlzdHJ1Y3QgcG04NjB4X3J0Y19pbmZvICppbmZvID0gKHN0cnVjdCBwbTg2MHhfcnRj X2luZm8gKilkYXRhOworCWludCBtYXNrOworCisJbWFzayA9IEFMQVJNIHwgQUxBUk1fV0FLRVVQ OworCXBtODYweF9zZXRfYml0cyhpbmZvLT5pMmMsIFBNODYwN19SVEMxLCBtYXNrIHwgQUxBUk1f RU4sIG1hc2spOworCXJ0Y191cGRhdGVfaXJxKGluZm8tPnJ0Y19kZXYsIDEsIFJUQ19BRik7CisJ cmV0dXJuIElSUV9IQU5ETEVEOworfQorCitzdGF0aWMgaW50IHBtODYweF9ydGNfYWxhcm1faXJx X2VuYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIGludCBlbmFibGVkKQoreworCXN0 cnVjdCBwbTg2MHhfcnRjX2luZm8gKmluZm8gPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKKworCWlm IChlbmFibGVkKQorCQlwbTg2MHhfc2V0X2JpdHMoaW5mby0+aTJjLCBQTTg2MDdfUlRDMSwgQUxB Uk0sIEFMQVJNKTsKKwllbHNlCisJCXBtODYweF9zZXRfYml0cyhpbmZvLT5pMmMsIFBNODYwN19S VEMxLCBBTEFSTSwgMCk7CisJcmV0dXJuIDA7Cit9CisKKy8qCisgKiBDYWxjdWxhdGUgdGhlIG5l eHQgYWxhcm0gdGltZSBnaXZlbiB0aGUgcmVxdWVzdGVkIGFsYXJtIHRpbWUgbWFzaworICogYW5k IHRoZSBjdXJyZW50IHRpbWUuCisgKi8KK3N0YXRpYyB2b2lkIHJ0Y19uZXh0X2FsYXJtX3RpbWUo c3RydWN0IHJ0Y190aW1lICpuZXh0LCBzdHJ1Y3QgcnRjX3RpbWUgKm5vdywKKwkJCQlzdHJ1Y3Qg cnRjX3RpbWUgKmFscm0pCit7CisJdW5zaWduZWQgbG9uZyBuZXh0X3RpbWU7CisJdW5zaWduZWQg bG9uZyBub3dfdGltZTsKKworCW5leHQtPnRtX3llYXIgPSBub3ctPnRtX3llYXI7CisJbmV4dC0+ dG1fbW9uID0gbm93LT50bV9tb247CisJbmV4dC0+dG1fbWRheSA9IG5vdy0+dG1fbWRheTsKKwlu ZXh0LT50bV9ob3VyID0gYWxybS0+dG1faG91cjsKKwluZXh0LT50bV9taW4gPSBhbHJtLT50bV9t aW47CisJbmV4dC0+dG1fc2VjID0gYWxybS0+dG1fc2VjOworCisJcnRjX3RtX3RvX3RpbWUobm93 LCAmbm93X3RpbWUpOworCXJ0Y190bV90b190aW1lKG5leHQsICZuZXh0X3RpbWUpOworCisJaWYg KG5leHRfdGltZSA8IG5vd190aW1lKSB7CisJCS8qIEFkdmFuY2Ugb25lIGRheSAqLworCQluZXh0 X3RpbWUgKz0gNjAgKiA2MCAqIDI0OworCQlydGNfdGltZV90b190bShuZXh0X3RpbWUsIG5leHQp OworCX0KK30KKworc3RhdGljIGludCBwbTg2MHhfcnRjX3JlYWRfdGltZShzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdCBydGNfdGltZSAqdG0pCit7CisJc3RydWN0IHBtODYweF9ydGNfaW5mbyAq aW5mbyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXVuc2lnbmVkIGNoYXIgYnVmWzhdOworCXVu c2lnbmVkIGxvbmcgdGlja3MsIGJhc2UsIGRhdGE7CisKKwlwbTg2MHhfcGFnZV9idWxrX3JlYWQo aW5mby0+aTJjLCBSRUcwX0FERFIsIDgsIGJ1Zik7CisJZGV2X2RiZyhpbmZvLT5kZXYsICIleC0l eC0leC0leC0leC0leC0leC0leFxuIiwgYnVmWzBdLCBidWZbMV0sCisJCWJ1ZlsyXSwgYnVmWzNd LCBidWZbNF0sIGJ1Zls1XSwgYnVmWzZdLCBidWZbN10pOworCWJhc2UgPSAoYnVmWzFdIDw8IDI0 KSB8IChidWZbM10gPDwgMTYpIHwgKGJ1Zls1XSA8PCA4KSB8IGJ1Zls3XTsKKworCS8qIGxvYWQg MzItYml0IHJlYWQtb25seSBjb3VudGVyICovCisJcG04NjB4X2J1bGtfcmVhZChpbmZvLT5pMmMs IFBNODYwN19SVENfQ09VTlRFUjEsIDQsIGJ1Zik7CisJZGF0YSA9IChidWZbM10gPDwgMjQpIHwg KGJ1ZlsyXSA8PCAxNikgfCAoYnVmWzFdIDw8IDgpIHwgYnVmWzBdOworCXRpY2tzID0gYmFzZSAr IGRhdGE7CisJZGV2X2RiZyhpbmZvLT5kZXYsICJnZXQgYmFzZToweCVseCwgUk8gY291bnQ6MHgl bHgsIHRpY2tzOjB4JWx4XG4iLAorCQliYXNlLCBkYXRhLCB0aWNrcyk7CisKKwlydGNfdGltZV90 b190bSh0aWNrcywgdG0pOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcG04NjB4X3J0 Y19zZXRfdGltZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdCBydGNfdGltZSAqdG0pCit7CisJ c3RydWN0IHBtODYweF9ydGNfaW5mbyAqaW5mbyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXVu c2lnbmVkIGNoYXIgYnVmWzRdOworCXVuc2lnbmVkIGxvbmcgdGlja3MsIGJhc2UsIGRhdGE7CisK KwlpZiAoKHRtLT50bV95ZWFyIDwgNzApIHx8ICh0bS0+dG1feWVhciA+IDEzOCkpIHsKKwkJZGV2 X2RiZyhpbmZvLT5kZXYsICJTZXQgdGltZSAlZCBvdXQgb2YgcmFuZ2UuICIKKwkJCSJQbGVhc2Ug c2V0IHRpbWUgYmV0d2VlbiAxOTcwIHRvIDIwMzguXG4iLAorCQkJMTkwMCArIHRtLT50bV95ZWFy KTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCXJ0Y190bV90b190aW1lKHRtLCAmdGlja3MpOwor CisJLyogbG9hZCAzMi1iaXQgcmVhZC1vbmx5IGNvdW50ZXIgKi8KKwlwbTg2MHhfYnVsa19yZWFk KGluZm8tPmkyYywgUE04NjA3X1JUQ19DT1VOVEVSMSwgNCwgYnVmKTsKKwlkYXRhID0gKGJ1Zlsz XSA8PCAyNCkgfCAoYnVmWzJdIDw8IDE2KSB8IChidWZbMV0gPDwgOCkgfCBidWZbMF07CisJYmFz ZSA9IHRpY2tzIC0gZGF0YTsKKwlkZXZfZGJnKGluZm8tPmRldiwgInNldCBiYXNlOjB4JWx4LCBS TyBjb3VudDoweCVseCwgdGlja3M6MHglbHhcbiIsCisJCWJhc2UsIGRhdGEsIHRpY2tzKTsKKwor CXBtODYweF9wYWdlX3JlZ193cml0ZShpbmZvLT5pMmMsIFJFRzBfREFUQSwgKGJhc2UgPj4gMjQp ICYgMHhGRik7CisJcG04NjB4X3BhZ2VfcmVnX3dyaXRlKGluZm8tPmkyYywgUkVHMV9EQVRBLCAo YmFzZSA+PiAxNikgJiAweEZGKTsKKwlwbTg2MHhfcGFnZV9yZWdfd3JpdGUoaW5mby0+aTJjLCBS RUcyX0RBVEEsIChiYXNlID4+IDgpICYgMHhGRik7CisJcG04NjB4X3BhZ2VfcmVnX3dyaXRlKGlu Zm8tPmkyYywgUkVHM19EQVRBLCBiYXNlICYgMHhGRik7CisKKwlpZiAoaW5mby0+c3luYykKKwkJ aW5mby0+c3luYyh0aWNrcyk7CisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgcG04NjB4X3J0 Y19yZWFkX2FsYXJtKHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y193a2Fscm0gKmFscm0p Cit7CisJc3RydWN0IHBtODYweF9ydGNfaW5mbyAqaW5mbyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYp OworCXVuc2lnbmVkIGNoYXIgYnVmWzhdOworCXVuc2lnbmVkIGxvbmcgdGlja3MsIGJhc2UsIGRh dGE7CisJaW50IHJldDsKKworCXBtODYweF9wYWdlX2J1bGtfcmVhZChpbmZvLT5pMmMsIFJFRzBf QUREUiwgOCwgYnVmKTsKKwlkZXZfZGJnKGluZm8tPmRldiwgIiV4LSV4LSV4LSV4LSV4LSV4LSV4 LSV4XG4iLCBidWZbMF0sIGJ1ZlsxXSwKKwkJYnVmWzJdLCBidWZbM10sIGJ1Zls0XSwgYnVmWzVd LCBidWZbNl0sIGJ1Zls3XSk7CisJYmFzZSA9IChidWZbMV0gPDwgMjQpIHwgKGJ1ZlszXSA8PCAx NikgfCAoYnVmWzVdIDw8IDgpIHwgYnVmWzddOworCisJcG04NjB4X2J1bGtfcmVhZChpbmZvLT5p MmMsIFBNODYwN19SVENfRVhQSVJFMSwgNCwgYnVmKTsKKwlkYXRhID0gKGJ1ZlszXSA8PCAyNCkg fCAoYnVmWzJdIDw8IDE2KSB8IChidWZbMV0gPDwgOCkgfCBidWZbMF07CisJdGlja3MgPSBiYXNl ICsgZGF0YTsKKwlkZXZfZGJnKGluZm8tPmRldiwgImdldCBiYXNlOjB4JWx4LCBSTyBjb3VudDow eCVseCwgdGlja3M6MHglbHhcbiIsCisJCWJhc2UsIGRhdGEsIHRpY2tzKTsKKworCXJ0Y190aW1l X3RvX3RtKHRpY2tzLCAmYWxybS0+dGltZSk7CisJcmV0ID0gcG04NjB4X3JlZ19yZWFkKGluZm8t PmkyYywgUE04NjA3X1JUQzEpOworCWFscm0tPmVuYWJsZWQgPSAocmV0ICYgQUxBUk1fRU4pID8g MSA6IDA7CisJYWxybS0+cGVuZGluZyA9IChyZXQgJiAoQUxBUk0gfCBBTEFSTV9XQUtFVVApKSA/ IDEgOiAwOworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IHBtODYweF9ydGNfc2V0X2FsYXJt KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IHJ0Y193a2Fscm0gKmFscm0pCit7CisJc3RydWN0 IHBtODYweF9ydGNfaW5mbyAqaW5mbyA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOworCXN0cnVjdCBy dGNfdGltZSBub3dfdG0sIGFsYXJtX3RtOworCXVuc2lnbmVkIGxvbmcgdGlja3MsIGJhc2UsIGRh dGE7CisJdW5zaWduZWQgY2hhciBidWZbOF07CisJaW50IG1hc2s7CisKKwlwbTg2MHhfc2V0X2Jp dHMoaW5mby0+aTJjLCBQTTg2MDdfUlRDMSwgQUxBUk1fRU4sIDApOworCisJcG04NjB4X3BhZ2Vf YnVsa19yZWFkKGluZm8tPmkyYywgUkVHMF9BRERSLCA4LCBidWYpOworCWRldl9kYmcoaW5mby0+ ZGV2LCAiJXgtJXgtJXgtJXgtJXgtJXgtJXgtJXhcbiIsIGJ1ZlswXSwgYnVmWzFdLAorCQlidWZb Ml0sIGJ1ZlszXSwgYnVmWzRdLCBidWZbNV0sIGJ1Zls2XSwgYnVmWzddKTsKKwliYXNlID0gKGJ1 ZlsxXSA8PCAyNCkgfCAoYnVmWzNdIDw8IDE2KSB8IChidWZbNV0gPDwgOCkgfCBidWZbN107CisK KwkvKiBsb2FkIDMyLWJpdCByZWFkLW9ubHkgY291bnRlciAqLworCXBtODYweF9idWxrX3JlYWQo aW5mby0+aTJjLCBQTTg2MDdfUlRDX0NPVU5URVIxLCA0LCBidWYpOworCWRhdGEgPSAoYnVmWzNd IDw8IDI0KSB8IChidWZbMl0gPDwgMTYpIHwgKGJ1ZlsxXSA8PCA4KSB8IGJ1ZlswXTsKKwl0aWNr cyA9IGJhc2UgKyBkYXRhOworCWRldl9kYmcoaW5mby0+ZGV2LCAiZ2V0IGJhc2U6MHglbHgsIFJP IGNvdW50OjB4JWx4LCB0aWNrczoweCVseFxuIiwKKwkJYmFzZSwgZGF0YSwgdGlja3MpOworCisJ cnRjX3RpbWVfdG9fdG0odGlja3MsICZub3dfdG0pOworCXJ0Y19uZXh0X2FsYXJtX3RpbWUoJmFs YXJtX3RtLCAmbm93X3RtLCAmYWxybS0+dGltZSk7CisJLyogZ2V0IG5ldyB0aWNrcyBmb3IgYWxh cm0gaW4gMjQgaG91cnMgKi8KKwlydGNfdG1fdG9fdGltZSgmYWxhcm1fdG0sICZ0aWNrcyk7CisJ ZGF0YSA9IHRpY2tzIC0gYmFzZTsKKworCWJ1ZlswXSA9IGRhdGEgJiAweGZmOworCWJ1ZlsxXSA9 IChkYXRhID4+IDgpICYgMHhmZjsKKwlidWZbMl0gPSAoZGF0YSA+PiAxNikgJiAweGZmOworCWJ1 ZlszXSA9IChkYXRhID4+IDI0KSAmIDB4ZmY7CisJcG04NjB4X2J1bGtfd3JpdGUoaW5mby0+aTJj LCBQTTg2MDdfUlRDX0VYUElSRTEsIDQsIGJ1Zik7CisJaWYgKGFscm0tPmVuYWJsZWQpIHsKKwkJ bWFzayA9IEFMQVJNIHwgQUxBUk1fV0FLRVVQIHwgQUxBUk1fRU47CisJCXBtODYweF9zZXRfYml0 cyhpbmZvLT5pMmMsIFBNODYwN19SVEMxLCBtYXNrLCBtYXNrKTsKKwl9IGVsc2UgeworCQltYXNr ID0gQUxBUk0gfCBBTEFSTV9XQUtFVVAgfCBBTEFSTV9FTjsKKwkJcG04NjB4X3NldF9iaXRzKGlu Zm8tPmkyYywgUE04NjA3X1JUQzEsIG1hc2ssCisJCQkJQUxBUk0gfCBBTEFSTV9XQUtFVVApOwor CX0KKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBydGNfY2xhc3Nfb3BzIHBt ODYweF9ydGNfb3BzID0geworCS5yZWFkX3RpbWUJPSBwbTg2MHhfcnRjX3JlYWRfdGltZSwKKwku c2V0X3RpbWUJPSBwbTg2MHhfcnRjX3NldF90aW1lLAorCS5yZWFkX2FsYXJtCT0gcG04NjB4X3J0 Y19yZWFkX2FsYXJtLAorCS5zZXRfYWxhcm0JPSBwbTg2MHhfcnRjX3NldF9hbGFybSwKKwkuYWxh cm1faXJxX2VuYWJsZSA9IHBtODYweF9ydGNfYWxhcm1faXJxX2VuYWJsZSwKK307CisKKyNpZmRl ZiBWUlRDX0NBTElCUkFUSU9OCitzdGF0aWMgdm9pZCBjYWxpYnJhdGVfdnJ0Y193b3JrKHN0cnVj dCB3b3JrX3N0cnVjdCAqd29yaykKK3sKKwlzdHJ1Y3QgcG04NjB4X3J0Y19pbmZvICppbmZvID0g Y29udGFpbmVyX29mKHdvcmssCisJCXN0cnVjdCBwbTg2MHhfcnRjX2luZm8sIGNhbGliX3dvcmsu d29yayk7CisJdW5zaWduZWQgY2hhciBidWZbMl07CisJdW5zaWduZWQgaW50IHN1bSwgZGF0YSwg bWVhbiwgdnJ0Y19zZXQ7CisJaW50IGk7CisKKwlmb3IgKGkgPSAwLCBzdW0gPSAwOyBpIDwgMTY7 IGkrKykgeworCQltc2xlZXAoMTAwKTsKKwkJcG04NjB4X2J1bGtfcmVhZChpbmZvLT5pMmMsIFJF R19WUlRDX01FQVMxLCAyLCBidWYpOworCQlkYXRhID0gKGJ1ZlswXSA8PCA0KSB8IGJ1ZlsxXTsK KwkJZGF0YSA9IChkYXRhICogNTQwMCkgPj4gMTI7CS8qIGNvbnZlcnQgdG8gbXYgKi8KKwkJc3Vt ICs9IGRhdGE7CisJfQorCW1lYW4gPSBzdW0gPj4gNDsKKwl2cnRjX3NldCA9IDI3MDAgKyAoaW5m by0+dnJ0YyAmIDB4MykgKiAyMDA7CisJZGV2X2RiZyhpbmZvLT5kZXYsICJtZWFuOiVkLCB2cnRj X3NldDolZFxuIiwgbWVhbiwgdnJ0Y19zZXQpOworCisJc3VtID0gcG04NjB4X3JlZ19yZWFkKGlu Zm8tPmkyYywgUE04NjA3X1JUQ19NSVNDMSk7CisJZGF0YSA9IHN1bSAmIDB4MzsKKwlpZiAoKG1l YW4gKyAyMDApIDwgdnJ0Y19zZXQpIHsKKwkJLyogdHJ5IGhpZ2hlciB2b2x0YWdlICovCisJCWlm ICgrK2RhdGEgPT0gNCkKKwkJCWdvdG8gb3V0OworCQlkYXRhID0gKHN1bSAmIDB4ZjgpIHwgKGRh dGEgJiAweDMpOworCQlwbTg2MHhfcmVnX3dyaXRlKGluZm8tPmkyYywgUE04NjA3X1JUQ19NSVND MSwgZGF0YSk7CisJfSBlbHNlIGlmICgobWVhbiAtIDIwMCkgPiB2cnRjX3NldCkgeworCQkvKiB0 cnkgbG93ZXIgdm9sdGFnZSAqLworCQlpZiAoZGF0YS0tID09IDApCisJCQlnb3RvIG91dDsKKwkJ ZGF0YSA9IChzdW0gJiAweGY4KSB8IChkYXRhICYgMHgzKTsKKwkJcG04NjB4X3JlZ193cml0ZShp bmZvLT5pMmMsIFBNODYwN19SVENfTUlTQzEsIGRhdGEpOworCX0gZWxzZQorCQlnb3RvIG91dDsK KwlkZXZfZGJnKGluZm8tPmRldiwgInNldCAweCV4IHRvIFJUQ19NSVNDMVxuIiwgZGF0YSk7CisJ LyogdHJpZ2dlciBuZXh0IGNhbGlicmF0aW9uIHNpbmNlIFZSVEMgaXMgdXBkYXRlZCAqLworCXF1 ZXVlX2RlbGF5ZWRfd29yayhpbmZvLT5jaGlwLT5tb25pdG9yX3dxdWV1ZSwgJmluZm8tPmNhbGli X3dvcmssCisJCQkgICBWUlRDX0NBTElCX0lOVEVSVkFMKTsKKwlyZXR1cm47CitvdXQ6CisJLyog ZGlzYWJsZSBtZWFzdXJlbWVudCAqLworCXBtODYweF9zZXRfYml0cyhpbmZvLT5pMmMsIFBNODYw N19NRUFTX0VOMiwgTUVBUzJfVlJUQywgMCk7CisJZGV2X2RiZyhpbmZvLT5kZXYsICJmaW5pc2gg VlJUQyBjYWxpYnJhdGlvblxuIik7CisJcmV0dXJuOworfQorI2VuZGlmCisKK3N0YXRpYyBpbnQg X19kZXZpbml0IHBtODYweF9ydGNfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK K3sKKwlzdHJ1Y3QgcG04NjB4X2NoaXAgKmNoaXAgPSBkZXZfZ2V0X2RydmRhdGEocGRldi0+ZGV2 LnBhcmVudCk7CisJc3RydWN0IHBtODYweF9ydGNfcGRhdGEgKnBkYXRhID0gTlVMTDsKKwlzdHJ1 Y3QgcG04NjB4X3J0Y19pbmZvICppbmZvOworCXN0cnVjdCBtZmRfY2VsbCAqY2VsbDsKKwlzdHJ1 Y3QgcnRjX3RpbWUgdG07CisJdW5zaWduZWQgbG9uZyB0aWNrcyA9IDA7CisJaW50IHJldDsKKwor CWNlbGwgPSBwZGV2LT5kZXYucGxhdGZvcm1fZGF0YTsKKwlpZiAoY2VsbCA9PSBOVUxMKQorCQly ZXR1cm4gLUVOT0RFVjsKKwlwZGF0YSA9IGNlbGwtPm1mZF9kYXRhOworCWlmIChwZGF0YSA9PSBO VUxMKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIk5vIHBsYXRmb3JtIGRhdGEhXG4iKTsKKwkJ cmV0dXJuIC1FSU5WQUw7CisJfQorCisJaW5mbyA9IGt6YWxsb2Moc2l6ZW9mKHN0cnVjdCBwbTg2 MHhfcnRjX2luZm8pLCBHRlBfS0VSTkVMKTsKKwlpZiAoIWluZm8pCisJCXJldHVybiAtRU5PTUVN OworCWluZm8tPmlycSA9IHBsYXRmb3JtX2dldF9pcnEocGRldiwgMCk7CisJaWYgKGluZm8tPmly cSA8IDApIHsKKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiTm8gSVJRIHJlc291cmNlIVxuIik7CisJ CXJldCA9IC1FSU5WQUw7CisJCWdvdG8gb3V0OworCX0KKworCWluZm8tPmNoaXAgPSBjaGlwOwor CWluZm8tPmkyYyA9IChjaGlwLT5pZCA9PSBDSElQX1BNODYwNykgPyBjaGlwLT5jbGllbnQgOiBj aGlwLT5jb21wYW5pb247CisJaW5mby0+ZGV2ID0gJnBkZXYtPmRldjsKKwlkZXZfc2V0X2RydmRh dGEoJnBkZXYtPmRldiwgaW5mbyk7CisKKwlyZXQgPSByZXF1ZXN0X3RocmVhZGVkX2lycShpbmZv LT5pcnEsIE5VTEwsIHJ0Y191cGRhdGVfaGFuZGxlciwKKwkJCQkgICBJUlFGX09ORVNIT1QsICJy dGMiLCBpbmZvKTsKKwlpZiAocmV0IDwgMCkgeworCQlkZXZfZXJyKGNoaXAtPmRldiwgIkZhaWxl ZCB0byByZXF1ZXN0IElSUTogIyVkOiAlZFxuIiwKKwkJCWluZm8tPmlycSwgcmV0KTsKKwkJZ290 byBvdXQ7CisJfQorCisJLyogc2V0IGFkZHJlc3NlcyBvZiAzMi1iaXQgYmFzZSB2YWx1ZSBmb3Ig UlRDIHRpbWUgKi8KKwlwbTg2MHhfcGFnZV9yZWdfd3JpdGUoaW5mby0+aTJjLCBSRUcwX0FERFIs IFJFRzBfREFUQSk7CisJcG04NjB4X3BhZ2VfcmVnX3dyaXRlKGluZm8tPmkyYywgUkVHMV9BRERS LCBSRUcxX0RBVEEpOworCXBtODYweF9wYWdlX3JlZ193cml0ZShpbmZvLT5pMmMsIFJFRzJfQURE UiwgUkVHMl9EQVRBKTsKKwlwbTg2MHhfcGFnZV9yZWdfd3JpdGUoaW5mby0+aTJjLCBSRUczX0FE RFIsIFJFRzNfREFUQSk7CisKKwlyZXQgPSBwbTg2MHhfcnRjX3JlYWRfdGltZSgmcGRldi0+ZGV2 LCAmdG0pOworCWlmIChyZXQgPCAwKSB7CisJCWRldl9lcnIoJnBkZXYtPmRldiwgIkZhaWxlZCB0 byByZWFkIGluaXRpYWwgdGltZS5cbiIpOworCQlnb3RvIG91dF9ydGM7CisJfQorCWlmICgodG0u dG1feWVhciA8IDcwKSB8fCAodG0udG1feWVhciA+IDEzOCkpIHsKKwkJdG0udG1feWVhciA9IDcw OworCQl0bS50bV9tb24gPSAwOworCQl0bS50bV9tZGF5ID0gMTsKKwkJdG0udG1faG91ciA9IDA7 CisJCXRtLnRtX21pbiA9IDA7CisJCXRtLnRtX3NlYyA9IDA7CisJCXJldCA9IHBtODYweF9ydGNf c2V0X3RpbWUoJnBkZXYtPmRldiwgJnRtKTsKKwkJaWYgKHJldCA8IDApIHsKKwkJCWRldl9lcnIo JnBkZXYtPmRldiwgIkZhaWxlZCB0byBzZXQgaW5pdGlhbCB0aW1lLlxuIik7CisJCQlnb3RvIG91 dF9ydGM7CisJCX0KKwl9CisJcnRjX3RtX3RvX3RpbWUoJnRtLCAmdGlja3MpOworCWlmIChwZGF0 YS0+c3luYykgeworCQlwZGF0YS0+c3luYyh0aWNrcyk7CisJCWluZm8tPnN5bmMgPSBwZGF0YS0+ c3luYzsKKwl9CisKKwlpbmZvLT5ydGNfZGV2ID0gcnRjX2RldmljZV9yZWdpc3RlcigiODhwbTg2 MHgtcnRjIiwgJnBkZXYtPmRldiwKKwkJCQkJICAgICZwbTg2MHhfcnRjX29wcywgVEhJU19NT0RV TEUpOworCXJldCA9IFBUUl9FUlIoaW5mby0+cnRjX2Rldik7CisJaWYgKElTX0VSUihpbmZvLT5y dGNfZGV2KSkgeworCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgUlRD IGRldmljZTogJWRcbiIsIHJldCk7CisJCWdvdG8gb3V0X3J0YzsKKwl9CisKKwkvKgorCSAqIGVu YWJsZSBpbnRlcm5hbCBYTyBpbnN0ZWFkIG9mIGludGVybmFsIDMuMjVNSHogY2xvY2sgc2luY2Ug aXQgY2FuCisJICogZnJlZSBydW5uaW5nIGluIFBNSUMgcG93ZXItZG93biBzdGF0ZS4KKwkgKi8K KwlwbTg2MHhfc2V0X2JpdHMoaW5mby0+aTJjLCBQTTg2MDdfUlRDMSwgUlRDMV9VU0VfWE8sIFJU QzFfVVNFX1hPKTsKKworI2lmZGVmIFZSVENfQ0FMSUJSQVRJT04KKwkvKiA8MDA+IC0tIDIuN1Ys IDwwMT4gLS0gMi45ViwgPDEwPiAtLSAzLjFWLCA8MTE+IC0tIDMuM1YgKi8KKwlpbmZvLT52cnRj ID0gcGRhdGEtPnZydGMgJiAweDM7CisJcG04NjB4X3NldF9iaXRzKGluZm8tPmkyYywgUE04NjA3 X01FQVNfRU4yLCBNRUFTMl9WUlRDLCBNRUFTMl9WUlRDKTsKKworCS8qIGNhbGlicmF0ZSBWUlRD ICovCisJSU5JVF9ERUxBWUVEX1dPUksoJmluZm8tPmNhbGliX3dvcmssIGNhbGlicmF0ZV92cnRj X3dvcmspOworCXF1ZXVlX2RlbGF5ZWRfd29yayhjaGlwLT5tb25pdG9yX3dxdWV1ZSwgJmluZm8t PmNhbGliX3dvcmssCisJCQkgICBWUlRDX0NBTElCX0lOVEVSVkFMKTsKKyNlbmRpZgkvKiBWUlRD X0NBTElCUkFUSU9OICovCisJcmV0dXJuIDA7CitvdXRfcnRjOgorCWZyZWVfaXJxKGluZm8tPmly cSwgaW5mbyk7CitvdXQ6CisJa2ZyZWUoaW5mbyk7CisJcmV0dXJuIHJldDsKK30KKworc3RhdGlj IGludCBfX2RldmV4aXQgcG04NjB4X3J0Y19yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKK3sKKwlzdHJ1Y3QgcG04NjB4X3J0Y19pbmZvICppbmZvID0gcGxhdGZvcm1fZ2V0X2Ry dmRhdGEocGRldik7CisKKyNpZmRlZiBWUlRDX0NBTElCUkFUSU9OCisJZmx1c2hfd29ya3F1ZXVl KGluZm8tPmNoaXAtPm1vbml0b3Jfd3F1ZXVlKTsKKwkvKiBkaXNhYmxlIG1lYXN1cmVtZW50ICov CisJcG04NjB4X3NldF9iaXRzKGluZm8tPmkyYywgUE04NjA3X01FQVNfRU4yLCBNRUFTMl9WUlRD LCAwKTsKKyNlbmRpZgkvKiBWUlRDX0NBTElCUkFUSU9OICovCisKKwlwbGF0Zm9ybV9zZXRfZHJ2 ZGF0YShwZGV2LCBOVUxMKTsKKwlydGNfZGV2aWNlX3VucmVnaXN0ZXIoaW5mby0+cnRjX2Rldik7 CisJZnJlZV9pcnEoaW5mby0+aXJxLCBpbmZvKTsKKwlrZnJlZShpbmZvKTsKKwlyZXR1cm4gMDsK K30KKworc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgcG04NjB4X3J0Y19kcml2ZXIgPSB7 CisJLmRyaXZlcgkJPSB7CisJCS5uYW1lCT0gIjg4cG04NjB4LXJ0YyIsCisJCS5vd25lcgk9IFRI SVNfTU9EVUxFLAorCX0sCisJLnByb2JlCQk9IHBtODYweF9ydGNfcHJvYmUsCisJLnJlbW92ZQkJ PSBfX2RldmV4aXRfcChwbTg2MHhfcnRjX3JlbW92ZSksCit9OworCitzdGF0aWMgaW50IF9faW5p dCBwbTg2MHhfcnRjX2luaXQodm9pZCkKK3sKKwlyZXR1cm4gcGxhdGZvcm1fZHJpdmVyX3JlZ2lz dGVyKCZwbTg2MHhfcnRjX2RyaXZlcik7Cit9Cittb2R1bGVfaW5pdChwbTg2MHhfcnRjX2luaXQp OworCitzdGF0aWMgdm9pZCBfX2V4aXQgcG04NjB4X3J0Y19leGl0KHZvaWQpCit7CisJcGxhdGZv cm1fZHJpdmVyX3VucmVnaXN0ZXIoJnBtODYweF9ydGNfZHJpdmVyKTsKK30KK21vZHVsZV9leGl0 KHBtODYweF9ydGNfZXhpdCk7CisKK01PRFVMRV9ERVNDUklQVElPTigiTWFydmVsbCA4OFBNODYw eCBSVEMgZHJpdmVyIik7CitNT0RVTEVfQVVUSE9SKCJIYW9qaWFuIFpodWFuZyA8aGFvamlhbi56 aHVhbmdAbWFydmVsbC5jb20+Iik7CitNT0RVTEVfTElDRU5TRSgiR1BMIik7CmRpZmYgLS1naXQg YS9pbmNsdWRlL2xpbnV4L21mZC84OHBtODYweC5oIGIvaW5jbHVkZS9saW51eC9tZmQvODhwbTg2 MHguaAppbmRleCAwNWY4Njc3Li4zMThhYmE4IDEwMDY0NAotLS0gYS9pbmNsdWRlL2xpbnV4L21m ZC84OHBtODYweC5oCisrKyBiL2luY2x1ZGUvbGludXgvbWZkLzg4cG04NjB4LmgKQEAgLTMzMSw2 ICszMzEsMTEgQEAgc3RydWN0IHBtODYweF9sZWRfcGRhdGEgewogCXVuc2lnbmVkIGxvbmcJZmxh Z3M7CiB9OwogCitzdHJ1Y3QgcG04NjB4X3J0Y19wZGF0YSB7CisJaW50CQkoKnN5bmMpKHVuc2ln bmVkIGludCB0aWNrcyk7CisJaW50CQl2cnRjOworfTsKKwogc3RydWN0IHBtODYweF90b3VjaF9w ZGF0YSB7CiAJaW50CQlncGFkY19wcmViaWFzOwogCWludAkJc2xvdF9jeWNsZTsKQEAgLTM1MCw2 ICszNTUsNyBAQCBzdHJ1Y3QgcG04NjB4X3Bvd2VyX3BkYXRhIHsKIHN0cnVjdCBwbTg2MHhfcGxh dGZvcm1fZGF0YSB7CiAJc3RydWN0IHBtODYweF9iYWNrbGlnaHRfcGRhdGEJKmJhY2tsaWdodDsK IAlzdHJ1Y3QgcG04NjB4X2xlZF9wZGF0YQkJKmxlZDsKKwlzdHJ1Y3QgcG04NjB4X3J0Y19wZGF0 YQkJKnJ0YzsKIAlzdHJ1Y3QgcG04NjB4X3RvdWNoX3BkYXRhCSp0b3VjaDsKIAlzdHJ1Y3QgcG04 NjB4X3Bvd2VyX3BkYXRhCSpwb3dlcjsKIAlzdHJ1Y3QgcmVndWxhdG9yX2luaXRfZGF0YQkqcmVn dWxhdG9yOwotLSAKMS41LjYuNQoK --_002_25B60CDC2F704E4E9D88FFD52780CB4C05CEAFFBB7SCVEXCH1marve_-- -- 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/