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 77A03CF319D for ; Wed, 2 Oct 2024 07:52:13 +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:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=DDRgG4pw3BKSNvIIsqzDTOI68MebNgd+Dm/2FXK89C4=; b=H6vDpE1/sxZAox 1oQZMT21QwpdY8QcMjOBw4DkrLzeNmLabfx7la4yxUW/7vpVUR9x9kAkL5jiHZBIWeWpeVGU7M5RW OeWU8zrTnXF5W9juO0CWSfGgcniLh9h1+1+aKjlc4gQWVU3Mn1fF9BHqDYNj9yOl9uOYWyu5P/so2 NGGzeDqgsv1N314ngUJPRQpUPwhrbtYuzOauizAc/uQ8QXO0owPFuryhIQ4Su+1Jnld9xcIij5jT7 xtkchue/HfCelsz8Csv3uLcNO0e7FancYX3+PmLHPJax4z2NCaaPQYLv5dlIHfmRlxDRBiKnC6da8 xsYxsdFezjQWcoSCLTAQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1svu9c-000000054us-475V; Wed, 02 Oct 2024 07:52:12 +0000 Received: from relay3-d.mail.gandi.net ([217.70.183.195]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1svu7J-000000054RS-1sLM for linux-i3c@lists.infradead.org; Wed, 02 Oct 2024 07:49:51 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 92AB060003; Wed, 2 Oct 2024 07:49:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1727855386; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=VQuzEv53DXwXTjUws25SPYwCyjtC4EtFl20S+EvFVXY=; b=X2XevZN2I6w4A58T4JP3rdr7t9cc97h6c0Uig+ECNQKmzlya7dAguyl6IurOp/P+36kY4i bR7MwJAmi9IL1PIFYYpQutXol7ap4vG+C3f6G8jrVtLy2vs36o+qAlGDif22GXYityYkk4 p2sQGe3izMCox+BPCHbpZs9hTQtviNsc8YXp8HAh1e3HdjembQ4bifZRw+b8bVd17RuqQN 3bm3qMVL0Z07ReXspr/1ExJb6KSFuXH1wOzMJXXYWPbYoKvxJ2WWmWpWis9cp1DTPNY2U2 DpH0cFQwqo5p0r6Bq387PWyv5RkFiydIyM66/rBf4tIxXMthREbPQNl8FXKeQA== Date: Wed, 2 Oct 2024 09:49:44 +0200 From: Miquel Raynal To: Frank Li Cc: Alexandre Belloni , linux-i3c@lists.infradead.org, linux-kernel@vger.kernel.org, arnd@arndb.de, bbrezillon@kernel.org, boris.brezillon@collabora.com, conor.culhane@silvaco.com, gregkh@linuxfoundation.org, imx@lists.linux.dev, pthombar@cadence.com, ravindra.yashvant.shinde@nxp.com Subject: Re: [PATCH 2/3] i3c: master: Extend address status bit to 4 and add I3C_ADDR_SLOT_EXT_INIT Message-ID: <20241002094944.5c0c83c8@xps-13> In-Reply-To: <20241001-i3c_dts_assign-v1-2-6ba83dc15eb8@nxp.com> References: <20241001-i3c_dts_assign-v1-0-6ba83dc15eb8@nxp.com> <20241001-i3c_dts_assign-v1-2-6ba83dc15eb8@nxp.com> Organization: Bootlin X-Mailer: Claws Mail 4.2.0 (GTK 3.24.41; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-GND-Sasl: miquel.raynal@bootlin.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241002_004949_781684_A2193347 X-CRM114-Status: GOOD ( 37.02 ) 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: , 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 SGkgRnJhbmssCgpGcmFuay5MaUBueHAuY29tIHdyb3RlIG9uIFR1ZSwgMDEgT2N0IDIwMjQgMTM6 MDg6MjEgLTA0MDA6Cgo+IEV4dGVuZCB0aGUgYWRkcmVzcyBzdGF0dXMgYml0IHRvIDQgYW5kIGlu dHJvZHVjZSB0aGUgSTNDX0FERFJfU0xPVF9FWFRfSU5JVAo+IG1hY3JvIHRvIGluZGljYXRlIHRo YXQgYSBkZXZpY2UgcHJlZmVycyBhIHNwZWNpZmljIGFkZHJlc3MuIFRoaXMgaXMKPiBnZW5lcmFs bHkgc2V0IGJ5IHRoZSAnYXNzaWduZWQtYWRkcmVzcycgaW4gdGhlIGRldmljZSB0cmVlIHNvdXJj ZSAoZHRzKQo+IGZpbGUuCj4gCj4gIOKUjOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUrOKUgOKUgOKUgOKUkAo+ICDilIJTL1Ny4pSCIDcnaDdFIFJuVz0wIOKUgkFDS+KU giBFTlREQUEgIOKUgiBUIOKUnOKUgOKUgOKUgOKUgOKUkAo+ICDilJTilIDilIDilIDilIDilLTi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilLTilIDilIDilIDilLTilIDi lIDilIDilIDilIDilIDilIDilIDilIDilLTilIDilIDilIDilJggICAg4pSCCj4gIOKUjOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUmAo+ICDilIIgIOKUjOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU kAo+ICDilJTilIDilrrilIJTcuKUgjcnaDdFIFJuVz0xICDilIJBQ0vilII0OGJpdCBVSUQgQkNS IERDUuKUgkFzc2lnbiA3Yml0IEFkZHLilIJQQVLilIIgQUNLL05BQ0vilIIKPiAgICAg4pSU4pSA 4pSA4pS04pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS04pSA4pSA4pSA 4pS04pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS0 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pS04pSA4pSA 4pSA4pS04pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYCj4gCj4gU29tZSBtYXN0ZXIgY29u dHJvbGxlcnMgKHN1Y2ggYXMgSENJKSBuZWVkIHRvIHByZXBhcmUgdGhlIGVudGlyZSBhYm92ZQo+ IHRyYW5zYWN0aW9uIGJlZm9yZSBzZW5kaW5nIGl0IG91dCB0byB0aGUgSTNDIGJ1cy4gVGhpcyBt ZWFucyB0aGF0IGEgNy1iaXQKPiBkeW5hbWljIGFkZHJlc3MgbmVlZHMgdG8gYmUgYWxsb2NhdGVk IGJlZm9yZSBrbm93aW5nIHRoZSB0YXJnZXQgZGV2aWNlJ3MKPiBVSUQgaW5mb3JtYXRpb24uCj4g Cj4gSG93ZXZlciwgc29tZSBJM0MgdGFyZ2V0cyB3YW50IGEgc3BlY2lmaWMgYWRkcmVzcyAoY2Fs bGVkIGFzCj4gImluaXRfZHluX2FkZHIiKSwgd2hpY2ggaXMgdHlwaWNhbGx5IHNwZWNpZmllZCBi eSB0aGUgRFQncyBhc3NpZ25lZC1hZGRyZXNzCj4gcHJvcGVydHkuIChMb3dlciBhZGRyZXNzZXMg aGF2ZSBoaWdoZXIgSUJJIHByaW9yaXR5LCBhbmQgdGhlIHRhcmdldCBjYW4KPiBhZGp1c3QgdGhp cyBieSB1c2luZyB0aGUgYXNzaWduZWQtYWRkcmVzcyBwcm9wZXJ0eSBpZiB1c2luZyBEVCkuIFRo ZQo+IGZ1bmN0aW9uIGkzY19tYXN0ZXJfYWRkX2kzY19kZXZfbG9ja2VkKCkgd2lsbCBzd2l0Y2gg dG8gdGhpcwo+ICJpbml0X2R5bl9hZGRyIiBpZiBpdCBpcyBub3QgaW4gdXNlLgo+IAo+IFRoZXJl Zm9yZSwgaTNjX2J1c19nZXRfZnJlZV9hZGRyKCkgc2hvdWxkIHJldHVybiBhIGZyZWUgYWRkcmVz cyB0aGF0IGhhcwo+IG5vdCBiZWVuIGNsYWltZWQgYnkgYW55IHRhcmdldCBkZXZpY2VzIGFzICJp bml0X2R5bl9hZGRyIiAoaW5kaWNhdGVkIGJ5Cj4gSTNDX0FERFJfU0xPVF9FWFRfSU5JVCkuIFRo aXMgYWxsb3dzIHRoZSBkZXZpY2Ugd2l0aCB0aGUgImluaXRfZHluX2FkZHIiCj4gdG8gc3dpdGNo IHRvIGl0cyAiaW5pdF9keW5fYWRkciIgd2hlbiBpdCBob3Qtam9pbnMgdGhlIEkzQyBidXMuIE90 aGVyd2lzZSwKPiBpZiB0aGUgImluaXRfZHluX2FkZHIiIGlzIGFscmVhZHkgaW4gdXNlIGJ5IGFu b3RoZXIgSTNDIGRldmljZSwgdGhlIHRhcmdldAo+IGRldmljZSB3aWxsIG5vdCBiZSBhYmxlIHRv IHN3aXRjaCB0byBpdHMgZGVzaXJlZCBhZGRyZXNzLgo+IAo+IElmIGFsbCBvZiBhYm92ZSBhZGRy ZXNzIGFyZSBhbHJlYWR5IHVzZWQsIGkzY19idXNfZ2V0X2ZyZWVfYWRkcigpIHJldHVybgo+IG9u ZSBmcm9tIHRoZSBjbGFpbWVkIGFzIGluaXRfZHluX2FkZHIgYW5kIGZyZWUgYWRkcmVzcyBzbG90 LiBUaGlzIGVuc3VyZXMKPiBzdXBwb3J0IGRldmljZXMgYXMgbXVjaCBhcyBwb3NzaWJsZS4KPiAK PiBTaWduZWQtb2ZmLWJ5OiBGcmFuayBMaSA8RnJhbmsuTGlAbnhwLmNvbT4KPiAtLS0KPiBjaGFu Z2UgZnJvbSB2MyB0byB2NAo+IC0gcmV3cml0ZSBjb21taXQgbWVzc2FnZSBhbmQgY29tbWVudCBm b3IgaTNjX2J1c19nZXRfZnJlZV9hZGRyKCkKPiAtLS0KPiAgZHJpdmVycy9pM2MvbWFzdGVyLmMg ICAgICAgfCA2OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0t Cj4gIGluY2x1ZGUvbGludXgvaTNjL21hc3Rlci5oIHwgIDcgKysrLS0KPiAgMiBmaWxlcyBjaGFu Z2VkLCA2NCBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9pM2MvbWFzdGVyLmMgYi9kcml2ZXJzL2kzYy9tYXN0ZXIuYwo+IGluZGV4IGRjZjhk MjNjNTk0MWEuLmE1NmNiMjgxZTZiNmQgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9pM2MvbWFzdGVy LmMKPiArKysgYi9kcml2ZXJzL2kzYy9tYXN0ZXIuYwo+IEBAIC0zNDUsNyArMzQ1LDcgQEAgY29u c3Qgc3RydWN0IGJ1c190eXBlIGkzY19idXNfdHlwZSA9IHsKPiAgRVhQT1JUX1NZTUJPTF9HUEwo aTNjX2J1c190eXBlKTsKPiAgCj4gIHN0YXRpYyBlbnVtIGkzY19hZGRyX3Nsb3Rfc3RhdHVzCj4g LWkzY19idXNfZ2V0X2FkZHJfc2xvdF9zdGF0dXMoc3RydWN0IGkzY19idXMgKmJ1cywgdTE2IGFk ZHIpCj4gK2kzY19idXNfZ2V0X2FkZHJfc2xvdF9zdGF0dXNfZXh0KHN0cnVjdCBpM2NfYnVzICpi dXMsIHUxNiBhZGRyKQo+ICB7Cj4gIAl1bnNpZ25lZCBsb25nIHN0YXR1czsKPiAgCWludCBiaXRw b3MgPSBhZGRyICogSTNDX0FERFJfU0xPVF9TVEFUVVNfQklUUzsKPiBAQCAtMzU2LDExICszNTYs MTcgQEAgaTNjX2J1c19nZXRfYWRkcl9zbG90X3N0YXR1cyhzdHJ1Y3QgaTNjX2J1cyAqYnVzLCB1 MTYgYWRkcikKPiAgCXN0YXR1cyA9IGJ1cy0+YWRkcnNsb3RzW2JpdHBvcyAvIEJJVFNfUEVSX0xP TkddOwo+ICAJc3RhdHVzID4+PSBiaXRwb3MgJSBCSVRTX1BFUl9MT05HOwo+ICAKPiAtCXJldHVy biBzdGF0dXMgJiBJM0NfQUREUl9TTE9UX1NUQVRVU19NQVNLOwo+ICsJcmV0dXJuIHN0YXR1cyAm IEkzQ19BRERSX1NMT1RfRVhUX1NUQVRVU19NQVNLOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdm9pZCBp M2NfYnVzX3NldF9hZGRyX3Nsb3Rfc3RhdHVzKHN0cnVjdCBpM2NfYnVzICpidXMsIHUxNiBhZGRy LAo+IC0JCQkJCSBlbnVtIGkzY19hZGRyX3Nsb3Rfc3RhdHVzIHN0YXR1cykKPiArc3RhdGljIGVu dW0gaTNjX2FkZHJfc2xvdF9zdGF0dXMKPiAraTNjX2J1c19nZXRfYWRkcl9zbG90X3N0YXR1cyhz dHJ1Y3QgaTNjX2J1cyAqYnVzLCB1MTYgYWRkcikKPiArewo+ICsJcmV0dXJuIGkzY19idXNfZ2V0 X2FkZHJfc2xvdF9zdGF0dXNfZXh0KGJ1cywgYWRkcikgJiBJM0NfQUREUl9TTE9UX1NUQVRVU19N QVNLOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZCBpM2NfYnVzX3NldF9hZGRyX3Nsb3Rfc3RhdHVz X21hc2soc3RydWN0IGkzY19idXMgKmJ1cywgdTE2IGFkZHIsCj4gKwkJCQkJICAgICAgZW51bSBp M2NfYWRkcl9zbG90X3N0YXR1cyBzdGF0dXMsIGludCBtYXNrKQo+ICB7Cj4gIAlpbnQgYml0cG9z ID0gYWRkciAqIEkzQ19BRERSX1NMT1RfU1RBVFVTX0JJVFM7Cj4gIAl1bnNpZ25lZCBsb25nICpw dHI7Cj4gQEAgLTM2OSwxMSArMzc1LDIyIEBAIHN0YXRpYyB2b2lkIGkzY19idXNfc2V0X2FkZHJf c2xvdF9zdGF0dXMoc3RydWN0IGkzY19idXMgKmJ1cywgdTE2IGFkZHIsCj4gIAkJcmV0dXJuOwo+ ICAKPiAgCXB0ciA9IGJ1cy0+YWRkcnNsb3RzICsgKGJpdHBvcyAvIEJJVFNfUEVSX0xPTkcpOwo+ IC0JKnB0ciAmPSB+KCh1bnNpZ25lZCBsb25nKUkzQ19BRERSX1NMT1RfU1RBVFVTX01BU0sgPDwK PiAtCQkJCQkJKGJpdHBvcyAlIEJJVFNfUEVSX0xPTkcpKTsKPiArCSpwdHIgJj0gfigodW5zaWdu ZWQgbG9uZyltYXNrIDw8IChiaXRwb3MgJSBCSVRTX1BFUl9MT05HKSk7Cj4gIAkqcHRyIHw9ICh1 bnNpZ25lZCBsb25nKXN0YXR1cyA8PCAoYml0cG9zICUgQklUU19QRVJfTE9ORyk7Cj4gIH0KPiAg Cj4gK3N0YXRpYyB2b2lkIGkzY19idXNfc2V0X2FkZHJfc2xvdF9zdGF0dXMoc3RydWN0IGkzY19i dXMgKmJ1cywgdTE2IGFkZHIsCj4gKwkJCQkJIGVudW0gaTNjX2FkZHJfc2xvdF9zdGF0dXMgc3Rh dHVzKQo+ICt7Cj4gKwlpM2NfYnVzX3NldF9hZGRyX3Nsb3Rfc3RhdHVzX21hc2soYnVzLCBhZGRy LCBzdGF0dXMsIEkzQ19BRERSX1NMT1RfU1RBVFVTX01BU0spOwo+ICt9Cj4gKwo+ICtzdGF0aWMg dm9pZCBpM2NfYnVzX3NldF9hZGRyX3Nsb3Rfc3RhdHVzX2V4dChzdHJ1Y3QgaTNjX2J1cyAqYnVz LCB1MTYgYWRkciwKPiArCQkJCQkgICAgIGVudW0gaTNjX2FkZHJfc2xvdF9zdGF0dXMgc3RhdHVz KQo+ICt7Cj4gKwlpM2NfYnVzX3NldF9hZGRyX3Nsb3Rfc3RhdHVzX21hc2soYnVzLCBhZGRyLCBz dGF0dXMsIEkzQ19BRERSX1NMT1RfRVhUX1NUQVRVU19NQVNLKTsKPiArfQoKQ2FuIHdlIGRyb3Ag dGhpcyBoZWxwZXIgYW5kIGluc3RlYWQgbW9kaWZ5IHRoZQppM2NfYnVzX3NldF9hZGRyX3Nsb3Rf c3RhdHVzKCkgcHJvdG90eXBlIHRvIGdldCB0aGUgbWFzayBmcm9tIGl0cwpwYXJhbWV0ZXJzPyAK Cj4gKwo+ICBzdGF0aWMgYm9vbCBpM2NfYnVzX2Rldl9hZGRyX2lzX2F2YWlsKHN0cnVjdCBpM2Nf YnVzICpidXMsIHU4IGFkZHIpCj4gIHsKPiAgCWVudW0gaTNjX2FkZHJfc2xvdF9zdGF0dXMgc3Rh dHVzOwo+IEBAIC0zODMsMTEgKzQwMCw0NCBAQCBzdGF0aWMgYm9vbCBpM2NfYnVzX2Rldl9hZGRy X2lzX2F2YWlsKHN0cnVjdCBpM2NfYnVzICpidXMsIHU4IGFkZHIpCj4gIAlyZXR1cm4gc3RhdHVz ID09IEkzQ19BRERSX1NMT1RfRlJFRTsKPiAgfQo+ICAKPiArLyoKPiArICog4pSM4pSA4pSA4pSA 4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA 4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA4pSQCj4gKyAqIOKUglMv U3LilIIgNydoN0UgUm5XPTAg4pSCQUNL4pSCIEVOVERBQSAg4pSCIFQg4pSc4pSA4pSA4pSA4pSA 4pSQCj4gKyAqIOKUlOKUgOKUgOKUgOKUgOKUtOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUgOKUgOKUtOKUgOKUgOKUgOKUtOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUtOKU gOKUgOKUgOKUmCAgICDilIIKPiArICog4pSM4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSYCj4gKyAqIOKUgiAg4pSM4pSA 4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA4pSA 4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs 4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSs4pSA4pSA 4pSA4pSs4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSQCj4gKyAqIOKUlOKUgOKWuuKUglNy 4pSCNydoN0UgUm5XPTEgIOKUgkFDS+KUgjQ4Yml0IFVJRCBCQ1IgRENS4pSCQXNzaWduIDdiaXQg QWRkcuKUglBBUuKUgiBBQ0svTkFDS+KUggo+ICsgKiAgICDilJTilIDilIDilLTilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilLTilIDilIDilIDilLTilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilLTilIDilIDilIDilIDilIDi lIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilLTilIDilIDilIDilLTilIDilIDilIDi lIDilIDilIDilIDilIDilIDilJgKPiArICogU29tZSBtYXN0ZXIgY29udHJvbGxlcnMgKHN1Y2gg YXMgSENJKSBuZWVkIHRvIHByZXBhcmUgdGhlIGVudGlyZSBhYm92ZSB0cmFuc2FjdGlvbiBiZWZv cmUKPiArICogc2VuZGluZyBpdCBvdXQgdG8gdGhlIEkzQyBidXMuIFRoaXMgbWVhbnMgdGhhdCBh IDctYml0IGR5bmFtaWMgYWRkcmVzcyBuZWVkcyB0byBiZSBhbGxvY2F0ZWQKPiArICogYmVmb3Jl IGtub3dpbmcgdGhlIHRhcmdldCBkZXZpY2UncyBVSUQgaW5mb3JtYXRpb24uCj4gKyAqCj4gKyAq IEhvd2V2ZXIsIHNvbWUgSTNDIHRhcmdldHMgd2FudCBhIHNwZWNpZmljIGFkZHJlc3MgKGNhbGxl ZCBhcyAiaW5pdF9keW5fYWRkciIpLCB3aGljaCBpcwoKCQkJCW1heSByZXF1ZXN0IHNwZWNpZmlj IGFkZHJlc3NlcyAoY2FsbGVkICJpbml0Li4uCgo+ICsgKiB0eXBpY2FsbHkgc3BlY2lmaWVkIGJ5 IHRoZSBEVCdzIGFzc2lnbmVkLWFkZHJlc3MgcHJvcGVydHkuIChMb3dlciBhZGRyZXNzZXMgaGF2 ZSBoaWdoZXIgSUJJCgoJCQkJICAgLSdzCgo+ICsgKiBwcmlvcml0eSwgYW5kIHRoZSB0YXJnZXQg Y2FuIGFkanVzdCB0aGlzIGJ5IHVzaW5nIHRoZSBhc3NpZ25lZC1hZGRyZXNzIHByb3BlcnR5IGlm IHVzaW5nIERUKS4KCkNhbiB3ZSByZW1vdmUgdGhlIHdob2xlICIoIC4uLiApIiBzZW50ZW5jZSwg YW5kIHJlcGxhY2UgaXQgd2l0aDoKCgkiLi4uIHByb3BlcnR5LCBsb3dlciBhZGRyZXNzZXMgaGF2 aW5nIGhpZ2hlciBJQkkgcHJpb3JpdHkuIgoKPiArICogVGhlIGZ1bmN0aW9uIGkzY19tYXN0ZXJf YWRkX2kzY19kZXZfbG9ja2VkKCkgd2lsbCBzd2l0Y2ggdG8gdGhpcyAiaW5pdF9keW5fYWRkciIg aWYgaXQgaXMgbm90Cj4gKyAqIGluIHVzZS4KCglpZiBpdCBpcyBhdmFpbGFibGUuCgo+ICsgKgo+ ICsgKiBUaGVyZWZvcmUsIGkzY19idXNfZ2V0X2ZyZWVfYWRkcigpIHNob3VsZCByZXR1cm4gYSBm cmVlIGFkZHJlc3MgdGhhdCBoYXMgbm90IGJlZW4gY2xhaW1lZCBieSBhbnkKCgkJCQkJcHJlZmVy YWJseSByZXR1cm4KCgl0aGF0IGlzIG5vdCBpbiB0aGUgbGlzdCBvZiBkZXNpcmVkIGFkZHJlc3Nl cy4KCj4gKyAqIHRhcmdldCBkZXZpY2VzIGFzICJpbml0X2R5bl9hZGRyIi4gVGhpcyBhbGxvd3Mg dGhlIGRldmljZSB3aXRoIHRoZSAiaW5pdF9keW5fYWRkciIgdG8gc3dpdGNoIHRvCj4gKyAqIGl0 cyAiaW5pdF9keW5fYWRkciIgd2hlbiBpdCBob3Qtam9pbnMgdGhlIEkzQyBidXMuIE90aGVyd2lz ZSwgaWYgdGhlICJpbml0X2R5bl9hZGRyIiBpcyBhbHJlYWR5Cj4gKyAqIGluIHVzZSBieSBhbm90 aGVyIEkzQyBkZXZpY2UsIHRoZSB0YXJnZXQgZGV2aWNlIHdpbGwgbm90IGJlIGFibGUgdG8gc3dp dGNoIHRvIGl0cyBkZXNpcmVkCj4gKyAqIGFkZHJlc3MuCj4gKyAqCj4gKyAqIElmIGFsbCBvZiBh Ym92ZSBhZGRyZXNzIGFyZSBhbHJlYWR5IHVzZWQsIGkzY19idXNfZ2V0X2ZyZWVfYWRkcigpIHJl dHVybiBvbmUgZnJvbSB0aGUgY2xhaW1lZCBhcwo+ICsgKiBpbml0X2R5bl9hZGRyIGFuZCBmcmVl IGFkZHJlc3Mgc2xvdC4gVGhpcyBlbnN1cmVzIHN1cHBvcnQgZGV2aWNlcyBhcyBtdWNoIGFzIHBv c3NpYmxlLgoKSWYgdGhlIHByZXZpb3VzIHN0ZXAgZmFpbHMsIGZhbGxiYWNrIHJldHVybmluZyBv bmUgb2YgdGhlIHJlbWFpbmluZwp1bmFzc2lnbmVkIGFkZHJlc3MsIHJlZ2FyZGxlc3Mgb2YgaXRz IHN0YXRlIGluIHRoZSBkZXNpcmVkIGxpc3QuCgo+ICsgKi8KClBsZWFzZSB1cGRhdGUgeW91ciBj b21taXQgbWVzc2FnZSBhcyB3ZWxsIHdpdGggdGhlc2UgY2hhbmdlcy4KCj4gIHN0YXRpYyBpbnQg aTNjX2J1c19nZXRfZnJlZV9hZGRyKHN0cnVjdCBpM2NfYnVzICpidXMsIHU4IHN0YXJ0X2FkZHIp Cj4gIHsKPiAgCWVudW0gaTNjX2FkZHJfc2xvdF9zdGF0dXMgc3RhdHVzOwo+ICAJdTggYWRkcjsK PiAgCj4gKwlmb3IgKGFkZHIgPSBzdGFydF9hZGRyOyBhZGRyIDwgSTNDX01BWF9BRERSOyBhZGRy KyspIHsKPiArCQlzdGF0dXMgPSBpM2NfYnVzX2dldF9hZGRyX3Nsb3Rfc3RhdHVzX2V4dChidXMs IGFkZHIpOwoKU28gaGVyZSBpdCBjb3VsZCBsb29rIGxpa2U6CgoJCXN0YXR1cyA9IC4uLmdldF9h ZGRyX3Nsb3Rfc3RhdHVzKGJ1cywgYWRkciwgPGV4dGVuZGVkPikKCj4gKwkJaWYgKHN0YXR1cyA9 PSBJM0NfQUREUl9TTE9UX0ZSRUUpCj4gKwkJCXJldHVybiBhZGRyOwo+ICsJfQo+ICsKPiAgCWZv ciAoYWRkciA9IHN0YXJ0X2FkZHI7IGFkZHIgPCBJM0NfTUFYX0FERFI7IGFkZHIrKykgewo+ICAJ CXN0YXR1cyA9IGkzY19idXNfZ2V0X2FkZHJfc2xvdF9zdGF0dXMoYnVzLCBhZGRyKTsKPiAgCQlp ZiAoc3RhdHVzID09IEkzQ19BRERSX1NMT1RfRlJFRSkKPiBAQCAtMTkxOCw5ICsxOTY4LDkgQEAg c3RhdGljIGludCBpM2NfbWFzdGVyX2J1c19pbml0KHN0cnVjdCBpM2NfbWFzdGVyX2NvbnRyb2xs ZXIgKm1hc3RlcikKPiAgCQkJZ290byBlcnJfcnN0ZGFhOwo+ICAJCX0KPiAgCj4gLQkJaTNjX2J1 c19zZXRfYWRkcl9zbG90X3N0YXR1cygmbWFzdGVyLT5idXMsCj4gLQkJCQkJICAgICBpM2Nib2Fy ZGluZm8tPmluaXRfZHluX2FkZHIsCj4gLQkJCQkJICAgICBJM0NfQUREUl9TTE9UX0kzQ19ERVYp Owo+ICsJCWkzY19idXNfc2V0X2FkZHJfc2xvdF9zdGF0dXNfZXh0KCZtYXN0ZXItPmJ1cywKPiAr CQkJCQkJIGkzY2JvYXJkaW5mby0+aW5pdF9keW5fYWRkciwKPiArCQkJCQkJIEkzQ19BRERSX1NM T1RfSTNDX0RFViB8IEkzQ19BRERSX1NMT1RfRVhUX0lOSVQpOwo+ICAKPiAgCQkvKgo+ICAJCSAq IE9ubHkgdHJ5IHRvIGNyZWF0ZS9hdHRhY2ggZGV2aWNlcyB0aGF0IGhhdmUgYSBzdGF0aWMKPiBk aWZmIC0tZ2l0IGEvaW5jbHVkZS9saW51eC9pM2MvbWFzdGVyLmggYi9pbmNsdWRlL2xpbnV4L2kz Yy9tYXN0ZXIuaAo+IGluZGV4IDIxMDA1NDdiMmQ4ZDIuLjU3YWQ2MDQ0YWM4NTYgMTAwNjQ0Cj4g LS0tIGEvaW5jbHVkZS9saW51eC9pM2MvbWFzdGVyLmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L2kz Yy9tYXN0ZXIuaAo+IEBAIC0yOTgsNyArMjk4LDggQEAgZW51bSBpM2Nfb3Blbl9kcmFpbl9zcGVl ZCB7Cj4gICAqIEBJM0NfQUREUl9TTE9UX0kyQ19ERVY6IGFkZHJlc3MgaXMgYXNzaWduZWQgdG8g YW4gSTJDIGRldmljZQo+ICAgKiBASTNDX0FERFJfU0xPVF9JM0NfREVWOiBhZGRyZXNzIGlzIGFz c2lnbmVkIHRvIGFuIEkzQyBkZXZpY2UKPiAgICogQEkzQ19BRERSX1NMT1RfU1RBVFVTX01BU0s6 IGFkZHJlc3Mgc2xvdCBtYXNrCj4gLSAqCj4gKyAqIEBJM0NfQUREUl9TTE9UX0VYVF9JTklUOiB0 aGUgYml0bWFzayByZXByZXNlbnRzIGFkZHJlc3NlcyB0aGF0IGFyZSBwcmVmZXJyZWQgYnkgc29t ZSBkZXZpY2VzLAo+ICsgKgkJCSAgICBzdWNoIGFzIHRoZSAiYXNzaWduZWQtYWRkcmVzcyIgcHJv cGVydHkgaW4gYSBkZXZpY2UgdHJlZSBzb3VyY2UgKERUUykuCgpUaGUgbmFtaW5nIGNvdWxkIGJl IGltcHJvdmVkLCBiZWNhdXNlICJleHRlbmRlZCIgZG9lcyBub3QgbWVhbiBtdWNoLiBJCmJlbGll dmUgd2Ugc2hvdWxkIGV4cHJlc3MgdGhlIGZhY3QgdGhhdCB0aGlzIGlzIGEgZGVzaXJlZCBhZGRy ZXNzZWQsIHNvCndoYXQgYWJvdXQ6CgoJSTNDX0FERFJfU0xPVF9JM0NfQVNTSUdORUQvREVTSVJF RAoKPiAgICogT24gYW4gSTNDIGJ1cywgYWRkcmVzc2VzIGFyZSBhc3NpZ25lZCBkeW5hbWljYWxs eSwgYW5kIHdlIG5lZWQgdG8ga25vdyB3aGljaAo+ICAgKiBhZGRyZXNzZXMgYXJlIGZyZWUgdG8g dXNlIGFuZCB3aGljaCBvbmVzIGFyZSBhbHJlYWR5IGFzc2lnbmVkLgo+ICAgKgo+IEBAIC0zMTEs OSArMzEyLDExIEBAIGVudW0gaTNjX2FkZHJfc2xvdF9zdGF0dXMgewo+ICAJSTNDX0FERFJfU0xP VF9JMkNfREVWLAo+ICAJSTNDX0FERFJfU0xPVF9JM0NfREVWLAo+ICAJSTNDX0FERFJfU0xPVF9T VEFUVVNfTUFTSyA9IDMsCj4gKwlJM0NfQUREUl9TTE9UX0VYVF9TVEFUVVNfTUFTSyA9IDcsCj4g KwlJM0NfQUREUl9TTE9UX0VYVF9JTklUID0gQklUKDIpLAo+ICB9Owo+ICAKPiAtI2RlZmluZSBJ M0NfQUREUl9TTE9UX1NUQVRVU19CSVRTIDIKPiArI2RlZmluZSBJM0NfQUREUl9TTE9UX1NUQVRV U19CSVRTIDQKPiAgCj4gIC8qKgo+ICAgKiBzdHJ1Y3QgaTNjX2J1cyAtIEkzQyBidXMgb2JqZWN0 Cj4gCgoKVGhhbmtzLApNaXF1w6hsCgotLSAKbGludXgtaTNjIG1haWxpbmcgbGlzdApsaW51eC1p M2NAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2xpbnV4LWkzYwo=