From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, MIME_BASE64_TEXT,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, UNWANTED_LANGUAGE_BODY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6F0F9C7619C for ; Mon, 17 Feb 2020 04:13:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 2C90821744 for ; Mon, 17 Feb 2020 04:13:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="dWvdZLqB" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728033AbgBQENY (ORCPT ); Sun, 16 Feb 2020 23:13:24 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:44511 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727953AbgBQENU (ORCPT ); Sun, 16 Feb 2020 23:13:20 -0500 X-UUID: 7ecbd445ffae48f6971e1a331c13610b-20200217 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:CC:To:From; bh=e3oElr3gicN7QFfheHk5xORjiGuPjtEq84x6gTNgrsM=; b=dWvdZLqBGft6KhMeOvRt0L6KlB3Yfp+j4R7H3vns5LQROU5BKREjCdapnURYpkiGe+Wxej5GohoBvoM11DY/mBgk6D+TYXEdUqHdDmU5UcMyIIhLTg+zytwDkwBYl7ZXwqGP5ELj/l6OwMNxYCLYG/7YYRQUbtw4eTj16IV7uo8=; X-UUID: 7ecbd445ffae48f6971e1a331c13610b-20200217 Received: from mtkexhb02.mediatek.inc [(172.21.101.103)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1438797571; Mon, 17 Feb 2020 12:13:17 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by mtkmbs05n2.mediatek.inc (172.21.101.140) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Mon, 17 Feb 2020 12:12:23 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by mtkcas08.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Mon, 17 Feb 2020 12:13:02 +0800 From: Chun-Hung Wu To: Chaotian Jing , Ulf Hansson , Rob Herring , Mark Rutland , Matthias Brugger , Linus Walleij , Pavel Machek , Kate Stewart , Greg Kroah-Hartman , Martin Blumenstingl , Pan Bian , Thomas Gleixner , Allison Randal , Mathieu Malaterre , Stanley Chu , Kuohong Wang CC: , , , , , , , Chun-Hung Wu Subject: [PATCH v2 3/4] [3/4] mmc: mediatek: command queue support Date: Mon, 17 Feb 2020 12:13:09 +0800 Message-ID: <1581912790-19382-4-git-send-email-chun-hung.wu@mediatek.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1581912790-19382-1-git-send-email-chun-hung.wu@mediatek.com> References: <1581912790-19382-1-git-send-email-chun-hung.wu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org U3VwcG9ydCBjb21tYW5kIHF1ZXVlIGZvciBtdDY3NzkgcGxhdGZvcm0uDQphLiBBZGQgbXNkY19z ZXRfYnVzeV90aW1lb3V0KCkgdG8gY2FsY3VsYXRlIGVtbWMgd3JpdGUgdGltZW91dA0KYi4gQ29u bmVjdCBtdGsgbXNkYyBkcml2ZXIgdG8gY3FoY2kgZHJpdmVyIHRocm91Z2gNCiAgIGhvc3QtPmNx X2hvc3QtPm9wcyA9ICZtc2RjX2NtZHFfb3BzOw0KYy4gbXNkY19jbWRxX2lycSgpIHdpbGwgbGlu ayB1cCB3aXRoIGNxY2hpX2lycSgpLiBCZXNpZGVzLCBpdCBwcm92aWRlcw0KICAgbW9yZSBpcnEg ZXJyb3IgbWVzc2FnZXMgbGlrZSBSU1BDUkNFUlIvQ01EVE8vREFUQUNSQ0VSUi9EQVRUTU8uDQpk LiBVc2UgdGhlIG9wdGlvbnMgYmVsb3cgdG8gc2VwYXJhdGUgc3VwcG9ydCBmb3IgQ1FIQ0kgb3Ig bm90LCBiZWNhdXNlDQogICBzb21lIG9mIG91ciBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0IENR SENJIGhlbmNlIG5vIGtlcm5lbCBvcHRpb246DQogICBDT05GSUdfTU1DX0NRSENJLg0KICAgI2lm IElTX0VOQUJMRUQoQ09ORklHX01NQ19DUUhDSSkNCiAgIFhYWCAvL1N1cHBvcnQgQ1FIQ0kNCiAg ICNlbHNlDQogICBYWFggLy9Ob3Qgc3VwcG9ydCBDUUhDSQ0KICAgI2VuZGlmDQoNCkNoYW5nZS1J ZDogSTU2Yjg2NmZhNDA5N2EzYzBiZWU3N2Y1MzQ4NmM0NzBlNGYxOTQ0YjkNCkZlYXR1cmU6DQpT aWduZWQtb2ZmLWJ5OiBDaHVuLUh1bmcgV3UgPGNodW4taHVuZy53dUBtZWRpYXRlay5jb20+DQot LS0NCiBkcml2ZXJzL21tYy9ob3N0L210ay1zZC5jIHwgMTE5ICsrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysNCiAxIGZpbGUgY2hhbmdlZCwgMTE5IGluc2VydGlv bnMoKykNCg0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvbW1jL2hvc3QvbXRrLXNkLmMgYi9kcml2ZXJz L21tYy9ob3N0L210ay1zZC5jDQppbmRleCAxMjdiMGNmLi5iMTMyMzk3IDEwMDY0NA0KLS0tIGEv ZHJpdmVycy9tbWMvaG9zdC9tdGstc2QuYw0KKysrIGIvZHJpdmVycy9tbWMvaG9zdC9tdGstc2Qu Yw0KQEAgLTMxLDYgKzMxLDggQEANCiAjaW5jbHVkZSA8bGludXgvbW1jL3NkaW8uaD4NCiAjaW5j bHVkZSA8bGludXgvbW1jL3Nsb3QtZ3Bpby5oPg0KIA0KKyNpbmNsdWRlICJjcWhjaS5oIg0KKw0K ICNkZWZpbmUgTUFYX0JEX05VTSAgICAgICAgICAxMDI0DQogDQogLyotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSovDQpAQCAtMTUxLDYgKzE1Myw3IEBADQogI2RlZmluZSBNU0RDX0lOVF9ETUFfQkRDU0VSUiAg ICAoMHgxIDw8IDE3KQkvKiBXMUMgKi8NCiAjZGVmaW5lIE1TRENfSU5UX0RNQV9HUERDU0VSUiAg ICgweDEgPDwgMTgpCS8qIFcxQyAqLw0KICNkZWZpbmUgTVNEQ19JTlRfRE1BX1BST1RFQ1QgICAg KDB4MSA8PCAxOSkJLyogVzFDICovDQorI2RlZmluZSBNU0RDX0lOVF9DTURRICAgICAgICAgICAo MHgxIDw8IDI4KQkvKiBXMUMgKi8NCiANCiAvKiBNU0RDX0lOVEVOIG1hc2sgKi8NCiAjZGVmaW5l IE1TRENfSU5URU5fTU1DSVJRICAgICAgICgweDEgPDwgMCkJLyogUlcgKi8NCkBAIC0xODEsNiAr MTg0LDcgQEANCiAvKiBTRENfQ0ZHIG1hc2sgKi8NCiAjZGVmaW5lIFNEQ19DRkdfU0RJT0lOVFdL VVAgICAgICgweDEgPDwgMCkJLyogUlcgKi8NCiAjZGVmaW5lIFNEQ19DRkdfSU5TV0tVUCAgICAg ICAgICgweDEgPDwgMSkJLyogUlcgKi8NCisjZGVmaW5lIFNEQ19DRkdfV1JEVE9DICAgICAgICAg ICgweDFmZmYgIDw8IDIpICAvKiBSVyAqLw0KICNkZWZpbmUgU0RDX0NGR19CVVNXSURUSCAgICAg ICAgKDB4MyA8PCAxNikJLyogUlcgKi8NCiAjZGVmaW5lIFNEQ19DRkdfU0RJTyAgICAgICAgICAg ICgweDEgPDwgMTkpCS8qIFJXICovDQogI2RlZmluZSBTRENfQ0ZHX1NESU9JREUgICAgICAgICAo MHgxIDw8IDIwKQkvKiBSVyAqLw0KQEAgLTIyOCw2ICsyMzIsNyBAQA0KICNkZWZpbmUgTVNEQ19Q QVRDSF9CSVRfU1BDUFVTSCAgICAoMHgxIDw8IDI5KQkvKiBSVyAqLw0KICNkZWZpbmUgTVNEQ19Q QVRDSF9CSVRfREVDUkNUTU8gICAoMHgxIDw8IDMwKQkvKiBSVyAqLw0KIA0KKyNkZWZpbmUgTVNE Q19QQjFfQlVTWV9DSEVDS19TRUwgICAoMHgxIDw8IDcpICAgIC8qIFJXICovDQogI2RlZmluZSBN U0RDX1BBVENIX0JJVDFfU1RPUF9ETFkgICgweGYgPDwgOCkgICAgLyogUlcgKi8NCiANCiAjZGVm aW5lIE1TRENfUEFUQ0hfQklUMl9DRkdSRVNQICAgKDB4MSA8PCAxNSkgICAvKiBSVyAqLw0KQEAg LTQzMSw2ICs0MzYsNyBAQCBzdHJ1Y3QgbXNkY19ob3N0IHsNCiAJc3RydWN0IG1zZGNfc2F2ZV9w YXJhIHNhdmVfcGFyYTsgLyogdXNlZCB3aGVuIGdhdGUgSENMSyAqLw0KIAlzdHJ1Y3QgbXNkY190 dW5lX3BhcmEgZGVmX3R1bmVfcGFyYTsgLyogZGVmYXVsdCB0dW5lIHNldHRpbmcgKi8NCiAJc3Ry dWN0IG1zZGNfdHVuZV9wYXJhIHNhdmVkX3R1bmVfcGFyYTsgLyogdHVuZSByZXN1bHQgb2YgQ01E MjEvQ01EMTkgKi8NCisJc3RydWN0IGNxaGNpX2hvc3QgKmNxX2hvc3Q7DQogfTsNCiANCiBzdGF0 aWMgY29uc3Qgc3RydWN0IG10a19tbWNfY29tcGF0aWJsZSBtdDgxMzVfY29tcGF0ID0gew0KQEAg LTUyNyw2ICs1MzMsMTggQEAgc3RydWN0IG1zZGNfaG9zdCB7DQogCS51c2VfaW50ZXJuYWxfY2Qg PSB0cnVlLA0KIH07DQogDQorc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfbW1jX2NvbXBhdGlibGUg bXQ2Nzc5X2NvbXBhdCA9IHsNCisJLmNsa19kaXZfYml0cyA9IDEyLA0KKwkuaHM0MDBfdHVuZSA9 IGZhbHNlLA0KKwkucGFkX3R1bmVfcmVnID0gTVNEQ19QQURfVFVORTAsDQorCS5hc3luY19maWZv ID0gdHJ1ZSwNCisJLmRhdGFfdHVuZSA9IHRydWUsDQorCS5idXN5X2NoZWNrID0gdHJ1ZSwNCisJ LnN0b3BfY2xrX2ZpeCA9IHRydWUsDQorCS5lbmhhbmNlX3J4ID0gdHJ1ZSwNCisJLnN1cHBvcnRf NjRnID0gdHJ1ZSwNCit9Ow0KKw0KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG1z ZGNfb2ZfaWRzW10gPSB7DQogCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTM1LW1tYyIs IC5kYXRhID0gJm10ODEzNV9jb21wYXR9LA0KIAl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10 ODE3My1tbWMiLCAuZGF0YSA9ICZtdDgxNzNfY29tcGF0fSwNCkBAIC01MzYsNiArNTU0LDcgQEAg c3RydWN0IG1zZGNfaG9zdCB7DQogCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ3NjIyLW1t YyIsIC5kYXRhID0gJm10NzYyMl9jb21wYXR9LA0KIAl7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVr LG10ODUxNi1tbWMiLCAuZGF0YSA9ICZtdDg1MTZfY29tcGF0fSwNCiAJeyAuY29tcGF0aWJsZSA9 ICJtZWRpYXRlayxtdDc2MjAtbW1jIiwgLmRhdGEgPSAmbXQ3NjIwX2NvbXBhdH0sDQorCXsgLmNv bXBhdGlibGUgPSAibWVkaWF0ZWssbXQ2Nzc5LW1tYyIsIC5kYXRhID0gJm10Njc3OV9jb21wYXR9 LA0KIAl7fQ0KIH07DQogTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbXNkY19vZl9pZHMpOw0KQEAg LTczOSw2ICs3NTgsMTUgQEAgc3RhdGljIHZvaWQgbXNkY19zZXRfdGltZW91dChzdHJ1Y3QgbXNk Y19ob3N0ICpob3N0LCB1NjQgbnMsIHU2NCBjbGtzKQ0KIAkJICAgICAgKHUzMikodGltZW91dCA+ IDI1NSA/IDI1NSA6IHRpbWVvdXQpKTsNCiB9DQogDQorc3RhdGljIHZvaWQgbXNkY19zZXRfYnVz eV90aW1lb3V0KHN0cnVjdCBtc2RjX2hvc3QgKmhvc3QsIHU2NCBucywgdTY0IGNsa3MpDQorew0K Kwl1NjQgdGltZW91dDsNCisNCisJdGltZW91dCA9IG1zZGNfdGltZW91dF9jYWwoaG9zdCwgbnMs IGNsa3MpOw0KKwlzZHJfc2V0X2ZpZWxkKGhvc3QtPmJhc2UgKyBTRENfQ0ZHLCBTRENfQ0ZHX1dS RFRPQywNCisJCSAgICAgICh1MzIpKHRpbWVvdXQgPiA4MTkxID8gODE5MSA6IHRpbWVvdXQpKTsN Cit9DQorDQogc3RhdGljIHZvaWQgbXNkY19nYXRlX2Nsb2NrKHN0cnVjdCBtc2RjX2hvc3QgKmhv c3QpDQogew0KIAljbGtfZGlzYWJsZV91bnByZXBhcmUoaG9zdC0+c3JjX2Nsa19jZyk7DQpAQCAt MTQyNSw2ICsxNDUzLDM2IEBAIHN0YXRpYyB2b2lkIG1zZGNfZW5hYmxlX3NkaW9faXJxKHN0cnVj dCBtbWNfaG9zdCAqbW1jLCBpbnQgZW5iKQ0KIAkJcG1fcnVudGltZV9wdXRfbm9pZGxlKGhvc3Qt PmRldik7DQogfQ0KIA0KKyNpZiBJU19FTkFCTEVEKENPTkZJR19NTUNfQ1FIQ0kpDQorc3RhdGlj IGlycXJldHVybl90IG1zZGNfY21kcV9pcnEoc3RydWN0IG1zZGNfaG9zdCAqaG9zdCwgdTMyIGlu dHN0cykNCit7DQorCWludCBjbWRfZXJyID0gMCwgZGF0X2VyciA9IDA7DQorDQorCWlmIChpbnRz dHMgJiBNU0RDX0lOVF9SU1BDUkNFUlIpIHsNCisJCWNtZF9lcnIgPSAodW5zaWduZWQgaW50KS1F SUxTRVE7DQorCQlkZXZfZXJyKGhvc3QtPmRldiwgIiVzOiBDTUQgQ1JDIEVSUiIsIF9fZnVuY19f KTsNCisJfSBlbHNlIGlmIChpbnRzdHMgJiBNU0RDX0lOVF9DTURUTU8pIHsNCisJCWNtZF9lcnIg PSAodW5zaWduZWQgaW50KS1FVElNRURPVVQ7DQorCQlkZXZfZXJyKGhvc3QtPmRldiwgIiVzOiBD TUQgVElNRU9VVCBFUlIiLCBfX2Z1bmNfXyk7DQorCX0NCisNCisJaWYgKGludHN0cyAmIE1TRENf SU5UX0RBVENSQ0VSUikgew0KKwkJZGF0X2VyciA9ICh1bnNpZ25lZCBpbnQpLUVJTFNFUTsNCisJ CWRldl9lcnIoaG9zdC0+ZGV2LCAiJXM6IERBVEEgQ1JDIEVSUiIsIF9fZnVuY19fKTsNCisJfSBl bHNlIGlmIChpbnRzdHMgJiBNU0RDX0lOVF9EQVRUTU8pIHsNCisJCWRhdF9lcnIgPSAodW5zaWdu ZWQgaW50KS1FVElNRURPVVQ7DQorCQlkZXZfZXJyKGhvc3QtPmRldiwgIiVzOiBEQVRBIFRJTUVP VVQgRVJSIiwgX19mdW5jX18pOw0KKwl9DQorDQorCWlmIChjbWRfZXJyIHx8IGRhdF9lcnIpIHsN CisJCWRldl9lcnIoaG9zdC0+ZGV2LCAiY21kX2VyciA9ICVkLCBkYXRfZXJyID0lZCwgaW50c3Rz ID0gMHgleCIsDQorCQkJY21kX2VyciwgZGF0X2VyciwgaW50c3RzKTsNCisJfQ0KKw0KKwlyZXR1 cm4gY3FoY2lfaXJxKGhvc3QtPm1tYywgMCwgY21kX2VyciwgZGF0X2Vycik7DQorfQ0KKyNlbmRp Zg0KKw0KIHN0YXRpYyBpcnFyZXR1cm5fdCBtc2RjX2lycShpbnQgaXJxLCB2b2lkICpkZXZfaWQp DQogew0KIAlzdHJ1Y3QgbXNkY19ob3N0ICpob3N0ID0gKHN0cnVjdCBtc2RjX2hvc3QgKikgZGV2 X2lkOw0KQEAgLTE0NjEsNiArMTUxOSwxNiBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgbXNkY19pcnEo aW50IGlycSwgdm9pZCAqZGV2X2lkKQ0KIAkJaWYgKCEoZXZlbnRzICYgKGV2ZW50X21hc2sgJiB+ TVNEQ19JTlRfU0RJT0lSUSkpKQ0KIAkJCWJyZWFrOw0KIA0KKyNpZiBJU19FTkFCTEVEKENPTkZJ R19NTUNfQ1FIQ0kpDQorCQlpZiAoKGhvc3QtPm1tYy0+Y2FwczIgJiBNTUNfQ0FQMl9DUUUpICYm DQorCQkgICAgKGV2ZW50cyAmIE1TRENfSU5UX0NNRFEpKSB7DQorCQkJbXNkY19jbWRxX2lycSho b3N0LCBldmVudHMpOw0KKwkJCS8qIGNsZWFyIGludGVycnVwdHMgKi8NCisJCQl3cml0ZWwoZXZl bnRzLCBob3N0LT5iYXNlICsgTVNEQ19JTlQpOw0KKwkJCXJldHVybiBJUlFfSEFORExFRDsNCisJ CX0NCisjZW5kaWYNCisNCiAJCWlmICghbXJxKSB7DQogCQkJZGV2X2Vycihob3N0LT5kZXYsDQog CQkJCSIlczogTVJRPU5VTEw7IGV2ZW50cz0lMDhYOyBldmVudF9tYXNrPSUwOFhcbiIsDQpAQCAt MjE0NCw2ICsyMjEyLDM2IEBAIHN0YXRpYyBpbnQgbXNkY19nZXRfY2Qoc3RydWN0IG1tY19ob3N0 ICptbWMpDQogCQlyZXR1cm4gIXZhbDsNCiB9DQogDQorc3RhdGljIHZvaWQgbXNkY19jcWVfZW5h YmxlKHN0cnVjdCBtbWNfaG9zdCAqbW1jKQ0KK3sNCisJc3RydWN0IG1zZGNfaG9zdCAqaG9zdCA9 IG1tY19wcml2KG1tYyk7DQorDQorCS8qIGVuYWJsZSBjbWRxIGlycSAqLw0KKwl3cml0ZWwoTVNE Q19JTlRfQ01EUSwgaG9zdC0+YmFzZSArIE1TRENfSU5URU4pOw0KKwkvKiBlbmFibGUgYnVzeSBj aGVjayAqLw0KKwlzZHJfc2V0X2JpdHMoaG9zdC0+YmFzZSArIE1TRENfUEFUQ0hfQklUMSwgTVNE Q19QQjFfQlVTWV9DSEVDS19TRUwpOw0KKwkvKiBkZWZhdWx0IHdyaXRlIGRhdGEgLyBidXN5IHRp bWVvdXQgMjBzICovDQorCW1zZGNfc2V0X2J1c3lfdGltZW91dChob3N0LCAyMCAqIDEwMDAwMDAw MDBVTEwsIDApOw0KKwkvKiBkZWZhdWx0IHJlYWQgZGF0YSB0aW1lb3V0IDFzICovDQorCW1zZGNf c2V0X3RpbWVvdXQoaG9zdCwgMTAwMDAwMDAwMFVMTCwgMCk7DQorfQ0KKw0KK3ZvaWQgbXNkY19j cWVfZGlzYWJsZShzdHJ1Y3QgbW1jX2hvc3QgKm1tYywgYm9vbCByZWNvdmVyeSkNCit7DQorCXN0 cnVjdCBtc2RjX2hvc3QgKmhvc3QgPSBtbWNfcHJpdihtbWMpOw0KKw0KKwkvKiBkaXNhYmxlIGNt ZHEgaXJxICovDQorCXNkcl9jbHJfYml0cyhob3N0LT5iYXNlICsgTVNEQ19JTlRFTiwgTVNEQ19J TlRfQ01EUSk7DQorCS8qIGRpc2FibGUgYnVzeSBjaGVjayAqLw0KKwlzZHJfY2xyX2JpdHMoaG9z dC0+YmFzZSArIE1TRENfUEFUQ0hfQklUMSwgTVNEQ19QQjFfQlVTWV9DSEVDS19TRUwpOw0KKw0K KwlpZiAocmVjb3ZlcnkpIHsNCisJCXNkcl9zZXRfZmllbGQoaG9zdC0+YmFzZSArIE1TRENfRE1B X0NUUkwsDQorCQkJICAgICAgTVNEQ19ETUFfQ1RSTF9TVE9QLCAxKTsNCisJCW1zZGNfcmVzZXRf aHcoaG9zdCk7DQorCX0NCit9DQorDQogc3RhdGljIGNvbnN0IHN0cnVjdCBtbWNfaG9zdF9vcHMg bXRfbXNkY19vcHMgPSB7DQogCS5wb3N0X3JlcSA9IG1zZGNfcG9zdF9yZXEsDQogCS5wcmVfcmVx ID0gbXNkY19wcmVfcmVxLA0KQEAgLTIxNjAsNiArMjI1OCwxMSBAQCBzdGF0aWMgaW50IG1zZGNf Z2V0X2NkKHN0cnVjdCBtbWNfaG9zdCAqbW1jKQ0KIAkuaHdfcmVzZXQgPSBtc2RjX2h3X3Jlc2V0 LA0KIH07DQogDQorc3RhdGljIGNvbnN0IHN0cnVjdCBjcWhjaV9ob3N0X29wcyBtc2RjX2NtZHFf b3BzID0gew0KKwkuZW5hYmxlICAgICAgICAgPSBtc2RjX2NxZV9lbmFibGUsDQorCS5kaXNhYmxl ICAgICAgICA9IG1zZGNfY3FlX2Rpc2FibGUsDQorfTsNCisNCiBzdGF0aWMgdm9pZCBtc2RjX29m X3Byb3BlcnR5X3BhcnNlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsDQogCQkJCSAgIHN0 cnVjdCBtc2RjX2hvc3QgKmhvc3QpDQogew0KQEAgLTIzMTEsNiArMjQxNCwyMiBAQCBzdGF0aWMg aW50IG1zZGNfZHJ2X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQogCQlob3N0 LT5kbWFfbWFzayA9IERNQV9CSVRfTUFTSygzMik7DQogCW1tY19kZXYobW1jKS0+ZG1hX21hc2sg PSAmaG9zdC0+ZG1hX21hc2s7DQogDQorI2lmIElTX0VOQUJMRUQoQ09ORklHX01NQ19DUUhDSSkN CisJaWYgKG1tYy0+Y2FwczIgJiBNTUNfQ0FQMl9DUUUpIHsNCisJCWhvc3QtPmNxX2hvc3QgPSBk ZXZtX2t6YWxsb2MoaG9zdC0+bW1jLT5wYXJlbnQsDQorCQkJCQkgICAgIHNpemVvZigqaG9zdC0+ Y3FfaG9zdCksDQorCQkJCQkgICAgIEdGUF9LRVJORUwpOw0KKwkJaG9zdC0+Y3FfaG9zdC0+Y2Fw cyB8PSBDUUhDSV9UQVNLX0RFU0NfU1pfMTI4Ow0KKwkJaG9zdC0+Y3FfaG9zdC0+bW1pbyA9IGhv c3QtPmJhc2UgKyAweDgwMDsNCisJCWhvc3QtPmNxX2hvc3QtPm9wcyA9ICZtc2RjX2NtZHFfb3Bz Ow0KKwkJY3FoY2lfaW5pdChob3N0LT5jcV9ob3N0LCBtbWMsIHRydWUpOw0KKwkJbW1jLT5tYXhf c2VncyA9IDEyODsNCisJCS8qIGNxaGNpIDE2Yml0IGxlbmd0aCAqLw0KKwkJLyogMCBzaXplLCBt ZWFucyA2NTUzNiBzbyB3ZSBkb24ndCBoYXZlIHRvIC0xIGhlcmUgKi8NCisJCW1tYy0+bWF4X3Nl Z19zaXplID0gNjQgKiAxMDI0Ow0KKwl9DQorI2VuZGlmDQorDQogCWhvc3QtPnRpbWVvdXRfY2xr cyA9IDMgKiAxMDQ4NTc2Ow0KIAlob3N0LT5kbWEuZ3BkID0gZG1hX2FsbG9jX2NvaGVyZW50KCZw ZGV2LT5kZXYsDQogCQkJCTIgKiBzaXplb2Yoc3RydWN0IG10X2dwZG1hX2Rlc2MpLA0KLS0gDQox LjkuMQ0K