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 9E509CD8CA8 for ; Fri, 12 Jun 2026 11:41:05 +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=6lgqv+DFKnAVOYidgjAa7y7vTzp4VJ6Tos27umTXn6c=; b=MK2P9kSSTBOQCS NiCNseUzF5FiDC0mNiYkozS0a4omx27RWh4JV9IPHdOqE3hzqfi9X9ugC+H26w4lbQoYdoOKXO2Mf DYZw+9buI+LZLGhFL8XWwu9LIUbrabehXCo0FNPJl51aLE15gz6O21lQyOuZf9rrY1y3nJW9CwH3b R5NFwKF58GyL0TyICf8sn8zrNt8EW9uCTHEDswe8BtfjxZ6k16snCYsTgsIkymDHe/nSc3g4dRnNr rbZpXf5el3ZPSMSKUl/GolhW3b3ZN3YjCxN2pT2dlqy8XGxjic5rG+tlc0Y1cm4kLNIbhsBLXegfE ePcUS2+mhh3rBiFb8DUg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.99.1 #2 (Red Hat Linux)) id 1wY0G1-0000000AoZ2-1ink; Fri, 12 Jun 2026 11:41:05 +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 1wY0Fz-0000000AoYl-1gtf for linux-i3c@lists.infradead.org; Fri, 12 Jun 2026 11:41:03 +0000 Received: from smtp.kernel.org (quasi.space.kernel.org [100.103.45.18]) by sea.source.kernel.org (Postfix) with ESMTP id 2B80841893; Fri, 12 Jun 2026 11:41:03 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id C11B21F00A3D; Fri, 12 Jun 2026 11:41:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel.org; s=k20260515; t=1781264463; bh=GpabS/WAwtiIF8UdCveMYZHpjy8NlBJScIZFIxuZHts=; h=From:Subject:Reply-To:To:Cc:In-Reply-To:References:Date; b=CyJdI8CLvginDrQ7E7IsK/DUK+1TbF7VXm8W0W5U7i8KlQ1J2mASAznUPEYb1LcJd AF9P3Z173Vv9g6HEBt60EbkqTwz9MObk8/nCecTOXSoNLWGf73EhqycXQy64UnVzz+ Pwh/aXgr3c5ZgEV9z8hPpPGYEGYDbr7TzMUQXhDoDDxje2vw0/rfuLzTjFhNpM798e jrlCKdZD7Lihm5Jz9M4bDaqjsktswL/brE1ul2wRC2aQAngrpKH0Tdn9UVlMJQ3cQc 72aLRj3w/mjYUfFeugCYVeKwndowd3sN1ow9x6fsn9326oQAyPfpvvK0H7CNekCHgC Yzf3FhjtMNLOQ== From: sashiko-bot@kernel.org Subject: Re: [PATCH v11 7/9] i3c: hub: Add support for the I3C interface in the I3C hub To: "Lakshay Piplani" Cc: devicetree@vger.kernel.org, robh@kernel.org, conor+dt@kernel.org, linux-i3c@lists.infradead.org, Frank.Li@kernel.org In-Reply-To: <20260612111816.3688240-8-lakshay.piplani@nxp.com> References: <20260612111816.3688240-8-lakshay.piplani@nxp.com> Date: Fri, 12 Jun 2026 11:41:02 +0000 Message-Id: <20260612114102.C11B21F00A3D@smtp.kernel.org> X-BeenThere: linux-i3c@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-i3c" Errors-To: linux-i3c-bounces+linux-i3c=archiver.kernel.org@lists.infradead.org VGhhbmsgeW91IGZvciB5b3VyIGNvbnRyaWJ1dGlvbiEgU2FzaGlrbyBBSSByZXZpZXcgZm91bmQg MTEgcG90ZW50aWFsIGlzc3VlKHMpIHRvIGNvbnNpZGVyOgotIFtDcml0aWNhbF0gQ29uY3VycmVu dCBwcml2YXRlIHRyYW5zZmVycyB0aHJvdWdoIHRoZSBodWIgcmFjZSBvbiBgaHViX2Rldi0+aW5m by5keW5fYWRkcmAsIGNhdXNpbmcgZGF0YSBjb3JydXB0aW9uLgotIFtDcml0aWNhbF0gRGVsZWdh dGluZyBEQUEgdG8gdGhlIHBhcmVudCBjb250cm9sbGVyIGluY29ycmVjdGx5IGF0dGFjaGVzIGRv d25zdHJlYW0gZGV2aWNlcyB0byB0aGUgcGFyZW50IGJ1cy4KLSBbQ3JpdGljYWxdIFVuc3luY2hy b25pemVkIGh1YiBwb3J0IGVuYWJsZW1lbnQgYnJlYWtzIHZpcnR1YWwgYnVzIGlzb2xhdGlvbiwg Y2F1c2luZyBidXMgY29sbGlzaW9ucy4KLSBbQ3JpdGljYWxdIGBpM2NfaHViX21hc3Rlcl9wcml2 X3hmZXJzYCBjb3JydXB0cyB0aGUgcGFyZW50IGJ1cyBhZGRyZXNzIHNsb3RzIGJ5IGZyZWVpbmcg c2xvdHMgdGhhdCBiZWxvbmcgdG8gdW5yZWxhdGVkIHBoeXNpY2FsIGRldmljZXMuCi0gW0hpZ2hd IERvdWJsZSBmcmVlIGFuZCBtZW1vcnkgbGVhayBvZiB0aGUgSUJJIHdvcmtxdWV1ZSBpbiBgaTNj X2h1Yl9yZXF1ZXN0X2liaWAgZXJyb3IgcGF0aC4KLSBbSGlnaF0gRGV0ZXJtaW5pc3RpYyBOVUxM IHBvaW50ZXIgZGVyZWZlcmVuY2UgaW4gYGkzY19kZXZfZnJlZV9pYmlfbG9ja2VkYCBhZnRlciBo dWIgcmVjdXJzaXZlIGNhbGwuCi0gW0hpZ2hdIFVubG9ja2VkIHdyaXRlIHRvIGBodWJfZGV2LT5p bmZvLmR5bl9hZGRyYCBpbnRyb2R1Y2VzIGEgZGF0YSByYWNlIG9uIHRoZSBlcnJvciBwYXRoLgot IFtIaWdoXSBGYWlsdXJlIGluIGBwcml2X3hmZXJzYCBhZGRyZXNzIHJlYXR0YWNobWVudCBwZXJt YW5lbnRseSBvcnBoYW5zIHRoZSBodWIgZGV2aWNlLgotIFtIaWdoXSBJQkkgc3VwcG9ydCBmb3Ig ZG93bnN0cmVhbSBodWIgZGV2aWNlcyBpcyBicm9rZW4gYmVjYXVzZSBkZXZpY2VzIGFyZSBuZXZl ciBhZGRlZCB0byB0aGUgcGh5c2ljYWwgcGFyZW50J3MgYnVzIGxpc3QuCi0gW0hpZ2hdIExvY2tk ZXAgc3BsYXQgZHVlIHRvIG5lc3RlZCBhY3F1aXNpdGlvbiBvZiBgYnVzLmxvY2tgIHdpdGhvdXQg c3ViY2xhc3MgYW5ub3RhdGlvbnMuCi0gW01lZGl1bV0gSTJDIHRyYW5zZmVycyBzaWxlbnRseSBz dWNjZWVkIHdpdGhvdXQgcGVyZm9ybWluZyBhbnkgY29tbXVuaWNhdGlvbiwgbWFza2luZyBmYWls dXJlcy4KLS0KCmNvbW1pdCBmM2Y5MGFhZjJjMDA0MGQ5NjAwN2ZlZDI4NWNjZDQ5ZTRjNmU4ZTdh CkF1dGhvcjogTGFrc2hheSBQaXBsYW5pIDxsYWtzaGF5LnBpcGxhbmlAbnhwLmNvbT4KCmkzYzog aHViOiBBZGQgc3VwcG9ydCBmb3IgdGhlIEkzQyBpbnRlcmZhY2UgaW4gdGhlIEkzQyBodWIKCkFk ZCB2aXJ0dWFsIEkzQyBidXMgc3VwcG9ydCBmb3IgdGhlIGh1YiBhbmQgcHJvdmlkZSBpbnRlcmZh Y2UgdG8gZW5hYmxlCm9yIGRpc2FibGUgZG93bnN0cmVhbSBwb3J0cy4KCj4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvaTNjL2h1Yi5jIGIvZHJpdmVycy9pM2MvaHViLmMKPiBuZXcgZmlsZSBtb2RlIDEw MDY0NAo+IGluZGV4IDAwMDAwMDAwMDAwMDAuLmMzN2IwMWZkZGNiNGMKPiAtLS0gL2Rldi9udWxs Cj4gKysrIGIvZHJpdmVycy9pM2MvaHViLmMKClsgLi4uIF0KCj4gK3N0YXRpYyBpbnQgaTNjX2h1 Yl9kb19kYWEoc3RydWN0IGkzY19odWIgKmh1YiwKPiArCQkJICBzdHJ1Y3QgaTNjX21hc3Rlcl9j b250cm9sbGVyICpjb250cm9sbGVyKQo+ICt7Cj4gKwlzdHJ1Y3QgaTNjX21hc3Rlcl9jb250cm9s bGVyICpwYXJlbnQ7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWlmICghaHViIHx8ICFodWItPmh1Yl9k ZXYpCj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwo+ICsJcGFyZW50ID0gaTNjX2Rldl9nZXRfbWFz dGVyKGh1Yi0+aHViX2Rldi0+ZGVzYyk7Cj4gKwlpZiAoIXBhcmVudCkKPiArCQlyZXR1cm4gLUVO T0RFVjsKPiArCj4gKwlpM2NfaHViX2VuYWJsZV9wb3J0KGNvbnRyb2xsZXIpOwoKW1NldmVyaXR5 OiBDcml0aWNhbF0KRG9lcyBlbmFibGluZyB0aGUgcG9ydCBvdXRzaWRlIG9mIHRoZSBwYXJlbnQg Y29udHJvbGxlcidzIGJ1cyBsb2NrIGJyZWFrCnZpcnR1YWwgYnVzIGlzb2xhdGlvbj8gSWYgbXVs dGlwbGUgdmlydHVhbCBwb3J0cyBleGVjdXRlIGdsb2JhbCBicm9hZGNhc3RzCmNvbmN1cnJlbnRs eSwgdGhleSBtaWdodCBib3RoIGVuYWJsZSB0aGVpciByZXNwZWN0aXZlIGhhcmR3YXJlIHBvcnRz IGJlZm9yZQpibG9ja2luZyBvbiBwYXJlbnQtPmJ1cy5sb2NrLiBUaGlzIGNvdWxkIGNhdXNlIHRo ZSBwYXJlbnQgdG8gZXhlY3V0ZSB0aGUKYnJvYWRjYXN0IGFjcm9zcyBhbGwgZW5hYmxlZCBwb3J0 cyBzaW11bHRhbmVvdXNseSwgcG90ZW50aWFsbHkgcmVzdWx0aW5nIGluCnNldmVyZSBidXMgY29s bGlzaW9ucy4KCj4gKwlyZXQgPSBpM2NfbWFzdGVyX2RvX2RhYShwYXJlbnQpOwoKW1NldmVyaXR5 OiBDcml0aWNhbF0KQ291bGQgZGVsZWdhdGluZyB0aGUgRHluYW1pYyBBZGRyZXNzIEFzc2lnbm1l bnQgcHJvY2VkdXJlIHRvIHRoZSBwaHlzaWNhbApwYXJlbnQgY29udHJvbGxlciBpbmNvcnJlY3Rs eSBhdHRhY2ggZG93bnN0cmVhbSBkZXZpY2VzIHRvIHRoZSBwYXJlbnQgYnVzPwoKU2luY2UgaTNj X21hc3Rlcl9kb19kYWEoKSBuYXRpdmVseSBjcmVhdGVzIGFuZCBhdHRhY2hlcyBkZXZpY2VzIHRv IHRoZQpwaHlzaWNhbCBwYXJlbnQgYnVzLCBhbnkgdHJhbnNmZXJzIHRhcmdldGluZyB0aGVzZSBk ZXZpY2VzIHdvdWxkIGJ5cGFzcyB0aGUKaHViJ3MgdmlydHVhbCBjb250cm9sbGVyIGNhbGxiYWNr cy4gQXMgYSByZXN1bHQsIGkzY19odWJfZW5hYmxlX3BvcnQoKQp3b3VsZCBuZXZlciBiZSBpbnZv a2VkIHByaW9yIHRvIGNvbW11bmljYXRpb24sIHBvdGVudGlhbGx5IGNhdXNpbmcgSTNDCnRyYW5z ZmVycyB0byB0aGUgZG93bnN0cmVhbSBkZXZpY2VzIHRvIGZhaWwuCgo+ICsJaTNjX2h1Yl9kaXNh YmxlX3BvcnQoY29udHJvbGxlcik7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQoKWyAuLi4gXQoK PiArc3RhdGljIGludCBpM2NfaHViX3NlbmRfY2NjX2NtZChzdHJ1Y3QgaTNjX2h1YiAqaHViLAo+ ICsJCQkJc3RydWN0IGkzY19tYXN0ZXJfY29udHJvbGxlciAqY29udHJvbGxlciwKPiArCQkJCXN0 cnVjdCBpM2NfY2NjX2NtZCAqY21kKQo+ICt7Cj4gKwlzdHJ1Y3QgaTNjX21hc3Rlcl9jb250cm9s bGVyICpwYXJlbnQ7Cj4gKwlpbnQgcmV0Owo+ICsKPiArCWlmICghaHViIHx8ICFodWItPmh1Yl9k ZXYpCj4gKwkJcmV0dXJuIC1FTk9ERVY7Cj4gKwo+ICsJcGFyZW50ID0gaTNjX2Rldl9nZXRfbWFz dGVyKGh1Yi0+aHViX2Rldi0+ZGVzYyk7Cj4gKwlpZiAoIXBhcmVudCkKPiArCQlyZXR1cm4gLUVO T0RFVjsKPiArCj4gKwlpM2NfaHViX2VuYWJsZV9wb3J0KGNvbnRyb2xsZXIpOwoKW1NldmVyaXR5 OiBDcml0aWNhbF0KSXMgaXQgcG9zc2libGUgZm9yIGNvbmN1cnJlbnQgQ0NDIGJyb2FkY2FzdHMg dG8gY2F1c2UgYnVzIGNvbGxpc2lvbnMgaGVyZT8KU2ltaWxhciB0byBpM2NfaHViX2RvX2RhYSgp LCBlbmFibGluZyB0aGUgcG9ydCBvdXRzaWRlIG9mIHBhcmVudC0+YnVzLmxvY2sKY291bGQgYWxs b3cgbXVsdGlwbGUgcG9ydHMgdG8gYmUgZW5hYmxlZCBzaW11bHRhbmVvdXNseSBpZiB0aGV5IGV4 ZWN1dGUKYnJvYWRjYXN0cyBjb25jdXJyZW50bHkuCgo+ICsJcmV0ID0gaTNjX21hc3Rlcl9zZW5k X2NjY19jbWQocGFyZW50LCBjbWQpOwo+ICsJaTNjX2h1Yl9kaXNhYmxlX3BvcnQoY29udHJvbGxl cik7Cj4gKwo+ICsJcmV0dXJuIHJldDsKPiArfQoKWyAuLi4gXQoKPiArc3RhdGljIGludCBpM2Nf aHViX21hc3Rlcl9wcml2X3hmZXJzKHN0cnVjdCBpM2NfZGV2X2Rlc2MgKmRldiwKPiArCQkJCSAg ICAgc3RydWN0IGkzY194ZmVyICp4ZmVycywKPiArCQkJCSAgICAgaW50IG54ZmVycywKPiArCQkJ CSAgICAgZW51bSBpM2NfeGZlcl9tb2RlIG1vZGUpCj4gK3sKPiArCXN0cnVjdCBpM2NfbWFzdGVy X2NvbnRyb2xsZXIgKmNvbnRyb2xsZXIgPSBpM2NfZGV2X2dldF9tYXN0ZXIoZGV2KTsKPiArCXN0 cnVjdCBpM2NfaHViX2NvbnRyb2xsZXIgKmh1Yl9jb250cm9sbGVyOwo+ICsJc3RydWN0IGkzY19k ZXZfZGVzYyAqaHViX2RldjsKPiArCXN0cnVjdCBpM2NfbWFzdGVyX2NvbnRyb2xsZXIgKnBhcmVu dDsKPiArCXU4IGh1Yl9hZGRyLCB0YXJnZXRfYWRkcjsKPiArCXN0cnVjdCBpM2NfaHViICpodWI7 Cj4gKwlpbnQgcmV0LCB4ZmVyX3JldDsKClsgLi4uIF0KCj4gKwlpZiAoaHViX2FkZHIgIT0gdGFy Z2V0X2FkZHIpIHsKPiArCQlkb3duX3dyaXRlKCZwYXJlbnQtPmJ1cy5sb2NrKTsKCltTZXZlcml0 eTogSGlnaF0KRG9lcyBhY3F1aXJpbmcgdGhpcyBsb2NrIGNhdXNlIGEgbG9ja2RlcCBzcGxhdD8K ClRoaXMgZnVuY3Rpb24gaXMgaW52b2tlZCBmcm9tIGNvbnRleHRzIHdoZXJlIHRoZSBjb3JlIGZy YW1ld29yayBoYXMgYWxyZWFkeQpsb2NrZWQgdGhlIHZpcnR1YWwgZG93bnN0cmVhbSBjb250cm9s bGVyJ3MgYnVzLmxvY2sgKGUuZy4sIHZpYQppM2NfYnVzX25vcm1hbHVzZV9sb2NrKCkgd2hpY2gg dGFrZXMgYSBkb3duX3JlYWQpLiBBY3F1aXJpbmcgYSBzZWNvbmQgbG9jawpvZiB0aGUgc2FtZSBj bGFzcyB3aXRob3V0IHVzaW5nIGRvd25fd3JpdGVfbmVzdGVkKCkgbWlnaHQgdmlvbGF0ZSBsb2Nr Cm5lc3RpbmcgcnVsZXMuCgo+ICsJCWh1Yl9kZXYtPmluZm8uZHluX2FkZHIgPSB0YXJnZXRfYWRk cjsKPiArCj4gKwkJcmV0ID0gaTNjX21hc3Rlcl9yZWF0dGFjaF9pM2NfZGV2X2xvY2tlZChodWJf ZGV2LCBodWJfYWRkcik7Cj4gKwkJdXBfd3JpdGUoJnBhcmVudC0+YnVzLmxvY2spOwo+ICsJCWlm IChyZXQpIHsKPiArCQkJaHViX2Rldi0+aW5mby5keW5fYWRkciA9IGh1Yl9hZGRyOwoKW1NldmVy aXR5OiBIaWdoXQpJcyBpdCBzYWZlIHRvIG1vZGlmeSBodWJfZGV2LT5pbmZvLmR5bl9hZGRyIG91 dHNpZGUgb2YgdGhlIGJ1cyB3cml0ZSBsb2NrPwpNb2RpZnlpbmcgdGhpcyBzaGFyZWQgYnVzIHN0 YXRlIHZhcmlhYmxlIGFmdGVyIHVwX3dyaXRlKCZwYXJlbnQtPmJ1cy5sb2NrKQphcHBlYXJzIHRv IGludHJvZHVjZSBhIGRhdGEgcmFjZSB3aXRoIGNvbmN1cnJlbnQgYnVzIG9wZXJhdGlvbnMuCgpb U2V2ZXJpdHk6IEhpZ2hdCklmIGkzY19tYXN0ZXJfcmVhdHRhY2hfaTNjX2Rldl9sb2NrZWQoKSBm YWlscywgYXJlIHdlIHBlcm1hbmVudGx5IG9ycGhhbmluZwp0aGUgaHViIGRldmljZT8KCldoZW4g aXQgZmFpbHMsIHRoZSBjb3JlIGNvZGUgYXV0b21hdGljYWxseSBtYXJrcyBib3RoIHRoZSBuZXcg YW5kIG9sZCBhZGRyZXNzCnNsb3RzIGFzIEkzQ19BRERSX1NMT1RfRlJFRSB2aWEgaTNjX21hc3Rl cl9wdXRfaTNjX2FkZHJzKCkuIEJlY2F1c2UgdGhpcwplcnJvciBwYXRoIHJlc3RvcmVzIGR5bl9h ZGRyIGJ1dCBmYWlscyB0byByZWluc3RhdGUgdGhlIGFkZHJlc3MgYWxsb2NhdGlvbgpvbiB0aGUg cGFyZW50IGJ1cywgdGhlIHBhcmVudCBjb250cm9sbGVyIG1pZ2h0IHJlLWFzc2lnbiB0aGUgaHVi J3MgbGVnaXRpbWF0ZQphZGRyZXNzIHRvIG5ldyBob3Qtam9pbmVkIGRldmljZXMuCgo+ICsJCQln b3RvIGRpc2FibGU7Cj4gKwkJfQo+ICsJfQo+ICsKPiArCXJldCA9IGkzY19kZXZpY2VfZG9feGZl cnMoaHViLT5odWJfZGV2LCB4ZmVycywgbnhmZXJzLCBtb2RlKTsKCltTZXZlcml0eTogQ3JpdGlj YWxdCkNvdWxkIGNvbmN1cnJlbnQgcHJpdmF0ZSB0cmFuc2ZlcnMgdGhyb3VnaCB0aGUgaHViIHJh Y2Ugb24KaHViX2Rldi0+aW5mby5keW5fYWRkcj8KClRoaXMgZnVuY3Rpb24gZHJvcHMgdGhlIHdy aXRlIGxvY2sgYmVmb3JlIGNhbGxpbmcgaTNjX2RldmljZV9kb194ZmVycygpLAp3aGljaCBvbmx5 IGFjcXVpcmVzIHRoZSBsb2NrIGluIHJlYWQgbW9kZS4gSWYgbXVsdGlwbGUgdGhyZWFkcyBjb25j dXJyZW50bHkKaW5pdGlhdGUgdHJhbnNmZXJzIHRvIGRpZmZlcmVudCBkb3duc3RyZWFtIHBvcnRz LCB0aGV5IG1pZ2h0IHRha2UgdGhlIHJlYWQKbG9jayBzaW11bHRhbmVvdXNseSBhbmQgcmFjZSB0 byBvdmVyd3JpdGUgaHViX2Rldi0+aW5mby5keW5fYWRkciwgcG90ZW50aWFsbHkKY2F1c2luZyB0 cmFuc2ZlcnMgdG8gYmUgbWlzcm91dGVkLgoKPiArCj4gKwlpZiAoaHViX2FkZHIgIT0gdGFyZ2V0 X2FkZHIpIHsKPiArCQlkb3duX3dyaXRlKCZwYXJlbnQtPmJ1cy5sb2NrKTsKPiArCQlodWJfZGV2 LT5pbmZvLmR5bl9hZGRyID0gaHViX2FkZHI7Cj4gKwo+ICsJCXhmZXJfcmV0ID0gaTNjX21hc3Rl cl9yZWF0dGFjaF9pM2NfZGV2X2xvY2tlZChodWJfZGV2LAo+ICsJCQkJCQkJICAgICAgdGFyZ2V0 X2FkZHIpOwoKW1NldmVyaXR5OiBDcml0aWNhbF0KRG9lcyBwYXNzaW5nIHRhcmdldF9hZGRyIGFz IHRoZSBvbGQgZHluYW1pYyBhZGRyZXNzIGNvcnJ1cHQgdGhlIHBhcmVudCBidXMKYWRkcmVzcyBz bG90cz8KCldoZW4gdGhlIGNvcmUgZnVuY3Rpb24gaW50ZXJwcmV0cyB0YXJnZXRfYWRkciBhcyB0 aGUgb2xkIGR5bmFtaWMgYWRkcmVzcyBvZgp0aGUgZGV2aWNlIG9uIHRoZSBwYXJlbnQgYnVzOgoK ZHJpdmVycy9pM2MvbWFzdGVyLmM6aTNjX21hc3Rlcl9yZWF0dGFjaF9pM2NfZGV2X2xvY2tlZCgp IHsKICAgIC4uLgogICAgaWYgKG9sZF9keW5fYWRkcikKICAgICAgICBpM2NfYnVzX3NldF9hZGRy X3Nsb3Rfc3RhdHVzKCZtYXN0ZXItPmJ1cywgb2xkX2R5bl9hZGRyLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgSTNDX0FERFJfU0xPVF9GUkVFKTsKICAgIC4uLgp9CgpCZWNh dXNlIHRhcmdldF9hZGRyIGlzIGEgZG93bnN0cmVhbSBhZGRyZXNzIGluZGVwZW5kZW50bHkgYXNz aWduZWQgYnkgdGhlCnZpcnR1YWwgY29udHJvbGxlciwgdGhpcyBtaWdodCBibGluZGx5IGZyZWUg YW4gaW4tdXNlIGFkZHJlc3Mgc2xvdCBvbiB0aGUKcGFyZW50IGJ1cyB0aGF0IGJlbG9uZ3MgdG8g YW4gdW5yZWxhdGVkIHBoeXNpY2FsIGRldmljZS4KCj4gKwo+ICsJCXVwX3dyaXRlKCZwYXJlbnQt PmJ1cy5sb2NrKTsKPiArCQlpZiAoIXJldCkKPiArCQkJcmV0ID0geGZlcl9yZXQ7Cj4gKwl9Cj4g K2Rpc2FibGU6Cj4gKwlpM2NfaHViX2Rpc2FibGVfcG9ydChjb250cm9sbGVyKTsKPiArCXJldHVy biByZXQ7Cj4gK30KClsgLi4uIF0KCj4gK3N0YXRpYyBpbnQgaTNjX2h1Yl9pMmNfeGZlcnMoc3Ry dWN0IGkyY19kZXZfZGVzYyAqZGV2LAo+ICsJCQkgICAgIHN0cnVjdCBpMmNfbXNnICp4ZmVycywg aW50IG54ZmVycykKPiArewo+ICsJcmV0dXJuIDA7Cj4gK30KCltTZXZlcml0eTogTWVkaXVtXQpT aG91bGQgdGhpcyBjYWxsYmFjayBhdHRlbXB0IHRvIGZvcndhcmQgdGhlIEkyQyB0cmFuc2ZlcnMg dGhyb3VnaCB0aGUgaHViIHRvCnRoZSBwYXJlbnQgYnVzLCBvciByZXR1cm4gYW4gZXJyb3IgbGlr ZSAtRU9QTk9UU1VQUD8gVW5jb25kaXRpb25hbGx5CnJldHVybmluZyAwIG1pZ2h0IGxlYWQgdGhl IGtlcm5lbCBhbmQgdXNlcnNwYWNlIGFwcGxpY2F0aW9ucyB0byBmYWxzZWx5CmFzc3VtZSB0aGF0 IEkyQyB0cmFuc2FjdGlvbnMgdG8gZG93bnN0cmVhbSBkZXZpY2VzIHdlcmUgc3VjY2Vzc2Z1bCB3 aGVuIG5vCmFjdHVhbCBoYXJkd2FyZSBjb21tdW5pY2F0aW9uIG9jY3VycmVkLgoKWyAuLi4gXQoK PiArc3RhdGljIGludCBpM2NfaHViX3JlcXVlc3RfaWJpKHN0cnVjdCBpM2NfZGV2X2Rlc2MgKmRl c2MsCj4gKwkJCSAgICAgICBjb25zdCBzdHJ1Y3QgaTNjX2liaV9zZXR1cCAqcmVxKQo+ICt7Cj4g KwlzdHJ1Y3QgaTNjX21hc3Rlcl9jb250cm9sbGVyICpjb250cm9sbGVyID0gaTNjX2Rldl9nZXRf bWFzdGVyKGRlc2MpOwo+ICsJc3RydWN0IGkzY19odWJfY29udHJvbGxlciAqaHViX2NvbnRyb2xs ZXI7Cj4gKwlzdHJ1Y3QgaTNjX21hc3Rlcl9jb250cm9sbGVyICpvcmlnX3BhcmVudDsKPiArCXN0 cnVjdCBpM2NfbWFzdGVyX2NvbnRyb2xsZXIgKnBhcmVudDsKPiArCXN0cnVjdCBpM2NfaHViICpo dWI7Cj4gKwlpbnQgcmV0OwoKWyAuLi4gXQoKPiArCXBhcmVudCA9IGkzY19kZXZfZ2V0X21hc3Rl cihodWItPmh1Yl9kZXYtPmRlc2MpOwo+ICsKPiArCWRvd25fd3JpdGUoJnBhcmVudC0+YnVzLmxv Y2spOwoKW1NldmVyaXR5OiBIaWdoXQpEb2VzIGFjcXVpcmluZyBwYXJlbnQtPmJ1cy5sb2NrIGhl cmUgY2F1c2UgYSBsb2NrZGVwIHNwbGF0PyBBcyB3aXRoCmkzY19odWJfbWFzdGVyX3ByaXZfeGZl cnMoKSwgdGhpcyBtaWdodCBhY3F1aXJlIGEgc2Vjb25kIGxvY2sgb2YgdGhlCnNhbWUgY2xhc3Mg d2l0aG91dCB1c2luZyBkb3duX3dyaXRlX25lc3RlZCgpLgoKPiArCj4gKwlvcmlnX3BhcmVudCA9 IGkzY19odWJfdXBkYXRlX2Rlc2NfcGFyZW50KCZkZXNjLT5jb21tb24sIHBhcmVudCk7Cj4gKwo+ ICsJcmV0ID0gaTNjX21hc3Rlcl9kaXJlY3RfYXR0YWNoX2kzY19kZXZfbG9ja2VkKHBhcmVudCwg ZGVzYyk7CgpbU2V2ZXJpdHk6IEhpZ2hdCkFyZSBkb3duc3RyZWFtIGRldmljZXMgbWlzc2luZyBm cm9tIHRoZSBwaHlzaWNhbCBwYXJlbnQncyBidXMgbGlzdD8KCmkzY19tYXN0ZXJfZGlyZWN0X2F0 dGFjaF9pM2NfZGV2X2xvY2tlZCgpIGV4cGxpY2l0bHkgc2tpcHMgYWRkaW5nIHRoZSBkZXZpY2UK dG8gdGhlIHBhcmVudCdzIGJ1cy5kZXZzLmkzYyBsaXN0LiBXaGVuIHRoZSBoYXJkd2FyZSBzdWJz ZXF1ZW50bHkgcmVjZWl2ZXMgYW4KSUJJLCB0aGUgY29yZSBmcmFtZXdvcmsgKGkzY19tYXN0ZXJf aGFuZGxlX2liaSkgbWlnaHQgbG9vayB1cCB0aGUgc291cmNlCmRldmljZSBieSBtYXRjaGluZyB0 aGUgSUJJIGFkZHJlc3MgYWdhaW5zdCBpdHMgYnVzLmRldnMuaTNjIGxpc3QuIFNpbmNlIHRoZQpk b3duc3RyZWFtIGRldmljZSBpcyBtaXNzaW5nIGZyb20gdGhlIGxpc3QsIHRoZSBsb29rdXAgd291 bGQgcHJlZGljdGFibHkKZmFpbCwgY2F1c2luZyBJQklzIHRvIGJlIGlnbm9yZWQuCgo+ICsJaWYg KHJldCkgewo+ICsJCWkzY19odWJfdXBkYXRlX2Rlc2NfcGFyZW50KCZkZXNjLT5jb21tb24sIG9y aWdfcGFyZW50KTsKPiArCQl1cF93cml0ZSgmcGFyZW50LT5idXMubG9jayk7Cj4gKwkJcmV0dXJu IHJldDsKPiArCX0KPiArCj4gKwlrZnJlZShkZXNjLT5pYmkpOwo+ICsJZGVzYy0+aWJpID0gTlVM TDsKCltTZXZlcml0eTogSGlnaF0KQXJlIHdlIGxlYWtpbmcgdGhlIElCSSB3b3JrcXVldWUgaGVy ZT8KCldoZW4gaTNjX2Rldl9yZXF1ZXN0X2liaV9sb2NrZWQoKSBoYW5kbGVzIGFuIElCSSByZXF1 ZXN0LCBpdCBhbGxvY2F0ZXMgYQpuZXcgaWJpIHN0cnVjdHVyZSBhbmQgYSB3b3JrcXVldWUgKGli aS0+d3EpLiBGcmVlaW5nIGRlc2MtPmliaSB3aXRob3V0CmRlc3Ryb3lpbmcgaWJpLT53cSBzZWVt cyB0byBsZWFrIHRoZSB3b3JrcXVldWUuCgpGdXJ0aGVybW9yZSwgaWYgdGhlIG5lc3RlZCBpM2Nf ZGV2X3JlcXVlc3RfaWJpX2xvY2tlZCgpIGNhbGwgZmFpbHMsIHRoaXMKaHViIGNhbGxiYWNrIHdp bGwgcmV0dXJuIGFuIGVycm9yIHRvIHRoZSBvdXRlciBjYWxsZXIuIFRoZSBvdXRlciBjYWxsZXIn cwplcnJvciBoYW5kbGluZyBwYXRoIG1pZ2h0IHRoZW4gdW5jb25kaXRpb25hbGx5IGV4ZWN1dGUg a2ZyZWUoaWJpKSB1c2luZyBpdHMKb3JpZ2luYWwgbG9jYWwgcG9pbnRlcjoKCmRyaXZlcnMvaTNj L21hc3Rlci5jOmkzY19kZXZfcmVxdWVzdF9pYmlfbG9ja2VkKCkgewogICAgLi4uCiAgICByZXQg PSBtYXN0ZXItPm9wcy0+cmVxdWVzdF9pYmkoZGV2LCByZXEpOwogICAgaWYgKHJldCkgewogICAg ICAgIGtmcmVlKGliaSk7CiAgICAgICAgZGV2LT5pYmkgPSBOVUxMOwogICAgfQogICAgLi4uCn0K ClNpbmNlIHRoZSBodWIgY2FsbGJhY2sgYWxyZWFkeSBmcmVlZCBpdCwgd291bGRuJ3QgdGhpcyBy ZXN1bHQgaW4gYQpkb3VibGUtZnJlZT8KCj4gKwlyZXQgPSBpM2NfZGV2X3JlcXVlc3RfaWJpX2xv Y2tlZChkZXNjLCByZXEpOwo+ICsJaWYgKHJldCkKPiArCQlpM2NfbWFzdGVyX2RpcmVjdF9kZXRh Y2hfaTNjX2Rldl9sb2NrZWQoZGVzYyk7Cj4gKwo+ICsJaTNjX2h1Yl91cGRhdGVfZGVzY19wYXJl bnQoJmRlc2MtPmNvbW1vbiwgb3JpZ19wYXJlbnQpOwo+ICsKPiArCXVwX3dyaXRlKCZwYXJlbnQt PmJ1cy5sb2NrKTsKPiArCj4gKwlyZXR1cm4gcmV0Owo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBp M2NfaHViX2ZyZWVfaWJpKHN0cnVjdCBpM2NfZGV2X2Rlc2MgKmRlc2MpCj4gK3sKPiArCXN0cnVj dCBpM2NfbWFzdGVyX2NvbnRyb2xsZXIgKmNvbnRyb2xsZXIgPSBpM2NfZGV2X2dldF9tYXN0ZXIo ZGVzYyk7Cj4gKwlzdHJ1Y3QgaTNjX2h1Yl9jb250cm9sbGVyICpodWJfY29udHJvbGxlcjsKPiAr CXN0cnVjdCBpM2NfbWFzdGVyX2NvbnRyb2xsZXIgKm9yaWdfcGFyZW50Owo+ICsJc3RydWN0IGkz Y19tYXN0ZXJfY29udHJvbGxlciAqcGFyZW50Owo+ICsJc3RydWN0IGkzY19odWIgKmh1YjsKClsg Li4uIF0KCj4gKwlkb3duX3dyaXRlKCZwYXJlbnQtPmJ1cy5sb2NrKTsKPiArCW9yaWdfcGFyZW50 ID0gaTNjX2h1Yl91cGRhdGVfZGVzY19wYXJlbnQoJmRlc2MtPmNvbW1vbiwgcGFyZW50KTsKPiAr CWkzY19tYXN0ZXJfZGlyZWN0X2RldGFjaF9pM2NfZGV2X2xvY2tlZChkZXNjKTsKPiArCWkzY19k ZXZfZnJlZV9pYmlfbG9ja2VkKGRlc2MpOwoKW1NldmVyaXR5OiBIaWdoXQpEb2VzIHRoaXMgbmVz dGVkIGNhbGwgdG8gaTNjX2Rldl9mcmVlX2liaV9sb2NrZWQoKSBjYXVzZSBhIE5VTEwgcG9pbnRl cgpkZXJlZmVyZW5jZSB1cG9uIHJldHVybmluZyB0byB0aGUgb3V0ZXIgY2FsbGVyPwoKVGhlIGlu bmVyIGNhbGwgdGVhcnMgZG93biB0aGUgSUJJIHN0YXRlIGFuZCBzZXRzIGRlc2MtPmliaSA9IE5V TEwuCldoZW4gY29udHJvbCByZXR1cm5zIHRvIHRoZSBvdXRlciBpM2NfZGV2X2ZyZWVfaWJpX2xv Y2tlZCgpOgoKZHJpdmVycy9pM2MvbWFzdGVyLmM6aTNjX2Rldl9mcmVlX2liaV9sb2NrZWQoKSB7 CiAgICAuLi4KICAgIG1hc3Rlci0+b3BzLT5mcmVlX2liaShkZXYpOwoKICAgIGlmIChkZXYtPmli aS0+d3EpIHsKICAgIC4uLgp9CgpJdCBzZWVtcyB0byB1bmNvbmRpdGlvbmFsbHkgZXZhbHVhdGUg ZGV2LT5pYmktPndxIGltbWVkaWF0ZWx5IGFmdGVyIHRoZQpjYWxsYmFjayByZXR1cm5zLCB3aGlj aCB3b3VsZCBibGluZGx5IGRlcmVmZXJlbmNlIHRoZSBuZXdseSBudWxsaWZpZWQKcG9pbnRlci4K Cj4gKwlpM2NfaHViX3VwZGF0ZV9kZXNjX3BhcmVudCgmZGVzYy0+Y29tbW9uLCBvcmlnX3BhcmVu dCk7Cj4gKwl1cF93cml0ZSgmcGFyZW50LT5idXMubG9jayk7Cj4gKwo+ICsJaTNjX2h1Yl9kaXNh YmxlX3BvcnQoY29udHJvbGxlcik7Cj4gK30KCi0tIApTYXNoaWtvIEFJIHJldmlldyDCtyBodHRw czovL3Nhc2hpa28uZGV2LyMvcGF0Y2hzZXQvMjAyNjA2MTIxMTE4MTYuMzY4ODI0MC0xLWxha3No YXkucGlwbGFuaUBueHAuY29tP3BhcnQ9NwoKLS0gCmxpbnV4LWkzYyBtYWlsaW5nIGxpc3QKbGlu dXgtaTNjQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1pM2MK