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 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 7EF71C9830E for ; Thu, 24 Sep 2026 08:57:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Reply-To:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: References:In-Reply-To:Cc:To:Subject:From:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=I5zlFKCbAQHDqSiOWC3pejn7n6Ra07EmQ3cTfRpQqRc=; b=xuBqBFvMSD/NbT jtHUINp50keDCe/IvFE/G2HwLqOoAjpB3vM2UMg5jbKR/VyUNt84LsRzY13ju9UU0u73jh06hMgd6 6Z9NJVlAOMOatj4+FYjFlX8uap7hx4xGtXBnZ8EpXmBmk08KC0AsJVKf7EwQ7Wwd+anw86g8z92x7 gw4eheolO+mYraQca+XpacP2BuL2qBK5yMea6GnXHoKbwKB8TnIGofX2FME9HUBtnKSxqGaeZz5/p zEQhXex79SaqTEsRzpzZ/dJBjQ/m6WRZmcZYLWZOfMpxkEWpFDXAOK5LWrmbQqTkkXJjQBffezobY 3/ZeQlT3oyHfzMxHa4mg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9fGe-0000000AWHn-1poS; Thu, 24 Sep 2026 08:57:24 +0000 Received: from sea.source.kernel.org ([172.234.252.31]) by bombadil.infradead.org with esmtps (Exim 4.99.1 #2 (Red Hat Linux)) id 1x9fGd-0000000AWH9-09Ey for linux-amlogic@lists.infradead.org; Thu, 24 Sep 2026 08:57:23 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id C45E341848; Thu, 24 Sep 2026 08:57:22 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 59B6D1F000FF; Thu, 24 Sep 2026 08:57:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1790240242; bh=d+lUKO/GPiQzIP+7rP9y+iiyzmlx1rNa1ItnGwxtTjM=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=CwK47VikGtgwMmSwIZ4dfHir+YGAJxV/ixgizFipluVaG/JNoZmLUjE7gmNRVXkaY 7Pc4Up47KslJWIWRsOEHa7ybrqjxWVBFeTPr9thK9LJU7ELIbdtVvUwN6hYes8zf3u sLlh8CvTQxEnW985zmmKWaiGeOjTMtMokaXYw31TyvVxXH8alCzF3qWmurHykC6coP KTuPhz0JZ1146o1a1Bb7+u3wMSnDLgM/lLcLSCa5Ptv6d6zOqk7YQ+XEd1lmJY6eJ6 SHbstq6xJ2kUHqDn1jidtt52ANPvJtoXdNDXzXcZoRHP0VfA4PgxzvVI89jPItc3ki 7td3xgol0anLQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH 2/3] i2c: amlogic: Add Amlogic A9 I2C controller driver To: "Xianwei Zhao" Cc: devicetree@vger.kernel.org, neil.armstrong@linaro.org, linux-amlogic@lists.infradead.org, robh@kernel.org, conor+dt@kernel.org In-Reply-To: <20260924-a9-i2c-v1-2-b8ad9b46f4a8@amlogic.com> References: <20260924-a9-i2c-v1-0-b8ad9b46f4a8@amlogic.com> <20260924-a9-i2c-v1-2-b8ad9b46f4a8@amlogic.com> Date: Thu, 24 Sep 2026 08:57:21 +0000 Message-Id: <20260924085722.59B6D1F000FF@smtp.kernel.org> X-BeenThere: linux-amlogic@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: sashiko-reviews@lists.linux.dev MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-amlogic" Errors-To: linux-amlogic-bounces+linux-amlogic=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg OCBwb3RlbnRpYWwgaXNzdWUocykgdG8gY29uc2lkZXI6Ci0gW0hpZ2hdIGkyYzogYW1sb2dpYzog aGFyZHdhcmUgcmVnaXN0ZXJzIGFjY2Vzc2VkIGJlZm9yZSBjbG9jayBpcyBlbmFibGVkCi0gW0hp Z2hdIGkyYzogYW1sb2dpYzogcmFjZSBjb25kaXRpb24gZHJvcHMgY29tcGxldGlvbiBpbnRlcnJ1 cHRzCi0gW0hpZ2hdIGkyYzogYW1sb2dpYzogc2lsZW50IHRydW5jYXRpb24gb2YgbGFyZ2UgdHJh bnNmZXJzCi0gW0hpZ2hdIGkyYzogYW1sb2dpYzogYnJva2VuIFJlcGVhdGVkIFNUQVJUIGZvciBz dWJzZXF1ZW50IHRyYW5zZmVycwotIFtIaWdoXSBpMmM6IGFtbG9naWM6IGRhdGEgcmFjZSBvbiBS RUdfQ0dGX0lSUV9FTkFCTEUKLSBbSGlnaF0gaTJjOiBhbWxvZ2ljOiBJUlEgc3Rvcm0gb24gdHJh bnNmZXIgdGltZW91dAotIFtIaWdoXSBpMmM6IGFtbG9naWM6IHJhY2UgaW4gbG9ja2xlc3Mgc3Rh dGUgaW5pdGlhbGl6YXRpb24KLSBbTWVkaXVtXSBpMmM6IGFtbG9naWM6IGNyYXNoIGR1ZSB0byBl YXJseSBjbG9jayBkaXNhYmxlIGluIHJlbW92ZQotLQoKY29tbWl0IDVlNzc5ZTE5MTFjYzIxNmVm YjgxNzlmYTllMjkxMDk3M2M3OWJiNzQKQXV0aG9yOiBKdW55aSBaaGFvIDxqdW55aS56aGFvQGFt bG9naWMuY29tPgoKaTJjOiBhbWxvZ2ljOiBBZGQgQW1sb2dpYyBBOSBJMkMgY29udHJvbGxlciBk cml2ZXIKICAgIApBZGQgc3VwcG9ydCBmb3IgdGhlIG5ldyBJMkMgY29udHJvbGxlciB1c2VkIGJ5 IEFtbG9naWMgQTkgU29Dcy4KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaTJjL2J1c3Nlcy9pMmMt YW1sb2dpYy1hOS5jIGIvZHJpdmVycy9pMmMvYnVzc2VzL2kyYy1hbWxvZ2ljLWE5LmMKPiBuZXcg ZmlsZSBtb2RlIDEwMDY0NAo+IC0tLSAvZGV2L251bGwKPiArKysgYi9kcml2ZXJzL2kyYy9idXNz ZXMvaTJjLWFtbG9naWMtYTkuYwoKWyAuLi4gXQoKPiArc3RhdGljIGlycXJldHVybl90IGFtbF9p MmNfaXJxKGludCBpcnFubywgdm9pZCAqZGV2X2lkKQo+ICt7Cj4gKwlzdHJ1Y3QgYW1sX2kyYyAq aTJjID0gZGV2X2lkOwo+ICsJaW50IHJldDsKPiArCXUzMiByZF9sZW4sIGk7Cj4gKwl1MzIgcmRf dmFsOwo+ICsKPiArCXNwaW5fbG9jaygmaTJjLT5sb2NrKTsKPiArCXJldCA9IGNvbnRyb2xsZXJf aXNfZXJyb3IoaTJjKTsKPiArCWlmIChyZXQpIHsKPiArCQlpMmMtPmVycm9yID0gcmV0Owo+ICsJ CWdvdG8gY29tcGxldGVfaXJxX291dDsKPiArCX0KPiArCj4gKwlzd2l0Y2ggKGkyYy0+c3RhdGUp IHsKPiArCWNhc2UgU1RBVEVfUkVBRDoKClsgLi4uIF0KCj4gKwljYXNlIFNUQVRFX1dSSVRFOgoK WyAuLi4gXQoKPiArCWNhc2UgU1RBVEVfSURMRToKPiArCQlkZXZfd2FybihpMmMtPmRldiwgImky YyBpcnEgdHJpZ2dlcmVkIGFibm9ybWFsbHkhISEsIGlycV9zdGF0ZToweCV4LGlycV9lbjoweCV4 XG4iLAo+ICsJCQkgcmVhZGwoaTJjLT5yZWdzICsgUkVHX0NHRl9JUlFfU1RBVEUpLAo+ICsJCQkg cmVhZGwoaTJjLT5yZWdzICsgUkVHX0NHRl9JUlFfRU5BQkxFKSk7Cj4gKwkJYnJlYWs7Cj4gKwlk ZWZhdWx0Ogo+ICsJCWJyZWFrOwo+ICsJfQo+ICsKPiArCWlmICghY29udHJvbGxlcl9pc19kb25l KGkyYykpIHsKPiArCQlnb3RvIGlycV90cmFuc19vdXQ7Cj4gKwl9IGVsc2UgewoKW1NldmVyaXR5 OiBIaWdoXQpDb3VsZCBhbiB1bmhhbmRsZWQgaW50ZXJydXB0IGNhdXNlIGFuIGluZmluaXRlIElS USBzdG9ybSBhbmQgQ1BVIGxvY2t1cCBoZXJlPwpXaGVuIGEgdHJhbnNmZXIgdGltZXMgb3V0LCBh bWxfaTJjX3hmZXJfbXNnKCkgcmVzZXRzIHRoZSBzdGF0ZSB0byBTVEFURV9JRExFCmJ1dCBkb2Vz bid0IGFwcGVhciB0byBkaXNhYmxlIHRoZSBoYXJkd2FyZSB0aHJlc2hvbGQgaW50ZXJydXB0cy4g SWYgdGhlCmRlbGF5ZWQgaW50ZXJydXB0IGZpcmVzLCB0aGlzIGhhbmRsZXIgbG9ncyBhIHdhcm5p bmcgYW5kIHJldHVybnMgSVJRX0hBTkRMRUQKd2l0aG91dCBjbGVhcmluZyB0aGUgaW50ZXJydXB0 IHNvdXJjZS4KClsgLi4uIF0KCj4gK3N0YXRpYyB2b2lkIGFtbF9pMmNfZG9fc3RhcnQoc3RydWN0 IGFtbF9pMmMgKmkyYywgc3RydWN0IGkyY19tc2cgKm1zZykKPiArewo+ICsJdW5zaWduZWQgaW50 IHJlZ192YWw7Cj4gKwl1bnNpZ25lZCBpbnQgdHJhbnNfbGVuOwo+ICsKPiArCXRyYW5zX2xlbiA9 IG1zZy0+bGVuOwo+ICsJcmVnX3ZhbCA9ICh1bnNpZ25lZCBpbnQpKChtc2ctPmFkZHIgPDwgMSkg fAo+ICsJCQkJKChtc2ctPmZsYWdzICYgSTJDX01fUkQpID8gU1RBUlRfUkVBRCA6IDApIHwKPiAr CQkJCSgodHJhbnNfbGVuICYgMHhmZmYpIDw8IDEyKSB8IFNUQVJUX1NUQVJUKTsKCltTZXZlcml0 eTogSGlnaF0KRG9lcyB0aGlzIHNpbGVudGx5IHRydW5jYXRlIEkyQyBtZXNzYWdlIGxlbmd0aHMg Z3JlYXRlciB0aGFuIDQwOTUgYnl0ZXM/ClRoZSBsZW5ndGggaXMgbWFza2VkIHdpdGggMHhmZmYg d2l0aG91dCByZXR1cm5pbmcgYW4gZXJyb3IgdG8gdGhlIGNhbGxlciwKd2hpY2ggY291bGQgcmVz dWx0IGluIHNpbGVudCBkYXRhIGNvcnJ1cHRpb24gZm9yIGxhcmdlIHRyYW5zZmVycy4KCj4gKwlh bWxfaTJjX3NldF9tYXNrKGkyYywgUkVHX0NGR19TVEFSVCwKPiArCQkJIFNUQVJUX1NUQVJUIHwg U1RBUlRfU0xBVkVfQUREUiB8IFNUQVJUX1JFQUQgfCBTVEFSVF9MRU4sIHJlZ192YWwpOwo+ICsJ Y2xlYXJfaXJxX3N0YXR1cyhpMmMsIElSUV9BTExfTUFTSyk7CgpbU2V2ZXJpdHk6IEhpZ2hdCkNv dWxkIGNsZWFyX2lycV9zdGF0dXMoKSBpbmFkdmVydGVudGx5IGRyb3AgYSB2YWxpZCBjb21wbGV0 aW9uIGludGVycnVwdD8KSWYgdGhlIGhhcmR3YXJlIHJlc3BvbmRzIGV4dHJlbWVseSBmYXN0IChm b3IgZXhhbXBsZSwgZ2VuZXJhdGluZyBhIE5BQ0sgb24KdGhlIGFkZHJlc3MgYnl0ZSkgaW1tZWRp YXRlbHkgYWZ0ZXIgU1RBUlRfU1RBUlQgaXMgd3JpdHRlbiwgdGhlIGNvbXBsZXRpb24KaW50ZXJy dXB0IG1pZ2h0IGdldCBjbGVhcmVkIGJlZm9yZSB0aGUgaGFuZGxlciBoYXMgYSBjaGFuY2UgdG8g cnVuLCBjYXVzaW5nCnRoZSB0cmFuc2ZlciB0byBzcHVyaW91c2x5IHRpbWUgb3V0LgoKPiArCS8q IGVuYWJsZSB0aHJlc2ggbW9kZSAqLwo+ICsJaWYgKHRyYW5zX2xlbiA+IEE5X0kyQ19GSUZPX0RF UFRIKSB7Cj4gKwkJcmVnX3ZhbCA9IChtc2ctPmZsYWdzICYgSTJDX01fUkQpID8gQTlfUlhfVEhS RVNIX1JFQUQgOiBBOV9UWF9USFJFU0hfV1JJVEU7Cj4gKwkJYW1sX2kyY19zZXRfbWFzayhpMmMs IFJFR19DR0ZfSVJRX0VOQUJMRSwKPiArCQkJCSBBOV9SWF9USFJFU0hfUkVBRCB8IEE5X1RYX1RI UkVTSF9XUklURSwgcmVnX3ZhbCk7CgpbU2V2ZXJpdHk6IEhpZ2hdCklzIGl0IHNhZmUgdG8gcGVy Zm9ybSBhIHJlYWQtbW9kaWZ5LXdyaXRlIG9uIFJFR19DR0ZfSVJRX0VOQUJMRSBoZXJlIHdpdGhv dXQKaG9sZGluZyBpMmMtPmxvY2s/IElmIGEgaGFyZHdhcmUgaW50ZXJydXB0IGFzc2VydHMgaW1t ZWRpYXRlbHkgYWZ0ZXIgdGhlCnRyYW5zZmVyIHN0YXJ0cywgYSBjb25jdXJyZW50IGFtbF9pMmNf aXJxKCkgcnVubmluZyBvbiBhbm90aGVyIENQVSBtaWdodAphbHNvIG1vZGlmeSBSRUdfQ0dGX0lS UV9FTkFCTEUsIGNhdXNpbmcgYSBkYXRhIHJhY2UgdGhhdCBsb3NlcyB1cGRhdGVzLgoKPiArCX0K PiArfQo+ICsKPiArc3RhdGljIGludCBhbWxfaTJjX3hmZXJfbXNnKHN0cnVjdCBhbWxfaTJjICpp MmMsIHN0cnVjdCBpMmNfbXNnICptc2csIGJvb2wgbGFzdCkKPiArewo+ICsJdW5zaWduZWQgbG9u ZyB0aW1lX2xlZnQsIGZsYWdzOwo+ICsJaW50IHJldCA9IDA7Cj4gKwo+ICsJaTJjLT5tc2cgPSBt c2c7Cj4gKwlpMmMtPnBvcyA9IDA7Cj4gKwlpMmMtPmNvdW50ID0gMDsKPiArCWkyYy0+ZXJyb3Ig PSAwOwo+ICsKPiArCWkyYy0+c3RhdGUgPSAobXNnLT5mbGFncyAmIEkyQ19NX1JEKSA/IFNUQVRF X1JFQUQgOiBTVEFURV9XUklURTsKPiArCWFtbF9pMmNfcHJlcGFyZV94ZmVyKGkyYywgRklGT19G SUxMX0ZVTEwpOwo+ICsJaTJjLT5wb3MgKz0gaTJjLT5jb3VudDsKPiArCXJlaW5pdF9jb21wbGV0 aW9uKCZpMmMtPmRvbmUpOwoKW1NldmVyaXR5OiBIaWdoXQpBcmUgdGhlc2UgdHJhbnNmZXIgc3Rh dGUgdmFyaWFibGVzIHJlaW5pdGlhbGl6ZWQgd2l0aG91dCBob2xkaW5nIGkyYy0+bG9jaz8KSWYg YSBkZWxheWVkIGludGVycnVwdCBmcm9tIGEgcHJldmlvdXMgdGltZWQtb3V0IHRyYW5zZmVyIGZp cmVzIGNvbmN1cnJlbnRseSwKaXQgbWlnaHQgcmVhZCB0aGlzIGluY29uc2lzdGVudCBzdGF0ZSBv ciBmYWxzZWx5IGNvbXBsZXRlIHRoaXMgbmV3IHRyYW5zZmVyLApwb3RlbnRpYWxseSBjYXVzaW5n IG1lbW9yeSBjb3JydXB0aW9uIG9yIGFuIGludmFsaWQgc3RhdGUgbWFjaGluZSB0cmFuc2l0aW9u LgoKPiArCj4gKwlpZiAobGFzdCkKPiArCQlhbWxfaTJjX2FkZF9zdG9wKGkyYyk7CgpbU2V2ZXJp dHk6IEhpZ2hdCldoaWxlIHRoaXMgY2xlYXJzIHRoZSBCVVNfTk9fU1RPUCBiaXQgZm9yIHRoZSBm aW5hbCBtZXNzYWdlIGluIGEgdHJhbnNmZXIsCmlzIHRoZXJlIG1pc3NpbmcgbG9naWMgdG8gcmVz dG9yZSBpdCB0byAxIGZvciBub24tbGFzdCBtZXNzYWdlcyBpbiBuZXcKdHJhbnNmZXJzPyBXaXRo b3V0IHNldHRpbmcgaXQgYmFjaywgc3Vic2VxdWVudCBtdWx0aS1tZXNzYWdlIHRyYW5zZmVycyBt aWdodAppbmNvcnJlY3RseSBlbWl0IGEgU1RPUCBiZXR3ZWVuIG1lc3NhZ2VzLCBjYXVzaW5nIGRl dmljZXMgcmVxdWlyaW5nIFJlcGVhdGVkClNUQVJUIHRvIGZhaWwuCgo+ICsJLyogU3RhcnQgdGhl IHRyYW5zZmVyICovCj4gKwlhbWxfaTJjX2RvX3N0YXJ0KGkyYywgbXNnKTsKPiArCj4gKwl0aW1l X2xlZnQgPSBtc2Vjc190b19qaWZmaWVzKEkyQ19USU1FT1VUX01TKTsKPiArCXRpbWVfbGVmdCA9 IHdhaXRfZm9yX2NvbXBsZXRpb25fdGltZW91dCgmaTJjLT5kb25lLCB0aW1lX2xlZnQpOwo+ICsK PiArCS8qCj4gKwkgKiBQcm90ZWN0IGFjY2VzcyB0byBpMmMgc3RydWN0IGFuZCByZWdpc3RlcnMg ZnJvbSBpbnRlcnJ1cHQKPiArCSAqIGhhbmRsZXJzIHRyaWdnZXJlZCBieSBhIHRyYW5zZmVyIHRl cm1pbmF0ZWQgYWZ0ZXIgdGhlCj4gKwkgKiB0aW1lb3V0IHBlcmlvZAo+ICsJICovCj4gKwlzcGlu X2xvY2tfaXJxc2F2ZSgmaTJjLT5sb2NrLCBmbGFncyk7Cj4gKwo+ICsJaWYgKCF0aW1lX2xlZnQp IHsKPiArCQlpMmMtPnN0YXRlID0gU1RBVEVfSURMRTsKPiArCQljbGVhcl9pcnFfc3RhdHVzKGky YywgSVJRX0FMTF9NQVNLKTsKPiArCQlyZXNldF9maWZvX3BvcyhpMmMpOwo+ICsJCXJldCA9IC1F VElNRURPVVQ7Cj4gKwl9CgpbU2V2ZXJpdHk6IEhpZ2hdCldoZW4gYSB0cmFuc2ZlciB0aW1lcyBv dXQsIGlzIGl0IG5lY2Vzc2FyeSB0byBhbHNvIGRpc2FibGUgdGhlIGhhcmR3YXJlCmludGVycnVw dHMgaW4gUkVHX0NHRl9JUlFfRU5BQkxFPyBBcyBjdXJyZW50bHkgd3JpdHRlbiwgdGhlIGhhcmR3 YXJlIG1pZ2h0CnN0aWxsIGFzc2VydCBhIGRlbGF5ZWQgaW50ZXJydXB0IG9uY2UgdGhpcyBmdW5j dGlvbiByZXR1cm5zLgoKWyAuLi4gXQoKPiArc3RhdGljIGludCBhbWxfaTJjX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sKPiArCXN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAg PSBwZGV2LT5kZXYub2Zfbm9kZTsKPiArCXN0cnVjdCBhbWxfaTJjICppMmM7Cj4gKwlzdHJ1Y3Qg aTJjX3RpbWluZ3MgdGltaW5nczsKPiArCWludCBpcnEsIHJldDsKClsgLi4uIF0KCj4gKwlpMmMt PmNsayA9IGRldm1fY2xrX2dldCgmcGRldi0+ZGV2LCBOVUxMKTsKPiArCWlmIChJU19FUlIoaTJj LT5jbGspKSB7Cj4gKwkJZGV2X2VycigmcGRldi0+ZGV2LCAiY2FuJ3QgZ2V0IGRldmljZSBjbG9j a1xuIik7Cj4gKwkJcmV0dXJuIFBUUl9FUlIoaTJjLT5jbGspOwo+ICsJfQo+ICsKPiArCWkyYy0+ Y2xrX3JhdGUgPSBjbGtfZ2V0X3JhdGUoaTJjLT5jbGspOwo+ICsJaWYgKGkyYy0+Y2xrX3JhdGUg PT0gMCkgewo+ICsJCWRldl9lcnIoJnBkZXYtPmRldiwgImZhaWxlZCB0byBnZXQgY2xrIHJhdGVc biIpOwo+ICsJCXJldHVybiAtRUlOVkFMOwo+ICsJfQo+ICsKPiArCXJldCA9IGFtbF9pMmNfaW5p dChpMmMpOwo+ICsJaWYgKHJldCA8IDApIHsKPiArCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJmYWls IGluaXQgaTJjXG4iKTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQoKW1NldmVyaXR5OiBIaWdoXQpE b2VzIGFtbF9pMmNfaW5pdCgpIGF0dGVtcHQgdG8gd3JpdGUgdG8gaGFyZHdhcmUgcmVnaXN0ZXJz IGJlZm9yZSB0aGUgY2xvY2sKaXMgZW5hYmxlZD8gY2xrX3ByZXBhcmVfZW5hYmxlKCkgYXBwZWFy cyB0byBiZSBjYWxsZWQgZnVydGhlciBkb3duIGluIHRoaXMKZnVuY3Rpb24uIEFjY2Vzc2luZyB1 bmNsb2NrZWQgcmVnaXN0ZXJzIGNvdWxkIHRyaWdnZXIgYSBzeW5jaHJvbm91cyBleHRlcm5hbAph Ym9ydCBvbiBBUk0gYW5kIGNyYXNoIHRoZSBzeXN0ZW0uCgo+ICsKPiArCWlycSA9IHBsYXRmb3Jt X2dldF9pcnEocGRldiwgMCk7Cj4gKwlpZiAoaXJxIDwgMCkgewo+ICsJCWRldl9lcnIoJnBkZXYt PmRldiwgImNhbid0IGZpbmQgSVJRXG4iKTsKPiArCQlyZXR1cm4gaXJxOwo+ICsJfQo+ICsKPiAr CXJldCA9IGRldm1fcmVxdWVzdF9pcnEoJnBkZXYtPmRldiwgaXJxLCBhbWxfaTJjX2lycSwgMCwg ZGV2X25hbWUoJnBkZXYtPmRldiksIGkyYyk7CgpbU2V2ZXJpdHk6IE1lZGl1bV0KU2luY2UgdGhl IGludGVycnVwdCBpcyByZXF1ZXN0ZWQgdXNpbmcgZGV2cmVzIGhlcmUsIGl0IHdpbGwgcmVtYWlu IGFjdGl2ZQp1bnRpbCB0aGUgZGV2cmVzIGNsZWFudXAgcnVucyBhZnRlciBhbWxfaTJjX3JlbW92 ZSgpIHJldHVybnMuIENvdWxkIHRoaXMKbGVhdmUgYSB2dWxuZXJhYmxlIHdpbmRvdyBkdXJpbmcg cmVtb3ZhbCB3aGVyZSBhIHNwdXJpb3VzIGludGVycnVwdCBtaWdodAphdHRlbXB0IHRvIHJlYWQg aGFyZHdhcmUgcmVnaXN0ZXJzIGFmdGVyIHRoZSBjbG9jayBoYXMgYmVlbiBkaXNhYmxlZD8KCj4g KwlpZiAocmV0IDwgMCkgewo+ICsJCWRldl9lcnIoJnBkZXYtPmRldiwgImNhbid0IHJlcXVlc3Qg SVJRXG4iKTsKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQo+ICsKPiArCXJldCA9IGNsa19wcmVwYXJl X2VuYWJsZShpMmMtPmNsayk7Cj4gKwlpZiAocmV0IDwgMCkgewo+ICsJCWRldl9lcnIoJnBkZXYt PmRldiwgImNhbid0IHByZXBhcmUgY2xvY2tcbiIpOwo+ICsJCXJldHVybiByZXQ7Cj4gKwl9Cj4g Kwo+ICsJc3Ryc2NweShpMmMtPmFkYXAubmFtZSwgIkFtbG9naWMgSTJDIGFkYXB0ZXIiLAo+ICsJ CXNpemVvZihpMmMtPmFkYXAubmFtZSkpOwo+ICsJaTJjLT5hZGFwLm93bmVyID0gVEhJU19NT0RV TEU7Cj4gKwlpMmMtPmFkYXAuYWxnbyA9ICZhbWxfaTJjX2FsZ29yaXRobTsKPiArCWkyYy0+YWRh cC5kZXYucGFyZW50ID0gJnBkZXYtPmRldjsKPiArCWkyYy0+YWRhcC5kZXYub2Zfbm9kZSA9IG5w Owo+ICsJaTJjLT5hZGFwLmFsZ29fZGF0YSA9IGkyYzsKPiArCj4gKwlyZXQgPSBpMmNfYWRkX2Fk YXB0ZXIoJmkyYy0+YWRhcCk7CgpbU2V2ZXJpdHk6IEhpZ2hdCkNvdWxkIHRoZSBzaWxlbnQgdHJ1 bmNhdGlvbiBvZiBsYXJnZSB0cmFuc2ZlcnMgb2JzZXJ2ZWQgaW4gYW1sX2kyY19kb19zdGFydCgp CmJlIGF2b2lkZWQgYnkgc2V0dGluZyB0aGUgcXVpcmtzIHBvaW50ZXIgb24gaTJjLT5hZGFwIGhl cmU/IFBvcHVsYXRpbmcgdGhlCnF1aXJrcyB3b3VsZCBhbGxvdyB0aGUgSTJDIGNvcmUgdG8gcHJv cGVybHkgZW5mb3JjZSB0aGUgNDA5NS1ieXRlIGhhcmR3YXJlCmxpbWl0IGFuZCByZXR1cm4gYW4g ZXJyb3IgdG8gdGhlIGNhbGxlciBuYXRpdmVseS4KClsgLi4uIF0KCj4gK3N0YXRpYyB2b2lkIGFt bF9pMmNfcmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gK3sKPiArCXN0cnVj dCBhbWxfaTJjICppMmMgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKPiArCj4gKwlpMmNf ZGVsX2FkYXB0ZXIoJmkyYy0+YWRhcCk7Cj4gKwljbGtfZGlzYWJsZV91bnByZXBhcmUoaTJjLT5j bGspOwo+ICt9CgpbU2V2ZXJpdHk6IE1lZGl1bV0KSXMgdGhlIGNsb2NrIGJlaW5nIG1hbnVhbGx5 IGRpc2FibGVkIGhlcmUgYmVmb3JlIHRoZSBpbnRlcnJ1cHQgaGFuZGxlciBpcwpjbGVhbmVkIHVw PyBBcyBtZW50aW9uZWQgaW4gYW1sX2kyY19wcm9iZSgpLCB0aGUgZGV2bS1tYW5hZ2VkIElSUSBp cyBzdGlsbAphY3RpdmUgYXQgdGhpcyBwb2ludC4gQSBzcHVyaW91cyBpbnRlcnJ1cHQgYXJyaXZp bmcgYWZ0ZXIgdGhpcyBsaW5lIGNvdWxkCmNyYXNoIHRoZSBzeXN0ZW0gYnkgYWNjZXNzaW5nIHVu Y2xvY2tlZCByZWdpc3RlcnMuCgotLSAKU2FzaGlrbyBBSSByZXZpZXcgwrcgaHR0cHM6Ly9zYXNo aWtvLmRldi8jL3BhdGNoc2V0LzIwMjYwOTI0LWE5LWkyYy12MS0wLWI4YWQ5YjQ2ZjRhOEBhbWxv Z2ljLmNvbT9wYXJ0PTIKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmxpbnV4LWFtbG9naWMgbWFpbGluZyBsaXN0CmxpbnV4LWFtbG9naWNAbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xp bnV4LWFtbG9naWMK