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=unavailable 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 B541DC7619D for ; Mon, 17 Feb 2020 06:56:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 86E8020679 for ; Mon, 17 Feb 2020 06:56:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="mmusvzfo" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726756AbgBQG4u (ORCPT ); Mon, 17 Feb 2020 01:56:50 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:52151 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726620AbgBQG4u (ORCPT ); Mon, 17 Feb 2020 01:56:50 -0500 X-UUID: bdad2fdd2e2a4ef5b244a6cd093c1320-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=VrmygX1t75VJVJnpZMTf/c4INrvk7cvItYDMJAmprqA=; b=mmusvzfo0Um+ZJ6wpGVqXc+QZ2mmgQR6WRuyaOJj6UCfs8WAOWfsmu4DvQ2y2sMQ37ppe2RzJyerf57/yxEXy94VtFS+Npv68DoKlWF2VGfRs+6gBLaWa7duiViWrcZXavQsYmOm41dU3FuosSDfAVt0F0hY6DbTCPVTu8XQKgk=; X-UUID: bdad2fdd2e2a4ef5b244a6cd093c1320-20200217 Received: from mtkcas06.mediatek.inc [(172.21.101.30)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.10 Build 0809 with TLS) with ESMTP id 1904056328; Mon, 17 Feb 2020 14:56:43 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs05n2.mediatek.inc (172.21.101.140) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Mon, 17 Feb 2020 14:55:50 +0800 Received: from mtkswgap22.mediatek.inc (172.21.77.33) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1395.4 via Frontend Transport; Mon, 17 Feb 2020 14:54:44 +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 v3 3/4] mmc: mediatek: command queue support Date: Mon, 17 Feb 2020 14:56:03 +0800 Message-ID: <1581922564-24914-4-git-send-email-chun-hung.wu@mediatek.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1581922564-24914-1-git-send-email-chun-hung.wu@mediatek.com> References: <1581922564-24914-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-mmc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org U3VwcG9ydCBjb21tYW5kIHF1ZXVlIGZvciBtdDY3NzkgcGxhdGZvcm0uDQphLiBBZGQgbXNkY19z ZXRfYnVzeV90aW1lb3V0KCkgdG8gY2FsY3VsYXRlIGVtbWMgd3JpdGUgdGltZW91dA0KYi4gQ29u bmVjdCBtdGsgbXNkYyBkcml2ZXIgdG8gY3FoY2kgZHJpdmVyIHRocm91Z2gNCiAgIGhvc3QtPmNx X2hvc3QtPm9wcyA9ICZtc2RjX2NtZHFfb3BzOw0KYy4gbXNkY19jbWRxX2lycSgpIHdpbGwgbGlu ayB1cCB3aXRoIGNxY2hpX2lycSgpLiBCZXNpZGVzLCBpdCBwcm92aWRlcw0KICAgbW9yZSBpcnEg ZXJyb3IgbWVzc2FnZXMgbGlrZSBSU1BDUkNFUlIvQ01EVE8vREFUQUNSQ0VSUi9EQVRUTU8uDQpk LiBVc2UgdGhlIG9wdGlvbnMgYmVsb3cgdG8gc2VwYXJhdGUgc3VwcG9ydCBmb3IgQ1FIQ0kgb3Ig bm90LCBiZWNhdXNlDQogICBzb21lIG9mIG91ciBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0IENR SENJIGhlbmNlIG5vIGtlcm5lbCBvcHRpb246DQogICBDT05GSUdfTU1DX0NRSENJLg0KICAgI2lm IElTX0VOQUJMRUQoQ09ORklHX01NQ19DUUhDSSkNCiAgIFhYWCAvL1N1cHBvcnQgQ1FIQ0kNCiAg ICNlbHNlDQogICBYWFggLy9Ob3Qgc3VwcG9ydCBDUUhDSQ0KICAgI2VuZGlmDQoNClNpZ25lZC1v ZmYtYnk6IENodW4tSHVuZyBXdSA8Y2h1bi1odW5nLnd1QG1lZGlhdGVrLmNvbT4NCi0tLQ0KIGRy aXZlcnMvbW1jL2hvc3QvbXRrLXNkLmMgfCAxMTkgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKw0KIDEgZmlsZSBjaGFuZ2VkLCAxMTkgaW5zZXJ0aW9ucygrKQ0K DQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC9tdGstc2QuYyBiL2RyaXZlcnMvbW1jL2hv c3QvbXRrLXNkLmMNCmluZGV4IDEyN2IwY2YuLmIxMzIzOTcgMTAwNjQ0DQotLS0gYS9kcml2ZXJz L21tYy9ob3N0L210ay1zZC5jDQorKysgYi9kcml2ZXJzL21tYy9ob3N0L210ay1zZC5jDQpAQCAt MzEsNiArMzEsOCBAQA0KICNpbmNsdWRlIDxsaW51eC9tbWMvc2Rpby5oPg0KICNpbmNsdWRlIDxs aW51eC9tbWMvc2xvdC1ncGlvLmg+DQogDQorI2luY2x1ZGUgImNxaGNpLmgiDQorDQogI2RlZmlu ZSBNQVhfQkRfTlVNICAgICAgICAgIDEwMjQNCiANCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8NCkBA IC0xNTEsNiArMTUzLDcgQEANCiAjZGVmaW5lIE1TRENfSU5UX0RNQV9CRENTRVJSICAgICgweDEg PDwgMTcpCS8qIFcxQyAqLw0KICNkZWZpbmUgTVNEQ19JTlRfRE1BX0dQRENTRVJSICAgKDB4MSA8 PCAxOCkJLyogVzFDICovDQogI2RlZmluZSBNU0RDX0lOVF9ETUFfUFJPVEVDVCAgICAoMHgxIDw8 IDE5KQkvKiBXMUMgKi8NCisjZGVmaW5lIE1TRENfSU5UX0NNRFEgICAgICAgICAgICgweDEgPDwg MjgpCS8qIFcxQyAqLw0KIA0KIC8qIE1TRENfSU5URU4gbWFzayAqLw0KICNkZWZpbmUgTVNEQ19J TlRFTl9NTUNJUlEgICAgICAgKDB4MSA8PCAwKQkvKiBSVyAqLw0KQEAgLTE4MSw2ICsxODQsNyBA QA0KIC8qIFNEQ19DRkcgbWFzayAqLw0KICNkZWZpbmUgU0RDX0NGR19TRElPSU5UV0tVUCAgICAg KDB4MSA8PCAwKQkvKiBSVyAqLw0KICNkZWZpbmUgU0RDX0NGR19JTlNXS1VQICAgICAgICAgKDB4 MSA8PCAxKQkvKiBSVyAqLw0KKyNkZWZpbmUgU0RDX0NGR19XUkRUT0MgICAgICAgICAgKDB4MWZm ZiAgPDwgMikgIC8qIFJXICovDQogI2RlZmluZSBTRENfQ0ZHX0JVU1dJRFRIICAgICAgICAoMHgz IDw8IDE2KQkvKiBSVyAqLw0KICNkZWZpbmUgU0RDX0NGR19TRElPICAgICAgICAgICAgKDB4MSA8 PCAxOSkJLyogUlcgKi8NCiAjZGVmaW5lIFNEQ19DRkdfU0RJT0lERSAgICAgICAgICgweDEgPDwg MjApCS8qIFJXICovDQpAQCAtMjI4LDYgKzIzMiw3IEBADQogI2RlZmluZSBNU0RDX1BBVENIX0JJ VF9TUENQVVNIICAgICgweDEgPDwgMjkpCS8qIFJXICovDQogI2RlZmluZSBNU0RDX1BBVENIX0JJ VF9ERUNSQ1RNTyAgICgweDEgPDwgMzApCS8qIFJXICovDQogDQorI2RlZmluZSBNU0RDX1BCMV9C VVNZX0NIRUNLX1NFTCAgICgweDEgPDwgNykgICAgLyogUlcgKi8NCiAjZGVmaW5lIE1TRENfUEFU Q0hfQklUMV9TVE9QX0RMWSAgKDB4ZiA8PCA4KSAgICAvKiBSVyAqLw0KIA0KICNkZWZpbmUgTVNE Q19QQVRDSF9CSVQyX0NGR1JFU1AgICAoMHgxIDw8IDE1KSAgIC8qIFJXICovDQpAQCAtNDMxLDYg KzQzNiw3IEBAIHN0cnVjdCBtc2RjX2hvc3Qgew0KIAlzdHJ1Y3QgbXNkY19zYXZlX3BhcmEgc2F2 ZV9wYXJhOyAvKiB1c2VkIHdoZW4gZ2F0ZSBIQ0xLICovDQogCXN0cnVjdCBtc2RjX3R1bmVfcGFy YSBkZWZfdHVuZV9wYXJhOyAvKiBkZWZhdWx0IHR1bmUgc2V0dGluZyAqLw0KIAlzdHJ1Y3QgbXNk Y190dW5lX3BhcmEgc2F2ZWRfdHVuZV9wYXJhOyAvKiB0dW5lIHJlc3VsdCBvZiBDTUQyMS9DTUQx OSAqLw0KKwlzdHJ1Y3QgY3FoY2lfaG9zdCAqY3FfaG9zdDsNCiB9Ow0KIA0KIHN0YXRpYyBjb25z dCBzdHJ1Y3QgbXRrX21tY19jb21wYXRpYmxlIG10ODEzNV9jb21wYXQgPSB7DQpAQCAtNTI3LDYg KzUzMywxOCBAQCBzdHJ1Y3QgbXNkY19ob3N0IHsNCiAJLnVzZV9pbnRlcm5hbF9jZCA9IHRydWUs DQogfTsNCiANCitzdGF0aWMgY29uc3Qgc3RydWN0IG10a19tbWNfY29tcGF0aWJsZSBtdDY3Nzlf Y29tcGF0ID0gew0KKwkuY2xrX2Rpdl9iaXRzID0gMTIsDQorCS5oczQwMF90dW5lID0gZmFsc2Us DQorCS5wYWRfdHVuZV9yZWcgPSBNU0RDX1BBRF9UVU5FMCwNCisJLmFzeW5jX2ZpZm8gPSB0cnVl LA0KKwkuZGF0YV90dW5lID0gdHJ1ZSwNCisJLmJ1c3lfY2hlY2sgPSB0cnVlLA0KKwkuc3RvcF9j bGtfZml4ID0gdHJ1ZSwNCisJLmVuaGFuY2VfcnggPSB0cnVlLA0KKwkuc3VwcG9ydF82NGcgPSB0 cnVlLA0KK307DQorDQogc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXNkY19vZl9p ZHNbXSA9IHsNCiAJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxMzUtbW1jIiwgLmRhdGEg PSAmbXQ4MTM1X2NvbXBhdH0sDQogCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTczLW1t YyIsIC5kYXRhID0gJm10ODE3M19jb21wYXR9LA0KQEAgLTUzNiw2ICs1NTQsNyBAQCBzdHJ1Y3Qg bXNkY19ob3N0IHsNCiAJeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDc2MjItbW1jIiwgLmRh dGEgPSAmbXQ3NjIyX2NvbXBhdH0sDQogCXsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4NTE2 LW1tYyIsIC5kYXRhID0gJm10ODUxNl9jb21wYXR9LA0KIAl7IC5jb21wYXRpYmxlID0gIm1lZGlh dGVrLG10NzYyMC1tbWMiLCAuZGF0YSA9ICZtdDc2MjBfY29tcGF0fSwNCisJeyAuY29tcGF0aWJs ZSA9ICJtZWRpYXRlayxtdDY3NzktbW1jIiwgLmRhdGEgPSAmbXQ2Nzc5X2NvbXBhdH0sDQogCXt9 DQogfTsNCiBNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtc2RjX29mX2lkcyk7DQpAQCAtNzM5LDYg Kzc1OCwxNSBAQCBzdGF0aWMgdm9pZCBtc2RjX3NldF90aW1lb3V0KHN0cnVjdCBtc2RjX2hvc3Qg Kmhvc3QsIHU2NCBucywgdTY0IGNsa3MpDQogCQkgICAgICAodTMyKSh0aW1lb3V0ID4gMjU1ID8g MjU1IDogdGltZW91dCkpOw0KIH0NCiANCitzdGF0aWMgdm9pZCBtc2RjX3NldF9idXN5X3RpbWVv dXQoc3RydWN0IG1zZGNfaG9zdCAqaG9zdCwgdTY0IG5zLCB1NjQgY2xrcykNCit7DQorCXU2NCB0 aW1lb3V0Ow0KKw0KKwl0aW1lb3V0ID0gbXNkY190aW1lb3V0X2NhbChob3N0LCBucywgY2xrcyk7 DQorCXNkcl9zZXRfZmllbGQoaG9zdC0+YmFzZSArIFNEQ19DRkcsIFNEQ19DRkdfV1JEVE9DLA0K KwkJICAgICAgKHUzMikodGltZW91dCA+IDgxOTEgPyA4MTkxIDogdGltZW91dCkpOw0KK30NCisN CiBzdGF0aWMgdm9pZCBtc2RjX2dhdGVfY2xvY2soc3RydWN0IG1zZGNfaG9zdCAqaG9zdCkNCiB7 DQogCWNsa19kaXNhYmxlX3VucHJlcGFyZShob3N0LT5zcmNfY2xrX2NnKTsNCkBAIC0xNDI1LDYg KzE0NTMsMzYgQEAgc3RhdGljIHZvaWQgbXNkY19lbmFibGVfc2Rpb19pcnEoc3RydWN0IG1tY19o b3N0ICptbWMsIGludCBlbmIpDQogCQlwbV9ydW50aW1lX3B1dF9ub2lkbGUoaG9zdC0+ZGV2KTsN CiB9DQogDQorI2lmIElTX0VOQUJMRUQoQ09ORklHX01NQ19DUUhDSSkNCitzdGF0aWMgaXJxcmV0 dXJuX3QgbXNkY19jbWRxX2lycShzdHJ1Y3QgbXNkY19ob3N0ICpob3N0LCB1MzIgaW50c3RzKQ0K K3sNCisJaW50IGNtZF9lcnIgPSAwLCBkYXRfZXJyID0gMDsNCisNCisJaWYgKGludHN0cyAmIE1T RENfSU5UX1JTUENSQ0VSUikgew0KKwkJY21kX2VyciA9ICh1bnNpZ25lZCBpbnQpLUVJTFNFUTsN CisJCWRldl9lcnIoaG9zdC0+ZGV2LCAiJXM6IENNRCBDUkMgRVJSIiwgX19mdW5jX18pOw0KKwl9 IGVsc2UgaWYgKGludHN0cyAmIE1TRENfSU5UX0NNRFRNTykgew0KKwkJY21kX2VyciA9ICh1bnNp Z25lZCBpbnQpLUVUSU1FRE9VVDsNCisJCWRldl9lcnIoaG9zdC0+ZGV2LCAiJXM6IENNRCBUSU1F T1VUIEVSUiIsIF9fZnVuY19fKTsNCisJfQ0KKw0KKwlpZiAoaW50c3RzICYgTVNEQ19JTlRfREFU Q1JDRVJSKSB7DQorCQlkYXRfZXJyID0gKHVuc2lnbmVkIGludCktRUlMU0VROw0KKwkJZGV2X2Vy cihob3N0LT5kZXYsICIlczogREFUQSBDUkMgRVJSIiwgX19mdW5jX18pOw0KKwl9IGVsc2UgaWYg KGludHN0cyAmIE1TRENfSU5UX0RBVFRNTykgew0KKwkJZGF0X2VyciA9ICh1bnNpZ25lZCBpbnQp LUVUSU1FRE9VVDsNCisJCWRldl9lcnIoaG9zdC0+ZGV2LCAiJXM6IERBVEEgVElNRU9VVCBFUlIi LCBfX2Z1bmNfXyk7DQorCX0NCisNCisJaWYgKGNtZF9lcnIgfHwgZGF0X2Vycikgew0KKwkJZGV2 X2Vycihob3N0LT5kZXYsICJjbWRfZXJyID0gJWQsIGRhdF9lcnIgPSVkLCBpbnRzdHMgPSAweCV4 IiwNCisJCQljbWRfZXJyLCBkYXRfZXJyLCBpbnRzdHMpOw0KKwl9DQorDQorCXJldHVybiBjcWhj aV9pcnEoaG9zdC0+bW1jLCAwLCBjbWRfZXJyLCBkYXRfZXJyKTsNCit9DQorI2VuZGlmDQorDQog c3RhdGljIGlycXJldHVybl90IG1zZGNfaXJxKGludCBpcnEsIHZvaWQgKmRldl9pZCkNCiB7DQog CXN0cnVjdCBtc2RjX2hvc3QgKmhvc3QgPSAoc3RydWN0IG1zZGNfaG9zdCAqKSBkZXZfaWQ7DQpA QCAtMTQ2MSw2ICsxNTE5LDE2IEBAIHN0YXRpYyBpcnFyZXR1cm5fdCBtc2RjX2lycShpbnQgaXJx LCB2b2lkICpkZXZfaWQpDQogCQlpZiAoIShldmVudHMgJiAoZXZlbnRfbWFzayAmIH5NU0RDX0lO VF9TRElPSVJRKSkpDQogCQkJYnJlYWs7DQogDQorI2lmIElTX0VOQUJMRUQoQ09ORklHX01NQ19D UUhDSSkNCisJCWlmICgoaG9zdC0+bW1jLT5jYXBzMiAmIE1NQ19DQVAyX0NRRSkgJiYNCisJCSAg ICAoZXZlbnRzICYgTVNEQ19JTlRfQ01EUSkpIHsNCisJCQltc2RjX2NtZHFfaXJxKGhvc3QsIGV2 ZW50cyk7DQorCQkJLyogY2xlYXIgaW50ZXJydXB0cyAqLw0KKwkJCXdyaXRlbChldmVudHMsIGhv c3QtPmJhc2UgKyBNU0RDX0lOVCk7DQorCQkJcmV0dXJuIElSUV9IQU5ETEVEOw0KKwkJfQ0KKyNl bmRpZg0KKw0KIAkJaWYgKCFtcnEpIHsNCiAJCQlkZXZfZXJyKGhvc3QtPmRldiwNCiAJCQkJIiVz OiBNUlE9TlVMTDsgZXZlbnRzPSUwOFg7IGV2ZW50X21hc2s9JTA4WFxuIiwNCkBAIC0yMTQ0LDYg KzIyMTIsMzYgQEAgc3RhdGljIGludCBtc2RjX2dldF9jZChzdHJ1Y3QgbW1jX2hvc3QgKm1tYykN CiAJCXJldHVybiAhdmFsOw0KIH0NCiANCitzdGF0aWMgdm9pZCBtc2RjX2NxZV9lbmFibGUoc3Ry dWN0IG1tY19ob3N0ICptbWMpDQorew0KKwlzdHJ1Y3QgbXNkY19ob3N0ICpob3N0ID0gbW1jX3By aXYobW1jKTsNCisNCisJLyogZW5hYmxlIGNtZHEgaXJxICovDQorCXdyaXRlbChNU0RDX0lOVF9D TURRLCBob3N0LT5iYXNlICsgTVNEQ19JTlRFTik7DQorCS8qIGVuYWJsZSBidXN5IGNoZWNrICov DQorCXNkcl9zZXRfYml0cyhob3N0LT5iYXNlICsgTVNEQ19QQVRDSF9CSVQxLCBNU0RDX1BCMV9C VVNZX0NIRUNLX1NFTCk7DQorCS8qIGRlZmF1bHQgd3JpdGUgZGF0YSAvIGJ1c3kgdGltZW91dCAy MHMgKi8NCisJbXNkY19zZXRfYnVzeV90aW1lb3V0KGhvc3QsIDIwICogMTAwMDAwMDAwMFVMTCwg MCk7DQorCS8qIGRlZmF1bHQgcmVhZCBkYXRhIHRpbWVvdXQgMXMgKi8NCisJbXNkY19zZXRfdGlt ZW91dChob3N0LCAxMDAwMDAwMDAwVUxMLCAwKTsNCit9DQorDQordm9pZCBtc2RjX2NxZV9kaXNh YmxlKHN0cnVjdCBtbWNfaG9zdCAqbW1jLCBib29sIHJlY292ZXJ5KQ0KK3sNCisJc3RydWN0IG1z ZGNfaG9zdCAqaG9zdCA9IG1tY19wcml2KG1tYyk7DQorDQorCS8qIGRpc2FibGUgY21kcSBpcnEg Ki8NCisJc2RyX2Nscl9iaXRzKGhvc3QtPmJhc2UgKyBNU0RDX0lOVEVOLCBNU0RDX0lOVF9DTURR KTsNCisJLyogZGlzYWJsZSBidXN5IGNoZWNrICovDQorCXNkcl9jbHJfYml0cyhob3N0LT5iYXNl ICsgTVNEQ19QQVRDSF9CSVQxLCBNU0RDX1BCMV9CVVNZX0NIRUNLX1NFTCk7DQorDQorCWlmIChy ZWNvdmVyeSkgew0KKwkJc2RyX3NldF9maWVsZChob3N0LT5iYXNlICsgTVNEQ19ETUFfQ1RSTCwN CisJCQkgICAgICBNU0RDX0RNQV9DVFJMX1NUT1AsIDEpOw0KKwkJbXNkY19yZXNldF9odyhob3N0 KTsNCisJfQ0KK30NCisNCiBzdGF0aWMgY29uc3Qgc3RydWN0IG1tY19ob3N0X29wcyBtdF9tc2Rj X29wcyA9IHsNCiAJLnBvc3RfcmVxID0gbXNkY19wb3N0X3JlcSwNCiAJLnByZV9yZXEgPSBtc2Rj X3ByZV9yZXEsDQpAQCAtMjE2MCw2ICsyMjU4LDExIEBAIHN0YXRpYyBpbnQgbXNkY19nZXRfY2Qo c3RydWN0IG1tY19ob3N0ICptbWMpDQogCS5od19yZXNldCA9IG1zZGNfaHdfcmVzZXQsDQogfTsN CiANCitzdGF0aWMgY29uc3Qgc3RydWN0IGNxaGNpX2hvc3Rfb3BzIG1zZGNfY21kcV9vcHMgPSB7 DQorCS5lbmFibGUgICAgICAgICA9IG1zZGNfY3FlX2VuYWJsZSwNCisJLmRpc2FibGUgICAgICAg ID0gbXNkY19jcWVfZGlzYWJsZSwNCit9Ow0KKw0KIHN0YXRpYyB2b2lkIG1zZGNfb2ZfcHJvcGVy dHlfcGFyc2Uoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiwNCiAJCQkJICAgc3RydWN0IG1z ZGNfaG9zdCAqaG9zdCkNCiB7DQpAQCAtMjMxMSw2ICsyNDE0LDIyIEBAIHN0YXRpYyBpbnQgbXNk Y19kcnZfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCiAJCWhvc3QtPmRtYV9t YXNrID0gRE1BX0JJVF9NQVNLKDMyKTsNCiAJbW1jX2RldihtbWMpLT5kbWFfbWFzayA9ICZob3N0 LT5kbWFfbWFzazsNCiANCisjaWYgSVNfRU5BQkxFRChDT05GSUdfTU1DX0NRSENJKQ0KKwlpZiAo bW1jLT5jYXBzMiAmIE1NQ19DQVAyX0NRRSkgew0KKwkJaG9zdC0+Y3FfaG9zdCA9IGRldm1fa3ph bGxvYyhob3N0LT5tbWMtPnBhcmVudCwNCisJCQkJCSAgICAgc2l6ZW9mKCpob3N0LT5jcV9ob3N0 KSwNCisJCQkJCSAgICAgR0ZQX0tFUk5FTCk7DQorCQlob3N0LT5jcV9ob3N0LT5jYXBzIHw9IENR SENJX1RBU0tfREVTQ19TWl8xMjg7DQorCQlob3N0LT5jcV9ob3N0LT5tbWlvID0gaG9zdC0+YmFz ZSArIDB4ODAwOw0KKwkJaG9zdC0+Y3FfaG9zdC0+b3BzID0gJm1zZGNfY21kcV9vcHM7DQorCQlj cWhjaV9pbml0KGhvc3QtPmNxX2hvc3QsIG1tYywgdHJ1ZSk7DQorCQltbWMtPm1heF9zZWdzID0g MTI4Ow0KKwkJLyogY3FoY2kgMTZiaXQgbGVuZ3RoICovDQorCQkvKiAwIHNpemUsIG1lYW5zIDY1 NTM2IHNvIHdlIGRvbid0IGhhdmUgdG8gLTEgaGVyZSAqLw0KKwkJbW1jLT5tYXhfc2VnX3NpemUg PSA2NCAqIDEwMjQ7DQorCX0NCisjZW5kaWYNCisNCiAJaG9zdC0+dGltZW91dF9jbGtzID0gMyAq IDEwNDg1NzY7DQogCWhvc3QtPmRtYS5ncGQgPSBkbWFfYWxsb2NfY29oZXJlbnQoJnBkZXYtPmRl diwNCiAJCQkJMiAqIHNpemVvZihzdHJ1Y3QgbXRfZ3BkbWFfZGVzYyksDQotLSANCjEuOS4xDQo=