Received: by 2002:a25:e74b:0:0:0:0:0 with SMTP id e72csp1366949ybh; Sun, 19 Jul 2020 17:43:31 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyrVq0GAzZ/BzGsJMhBR1ThMwpJwp20oG69V4O3P+nDTnrMnM+xbzlyLmP0wwjNTFdr82WU X-Received: by 2002:aa7:dd05:: with SMTP id i5mr19515189edv.283.1595205811211; Sun, 19 Jul 2020 17:43:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1595205811; cv=none; d=google.com; s=arc-20160816; b=FtYftv+J6Y+b+RZ9/E1bFlC6VsMRi+elnqyx80XjtPlNq0S2PrGtCVNY90WPkweMZR sp6yumQX2nqczThLKxazXXBPJmYF0k1YVBAH0IqUDXTKnoMQaHAzoplGmwnleTNo8yPo +RvkwVoRMq8mahN5/M1GtyuK//+nlmTHXhjCUem8NU+d/ugYbaxEFj/xKkoKwSq/V+EI rTLv0iKQ+h2db12TDBguVI45qfuLo2wVp48BF+09yl0a9BsAMppU/ODs+AM74ljjIB/Z Z/oU9UDPc3/9ryRhYGbkoJA9Whn7WCeJN4Q1yYoQYJkMd+1mXtBcIfRy5mAAlozq15ZU CTXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=fK12aNjAC+/AJxmQTRbfVWU1gQkyXtjxqLX21iFBYoU=; b=bGgY0KK16OHkCHV8rcH5Gi2u7KQxFf7FZo9bBR3UNSaRNn2qNx71onpFqEckmuzid6 mqU6iaOMoq/m6VLhpi/+ZfZh653tl/w1xLzKjwBrDvY5HoFsBIxogDzp3kGkcS1HpX7a 3D0sYz7KH06x1G6sSxLXbMnvGPd5hqryXkyTl4vdJn5f05vsXsFuz7c9/eOb1D5XBM2K U+wXmLGdIrfQ7JAppL+nACskTTGNUfGlCd3zYNTCr886ipB6JshSWl2hJ2LT/e7Ug5MR DkUGZdxUH4BaRGNeaOzN7RY+Fa3+DsN9X1Z7axa/ZdfWgcpQnBvBSmrHrWMoW/PXWBXC 9QMA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=rZfWquxE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id b14si9708518edx.461.2020.07.19.17.43.08; Sun, 19 Jul 2020 17:43:31 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@mediatek.com header.s=dk header.b=rZfWquxE; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mediatek.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727036AbgGTAnA (ORCPT + 99 others); Sun, 19 Jul 2020 20:43:00 -0400 Received: from Mailgw01.mediatek.com ([1.203.163.78]:47142 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726508AbgGTAm5 (ORCPT ); Sun, 19 Jul 2020 20:42:57 -0400 X-UUID: 96dfa4742a674138892747b5e49be109-20200720 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=fK12aNjAC+/AJxmQTRbfVWU1gQkyXtjxqLX21iFBYoU=; b=rZfWquxEL3hwwX85FZIdDn4v0Wv0keoNFNvwGfoXMascLdvhLitYJ0QIMFt7Qk9a9bwbK6RsknMjyXDH+wKoKyjaXsE4fO+R65O1gESzVl9Oo1ogruaLivG9Pi/HhvS3d3P65f2DooOFeQPjoe2psdusM3JUyE2/q8rNuwU4kQM=; X-UUID: 96dfa4742a674138892747b5e49be109-20200720 Received: from mtkcas36.mediatek.inc [(172.27.4.253)] by mailgw01.mediatek.com (envelope-from ) (mailgw01.mediatek.com ESMTP with TLS) with ESMTP id 634796132; Mon, 20 Jul 2020 08:42:48 +0800 Received: from mtkcas08.mediatek.inc (172.21.101.126) by MTKMBS31N1.mediatek.inc (172.27.4.69) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Mon, 20 Jul 2020 08:42:44 +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.1497.2 via Frontend Transport; Mon, 20 Jul 2020 08:42:43 +0800 From: Chun-Hung Wu To: , Jonathan Hunter , Al Cooper , Adrian Hunter , Florian Fainelli , , Andy Gross , Bjorn Andersson , Michal Simek , Thierry Reding , 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 v7 3/4] mmc: mediatek: command queue support Date: Mon, 20 Jul 2020 08:42:38 +0800 Message-ID: <1595205759-5825-4-git-send-email-chun-hung.wu@mediatek.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1595205759-5825-1-git-send-email-chun-hung.wu@mediatek.com> References: <1595205759-5825-1-git-send-email-chun-hung.wu@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-SNTS-SMTP: 69AF0FBCE823458F6BE8E49ADA2CC2E69FB2B44E72088186CACC6132F38427DA2000:8 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 ZXRfYnVzeV90aW1lb3V0KCkgdG8gY2FsY3VsYXRlIGVtbWMgd3JpdGUgdGltZW91dC4NCmIuIENv bm5lY3QgbXRrIG1zZGMgZHJpdmVyIHRvIGNxaGNpIGRyaXZlciB0aHJvdWdoDQogICBob3N0LT5j cV9ob3N0LT5vcHMgPSAmbXNkY19jbWRxX29wczsNCmMuIG1zZGNfY21kcV9pcnEoKSB3aWxsIGxp bmsgdXAgd2l0aCBjcWNoaV9pcnEoKS4gQmVzaWRlcywgaXQgcHJvdmlkZXMNCiAgIG1vcmUgaXJx IGVycm9yIG1lc3NhZ2VzIGxpa2UgUlNQQ1JDRVJSL0NNRFRPL0RBVEFDUkNFUlIvREFUVE1PLg0K ZC4gU2VsZWN0IGtlcm5lbCBjb25maWcgTU1DX0NRSENJIGZvciBNTUNfTVRLDQoNClNpZ25lZC1v ZmYtYnk6IENodW4tSHVuZyBXdSA8Y2h1bi1odW5nLnd1QG1lZGlhdGVrLmNvbT4NCi0tLQ0KIGRy aXZlcnMvbW1jL2hvc3QvS2NvbmZpZyAgfCAgIDEgKw0KIGRyaXZlcnMvbW1jL2hvc3QvbXRrLXNk LmMgfCAxMTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0K IDIgZmlsZXMgY2hhbmdlZCwgMTE2IGluc2VydGlvbnMoKykNCg0KZGlmZiAtLWdpdCBhL2RyaXZl cnMvbW1jL2hvc3QvS2NvbmZpZyBiL2RyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZw0KaW5kZXggM2I3 MDZhZi4uOWM4OWE1YiAxMDA2NDQNCi0tLSBhL2RyaXZlcnMvbW1jL2hvc3QvS2NvbmZpZw0KKysr IGIvZHJpdmVycy9tbWMvaG9zdC9LY29uZmlnDQpAQCAtMTAwOSw2ICsxMDA5LDcgQEAgY29uZmln IE1NQ19NVEsNCiAJdHJpc3RhdGUgIk1lZGlhVGVrIFNEL01NQyBDYXJkIEludGVyZmFjZSBzdXBw b3J0Ig0KIAlkZXBlbmRzIG9uIEhBU19ETUENCiAJc2VsZWN0IFJFR1VMQVRPUg0KKwlzZWxlY3Qg TU1DX0NRSENJDQogCWhlbHANCiAJICBUaGlzIHNlbGVjdHMgdGhlIE1lZGlhVGVrKFIpIFNlY3Vy ZSBkaWdpdGFsIGFuZCBNdWx0aW1lZGlhIGNhcmQgSW50ZXJmYWNlLg0KIAkgIElmIHlvdSBoYXZl IGEgbWFjaGluZSB3aXRoIGEgaW50ZWdyYXRlZCBTRC9NTUMgY2FyZCByZWFkZXIsIHNheSBZIG9y IE0gaGVyZS4NCmRpZmYgLS1naXQgYS9kcml2ZXJzL21tYy9ob3N0L210ay1zZC5jIGIvZHJpdmVy cy9tbWMvaG9zdC9tdGstc2QuYw0KaW5kZXggMzQ3ZWQ3Mi4uZTU2MGEwNiAxMDA2NDQNCi0tLSBh L2RyaXZlcnMvbW1jL2hvc3QvbXRrLXNkLmMNCisrKyBiL2RyaXZlcnMvbW1jL2hvc3QvbXRrLXNk LmMNCkBAIC0zMSw2ICszMSw4IEBADQogI2luY2x1ZGUgPGxpbnV4L21tYy9zZGlvLmg+DQogI2lu Y2x1ZGUgPGxpbnV4L21tYy9zbG90LWdwaW8uaD4NCiANCisjaW5jbHVkZSAiY3FoY2kuaCINCisN CiAjZGVmaW5lIE1BWF9CRF9OVU0gICAgICAgICAgMTAyNA0KIA0KIC8qLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0qLw0KQEAgLTE1Miw2ICsxNTQsNyBAQA0KICNkZWZpbmUgTVNEQ19JTlRfRE1BX0JEQ1NFUlIg ICAgKDB4MSA8PCAxNykJLyogVzFDICovDQogI2RlZmluZSBNU0RDX0lOVF9ETUFfR1BEQ1NFUlIg ICAoMHgxIDw8IDE4KQkvKiBXMUMgKi8NCiAjZGVmaW5lIE1TRENfSU5UX0RNQV9QUk9URUNUICAg ICgweDEgPDwgMTkpCS8qIFcxQyAqLw0KKyNkZWZpbmUgTVNEQ19JTlRfQ01EUSAgICAgICAgICAg KDB4MSA8PCAyOCkJLyogVzFDICovDQogDQogLyogTVNEQ19JTlRFTiBtYXNrICovDQogI2RlZmlu ZSBNU0RDX0lOVEVOX01NQ0lSUSAgICAgICAoMHgxIDw8IDApCS8qIFJXICovDQpAQCAtMTgyLDYg KzE4NSw3IEBADQogLyogU0RDX0NGRyBtYXNrICovDQogI2RlZmluZSBTRENfQ0ZHX1NESU9JTlRX S1VQICAgICAoMHgxIDw8IDApCS8qIFJXICovDQogI2RlZmluZSBTRENfQ0ZHX0lOU1dLVVAgICAg ICAgICAoMHgxIDw8IDEpCS8qIFJXICovDQorI2RlZmluZSBTRENfQ0ZHX1dSRFRPQyAgICAgICAg ICAoMHgxZmZmICA8PCAyKSAgLyogUlcgKi8NCiAjZGVmaW5lIFNEQ19DRkdfQlVTV0lEVEggICAg ICAgICgweDMgPDwgMTYpCS8qIFJXICovDQogI2RlZmluZSBTRENfQ0ZHX1NESU8gICAgICAgICAg ICAoMHgxIDw8IDE5KQkvKiBSVyAqLw0KICNkZWZpbmUgU0RDX0NGR19TRElPSURFICAgICAgICAg KDB4MSA8PCAyMCkJLyogUlcgKi8NCkBAIC0yMzAsNiArMjM0LDcgQEANCiAjZGVmaW5lIE1TRENf UEFUQ0hfQklUX0RFQ1JDVE1PICAgKDB4MSA8PCAzMCkJLyogUlcgKi8NCiANCiAjZGVmaW5lIE1T RENfUEFUQ0hfQklUMV9DTURUQSAgICAgKDB4NyA8PCAzKSAgICAvKiBSVyAqLw0KKyNkZWZpbmUg TVNEQ19QQjFfQlVTWV9DSEVDS19TRUwgICAoMHgxIDw8IDcpICAgIC8qIFJXICovDQogI2RlZmlu ZSBNU0RDX1BBVENIX0JJVDFfU1RPUF9ETFkgICgweGYgPDwgOCkgICAgLyogUlcgKi8NCiANCiAj ZGVmaW5lIE1TRENfUEFUQ0hfQklUMl9DRkdSRVNQICAgKDB4MSA8PCAxNSkgICAvKiBSVyAqLw0K QEAgLTQzMSw5ICs0MzYsMTEgQEAgc3RydWN0IG1zZGNfaG9zdCB7DQogCQkJCSAvKiBjbWQgcmVz cG9uc2Ugc2FtcGxlIHNlbGVjdGlvbiBmb3IgSFM0MDAgKi8NCiAJYm9vbCBoczQwMF9tb2RlOwkv KiBjdXJyZW50IGVNTUMgd2lsbCBydW4gYXQgaHM0MDAgbW9kZSAqLw0KIAlib29sIGludGVybmFs X2NkOwkvKiBVc2UgaW50ZXJuYWwgY2FyZC1kZXRlY3QgbG9naWMgKi8NCisJYm9vbCBjcWhjaTsJ CS8qIHN1cHBvcnQgZU1NQyBodyBjbWRxICovDQogCXN0cnVjdCBtc2RjX3NhdmVfcGFyYSBzYXZl X3BhcmE7IC8qIHVzZWQgd2hlbiBnYXRlIEhDTEsgKi8NCiAJc3RydWN0IG1zZGNfdHVuZV9wYXJh IGRlZl90dW5lX3BhcmE7IC8qIGRlZmF1bHQgdHVuZSBzZXR0aW5nICovDQogCXN0cnVjdCBtc2Rj X3R1bmVfcGFyYSBzYXZlZF90dW5lX3BhcmE7IC8qIHR1bmUgcmVzdWx0IG9mIENNRDIxL0NNRDE5 ICovDQorCXN0cnVjdCBjcWhjaV9ob3N0ICpjcV9ob3N0Ow0KIH07DQogDQogc3RhdGljIGNvbnN0 IHN0cnVjdCBtdGtfbW1jX2NvbXBhdGlibGUgbXQ4MTM1X2NvbXBhdCA9IHsNCkBAIC03NjQsNiAr NzcxLDE1IEBAIHN0YXRpYyB2b2lkIG1zZGNfc2V0X3RpbWVvdXQoc3RydWN0IG1zZGNfaG9zdCAq aG9zdCwgdTY0IG5zLCB1NjQgY2xrcykNCiAJCSAgICAgICh1MzIpKHRpbWVvdXQgPiAyNTUgPyAy NTUgOiB0aW1lb3V0KSk7DQogfQ0KIA0KK3N0YXRpYyB2b2lkIG1zZGNfc2V0X2J1c3lfdGltZW91 dChzdHJ1Y3QgbXNkY19ob3N0ICpob3N0LCB1NjQgbnMsIHU2NCBjbGtzKQ0KK3sNCisJdTY0IHRp bWVvdXQ7DQorDQorCXRpbWVvdXQgPSBtc2RjX3RpbWVvdXRfY2FsKGhvc3QsIG5zLCBjbGtzKTsN CisJc2RyX3NldF9maWVsZChob3N0LT5iYXNlICsgU0RDX0NGRywgU0RDX0NGR19XUkRUT0MsDQor CQkgICAgICAodTMyKSh0aW1lb3V0ID4gODE5MSA/IDgxOTEgOiB0aW1lb3V0KSk7DQorfQ0KKw0K IHN0YXRpYyB2b2lkIG1zZGNfZ2F0ZV9jbG9jayhzdHJ1Y3QgbXNkY19ob3N0ICpob3N0KQ0KIHsN CiAJY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGhvc3QtPnNyY19jbGtfY2cpOw0KQEAgLTE0ODEsNiAr MTQ5NywzNCBAQCBzdGF0aWMgdm9pZCBtc2RjX2VuYWJsZV9zZGlvX2lycShzdHJ1Y3QgbW1jX2hv c3QgKm1tYywgaW50IGVuYikNCiAJCXBtX3J1bnRpbWVfcHV0X25vaWRsZShob3N0LT5kZXYpOw0K IH0NCiANCitzdGF0aWMgaXJxcmV0dXJuX3QgbXNkY19jbWRxX2lycShzdHJ1Y3QgbXNkY19ob3N0 ICpob3N0LCB1MzIgaW50c3RzKQ0KK3sNCisJaW50IGNtZF9lcnIgPSAwLCBkYXRfZXJyID0gMDsN CisNCisJaWYgKGludHN0cyAmIE1TRENfSU5UX1JTUENSQ0VSUikgew0KKwkJY21kX2VyciA9IC1F SUxTRVE7DQorCQlkZXZfZXJyKGhvc3QtPmRldiwgIiVzOiBDTUQgQ1JDIEVSUiIsIF9fZnVuY19f KTsNCisJfSBlbHNlIGlmIChpbnRzdHMgJiBNU0RDX0lOVF9DTURUTU8pIHsNCisJCWNtZF9lcnIg PSAtRVRJTUVET1VUOw0KKwkJZGV2X2Vycihob3N0LT5kZXYsICIlczogQ01EIFRJTUVPVVQgRVJS IiwgX19mdW5jX18pOw0KKwl9DQorDQorCWlmIChpbnRzdHMgJiBNU0RDX0lOVF9EQVRDUkNFUlIp IHsNCisJCWRhdF9lcnIgPSAtRUlMU0VROw0KKwkJZGV2X2Vycihob3N0LT5kZXYsICIlczogREFU QSBDUkMgRVJSIiwgX19mdW5jX18pOw0KKwl9IGVsc2UgaWYgKGludHN0cyAmIE1TRENfSU5UX0RB VFRNTykgew0KKwkJZGF0X2VyciA9IC1FVElNRURPVVQ7DQorCQlkZXZfZXJyKGhvc3QtPmRldiwg IiVzOiBEQVRBIFRJTUVPVVQgRVJSIiwgX19mdW5jX18pOw0KKwl9DQorDQorCWlmIChjbWRfZXJy IHx8IGRhdF9lcnIpIHsNCisJCWRldl9lcnIoaG9zdC0+ZGV2LCAiY21kX2VyciA9ICVkLCBkYXRf ZXJyID0lZCwgaW50c3RzID0gMHgleCIsDQorCQkJY21kX2VyciwgZGF0X2VyciwgaW50c3RzKTsN CisJfQ0KKw0KKwlyZXR1cm4gY3FoY2lfaXJxKGhvc3QtPm1tYywgMCwgY21kX2VyciwgZGF0X2Vy cik7DQorfQ0KKw0KIHN0YXRpYyBpcnFyZXR1cm5fdCBtc2RjX2lycShpbnQgaXJxLCB2b2lkICpk ZXZfaWQpDQogew0KIAlzdHJ1Y3QgbXNkY19ob3N0ICpob3N0ID0gKHN0cnVjdCBtc2RjX2hvc3Qg KikgZGV2X2lkOw0KQEAgLTE1MTcsNiArMTU2MSwxNCBAQCBzdGF0aWMgaXJxcmV0dXJuX3QgbXNk Y19pcnEoaW50IGlycSwgdm9pZCAqZGV2X2lkKQ0KIAkJaWYgKCEoZXZlbnRzICYgKGV2ZW50X21h c2sgJiB+TVNEQ19JTlRfU0RJT0lSUSkpKQ0KIAkJCWJyZWFrOw0KIA0KKwkJaWYgKChob3N0LT5t bWMtPmNhcHMyICYgTU1DX0NBUDJfQ1FFKSAmJg0KKwkJICAgIChldmVudHMgJiBNU0RDX0lOVF9D TURRKSkgew0KKwkJCW1zZGNfY21kcV9pcnEoaG9zdCwgZXZlbnRzKTsNCisJCQkvKiBjbGVhciBp bnRlcnJ1cHRzICovDQorCQkJd3JpdGVsKGV2ZW50cywgaG9zdC0+YmFzZSArIE1TRENfSU5UKTsN CisJCQlyZXR1cm4gSVJRX0hBTkRMRUQ7DQorCQl9DQorDQogCQlpZiAoIW1ycSkgew0KIAkJCWRl dl9lcnIoaG9zdC0+ZGV2LA0KIAkJCQkiJXM6IE1SUT1OVUxMOyBldmVudHM9JTA4WDsgZXZlbnRf bWFzaz0lMDhYXG4iLA0KQEAgLTIyMDEsNiArMjI1MywzNiBAQCBzdGF0aWMgaW50IG1zZGNfZ2V0 X2NkKHN0cnVjdCBtbWNfaG9zdCAqbW1jKQ0KIAkJcmV0dXJuICF2YWw7DQogfQ0KIA0KK3N0YXRp YyB2b2lkIG1zZGNfY3FlX2VuYWJsZShzdHJ1Y3QgbW1jX2hvc3QgKm1tYykNCit7DQorCXN0cnVj dCBtc2RjX2hvc3QgKmhvc3QgPSBtbWNfcHJpdihtbWMpOw0KKw0KKwkvKiBlbmFibGUgY21kcSBp cnEgKi8NCisJd3JpdGVsKE1TRENfSU5UX0NNRFEsIGhvc3QtPmJhc2UgKyBNU0RDX0lOVEVOKTsN CisJLyogZW5hYmxlIGJ1c3kgY2hlY2sgKi8NCisJc2RyX3NldF9iaXRzKGhvc3QtPmJhc2UgKyBN U0RDX1BBVENIX0JJVDEsIE1TRENfUEIxX0JVU1lfQ0hFQ0tfU0VMKTsNCisJLyogZGVmYXVsdCB3 cml0ZSBkYXRhIC8gYnVzeSB0aW1lb3V0IDIwcyAqLw0KKwltc2RjX3NldF9idXN5X3RpbWVvdXQo aG9zdCwgMjAgKiAxMDAwMDAwMDAwVUxMLCAwKTsNCisJLyogZGVmYXVsdCByZWFkIGRhdGEgdGlt ZW91dCAxcyAqLw0KKwltc2RjX3NldF90aW1lb3V0KGhvc3QsIDEwMDAwMDAwMDBVTEwsIDApOw0K K30NCisNCit2b2lkIG1zZGNfY3FlX2Rpc2FibGUoc3RydWN0IG1tY19ob3N0ICptbWMsIGJvb2wg cmVjb3ZlcnkpDQorew0KKwlzdHJ1Y3QgbXNkY19ob3N0ICpob3N0ID0gbW1jX3ByaXYobW1jKTsN CisNCisJLyogZGlzYWJsZSBjbWRxIGlycSAqLw0KKwlzZHJfY2xyX2JpdHMoaG9zdC0+YmFzZSAr IE1TRENfSU5URU4sIE1TRENfSU5UX0NNRFEpOw0KKwkvKiBkaXNhYmxlIGJ1c3kgY2hlY2sgKi8N CisJc2RyX2Nscl9iaXRzKGhvc3QtPmJhc2UgKyBNU0RDX1BBVENIX0JJVDEsIE1TRENfUEIxX0JV U1lfQ0hFQ0tfU0VMKTsNCisNCisJaWYgKHJlY292ZXJ5KSB7DQorCQlzZHJfc2V0X2ZpZWxkKGhv c3QtPmJhc2UgKyBNU0RDX0RNQV9DVFJMLA0KKwkJCSAgICAgIE1TRENfRE1BX0NUUkxfU1RPUCwg MSk7DQorCQltc2RjX3Jlc2V0X2h3KGhvc3QpOw0KKwl9DQorfQ0KKw0KIHN0YXRpYyBjb25zdCBz dHJ1Y3QgbW1jX2hvc3Rfb3BzIG10X21zZGNfb3BzID0gew0KIAkucG9zdF9yZXEgPSBtc2RjX3Bv c3RfcmVxLA0KIAkucHJlX3JlcSA9IG1zZGNfcHJlX3JlcSwNCkBAIC0yMjE3LDYgKzIyOTksMTEg QEAgc3RhdGljIGludCBtc2RjX2dldF9jZChzdHJ1Y3QgbW1jX2hvc3QgKm1tYykNCiAJLmh3X3Jl c2V0ID0gbXNkY19od19yZXNldCwNCiB9Ow0KIA0KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY3FoY2lf aG9zdF9vcHMgbXNkY19jbWRxX29wcyA9IHsNCisJLmVuYWJsZSAgICAgICAgID0gbXNkY19jcWVf ZW5hYmxlLA0KKwkuZGlzYWJsZSAgICAgICAgPSBtc2RjX2NxZV9kaXNhYmxlLA0KK307DQorDQog c3RhdGljIHZvaWQgbXNkY19vZl9wcm9wZXJ0eV9wYXJzZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2LA0KIAkJCQkgICBzdHJ1Y3QgbXNkY19ob3N0ICpob3N0KQ0KIHsNCkBAIC0yMjM3LDYg KzIzMjQsMTIgQEAgc3RhdGljIHZvaWQgbXNkY19vZl9wcm9wZXJ0eV9wYXJzZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2LA0KIAkJaG9zdC0+aHM0MDBfY21kX3Jlc3Bfc2VsX3Jpc2luZyA9 IHRydWU7DQogCWVsc2UNCiAJCWhvc3QtPmhzNDAwX2NtZF9yZXNwX3NlbF9yaXNpbmcgPSBmYWxz ZTsNCisNCisJaWYgKG9mX3Byb3BlcnR5X3JlYWRfYm9vbChwZGV2LT5kZXYub2Zfbm9kZSwNCisJ CQkJICAic3VwcG9ydHMtY3FlIikpDQorCQlob3N0LT5jcWhjaSA9IHRydWU7DQorCWVsc2UNCisJ CWhvc3QtPmNxaGNpID0gZmFsc2U7DQogfQ0KIA0KIHN0YXRpYyBpbnQgbXNkY19kcnZfcHJvYmUo c3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCkBAIC0yMzUyLDYgKzI0NDUsOCBAQCBzdGF0 aWMgaW50IG1zZGNfZHJ2X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQogCQlt bWMtPmNhcHMyIHw9IE1NQ19DQVAyX1NESU9fSVJRX05PVEhSRUFEOw0KIA0KIAltbWMtPmNhcHMg fD0gTU1DX0NBUF9DTUQyMzsNCisJaWYgKGhvc3QtPmNxaGNpKQ0KKwkJbW1jLT5jYXBzMiB8PSBN TUNfQ0FQMl9DUUUgfCBNTUNfQ0FQMl9DUUVfRENNRDsNCiAJLyogTU1DIGNvcmUgdHJhbnNmZXIg c2l6ZXMgdHVuYWJsZSBwYXJhbWV0ZXJzICovDQogCW1tYy0+bWF4X3NlZ3MgPSBNQVhfQkRfTlVN Ow0KIAlpZiAoaG9zdC0+ZGV2X2NvbXAtPnN1cHBvcnRfNjRnKQ0KQEAgLTIzNjcsNiArMjQ2Miwy NiBAQCBzdGF0aWMgaW50IG1zZGNfZHJ2X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBk ZXYpDQogCQlob3N0LT5kbWFfbWFzayA9IERNQV9CSVRfTUFTSygzMik7DQogCW1tY19kZXYobW1j KS0+ZG1hX21hc2sgPSAmaG9zdC0+ZG1hX21hc2s7DQogDQorCWlmIChtbWMtPmNhcHMyICYgTU1D X0NBUDJfQ1FFKSB7DQorCQlob3N0LT5jcV9ob3N0ID0gZGV2bV9remFsbG9jKGhvc3QtPm1tYy0+ cGFyZW50LA0KKwkJCQkJICAgICBzaXplb2YoKmhvc3QtPmNxX2hvc3QpLA0KKwkJCQkJICAgICBH RlBfS0VSTkVMKTsNCisJCWlmICghaG9zdC0+Y3FfaG9zdCkgew0KKwkJCXJldCA9IC1FTk9NRU07 DQorCQkJZ290byBob3N0X2ZyZWU7DQorCQl9DQorCQlob3N0LT5jcV9ob3N0LT5jYXBzIHw9IENR SENJX1RBU0tfREVTQ19TWl8xMjg7DQorCQlob3N0LT5jcV9ob3N0LT5tbWlvID0gaG9zdC0+YmFz ZSArIDB4ODAwOw0KKwkJaG9zdC0+Y3FfaG9zdC0+b3BzID0gJm1zZGNfY21kcV9vcHM7DQorCQly ZXQgPSBjcWhjaV9pbml0KGhvc3QtPmNxX2hvc3QsIG1tYywgdHJ1ZSk7DQorCQlpZiAocmV0KQ0K KwkJCWdvdG8gaG9zdF9mcmVlOw0KKwkJbW1jLT5tYXhfc2VncyA9IDEyODsNCisJCS8qIGNxaGNp IDE2Yml0IGxlbmd0aCAqLw0KKwkJLyogMCBzaXplLCBtZWFucyA2NTUzNiBzbyB3ZSBkb24ndCBo YXZlIHRvIC0xIGhlcmUgKi8NCisJCW1tYy0+bWF4X3NlZ19zaXplID0gNjQgKiAxMDI0Ow0KKwl9 DQorDQogCWhvc3QtPnRpbWVvdXRfY2xrcyA9IDMgKiAxMDQ4NTc2Ow0KIAlob3N0LT5kbWEuZ3Bk ID0gZG1hX2FsbG9jX2NvaGVyZW50KCZwZGV2LT5kZXYsDQogCQkJCTIgKiBzaXplb2Yoc3RydWN0 IG10X2dwZG1hX2Rlc2MpLA0KLS0gDQoxLjkuMQ0K