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=-11.4 required=3.0 tests=BAYES_00,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,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 EA26FC433E7 for ; Thu, 3 Sep 2020 03:31:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A5DE0207D3 for ; Thu, 3 Sep 2020 03:31:42 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=mediatek.com header.i=@mediatek.com header.b="JiDTLUOn" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728152AbgICDba (ORCPT ); Wed, 2 Sep 2020 23:31:30 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:61539 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1726686AbgICDb2 (ORCPT ); Wed, 2 Sep 2020 23:31:28 -0400 X-UUID: 6c64a1a56ab848eea4a0530099d457d2-20200903 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=v62vx7BQXBuQ8iLkvvwnyloq7dIOaiC438EIIeAW3M8=; b=JiDTLUOn1jz0xkSFwPde5TMWETD6hPE3KqJKHS8vWYxjb3McarjFo0PHgStE+REjaBWQphHmE/3Mgs0Gq1JcHTKLAyhgWws9Qp5g7vmcBEka0LWndGb0/emKAmY8jJIwYXrX4KtEd8uQ83oHQFedpV9jAzk+9aaCCKSu4JHyGWY=; X-UUID: 6c64a1a56ab848eea4a0530099d457d2-20200903 Received: from mtkcas06.mediatek.inc [(172.21.101.30)] by mailgw02.mediatek.com (envelope-from ) (Cellopoint E-mail Firewall v4.1.14 Build 0819 with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 266196152; Thu, 03 Sep 2020 11:31:19 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs05n1.mediatek.inc (172.21.101.15) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 3 Sep 2020 11:31:17 +0800 Received: from localhost.localdomain (10.17.3.153) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Thu, 3 Sep 2020 11:31:17 +0800 From: Chunfeng Yun To: Zhanyong Wang CC: , , , , CK Hu , Chunfeng Yun Subject: [RFC PATCH 3/4] usb: xhci-mtk: add support runtime pm Date: Thu, 3 Sep 2020 11:28:58 +0800 Message-ID: <1599103739-7873-3-git-send-email-chunfeng.yun@mediatek.com> X-Mailer: git-send-email 1.8.1.1.dirty In-Reply-To: <1599103739-7873-1-git-send-email-chunfeng.yun@mediatek.com> References: <1599103739-7873-1-git-send-email-chunfeng.yun@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Content-Transfer-Encoding: base64 Sender: linux-usb-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-usb@vger.kernel.org RnJvbTogQ0sgSHUgPGNrLmh1QG1lZGlhdGVrLmNvbT4NCg0KYWRkIHN1cHBvcnQgcnVudGltZSBw bSBmZWF0dXJlDQoNClNpZ25lZC1vZmYtYnk6IFpoYW55b25nIFdhbmcgPHpoYW55b25nLndhbmdA bWVkaWF0ZWsuY29tPg0KU2lnbmVkLW9mZi1ieTogQ2h1bmZlbmcgWXVuIDxjaHVuZmVuZy55dW5A bWVkaWF0ZWsuY29tPg0KLS0tDQogZHJpdmVycy91c2IvaG9zdC94aGNpLW10ay5jIHwgNDQ2ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystDQogZHJpdmVycy91c2Iv aG9zdC94aGNpLW10ay5oIHwgIDE0ICsrDQogMiBmaWxlcyBjaGFuZ2VkLCA0NTUgaW5zZXJ0aW9u cygrKSwgNSBkZWxldGlvbnMoLSkNCiBtb2RlIGNoYW5nZSAxMDA2NDQgPT4gMTAwNzU1IGRyaXZl cnMvdXNiL2hvc3QveGhjaS1tdGsuaA0KDQpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvaG9zdC94 aGNpLW10ay5jIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLW10ay5jDQppbmRleCBkOTUyMjFmLi5l YzFhZGI0IDEwMDc1NQ0KLS0tIGEvZHJpdmVycy91c2IvaG9zdC94aGNpLW10ay5jDQorKysgYi9k cml2ZXJzL3VzYi9ob3N0L3hoY2ktbXRrLmMNCkBAIC0xNCw2ICsxNCw3IEBADQogI2luY2x1ZGUg PGxpbnV4L21mZC9zeXNjb24uaD4NCiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+DQogI2luY2x1 ZGUgPGxpbnV4L29mLmg+DQorI2luY2x1ZGUgPGxpbnV4L29mX2lycS5oPg0KICNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCiAjaW5jbHVkZSA8bGludXgvcG1fcnVudGltZS5oPg0K ICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4NCkBAIC03Nyw2ICs3OCwyMjggQEAgZW51bSBzc3Vz Yl91d2tfdmVycyB7DQogCVNTVVNCX1VXS19WMywNCiB9Ow0KIA0KK2ludCB4aGNpX210a19ydW50 aW1lX3JlYWR5Ow0KKw0KKyNpZiBJU19FTkFCTEVEKENPTkZJR19QTSkNCitzdGF0aWMgaW50IHho Y2lfbXRrX3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KK3N0YXRpYyBpbnQg eGhjaV9tdGtfcnVudGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KTsNCitzdGF0aWMgaW50 IHhoY2lfbXRrX3J1bnRpbWVfaWRsZShzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KK3N0YXRpYyBzc2l6 ZV90IHhoY2lfbXRrX3J1bnRpbWVfc2hvdyhzdHJ1Y3QgZGV2aWNlICpkZXYsDQorCQkJCSAgICAg c3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsDQorCQkJCSAgICAgY2hhciAqYnVmKQ0KK3sN CisJaW50IGk7DQorCWludCByZXQgPSAwOw0KKwlpbnQgbnVtX3BvcnRzOw0KKwlzdHJ1Y3QgeGhj aV9oY2RfbXRrICptdGsgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCisJc3RydWN0IHVzYl9oY2Qg KmhjZDsNCisJc3RydWN0IHhoY2lfaGNkICp4aGNpOw0KKwlzdHJ1Y3QgeGhjaV9odWIgKnVzYjJf cmh1YjsNCisJc3RydWN0IHhoY2lfaHViICp1c2IzX3JodWI7DQorCXN0cnVjdCB4aGNpX2J1c19z dGF0ZSAqYnVzX3N0YXRlOw0KKwlzdHJ1Y3QgeGhjaV9wb3J0ICpwb3J0Ow0KKwl1MzIgdXNiMl9z dXNwZW5kZWRfcG9ydHMgPSAtMTsNCisJdTMyIHVzYjNfc3VzcGVuZGVkX3BvcnRzID0gLTE7DQor CXUxNiBzdGF0dXM7DQorDQorCWlmICghbXRrLT5oY2QpDQorCQlyZXR1cm4gLUVTSFVURE9XTjsN CisNCisJaWYgKCF4aGNpX210a19ydW50aW1lX3JlYWR5KQ0KKwkJcmV0dXJuCXNwcmludGYoYnVm LA0KKwkJCSJ4aGNpX210a19ydW50aW1lX3JlYWR5IGlzIG5vdCByZWFkeSB5ZXQhXG4iKTsNCisN CisJaWYgKCFtdGstPmhjZCkNCisJCXJldHVybiAtRVNIVVRET1dOOw0KKw0KKwloY2QgPSBtdGst PmhjZDsNCisJeGhjaSA9IGhjZF90b194aGNpKGhjZCk7DQorCWlmICgoeGhjaS0+eGhjX3N0YXRl ICYgWEhDSV9TVEFURV9SRU1PVklORykgfHwNCisJCQkoeGhjaS0+eGhjX3N0YXRlICYgWEhDSV9T VEFURV9IQUxURUQpKSB7DQorCQlyZXR1cm4gLUVTSFVURE9XTjsNCisJfQ0KKw0KKwl1c2IyX3Jo dWIgPSAmeGhjaS0+dXNiMl9yaHViOw0KKwlpZiAodXNiMl9yaHViKSB7DQorCQlidXNfc3RhdGUg ID0gJnVzYjJfcmh1Yi0+YnVzX3N0YXRlOw0KKwkJbnVtX3BvcnRzICA9IHVzYjJfcmh1Yi0+bnVt X3BvcnRzOw0KKwkJdXNiMl9zdXNwZW5kZWRfcG9ydHMgID0gYnVzX3N0YXRlLT5zdXNwZW5kZWRf cG9ydHM7DQorCQl1c2IyX3N1c3BlbmRlZF9wb3J0cyBePSAoQklUKG51bV9wb3J0cykgLSAxKTsN CisJCXVzYjJfc3VzcGVuZGVkX3BvcnRzICY9IChCSVQobnVtX3BvcnRzKSAtIDEpOw0KKwkJZm9y IChpID0gMDsgaSA8IG51bV9wb3J0czsgaSsrKSB7DQorCQkJaWYgKHVzYjJfc3VzcGVuZGVkX3Bv cnRzICYgQklUKGkpKSB7DQorCQkJCXBvcnQgPSB1c2IyX3JodWItPnBvcnRzW2ldOw0KKwkJCQlz dGF0dXMgPSByZWFkbChwb3J0LT5hZGRyKTsNCisNCisJCQkJeGhjaV9pbmZvKHhoY2ksICJVU0Iy OiBwb3J0c2NbJWldOiAweCUwNFhcbiIsDQorCQkJCQkgIGksIHN0YXR1cyk7DQorDQorCQkJCWlm ICghKHN0YXR1cyAmIFBPUlRfQ09OTkVDVCkpDQorCQkJCQl1c2IyX3N1c3BlbmRlZF9wb3J0cyAm PSB+QklUKGkpOw0KKwkJCX0NCisJCX0NCisJfQ0KKw0KKwl1c2IzX3JodWIgPSAmeGhjaS0+dXNi M19yaHViOw0KKwlpZiAodXNiM19yaHViKSB7DQorCQlidXNfc3RhdGUgID0gJnVzYjNfcmh1Yi0+ YnVzX3N0YXRlOw0KKwkJbnVtX3BvcnRzICA9IHVzYjNfcmh1Yi0+bnVtX3BvcnRzOw0KKwkJdXNi M19zdXNwZW5kZWRfcG9ydHMgID0gYnVzX3N0YXRlLT5zdXNwZW5kZWRfcG9ydHM7DQorCQl1c2Iz X3N1c3BlbmRlZF9wb3J0cyBePSAoQklUKG51bV9wb3J0cykgLSAxKTsNCisJCXVzYjNfc3VzcGVu ZGVkX3BvcnRzICY9IChCSVQobnVtX3BvcnRzKSAtIDEpOw0KKwkJZm9yIChpID0gMDsgaSA8IG51 bV9wb3J0czsgaSsrKSB7DQorCQkJaWYgKHVzYjNfc3VzcGVuZGVkX3BvcnRzICYgQklUKGkpKSB7 DQorCQkJCXBvcnQgPSB1c2IzX3JodWItPnBvcnRzW2ldOw0KKwkJCQlzdGF0dXMgPSByZWFkbChw b3J0LT5hZGRyKTsNCisNCisJCQkJeGhjaV9pbmZvKHhoY2ksICJVU0IzOiBwb3J0c2NbJWldOiAw eCUwNFhcbiIsDQorCQkJCQkgIGksIHN0YXR1cyk7DQorDQorCQkJCWlmICghKHN0YXR1cyAmIFBP UlRfQ09OTkVDVCkpDQorCQkJCQl1c2IzX3N1c3BlbmRlZF9wb3J0cyAmPSB+QklUKGkpOw0KKwkJ CX0NCisJCX0NCisJfQ0KKw0KKwlyZXR1cm4gc3ByaW50ZihidWYsICJVU0IyMDogMHglMDhYLCBV U0IzMDogMHglMDhYIHJldDogJWlcbiIsDQorCQkJdXNiMl9zdXNwZW5kZWRfcG9ydHMsIHVzYjNf c3VzcGVuZGVkX3BvcnRzLCByZXQpOw0KK30NCisNCitzdGF0aWMgc3NpemVfdCB4aGNpX210a19y dW50aW1lX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwNCisJCQkJICAgICAgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmF0dHIsDQorCQkJCSAgICAgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNv dW50KQ0KK3sNCisJaW50IGxlbiA9IGNvdW50Ow0KKwljaGFyICpjcDsNCisJaW50IHJjID0gY291 bnQ7DQorCXN0YXRpYyBjb25zdCBjaGFyIHN1c3BlbmRfc3RyaW5nW10gPSAic3VzcGVuZCI7DQor CXN0YXRpYyBjb25zdCBjaGFyIHJlc3VtZV9zdHJpbmdbXSAgPSAicmVzdW1lIjsNCisJc3RhdGlj IGNvbnN0IGNoYXIgaWRsZV9zdHJpbmdbXSAgICA9ICJpZGxlIjsNCisNCisJY3AgPSBtZW1jaHIo YnVmLCAnXG4nLCBjb3VudCk7DQorCWlmIChjcCkNCisJCWxlbiA9IGNwIC0gYnVmOw0KKw0KKwlp ZiAoIXhoY2lfbXRrX3J1bnRpbWVfcmVhZHkpIHsNCisJCXJjID0gLUVBR0FJTjsNCisJCWRldl9p bmZvKGRldiwNCisJCQkieGhjaV9tdGtfcnVudGltZV9yZWFkeSBpcyBub3QgcmVhZHkgeWV0IVxu Iik7DQorCQlnb3RvIGV4aXQ7DQorCX0NCisNCisJaWYgKGxlbiA9PSBzaXplb2Yoc3VzcGVuZF9z dHJpbmcpIC0gMSAmJg0KKwkJCXN0cm5jbXAoYnVmLCBzdXNwZW5kX3N0cmluZywgbGVuKSA9PSAw KQ0KKwkJeGhjaV9tdGtfcnVudGltZV9zdXNwZW5kKGRldik7DQorCWVsc2UgaWYgKGxlbiA9PSBz aXplb2YocmVzdW1lX3N0cmluZykgLSAxICYmDQorCQkJc3RybmNtcChidWYsIHJlc3VtZV9zdHJp bmcsIGxlbikgPT0gMCkNCisJCXhoY2lfbXRrX3J1bnRpbWVfcmVzdW1lKGRldik7DQorCWVsc2Ug aWYgKGxlbiA9PSBzaXplb2YoaWRsZV9zdHJpbmcpIC0gMSAmJg0KKwkJCXN0cm5jbXAoYnVmLCBp ZGxlX3N0cmluZywgbGVuKSA9PSAwKQ0KKwkJeGhjaV9tdGtfcnVudGltZV9pZGxlKGRldik7DQor CWVsc2UNCisJCXJjID0gLUVJTlZBTDsNCisNCitleGl0Og0KKwlyZXR1cm4gcmM7DQorfQ0KK3N0 YXRpYyBERVZJQ0VfQVRUUl9SVyh4aGNpX210a19ydW50aW1lKTsNCisNCitzdGF0aWMgc3NpemVf dCBzZWFsX3J1bnRpbWVfc3RhdHVzX3Nob3coc3RydWN0IGRldmljZSAqZGV2LA0KKwkJCQlzdHJ1 Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwgY2hhciAqYnVmKQ0KK3sNCisJc3RhdGljIGNoYXIg KmNvbnN0IHNlYWxfc3RhdHVzW10gPSB7DQorCQkiU0VBTF9CVVNZIiwNCisJCSJTRUFMX1NVU1BF TkRJTkciLA0KKwkJIlNFQUxfU1VTUEVOREVEIiwNCisJCSJTRUFMX1JFU1VNSU5HIiwNCisJCSJT RUFMX1JFU1VNRUQiDQorCX07DQorCXN0cnVjdCB4aGNpX2hjZF9tdGsgICptdGsgPSBkZXZfZ2V0 X2RydmRhdGEoZGV2KTsNCisNCisJcmV0dXJuIHNwcmludGYoYnVmLCAic3RhdHVzOiAlcyglaSlc biIsDQorCQkJc2VhbF9zdGF0dXNbbXRrLT5zZWFsX3N0YXR1c10sIG10ay0+c2VhbF9zdGF0dXMp Ow0KK30NCitzdGF0aWMgREVWSUNFX0FUVFJfUk8oc2VhbF9ydW50aW1lX3N0YXR1cyk7DQorDQor c3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnBvd2VyX2F0dHJzW10gPSB7DQorCSZkZXZfYXR0cl94 aGNpX210a19ydW50aW1lLmF0dHIsDQorCSZkZXZfYXR0cl9zZWFsX3J1bnRpbWVfc3RhdHVzLmF0 dHIsDQorCU5VTEwsDQorfTsNCisNCitzdGF0aWMgc3RydWN0IGF0dHJpYnV0ZV9ncm91cCBwb3dl cl9hdHRyX2dyb3VwID0gew0KKwkubmFtZQk9IHBvd2VyX2dyb3VwX25hbWUsDQorCS5hdHRycwk9 IHBvd2VyX2F0dHJzLA0KK307DQorDQorc3RhdGljIGludCBhZGRfcG93ZXJfYXR0cmlidXRlcyhz dHJ1Y3QgZGV2aWNlICpkZXYpDQorew0KKwlpbnQgcmMgPSAwOw0KKw0KKwlyYyA9IHN5c2ZzX21l cmdlX2dyb3VwKCZkZXYtPmtvYmosICZwb3dlcl9hdHRyX2dyb3VwKTsNCisNCisJcmV0dXJuIHJj Ow0KK30NCisNCitzdGF0aWMgdm9pZCByZW1vdmVfcG93ZXJfYXR0cmlidXRlcyhzdHJ1Y3QgZGV2 aWNlICpkZXYpDQorew0KKwlzeXNmc191bm1lcmdlX2dyb3VwKCZkZXYtPmtvYmosICZwb3dlcl9h dHRyX2dyb3VwKTsNCit9DQorI2Vsc2UNCisjZGVmaW5lIGFkZF9wb3dlcl9hdHRyaWJ1dGVzKGRl dikJZG8ge30gd2hpbGUgKDApDQorI2RlZmluZSByZW1vdmVfcG93ZXJfYXR0cmlidXRlcyhkZXYp CWRvIHt9IHdoaWxlICgwKQ0KKyNlbmRpZg0KKw0KK3N0YXRpYyB2b2lkIHhoY2lfbXRrX3NlYWxf d29yayhzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspDQorew0KKwlzdHJ1Y3QgeGhjaV9oY2RfbXRr ICptdGsgPQ0KKwkJCWNvbnRhaW5lcl9vZih3b3JrLCBzdHJ1Y3QgeGhjaV9oY2RfbXRrLCBzZWFs LndvcmspOw0KKwlzdHJ1Y3QgdXNiX2hjZCAqaGNkID0gbXRrLT5oY2Q7DQorCXN0cnVjdCB4aGNp X2hjZCAqeGhjaSA9IGhjZF90b194aGNpKGhjZCk7DQorDQorCXhoY2lfZGJnKHhoY2ksICJzcG0g dW5zZWFscyB4SENJIGNvbnRyb2xsZXIgJWlcbiIsIG10ay0+c2VhbF9zdGF0dXMpOw0KKwlpZiAo bXRrLT5zZWFsX3N0YXR1cyA9PSBTRUFMX1NVU1BFTkRFRCkgew0KKwkJbXRrLT5zZWFsX3N0YXR1 cyA9IFNFQUxfUkVTVU1JTkc7DQorCQlwbV9ydW50aW1lX3B1dF9zeW5jX2F1dG9zdXNwZW5kKG10 ay0+ZGV2KTsNCisJfSBlbHNlIHsNCisJCXhoY2lfd2Fybih4aGNpLA0KKwkJICJJZ25vcmUgc2Vh bCB3YWtldXAgc291cmNlIGRpc29yZGVyZWQgaW4geEhDSSBjb250cm9sbGVyXG4iKTsNCisJfQ0K K30NCisNCitzdGF0aWMgaXJxcmV0dXJuX3QgeGhjaV9tdGtfc2VhbF9pcnEoaW50IGlycSwgdm9p ZCAqZGF0YSkNCit7DQorCXN0cnVjdCB4aGNpX2hjZF9tdGsgKm10ayA9IGRhdGE7DQorCXN0cnVj dCB1c2JfaGNkICpoY2QgPSBtdGstPmhjZDsNCisJc3RydWN0IHhoY2lfaGNkICp4aGNpID0gaGNk X3RvX3hoY2koaGNkKTsNCisNCisJeGhjaV9kYmcoeGhjaSwgInNlYWwgaXJxIElTUiBpbnZva2Vk XG4iKTsNCisNCisJc2NoZWR1bGVfZGVsYXllZF93b3JrKCZtdGstPnNlYWwsIDApOw0KKw0KKwly ZXR1cm4gSVJRX0hBTkRMRUQ7DQorfQ0KKw0KK3N0YXRpYyB2b2lkIHhoY2lfbXRrX3NlYWxfd2Fr ZXVwX2VuYWJsZShzdHJ1Y3QgeGhjaV9oY2RfbXRrICptdGssIGJvb2wgZW5hYmxlKQ0KK3sNCisJ c3RydWN0IGlycV9kZXNjICpkZXNjOw0KKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBtdGstPmRldjsN CisNCisJaWYgKG10ayAmJiBtdGstPnNlYWxfaXJxKSB7DQorCQlkZXNjID0gaXJxX3RvX2Rlc2Mo bXRrLT5zZWFsX2lycSk7DQorCQlpZiAoZW5hYmxlKSB7DQorCQkJZGVzYy0+aXJxX2RhdGEuY2hp cC0+aXJxX2FjaygmZGVzYy0+aXJxX2RhdGEpOw0KKwkJCWVuYWJsZV9pcnEobXRrLT5zZWFsX2ly cSk7DQorCQkJZGV2X2RiZyhkZXYsICIlczogZW5hYmxlX2lycSAlaVxuIiwNCisJCQkJIF9fZnVu Y19fLCBtdGstPnNlYWxfaXJxKTsNCisJCX0gZWxzZSB7DQorCQkJZGlzYWJsZV9pcnEobXRrLT5z ZWFsX2lycSk7DQorCQkJZGV2X2RiZyhkZXYsICIlczogZGlzYWJsZV9pcnEgJWlcbiIsDQorCQkJ CSBfX2Z1bmNfXywgbXRrLT5zZWFsX2lycSk7DQorCQl9DQorCX0NCit9DQorDQogc3RhdGljIGlu dCB4aGNpX210a19ob3N0X2VuYWJsZShzdHJ1Y3QgeGhjaV9oY2RfbXRrICptdGspDQogew0KIAlz dHJ1Y3QgbXUzY19pcHBjX3JlZ3MgX19pb21lbSAqaXBwYyA9IG10ay0+aXBwY19yZWdzOw0KQEAg LTM0NCw3ICs1NjcsNiBAQCBzdGF0aWMgaW50IHVzYl93YWtldXBfb2ZfcHJvcGVydHlfcGFyc2Uo c3RydWN0IHhoY2lfaGNkX210ayAqbXRrLA0KIAkJCW10ay0+dXdrX3JlZ19iYXNlLCBtdGstPnV3 a192ZXJzKTsNCiANCiAJcmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhtdGstPnV3ayk7DQotDQogfQ0K IA0KIHN0YXRpYyB2b2lkIHVzYl93YWtldXBfc2V0KHN0cnVjdCB4aGNpX2hjZF9tdGsgKm10aywg Ym9vbCBlbmFibGUpDQpAQCAtNDc5LDkgKzcwMSwxMSBAQCBzdGF0aWMgaW50IHhoY2lfbXRrX3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQogCQlyZXR1cm4gcmV0Ow0KIAl9DQog DQorCXBtX3J1bnRpbWVfc2V0X2FjdGl2ZShkZXYpOw0KKwlwbV9ydW50aW1lX3VzZV9hdXRvc3Vz cGVuZChkZXYpOw0KKwlwbV9ydW50aW1lX3NldF9hdXRvc3VzcGVuZF9kZWxheShkZXYsDQorCQkJ CUNPTkZJR19VU0JfQVVUT1NVU1BFTkRfREVMQVkgKiAxMDAwKTsNCiAJcG1fcnVudGltZV9lbmFi bGUoZGV2KTsNCi0JcG1fcnVudGltZV9nZXRfc3luYyhkZXYpOw0KLQlkZXZpY2VfZW5hYmxlX2Fz eW5jX3N1c3BlbmQoZGV2KTsNCiANCiAJcmV0ID0geGhjaV9tdGtfbGRvc19lbmFibGUobXRrKTsN CiAJaWYgKHJldCkNCkBAIC00OTYsNiArNzIwLDE0IEBAIHN0YXRpYyBpbnQgeGhjaV9tdGtfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikNCiAJCXJldCA9IGlycTsNCiAJCWdvdG8g ZGlzYWJsZV9jbGs7DQogCX0NCisJZGV2X2RiZyhkZXYsICJpcnEgJWlcbiIsIGlycSk7DQorDQor CW10ay0+c2VhbF9pcnEgPSBwbGF0Zm9ybV9nZXRfaXJxX29wdGlvbmFsKHBkZXYsIDEpOw0KKwlp ZiAobXRrLT5zZWFsX2lycSA8IDApIHsNCisJCXJldCA9IG10ay0+c2VhbF9pcnE7DQorCQlnb3Rv IGRpc2FibGVfY2xrOw0KKwl9DQorCWRldl9kYmcoZGV2LCAic2VhbF9pcnEgJWlcbiIsIG10ay0+ c2VhbF9pcnEpOw0KIA0KIAloY2QgPSB1c2JfY3JlYXRlX2hjZChkcml2ZXIsIGRldiwgZGV2X25h bWUoZGV2KSk7DQogCWlmICghaGNkKSB7DQpAQCAtNTYyLDYgKzc5NCwzMSBAQCBzdGF0aWMgaW50 IHhoY2lfbXRrX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQogCWlmIChyZXQp DQogCQlnb3RvIGRlYWxsb2NfdXNiMl9oY2Q7DQogDQorCUlOSVRfREVMQVlFRF9XT1JLKCZtdGst PnNlYWwsIHhoY2lfbXRrX3NlYWxfd29yayk7DQorCXNucHJpbnRmKG10ay0+c2VhbF9kZXNjciwg c2l6ZW9mKG10ay0+c2VhbF9kZXNjciksICJzZWFsJXM6dXNiJWQiLA0KKwkJIGhjZC0+ZHJpdmVy LT5kZXNjcmlwdGlvbiwgaGNkLT5zZWxmLmJ1c251bSk7DQorCXJldCA9IGRldm1fcmVxdWVzdF9p cnEobXRrLT5zZWFsX2lycSwgJnhoY2lfbXRrX3NlYWxfaXJxLA0KKwkJCSAgSVJRRl9UUklHR0VS X0ZBTExJTkcsCW10ay0+c2VhbF9kZXNjciwgbXRrKTsNCisJaWYgKHJldCAhPSAwKSB7DQorCQlk ZXZfZXJyKGRldiwgInNlYWwgcmVxdWVzdCBpbnRlcnJ1cHQgJWQgZmFpbGVkXG4iLA0KKwkJCW10 ay0+c2VhbF9pcnEpOw0KKwkJZ290byBkZWFsbG9jX3VzYjJfaGNkOw0KKwl9DQorCXhoY2lfbXRr X3NlYWxfd2FrZXVwX2VuYWJsZShtdGssIGZhbHNlKTsNCisNCisJZGV2aWNlX2VuYWJsZV9hc3lu Y19zdXNwZW5kKGRldik7DQorCXhoY2lfbXRrX3J1bnRpbWVfcmVhZHkgPSAxOw0KKw0KKwlyZXQg PSBhZGRfcG93ZXJfYXR0cmlidXRlcyhkZXYpOw0KKwlpZiAocmV0KQ0KKwkJZ290byBkZWFsbG9j X3VzYjJfaGNkOw0KKw0KKwlwbV9ydW50aW1lX21hcmtfbGFzdF9idXN5KGRldik7DQorCXBtX3J1 bnRpbWVfcHV0X2F1dG9zdXNwZW5kKGRldik7DQorDQorCWRldl9kYmcoZGV2LCAiJXM6IHhoY2lf bXRrX3J1bnRpbWVfcmVhZHkgJWkiLA0KKwkJIF9fZnVuY19fLCB4aGNpX210a19ydW50aW1lX3Jl YWR5KTsNCisNCiAJcmV0dXJuIDA7DQogDQogZGVhbGxvY191c2IyX2hjZDoNCkBAIC01ODQsNyAr ODQxLDcgQEAgc3RhdGljIGludCB4aGNpX210a19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQ0KIAl4aGNpX210a19sZG9zX2Rpc2FibGUobXRrKTsNCiANCiBkaXNhYmxlX3BtOg0K LQlwbV9ydW50aW1lX3B1dF9zeW5jKGRldik7DQorCXBtX3J1bnRpbWVfcHV0X3N5bmNfYXV0b3N1 c3BlbmQoZGV2KTsNCiAJcG1fcnVudGltZV9kaXNhYmxlKGRldik7DQogCXJldHVybiByZXQ7DQog fQ0KQEAgLTU5OCw3ICs4NTUsOSBAQCBzdGF0aWMgaW50IHhoY2lfbXRrX3JlbW92ZShzdHJ1Y3Qg cGxhdGZvcm1fZGV2aWNlICpkZXYpDQogDQogCXBtX3J1bnRpbWVfcHV0X25vaWRsZSgmZGV2LT5k ZXYpOw0KIAlwbV9ydW50aW1lX2Rpc2FibGUoJmRldi0+ZGV2KTsNCisJcmVtb3ZlX3Bvd2VyX2F0 dHJpYnV0ZXMoJmRldi0+ZGV2KTsNCiANCisJeGhjaV9tdGtfcnVudGltZV9yZWFkeSA9IDA7DQog CXVzYl9yZW1vdmVfaGNkKHNoYXJlZF9oY2QpOw0KIAl4aGNpLT5zaGFyZWRfaGNkID0gTlVMTDsN CiAJZGV2aWNlX2luaXRfd2FrZXVwKCZkZXYtPmRldiwgZmFsc2UpOw0KQEAgLTYzNSw2ICs4OTQs NyBAQCBzdGF0aWMgaW50IF9fbWF5YmVfdW51c2VkIHhoY2lfbXRrX3N1c3BlbmQoc3RydWN0IGRl dmljZSAqZGV2KQ0KIAl4aGNpX210a19ob3N0X2Rpc2FibGUobXRrKTsNCiAJeGhjaV9tdGtfY2xr c19kaXNhYmxlKG10ayk7DQogCXVzYl93YWtldXBfc2V0KG10aywgdHJ1ZSk7DQorDQogCXJldHVy biAwOw0KIH0NCiANCkBAIC02NTYsMTAgKzkxNiwxODUgQEAgc3RhdGljIGludCBfX21heWJlX3Vu dXNlZCB4aGNpX210a19yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQ0KIAlyZXR1cm4gMDsNCiB9 DQogDQorc3RhdGljIGludCBfX21heWJlX3VudXNlZCB4aGNpX210a19idXNfc3RhdHVzKHN0cnVj dCBkZXZpY2UgKmRldikNCit7DQorCXN0cnVjdCB4aGNpX2hjZF9tdGsgKm10ayA9IGRldl9nZXRf ZHJ2ZGF0YShkZXYpOw0KKwlzdHJ1Y3QgdXNiX2hjZCAqaGNkOw0KKwlzdHJ1Y3QgeGhjaV9oY2Qg KnhoY2k7DQorCXN0cnVjdCB4aGNpX2h1YiAqdXNiMl9yaHViOw0KKwlzdHJ1Y3QgeGhjaV9odWIg KnVzYjNfcmh1YjsNCisJc3RydWN0IHhoY2lfYnVzX3N0YXRlICpidXNfc3RhdGU7DQorCXN0cnVj dCB4aGNpX3BvcnQgKnBvcnQ7DQorCXUzMgl1c2IyX3N1c3BlbmRlZF9wb3J0cyA9IC0xOw0KKwl1 MzIJdXNiM19zdXNwZW5kZWRfcG9ydHMgPSAtMTsNCisJdTE2IHN0YXR1czsNCisJaW50IG51bV9w b3J0czsNCisJaW50IHJldCA9IDA7DQorCWludCBpOw0KKw0KKwlpZiAoIW10ay0+aGNkKQ0KKwkJ cmV0dXJuIC1FU0hVVERPV047DQorDQorCWhjZCA9IG10ay0+aGNkOw0KKwl4aGNpID0gaGNkX3Rv X3hoY2koaGNkKTsNCisJaWYgKCh4aGNpLT54aGNfc3RhdGUgJiBYSENJX1NUQVRFX1JFTU9WSU5H KSB8fA0KKwkJCSh4aGNpLT54aGNfc3RhdGUgJiBYSENJX1NUQVRFX0hBTFRFRCkpIHsNCisJCXJl dHVybiAtRVNIVVRET1dOOw0KKwl9DQorDQorCXVzYjJfcmh1YiA9ICZ4aGNpLT51c2IyX3JodWI7 DQorCWlmICh1c2IyX3JodWIpIHsNCisJCWJ1c19zdGF0ZSAgPSAmdXNiMl9yaHViLT5idXNfc3Rh dGU7DQorCQludW1fcG9ydHMgID0gdXNiMl9yaHViLT5udW1fcG9ydHM7DQorCQl1c2IyX3N1c3Bl bmRlZF9wb3J0cyAgPSBidXNfc3RhdGUtPnN1c3BlbmRlZF9wb3J0czsNCisJCXVzYjJfc3VzcGVu ZGVkX3BvcnRzIF49IChCSVQobnVtX3BvcnRzKSAtIDEpOw0KKwkJdXNiMl9zdXNwZW5kZWRfcG9y dHMgJj0gKEJJVChudW1fcG9ydHMpIC0gMSk7DQorCQlmb3IgKGkgPSAwOyBpIDwgbnVtX3BvcnRz OyBpKyspIHsNCisJCQlpZiAodXNiMl9zdXNwZW5kZWRfcG9ydHMgJiAoMVVMIDw8IGkpKSB7DQor CQkJCXBvcnQgPSB1c2IyX3JodWItPnBvcnRzW2ldOw0KKwkJCQlzdGF0dXMgPSByZWFkbChwb3J0 LT5hZGRyKTsNCisNCisJCQkJeGhjaV9kYmcoeGhjaSwNCisJCQkJCSAgIlVTQjIwOiBwb3J0c2Nb JWldOiAweCUwNFhcbiIsDQorCQkJCQkgIGksIHN0YXR1cyk7DQorDQorCQkJCWlmICghKHN0YXR1 cyAmIFBPUlRfQ09OTkVDVCkpDQorCQkJCQl1c2IyX3N1c3BlbmRlZF9wb3J0cyAmPSB+KDFVTCA8 PCBpKTsNCisJCQl9DQorCQl9DQorDQorCQlpZiAodXNiMl9zdXNwZW5kZWRfcG9ydHMpIHsNCisJ CQlyZXQgPSAtRUJVU1k7DQorCQkJZ290byBlYnVzeTsNCisJCX0NCisJfQ0KKw0KKwl1c2IzX3Jo dWIgPSAmeGhjaS0+dXNiM19yaHViOw0KKwlpZiAodXNiM19yaHViKSB7DQorCQlidXNfc3RhdGUg ID0gJnVzYjNfcmh1Yi0+YnVzX3N0YXRlOw0KKwkJbnVtX3BvcnRzICA9IHVzYjNfcmh1Yi0+bnVt X3BvcnRzOw0KKwkJdXNiM19zdXNwZW5kZWRfcG9ydHMgID0gYnVzX3N0YXRlLT5zdXNwZW5kZWRf cG9ydHM7DQorCQl1c2IzX3N1c3BlbmRlZF9wb3J0cyBePSAoQklUKG51bV9wb3J0cykgLSAxKTsN CisJCXVzYjNfc3VzcGVuZGVkX3BvcnRzICY9IChCSVQobnVtX3BvcnRzKSAtIDEpOw0KKwkJZm9y IChpID0gMDsgaSA8IG51bV9wb3J0czsgaSsrKSB7DQorCQkJaWYgKHVzYjNfc3VzcGVuZGVkX3Bv cnRzICYgQklUKGkpKSB7DQorCQkJCXBvcnQgPSB1c2IzX3JodWItPnBvcnRzW2ldOw0KKwkJCQlz dGF0dXMgPSByZWFkbChwb3J0LT5hZGRyKTsNCisNCisJCQkJeGhjaV9kYmcoeGhjaSwgIlVTQjM6 IHBvcnRzY1slaV06IDB4JTA0WFxuIiwNCisJCQkJCSAgaSwgc3RhdHVzKTsNCisNCisJCQkJaWYg KCEoc3RhdHVzICYgUE9SVF9DT05ORUNUKSkNCisJCQkJCXVzYjNfc3VzcGVuZGVkX3BvcnRzICY9 IH5CSVQoaSk7DQorCQkJfQ0KKwkJfQ0KKw0KKwkJaWYgKHVzYjNfc3VzcGVuZGVkX3BvcnRzKSB7 DQorCQkJcmV0ID0gLUVCVVNZOw0KKwkJCWdvdG8gZWJ1c3k7DQorCQl9DQorCX0NCisNCitlYnVz eToNCisJeGhjaV9kYmcoeGhjaSwgIiVzOiBVU0IyOiAweCUwOFgsIFVTQjM6IDB4JTA4WCByZXQ6 ICVpXG4iLA0KKwkJICBfX2Z1bmNfXywgdXNiMl9zdXNwZW5kZWRfcG9ydHMsDQorCQkgIHVzYjNf c3VzcGVuZGVkX3BvcnRzLCByZXQpOw0KKw0KKwlyZXR1cm4gcmV0Ow0KK30NCisNCitzdGF0aWMg aW50IF9fbWF5YmVfdW51c2VkIHhoY2lfbXRrX3J1bnRpbWVfc3VzcGVuZChzdHJ1Y3QgZGV2aWNl ICpkZXYpDQorew0KKwlib29sIHdha2V1cCA9IGRldmljZV9tYXlfd2FrZXVwKGRldik7DQorCXN0 cnVjdCB4aGNpX2hjZF9tdGsgICptdGsgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCisJc3RydWN0 IHVzYl9oY2QgKmhjZDsNCisJc3RydWN0IHhoY2lfaGNkICp4aGNpOw0KKwlpbnQgcmV0ID0gMDsN CisNCisJaWYgKCFtdGstPmhjZCkNCisJCXJldHVybiAtRVNIVVRET1dOOw0KKw0KKwloY2QgPSBt dGstPmhjZDsNCisJeGhjaSA9IGhjZF90b194aGNpKGhjZCk7DQorCWlmICgoeGhjaS0+eGhjX3N0 YXRlICYgWEhDSV9TVEFURV9SRU1PVklORykgfHwNCisJCQkoeGhjaS0+eGhjX3N0YXRlICYgWEhD SV9TVEFURV9IQUxURUQpKSB7DQorCQlyZXR1cm4gLUVTSFVURE9XTjsNCisJfQ0KKw0KKwltdGst PnNlYWxfc3RhdHVzID0gU0VBTF9CVVNZOw0KKwlyZXQgPSB4aGNpX210a19idXNfc3RhdHVzKGRl dik7DQorCWlmICh3YWtldXAgJiYgIXJldCkgew0KKwkJbXRrLT5zZWFsX3N0YXR1cyA9IFNFQUxf U1VTUEVORElORzsNCisJCXhoY2lfbXRrX3N1c3BlbmQoZGV2KTsNCisJCXhoY2lfbXRrX3NlYWxf d2FrZXVwX2VuYWJsZShtdGssIHRydWUpOw0KKwkJbXRrLT5zZWFsX3N0YXR1cyA9IFNFQUxfU1VT UEVOREVEOw0KKwkJeGhjaV9kYmcoeGhjaSwgIiVzOiBzZWFscyB4SENJIGNvbnRyb2xsZXJcbiIs IF9fZnVuY19fKTsNCisJfQ0KKw0KKwl4aGNpX2RiZyh4aGNpLCAiJXM6IHNlYWxzIHdha2V1cCA9 ICVpLCByZXQgPSAlaSFcbiIsDQorCQkgIF9fZnVuY19fLCB3YWtldXAsIHJldCk7DQorDQorCXJl dHVybiByZXQ7DQorfQ0KKw0KK3N0YXRpYyBpbnQgX19tYXliZV91bnVzZWQgeGhjaV9tdGtfcnVu dGltZV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQ0KK3sNCisJYm9vbCB3YWtldXAgPSBkZXZp Y2VfbWF5X3dha2V1cChkZXYpOw0KKwlzdHJ1Y3QgeGhjaV9oY2RfbXRrICAqbXRrID0gZGV2X2dl dF9kcnZkYXRhKGRldik7DQorCXN0cnVjdCB1c2JfaGNkICpoY2Q7DQorCXN0cnVjdCB4aGNpX2hj ZCAqeGhjaTsNCisNCisJaWYgKCFtdGstPmhjZCkNCisJCXJldHVybiAtRVNIVVRET1dOOw0KKw0K KwloY2QgPSBtdGstPmhjZDsNCisJeGhjaSA9IGhjZF90b194aGNpKGhjZCk7DQorCWlmICgoeGhj aS0+eGhjX3N0YXRlICYgWEhDSV9TVEFURV9SRU1PVklORykgfHwNCisJCQkoeGhjaS0+eGhjX3N0 YXRlICYgWEhDSV9TVEFURV9IQUxURUQpKSB7DQorCQlyZXR1cm4gLUVTSFVURE9XTjsNCisJfQ0K Kw0KKwkvKg0KKwkgKiAgbGlzdCBjYXNlcyBieSBvbmUgZXh0cmEgaW50ZXJydXB0IG5hbWVkIHNl YWwgdG8gcHJvY2VzcyEhIQ0KKwkgKiAgV2hvIHRvIHByb2Nlc3MgdGhlc2UgbW9kdWxlIHJlaW5p dGlsaXphdGlvbiBhZnRlciBTUE0gd2FrZXVwDQorCSAqICBjYXNlIDE6IHVzYiByZW1vdGUgd2Fr ZXVwLCB0aGVyZWZvcmUgeEhDSSBuZWVkIHJlaW5pdGlsaXphdGUgYWxzby4NCisJICogIGNhc2Ug Mjogb3RoZXItd2FrZXVwLXNvdXJjZSB3YWtldXAsIHRoZXJlZm9yZSwgeEhDSSBuZWVkIHJlaW5p dA0KKwkgKiAgY2FzZSAzOiB1c2IgY2xpZW50IGRyaXZlciBjYW4gaW52b2tlIGl0IGluIHJ1bnRp bWUgbWVjaGFuaXNtDQorCSAqICBjYXNlIDQ6IHVzZXIgYWN0aXZlDQorCSAqLw0KKwlpZiAod2Fr ZXVwKSB7DQorCQl4aGNpX210a19zZWFsX3dha2V1cF9lbmFibGUobXRrLCBmYWxzZSk7DQorCQl4 aGNpX210a19yZXN1bWUoZGV2KTsNCisJCXhoY2lfZGJnKHhoY2ksICIlczogdW5zZWFscyB4SENJ IGNvbnRyb2xsZXJcbiIsIF9fZnVuY19fKTsNCisJfQ0KKwltdGstPnNlYWxfc3RhdHVzID0gU0VB TF9SRVNVTUVEOw0KKw0KKwl4aGNpX2RiZyh4aGNpLCAiJXM6IHVuc2VhbHMgd2FrZXVwID0gJWlc biIsIF9fZnVuY19fLCB3YWtldXApOw0KKw0KKwlyZXR1cm4gMDsNCit9DQorDQorc3RhdGljIGlu dCBfX21heWJlX3VudXNlZCB4aGNpX210a19ydW50aW1lX2lkbGUoc3RydWN0IGRldmljZSAqZGV2 KQ0KK3sNCisJaW50IHJldCA9IDA7DQorDQorCWRldl9kYmcoZGV2LCAiJXM6IHhoY2lfbXRrX3J1 bnRpbWVfcmVhZHkgJWkiLA0KKwkJIF9fZnVuY19fLCB4aGNpX210a19ydW50aW1lX3JlYWR5KTsN CisNCisJaWYgKCF4aGNpX210a19ydW50aW1lX3JlYWR5KQ0KKwkJcmV0ID0gLUVBR0FJTjsNCisN CisJcmV0dXJuIHJldDsNCit9DQorDQogc3RhdGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIHho Y2lfbXRrX3BtX29wcyA9IHsNCiAJU0VUX1NZU1RFTV9TTEVFUF9QTV9PUFMoeGhjaV9tdGtfc3Vz cGVuZCwgeGhjaV9tdGtfcmVzdW1lKQ0KKwlTRVRfUlVOVElNRV9QTV9PUFMoeGhjaV9tdGtfcnVu dGltZV9zdXNwZW5kLA0KKwkJCSAgIHhoY2lfbXRrX3J1bnRpbWVfcmVzdW1lLA0KKwkJCSAgIHho Y2lfbXRrX3J1bnRpbWVfaWRsZSkNCiB9Ow0KLSNkZWZpbmUgREVWX1BNX09QUyBJU19FTkFCTEVE KENPTkZJR19QTSkgPyAmeGhjaV9tdGtfcG1fb3BzIDogTlVMTA0KKw0KKyNkZWZpbmUgREVWX1BN X09QUyAoSVNfRU5BQkxFRChDT05GSUdfUE0pID8gJnhoY2lfbXRrX3BtX29wcyA6IE5VTEwpDQog DQogI2lmZGVmIENPTkZJR19PRg0KIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10 a194aGNpX29mX21hdGNoW10gPSB7DQpAQCAtNjgzLDYgKzExMTgsNyBAQCBzdGF0aWMgaW50IF9f bWF5YmVfdW51c2VkIHhoY2lfbXRrX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpDQogDQogc3Rh dGljIGludCBfX2luaXQgeGhjaV9tdGtfaW5pdCh2b2lkKQ0KIHsNCisJeGhjaV9tdGtfcnVudGlt ZV9yZWFkeSA9IDA7DQogCXhoY2lfaW5pdF9kcml2ZXIoJnhoY2lfbXRrX2hjX2RyaXZlciwgJnho Y2lfbXRrX292ZXJyaWRlcyk7DQogCXJldHVybiBwbGF0Zm9ybV9kcml2ZXJfcmVnaXN0ZXIoJm10 a194aGNpX2RyaXZlcik7DQogfQ0KZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1t dGsuaCBiL2RyaXZlcnMvdXNiL2hvc3QveGhjaS1tdGsuaA0Kb2xkIG1vZGUgMTAwNjQ0DQpuZXcg bW9kZSAxMDA3NTUNCmluZGV4IDMyM2IyODEuLjEwM2Q4M2MNCi0tLSBhL2RyaXZlcnMvdXNiL2hv c3QveGhjaS1tdGsuaA0KKysrIGIvZHJpdmVycy91c2IvaG9zdC94aGNpLW10ay5oDQpAQCAtMTMz LDYgKzEzMywxNCBAQCBzdHJ1Y3QgbXUzY19pcHBjX3JlZ3Mgew0KIAlfX2xlMzIgcmVzZXJ2ZWQz WzMzXTsgLyogMHg4MCB+IDB4ZmYgKi8NCiB9Ow0KIA0KK2VudW0geGhjaV9tdGtfc2VhbCB7DQor CVNFQUxfQlVTWSA9IDAsDQorCVNFQUxfU1VTUEVORElORywNCisJU0VBTF9TVVNQRU5ERUQsDQor CVNFQUxfUkVTVU1JTkcsDQorCVNFQUxfUkVTVU1FRA0KK307DQorDQogc3RydWN0IHhoY2lfaGNk X210ayB7DQogCXN0cnVjdCBkZXZpY2UgKmRldjsNCiAJc3RydWN0IHVzYl9oY2QgKmhjZDsNCkBA IC0xNTgsNiArMTY2LDEyIEBAIHN0cnVjdCB4aGNpX2hjZF9tdGsgew0KIAlzdHJ1Y3QgcmVnbWFw ICp1d2s7DQogCXUzMiB1d2tfcmVnX2Jhc2U7DQogCXUzMiB1d2tfdmVyczsNCisNCisJLyogdXNi IGVpbnQgd2FrZXVwIHNvdXJjZSAqLw0KKwlpbnQgc2VhbF9pcnE7DQorCWVudW0geGhjaV9tdGtf c2VhbCBzZWFsX3N0YXR1czsNCisJc3RydWN0IGRlbGF5ZWRfd29yayAgc2VhbDsNCisJY2hhciAg IHNlYWxfZGVzY3JbMzJdOwkvKiAic2VhbCIgKyBkcml2ZXIgKyBidXMgIyAqLw0KIH07DQogDQog c3RhdGljIGlubGluZSBzdHJ1Y3QgeGhjaV9oY2RfbXRrICpoY2RfdG9fbXRrKHN0cnVjdCB1c2Jf aGNkICpoY2QpDQotLSANCjEuOS4xDQo=