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=-17.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_SANE_2 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 2E36DC43333 for ; Thu, 21 Jan 2021 02:09:40 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0284B2388B for ; Thu, 21 Jan 2021 02:09:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727085AbhAUBlg (ORCPT ); Wed, 20 Jan 2021 20:41:36 -0500 Received: from mailgw02.mediatek.com ([210.61.82.184]:59606 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1732321AbhAUA5v (ORCPT ); Wed, 20 Jan 2021 19:57:51 -0500 X-UUID: 22c6d51bed8e4aa99b4d885bc1feef25-20210121 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:Reply-To:From:Subject:Message-ID; bh=/dP5wm6CNuyT3vNiZvx2XBt+dwobgLw/9qYKIOrg8ik=; b=OOmc2G85TxC8uEk1Fl2aVq+AekcZa+jTtbWUb80KttH5NytDvFPRjycgTRblSK2zSZsTLxiMazGOsfxvlNEEkl0ZUq9WAY/1bwmAYB3wGNzd2GdO5nYX0Yp65D0nuhUmizfACO0qxg8Hihv31g10YngKmAtAPt/oHJkmcDFp3MM=; X-UUID: 22c6d51bed8e4aa99b4d885bc1feef25-20210121 Received: from mtkexhb01.mediatek.inc [(172.21.101.102)] 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 1566242809; Thu, 21 Jan 2021 08:56:59 +0800 Received: from MTKCAS36.mediatek.inc (172.27.4.186) by mtkmbs05n2.mediatek.inc (172.21.101.140) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 21 Jan 2021 08:56:58 +0800 Received: from [10.17.3.153] (10.17.3.153) by MTKCAS36.mediatek.inc (172.27.4.170) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Thu, 21 Jan 2021 08:56:56 +0800 Message-ID: <1611190616.22801.6.camel@mhfsdcap03> Subject: Re: [PATCH v4, 03/10] soc: mediatek: mmsys: move register operation into mmsys path select function From: Yongqiang Niu Reply-To: Yongqiang Niu To: Matthias Brugger CC: CK Hu , Philipp Zabel , "Rob Herring" , Matthias Brugger , Mark Rutland , , "David Airlie" , , , , , Daniel Vetter , Date: Thu, 21 Jan 2021 08:56:56 +0800 In-Reply-To: References: <1609815993-22744-1-git-send-email-yongqiang.niu@mediatek.com> <1609815993-22744-4-git-send-email-yongqiang.niu@mediatek.com> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4-0ubuntu2 MIME-Version: 1.0 X-MTK: N Content-Transfer-Encoding: base64 Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org T24gV2VkLCAyMDIxLTAxLTIwIGF0IDIwOjM4ICswMTAwLCBNYXR0aGlhcyBCcnVnZ2VyIHdyb3Rl Og0KPiBPbiBUdWUsIEphbiAwNSwgMjAyMSBhdCAxMTowNjoyNkFNICswODAwLCBZb25ncWlhbmcg Tml1IHdyb3RlOg0KPiA+IG1vdmUgcmVnaXN0ZXIgb3BlcmF0aW9uIGludG8gbW1zeXMgcGF0aCBz ZWxlY3QgZnVuY3Rpb24NCj4gDQo+IFdoeSBkbyB5b3Ugd2FudCB0byBkbyB0aGF0LiBJdCBzZWVt cyB0aGUgcmVnaXN0ZXIgYWNjZXNzIHBhdHRlcm4gaXMgdGhlDQo+IHNhbWUgZm9yIGFsbCBTb0Nz IHNvIGZhciBzdXBwb3J0ZWQsIHNvIEkgZG9uJ3Qgc2VlIHRoZSBuZWVkIHRvIGR1cGxpY2F0ZQ0K PiB0aGUgY29kZSBpbiBldmVyeSBTb0MuDQo+IA0KPiBSZWdhcmRzLA0KPiBNYXR0aGlhcw0KDQpt dDI3MDEgYW5kIG10ODE3MyBvdmwgbW91dCBlbiBhbHJlYWR5IGRpZmZlcmVudC4NCm10MjcwMSBv dmwgbW91dCBlbiByZWdpc3RlciBvZmZzZXQgaXMgMHgzMA0KbXQ4MTczIG9sdiBtb3V0IGVuIHJl Z2lzdGVyIG9mZnNldCBpcyAweDQwDQoNCm9ubHkgdGhlIHVzZSBjYXNlIGlzIGRpZmZlcmVudDsN Cm10MjcwMSBvdmwtPmNvbG9yMA0KbXQ4MTczIG92bC0+cm1kYTANCnRoZXJlIG1ha2UgZGlmZmVy ZW50IGRlZmluZSBmb3IgdGhpcyBkaWZmZXJlbnQuDQoNCiNkZWZpbmUgRElTUF9SRUdfQ09ORklH X0RJU1BfT1ZMMF9NT1VUX0VOCTB4MDQwDQoNCiNkZWZpbmUgRElTUF9SRUdfQ09ORklHX0RJU1Bf T1ZMX01PVVRfRU4JMHgwMzANCg0KZm9yIHRoZSBmdXR1cmUgbXQ4MTgzLCBvdmwgbW91dCBlbiBy ZWdpc3RlciBvZmZzZXQgd2lsbCBjaGFuZ2UgdG8NCjB4ZjAwDQoNCnRoaXMgaXMgb25seSBvbmUg ZGlmZmVyZW50IHNhbXBsZSwgdGhlcmUgd2lsbCBiZSBtb3JlIGFuZCBtb3JlDQpkaWZmZXJlbnQs IHNvIHdlIGFkZCB0aGlzIHBhdGNoIGZvciBkaWZmZXJlbnQgc29jDQoNCg0KPiANCj4gPiANCj4g PiBTaWduZWQtb2ZmLWJ5OiBZb25ncWlhbmcgTml1IDx5b25ncWlhbmcubml1QG1lZGlhdGVrLmNv bT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9zb2MvbWVkaWF0ZWsvbW1zeXMvbXRrLW1tc3lzLmMg fCAxNDAgKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tDQo+ID4gIDEgZmlsZSBjaGFu Z2VkLCA3MSBpbnNlcnRpb25zKCspLCA2OSBkZWxldGlvbnMoLSkNCj4gPiANCj4gPiBkaWZmIC0t Z2l0IGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbW1zeXMvbXRrLW1tc3lzLmMgYi9kcml2ZXJzL3Nv Yy9tZWRpYXRlay9tbXN5cy9tdGstbW1zeXMuYw0KPiA+IGluZGV4IDZjMDMyODIuLjY0YzgwMzAg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9zb2MvbWVkaWF0ZWsvbW1zeXMvbXRrLW1tc3lzLmMN Cj4gPiArKysgYi9kcml2ZXJzL3NvYy9tZWRpYXRlay9tbXN5cy9tdGstbW1zeXMuYw0KPiA+IEBA IC0xMDYsMTQxICsxMDYsMTYxIEBAIHN0cnVjdCBtdGtfbW1zeXMgew0KPiA+ICAJLmNsa19kcml2 ZXIgPSAiY2xrLW10ODE4My1tbSIsDQo+ID4gIH07DQo+ID4gIA0KPiA+IC1zdGF0aWMgdW5zaWdu ZWQgaW50IG10a19tbXN5c19kZHBfbW91dF9lbihlbnVtIG10a19kZHBfY29tcF9pZCBjdXIsDQo+ ID4gLQkJCQkJICBlbnVtIG10a19kZHBfY29tcF9pZCBuZXh0LA0KPiA+IC0JCQkJCSAgdW5zaWdu ZWQgaW50ICphZGRyKQ0KPiA+ICtzdGF0aWMgdm9pZCBtdGtfbW1zeXNfZGRwX21vdXRfZW4odm9p ZCBfX2lvbWVtICpjb25maWdfcmVncywNCj4gPiArCQkJCSAgZW51bSBtdGtfZGRwX2NvbXBfaWQg Y3VyLA0KPiA+ICsJCQkJICBlbnVtIG10a19kZHBfY29tcF9pZCBuZXh0LA0KPiA+ICsJCQkJICBi b29sIGVuYWJsZSkNCj4gPiAgew0KPiA+IC0JdW5zaWduZWQgaW50IHZhbHVlOw0KPiA+ICsJdW5z aWduZWQgaW50IGFkZHIsIHZhbHVlLCByZWc7DQo+ID4gIA0KPiA+ICAJaWYgKGN1ciA9PSBERFBf Q09NUE9ORU5UX09WTDAgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0NPTE9SMCkgew0KPiA+IC0J CSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfT1ZMMF9NT1VUX0VOOw0KPiA+ICsJCWFkZHIg PSBESVNQX1JFR19DT05GSUdfRElTUF9PVkwwX01PVVRfRU47DQo+ID4gIAkJdmFsdWUgPSBPVkww X01PVVRfRU5fQ09MT1IwOw0KPiA+ICAJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9P VkwwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9SRE1BMCkgew0KPiA+IC0JCSphZGRyID0gRElT UF9SRUdfQ09ORklHX0RJU1BfT1ZMX01PVVRfRU47DQo+ID4gKwkJYWRkciA9IERJU1BfUkVHX0NP TkZJR19ESVNQX09WTF9NT1VUX0VOOw0KPiA+ICAJCXZhbHVlID0gT1ZMX01PVVRfRU5fUkRNQTsN Cj4gPiAgCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfT0QwICYmIG5leHQgPT0gRERQ X0NPTVBPTkVOVF9SRE1BMCkgew0KPiA+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1Bf T0RfTU9VVF9FTjsNCj4gPiArCQlhZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfT0RfTU9VVF9F TjsNCj4gPiAgCQl2YWx1ZSA9IE9EX01PVVRfRU5fUkRNQTA7DQo+ID4gIAl9IGVsc2UgaWYgKGN1 ciA9PSBERFBfQ09NUE9ORU5UX1VGT0UgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTApIHsN Cj4gPiAtCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1VGT0VfTU9VVF9FTjsNCj4gPiAr CQlhZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfVUZPRV9NT1VUX0VOOw0KPiA+ICAJCXZhbHVl ID0gVUZPRV9NT1VUX0VOX0RTSTA7DQo+ID4gIAl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9O RU5UX09WTDEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0NPTE9SMSkgew0KPiA+IC0JCSphZGRy ID0gRElTUF9SRUdfQ09ORklHX0RJU1BfT1ZMMV9NT1VUX0VOOw0KPiA+ICsJCWFkZHIgPSBESVNQ X1JFR19DT05GSUdfRElTUF9PVkwxX01PVVRfRU47DQo+ID4gIAkJdmFsdWUgPSBPVkwxX01PVVRf RU5fQ09MT1IxOw0KPiA+ICAJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9HQU1NQSAm JiBuZXh0ID09IEREUF9DT01QT05FTlRfUkRNQTEpIHsNCj4gPiAtCQkqYWRkciA9IERJU1BfUkVH X0NPTkZJR19ESVNQX0dBTU1BX01PVVRfRU47DQo+ID4gKwkJYWRkciA9IERJU1BfUkVHX0NPTkZJ R19ESVNQX0dBTU1BX01PVVRfRU47DQo+ID4gIAkJdmFsdWUgPSBHQU1NQV9NT1VUX0VOX1JETUEx Ow0KPiA+ICAJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9PRDEgJiYgbmV4dCA9PSBE RFBfQ09NUE9ORU5UX1JETUExKSB7DQo+ID4gLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElT UF9PRF9NT1VUX0VOOw0KPiA+ICsJCWFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9PRF9NT1VU X0VOOw0KPiA+ICAJCXZhbHVlID0gT0QxX01PVVRfRU5fUkRNQTE7DQo+ID4gIAl9IGVsc2UgaWYg KGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkw KSB7DQo+ID4gLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMF9TT1VUX0VOOw0K PiA+ICsJCWFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMF9TT1VUX0VOOw0KPiA+ICAJ CXZhbHVlID0gUkRNQTBfU09VVF9EUEkwOw0KPiA+ICAJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NP TVBPTkVOVF9SRE1BMCAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMSkgew0KPiA+IC0JCSph ZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTBfU09VVF9FTjsNCj4gPiArCQlhZGRyID0g RElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTBfU09VVF9FTjsNCj4gPiAgCQl2YWx1ZSA9IFJETUEw X1NPVVRfRFBJMTsNCj4gPiAgCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTAg JiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTEpIHsNCj4gPiAtCQkqYWRkciA9IERJU1BfUkVH X0NPTkZJR19ESVNQX1JETUEwX1NPVVRfRU47DQo+ID4gKwkJYWRkciA9IERJU1BfUkVHX0NPTkZJ R19ESVNQX1JETUEwX1NPVVRfRU47DQo+ID4gIAkJdmFsdWUgPSBSRE1BMF9TT1VUX0RTSTE7DQo+ ID4gIAl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEwICYmIG5leHQgPT0gRERQ X0NPTVBPTkVOVF9EU0kyKSB7DQo+ID4gLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9S RE1BMF9TT1VUX0VOOw0KPiA+ICsJCWFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMF9T T1VUX0VOOw0KPiA+ICAJCXZhbHVlID0gUkRNQTBfU09VVF9EU0kyOw0KPiA+ICAJfSBlbHNlIGlm IChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMCAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJ Mykgew0KPiA+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTBfU09VVF9FTjsN Cj4gPiArCQlhZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTBfU09VVF9FTjsNCj4gPiAg CQl2YWx1ZSA9IFJETUEwX1NPVVRfRFNJMzsNCj4gPiAgCX0gZWxzZSBpZiAoY3VyID09IEREUF9D T01QT05FTlRfUkRNQTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTEpIHsNCj4gPiAtCQkq YWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUExX1NPVVRfRU47DQo+ID4gKwkJYWRkciA9 IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUExX1NPVVRfRU47DQo+ID4gIAkJdmFsdWUgPSBSRE1B MV9TT1VUX0RTSTE7DQo+ID4gIAl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEx ICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kyKSB7DQo+ID4gLQkJKmFkZHIgPSBESVNQX1JF R19DT05GSUdfRElTUF9SRE1BMV9TT1VUX0VOOw0KPiA+ICsJCWFkZHIgPSBESVNQX1JFR19DT05G SUdfRElTUF9SRE1BMV9TT1VUX0VOOw0KPiA+ICAJCXZhbHVlID0gUkRNQTFfU09VVF9EU0kyOw0K PiA+ICAJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSAmJiBuZXh0ID09IERE UF9DT01QT05FTlRfRFNJMykgew0KPiA+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1Bf UkRNQTFfU09VVF9FTjsNCj4gPiArCQlhZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfUkRNQTFf U09VVF9FTjsNCj4gPiAgCQl2YWx1ZSA9IFJETUExX1NPVVRfRFNJMzsNCj4gPiAgCX0gZWxzZSBp ZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RQ STApIHsNCj4gPiAtCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUExX1NPVVRfRU47 DQo+ID4gKwkJYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUExX1NPVVRfRU47DQo+ID4g IAkJdmFsdWUgPSBSRE1BMV9TT1VUX0RQSTA7DQo+ID4gIAl9IGVsc2UgaWYgKGN1ciA9PSBERFBf Q09NUE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EUEkxKSB7DQo+ID4gLQkJ KmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMV9TT1VUX0VOOw0KPiA+ICsJCWFkZHIg PSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMV9TT1VUX0VOOw0KPiA+ICAJCXZhbHVlID0gUkRN QTFfU09VVF9EUEkxOw0KPiA+ICAJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1B MiAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMCkgew0KPiA+IC0JCSphZGRyID0gRElTUF9S RUdfQ09ORklHX0RJU1BfUkRNQTJfU09VVDsNCj4gPiArCQlhZGRyID0gRElTUF9SRUdfQ09ORklH X0RJU1BfUkRNQTJfU09VVDsNCj4gPiAgCQl2YWx1ZSA9IFJETUEyX1NPVVRfRFBJMDsNCj4gPiAg CX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYgbmV4dCA9PSBERFBfQ09N UE9ORU5UX0RQSTEpIHsNCj4gPiAtCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEy X1NPVVQ7DQo+ID4gKwkJYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEyX1NPVVQ7DQo+ ID4gIAkJdmFsdWUgPSBSRE1BMl9TT1VUX0RQSTE7DQo+ID4gIAl9IGVsc2UgaWYgKGN1ciA9PSBE RFBfQ09NUE9ORU5UX1JETUEyICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kxKSB7DQo+ID4g LQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMl9TT1VUOw0KPiA+ICsJCWFkZHIg PSBESVNQX1JFR19DT05GSUdfRElTUF9SRE1BMl9TT1VUOw0KPiA+ICAJCXZhbHVlID0gUkRNQTJf U09VVF9EU0kxOw0KPiA+ICAJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAm JiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJMikgew0KPiA+IC0JCSphZGRyID0gRElTUF9SRUdf Q09ORklHX0RJU1BfUkRNQTJfU09VVDsNCj4gPiArCQlhZGRyID0gRElTUF9SRUdfQ09ORklHX0RJ U1BfUkRNQTJfU09VVDsNCj4gPiAgCQl2YWx1ZSA9IFJETUEyX1NPVVRfRFNJMjsNCj4gPiAgCX0g ZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYgbmV4dCA9PSBERFBfQ09NUE9O RU5UX0RTSTMpIHsNCj4gPiAtCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEyX1NP VVQ7DQo+ID4gKwkJYWRkciA9IERJU1BfUkVHX0NPTkZJR19ESVNQX1JETUEyX1NPVVQ7DQo+ID4g IAkJdmFsdWUgPSBSRE1BMl9TT1VUX0RTSTM7DQo+ID4gIAl9IGVsc2Ugew0KPiA+ICAJCXZhbHVl ID0gMDsNCj4gPiAgCX0NCj4gPiAgDQo+ID4gLQlyZXR1cm4gdmFsdWU7DQo+ID4gKwlpZiAodmFs dWUpIHsNCj4gPiArCQlyZWcgPSByZWFkbF9yZWxheGVkKGNvbmZpZ19yZWdzICsgYWRkcik7DQo+ ID4gKw0KPiA+ICsJCWlmIChlbmFibGUpDQo+ID4gKwkJCXJlZyB8PSB2YWx1ZTsNCj4gPiArCQll bHNlDQo+ID4gKwkJCXJlZyAmPSB+dmFsdWU7DQo+ID4gKw0KPiA+ICsJCXdyaXRlbF9yZWxheGVk KHJlZywgY29uZmlnX3JlZ3MgKyBhZGRyKTsNCj4gPiArCX0NCj4gPiAgfQ0KPiA+ICANCj4gPiAt c3RhdGljIHVuc2lnbmVkIGludCBtdGtfbW1zeXNfZGRwX3NlbF9pbihlbnVtIG10a19kZHBfY29t cF9pZCBjdXIsDQo+ID4gLQkJCQkJIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQsDQo+ID4gLQkJ CQkJIHVuc2lnbmVkIGludCAqYWRkcikNCj4gPiArc3RhdGljIHZvaWQgbXRrX21tc3lzX2RkcF9z ZWxfaW4odm9pZCBfX2lvbWVtICpjb25maWdfcmVncywNCj4gPiArCQkJCSBlbnVtIG10a19kZHBf Y29tcF9pZCBjdXIsDQo+ID4gKwkJCQkgZW51bSBtdGtfZGRwX2NvbXBfaWQgbmV4dCwNCj4gPiAr CQkJCSBib29sIGVuYWJsZSkNCj4gPiAgew0KPiA+IC0JdW5zaWduZWQgaW50IHZhbHVlOw0KPiA+ ICsJdW5zaWduZWQgaW50IGFkZHIsIHZhbHVlLCByZWc7DQo+ID4gIA0KPiA+ICAJaWYgKGN1ciA9 PSBERFBfQ09NUE9ORU5UX09WTDAgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0NPTE9SMCkgew0K PiA+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfQ09MT1IwX1NFTF9JTjsNCj4gPiAr CQlhZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfQ09MT1IwX1NFTF9JTjsNCj4gPiAgCQl2YWx1 ZSA9IENPTE9SMF9TRUxfSU5fT1ZMMDsNCj4gPiAgCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01Q T05FTlRfUkRNQTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RQSTApIHsNCj4gPiAtCQkqYWRk ciA9IERJU1BfUkVHX0NPTkZJR19EUElfU0VMX0lOOw0KPiA+ICsJCWFkZHIgPSBESVNQX1JFR19D T05GSUdfRFBJX1NFTF9JTjsNCj4gPiAgCQl2YWx1ZSA9IERQSTBfU0VMX0lOX1JETUExOw0KPiA+ ICAJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSAmJiBuZXh0ID09IEREUF9D T01QT05FTlRfRFBJMSkgew0KPiA+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RQSV9TRUxf SU47DQo+ID4gKwkJYWRkciA9IERJU1BfUkVHX0NPTkZJR19EUElfU0VMX0lOOw0KPiA+ICAJCXZh bHVlID0gRFBJMV9TRUxfSU5fUkRNQTE7DQo+ID4gIAl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09N UE9ORU5UX1JETUExICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kwKSB7DQo+ID4gLQkJKmFk ZHIgPSBESVNQX1JFR19DT05GSUdfRFNJRV9TRUxfSU47DQo+ID4gKwkJYWRkciA9IERJU1BfUkVH X0NPTkZJR19EU0lFX1NFTF9JTjsNCj4gPiAgCQl2YWx1ZSA9IERTSTBfU0VMX0lOX1JETUExOw0K PiA+ICAJfSBlbHNlIGlmIChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMSAmJiBuZXh0ID09IERE UF9DT01QT05FTlRfRFNJMSkgew0KPiA+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RTSU9f U0VMX0lOOw0KPiA+ICsJCWFkZHIgPSBESVNQX1JFR19DT05GSUdfRFNJT19TRUxfSU47DQo+ID4g IAkJdmFsdWUgPSBEU0kxX1NFTF9JTl9SRE1BMTsNCj4gPiAgCX0gZWxzZSBpZiAoY3VyID09IERE UF9DT01QT05FTlRfUkRNQTEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTIpIHsNCj4gPiAt CQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lFX1NFTF9JTjsNCj4gPiArCQlhZGRyID0gRElT UF9SRUdfQ09ORklHX0RTSUVfU0VMX0lOOw0KPiA+ICAJCXZhbHVlID0gRFNJMl9TRUxfSU5fUkRN QTE7DQo+ID4gIAl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUExICYmIG5leHQg PT0gRERQX0NPTVBPTkVOVF9EU0kzKSB7DQo+ID4gLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdf RFNJT19TRUxfSU47DQo+ID4gKwkJYWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lPX1NFTF9JTjsN Cj4gPiAgCQl2YWx1ZSA9IERTSTNfU0VMX0lOX1JETUExOw0KPiA+ICAJfSBlbHNlIGlmIChjdXIg PT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFBJMCkgew0K PiA+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RQSV9TRUxfSU47DQo+ID4gKwkJYWRkciA9 IERJU1BfUkVHX0NPTkZJR19EUElfU0VMX0lOOw0KPiA+ICAJCXZhbHVlID0gRFBJMF9TRUxfSU5f UkRNQTI7DQo+ID4gIAl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEyICYmIG5l eHQgPT0gRERQX0NPTVBPTkVOVF9EUEkxKSB7DQo+ID4gLQkJKmFkZHIgPSBESVNQX1JFR19DT05G SUdfRFBJX1NFTF9JTjsNCj4gPiArCQlhZGRyID0gRElTUF9SRUdfQ09ORklHX0RQSV9TRUxfSU47 DQo+ID4gIAkJdmFsdWUgPSBEUEkxX1NFTF9JTl9SRE1BMjsNCj4gPiAgCX0gZWxzZSBpZiAoY3Vy ID09IEREUF9DT01QT05FTlRfUkRNQTIgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTApIHsN Cj4gPiAtCQkqYWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lFX1NFTF9JTjsNCj4gPiArCQlhZGRy ID0gRElTUF9SRUdfQ09ORklHX0RTSUVfU0VMX0lOOw0KPiA+ICAJCXZhbHVlID0gRFNJMF9TRUxf SU5fUkRNQTI7DQo+ID4gIAl9IGVsc2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX1JETUEyICYm IG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kxKSB7DQo+ID4gLQkJKmFkZHIgPSBESVNQX1JFR19D T05GSUdfRFNJT19TRUxfSU47DQo+ID4gKwkJYWRkciA9IERJU1BfUkVHX0NPTkZJR19EU0lPX1NF TF9JTjsNCj4gPiAgCQl2YWx1ZSA9IERTSTFfU0VMX0lOX1JETUEyOw0KPiA+ICAJfSBlbHNlIGlm IChjdXIgPT0gRERQX0NPTVBPTkVOVF9SRE1BMiAmJiBuZXh0ID09IEREUF9DT01QT05FTlRfRFNJ Mikgew0KPiA+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RTSUVfU0VMX0lOOw0KPiA+ICsJ CWFkZHIgPSBESVNQX1JFR19DT05GSUdfRFNJRV9TRUxfSU47DQo+ID4gIAkJdmFsdWUgPSBEU0ky X1NFTF9JTl9SRE1BMjsNCj4gPiAgCX0gZWxzZSBpZiAoY3VyID09IEREUF9DT01QT05FTlRfUkRN QTIgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5UX0RTSTMpIHsNCj4gPiAtCQkqYWRkciA9IERJU1Bf UkVHX0NPTkZJR19EU0lFX1NFTF9JTjsNCj4gPiArCQlhZGRyID0gRElTUF9SRUdfQ09ORklHX0RT SUVfU0VMX0lOOw0KPiA+ICAJCXZhbHVlID0gRFNJM19TRUxfSU5fUkRNQTI7DQo+ID4gIAl9IGVs c2UgaWYgKGN1ciA9PSBERFBfQ09NUE9ORU5UX09WTDEgJiYgbmV4dCA9PSBERFBfQ09NUE9ORU5U X0NPTE9SMSkgew0KPiA+IC0JCSphZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfQ09MT1IxX1NF TF9JTjsNCj4gPiArCQlhZGRyID0gRElTUF9SRUdfQ09ORklHX0RJU1BfQ09MT1IxX1NFTF9JTjsN Cj4gPiAgCQl2YWx1ZSA9IENPTE9SMV9TRUxfSU5fT1ZMMTsNCj4gPiAgCX0gZWxzZSBpZiAoY3Vy ID09IEREUF9DT01QT05FTlRfQkxTICYmIG5leHQgPT0gRERQX0NPTVBPTkVOVF9EU0kwKSB7DQo+ ID4gLQkJKmFkZHIgPSBESVNQX1JFR19DT05GSUdfRFNJX1NFTDsNCj4gPiArCQlhZGRyID0gRElT UF9SRUdfQ09ORklHX0RTSV9TRUw7DQo+ID4gIAkJdmFsdWUgPSBEU0lfU0VMX0lOX0JMUzsNCj4g PiAgCX0gZWxzZSB7DQo+ID4gIAkJdmFsdWUgPSAwOw0KPiA+ICAJfQ0KPiA+ICANCj4gPiAtCXJl dHVybiB2YWx1ZTsNCj4gPiArCWlmICh2YWx1ZSkgew0KPiA+ICsJCXJlZyA9IHJlYWRsX3JlbGF4 ZWQoY29uZmlnX3JlZ3MgKyBhZGRyKTsNCj4gPiArDQo+ID4gKwkJaWYgKGVuYWJsZSkNCj4gPiAr CQkJcmVnIHw9IHZhbHVlOw0KPiA+ICsJCWVsc2UNCj4gPiArCQkJcmVnICY9IH52YWx1ZTsNCj4g PiArDQo+ID4gKwkJd3JpdGVsX3JlbGF4ZWQocmVnLCBjb25maWdfcmVncyArIGFkZHIpOw0KPiA+ ICsJfQ0KPiA+ICB9DQo+ID4gIA0KPiA+ICBzdGF0aWMgdm9pZCBtdGtfbW1zeXNfZGRwX3NvdXRf c2VsKHZvaWQgX19pb21lbSAqY29uZmlnX3JlZ3MsDQo+ID4gQEAgLTI2NSwyMSArMjg1LDEyIEBA IHZvaWQgbXRrX21tc3lzX2RkcF9jb25uZWN0KHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gPiAgCQkJ ICAgZW51bSBtdGtfZGRwX2NvbXBfaWQgbmV4dCkNCj4gPiAgew0KPiA+ICAJc3RydWN0IG10a19t bXN5cyAqbW1zeXMgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiAtCXVuc2lnbmVkIGludCBh ZGRyLCB2YWx1ZSwgcmVnOw0KPiA+ICANCj4gPiAtCXZhbHVlID0gbXRrX21tc3lzX2RkcF9tb3V0 X2VuKGN1ciwgbmV4dCwgJmFkZHIpOw0KPiA+IC0JaWYgKHZhbHVlKSB7DQo+ID4gLQkJcmVnID0g cmVhZGxfcmVsYXhlZChtbXN5cy0+cmVncyArIGFkZHIpIHwgdmFsdWU7DQo+ID4gLQkJd3JpdGVs X3JlbGF4ZWQocmVnLCBtbXN5cy0+cmVncyArIGFkZHIpOw0KPiA+IC0JfQ0KPiA+ICsJbXRrX21t c3lzX2RkcF9tb3V0X2VuKG1tc3lzLT5yZWdzLCBjdXIsIG5leHQsIHRydWUpOw0KPiA+ICANCj4g PiAgCW10a19tbXN5c19kZHBfc291dF9zZWwobW1zeXMtPnJlZ3MsIGN1ciwgbmV4dCk7DQo+ID4g IA0KPiA+IC0JdmFsdWUgPSBtdGtfbW1zeXNfZGRwX3NlbF9pbihjdXIsIG5leHQsICZhZGRyKTsN Cj4gPiAtCWlmICh2YWx1ZSkgew0KPiA+IC0JCXJlZyA9IHJlYWRsX3JlbGF4ZWQobW1zeXMtPnJl Z3MgKyBhZGRyKSB8IHZhbHVlOw0KPiA+IC0JCXdyaXRlbF9yZWxheGVkKHJlZywgbW1zeXMtPnJl Z3MgKyBhZGRyKTsNCj4gPiAtCX0NCj4gPiArCW10a19tbXN5c19kZHBfc2VsX2luKG1tc3lzLT5y ZWdzLCBjdXIsIG5leHQsIHRydWUpOw0KPiA+ICB9DQo+ID4gIEVYUE9SVF9TWU1CT0xfR1BMKG10 a19tbXN5c19kZHBfY29ubmVjdCk7DQo+ID4gIA0KPiA+IEBAIC0yODgsMTkgKzI5OSwxMCBAQCB2 b2lkIG10a19tbXN5c19kZHBfZGlzY29ubmVjdChzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+ID4gIAkJ CSAgICAgIGVudW0gbXRrX2RkcF9jb21wX2lkIG5leHQpDQo+ID4gIHsNCj4gPiAgCXN0cnVjdCBt dGtfbW1zeXMgKm1tc3lzID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ID4gLQl1bnNpZ25lZCBp bnQgYWRkciwgdmFsdWUsIHJlZzsNCj4gPiAgDQo+ID4gLQl2YWx1ZSA9IG10a19tbXN5c19kZHBf bW91dF9lbihjdXIsIG5leHQsICZhZGRyKTsNCj4gPiAtCWlmICh2YWx1ZSkgew0KPiA+IC0JCXJl ZyA9IHJlYWRsX3JlbGF4ZWQobW1zeXMtPnJlZ3MgKyBhZGRyKSAmIH52YWx1ZTsNCj4gPiAtCQl3 cml0ZWxfcmVsYXhlZChyZWcsIG1tc3lzLT5yZWdzICsgYWRkcik7DQo+ID4gLQl9DQo+ID4gKwlt dGtfbW1zeXNfZGRwX21vdXRfZW4obW1zeXMtPnJlZ3MsIGN1ciwgbmV4dCwgZmFsc2UpOw0KPiA+ ICANCj4gPiAtCXZhbHVlID0gbXRrX21tc3lzX2RkcF9zZWxfaW4oY3VyLCBuZXh0LCAmYWRkcik7 DQo+ID4gLQlpZiAodmFsdWUpIHsNCj4gPiAtCQlyZWcgPSByZWFkbF9yZWxheGVkKG1tc3lzLT5y ZWdzICsgYWRkcikgJiB+dmFsdWU7DQo+ID4gLQkJd3JpdGVsX3JlbGF4ZWQocmVnLCBtbXN5cy0+ cmVncyArIGFkZHIpOw0KPiA+IC0JfQ0KPiA+ICsJbXRrX21tc3lzX2RkcF9zZWxfaW4obW1zeXMt PnJlZ3MsIGN1ciwgbmV4dCwgZmFsc2UpOw0KPiA+ICB9DQo+ID4gIEVYUE9SVF9TWU1CT0xfR1BM KG10a19tbXN5c19kZHBfZGlzY29ubmVjdCk7DQo+ID4gIA0KPiA+IC0tIA0KPiA+IDEuOC4xLjEu ZGlydHkNCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f Xw0KPiA+IExpbnV4LW1lZGlhdGVrIG1haWxpbmcgbGlzdA0KPiA+IExpbnV4LW1lZGlhdGVrQGxp c3RzLmluZnJhZGVhZC5vcmcNCj4gPiBodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2xpbnV4LW1lZGlhdGVrDQoNCg==