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 88571EB64D9 for ; Thu, 15 Jun 2023 16:48:32 +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:In-Reply-To:MIME-Version:References: 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=4QnrnXy7IRsx/zSvldZY2vTw8aPZcXmRjydET3C9qNs=; b=dbOsmw/2WaESJu XBloVyj5G/Rr2isjVvtTADTpK3gxHdjdQl0DUJUIncuxNRwTSXiaDLlODijYnl2Lszh8Jfu2TbU0T 9pmeqs5xSrAghD/jdMMS3BECl6DLqyjw/XgbSuKpL6smlW3aedQUMAbXxPm8qxcZfOcM+Y+BukbYV 24fmGpKHaqO83Y/c36CbY2CdLaI8WxHg+hsWv55H9Bw/9YnhUiaaPrbmcFFyE6LAZ3QgSjNOV/ALA vYhrdKaT7cplfpijA2DpVsi7CiDqD4NoOIKbLCaA6TOf64Fc/K9ER6ObEZpl5LtuUm7EfiVCz8EoQ 3a3GyftSjMHTLp2PMFuA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q9q8m-00FTvR-1z; Thu, 15 Jun 2023 16:48:08 +0000 Received: from mail-pg1-x52f.google.com ([2607:f8b0:4864:20::52f]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q9q8j-00FTuH-0W for linux-arm-kernel@lists.infradead.org; Thu, 15 Jun 2023 16:48:07 +0000 Received: by mail-pg1-x52f.google.com with SMTP id 41be03b00d2f7-54fb23ff7d3so2195918a12.0 for ; Thu, 15 Jun 2023 09:48:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1686847683; x=1689439683; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date:from:to :cc:subject:date:message-id:reply-to; bh=JV6IWWmfJwTNThP5380grMDG7rHqreUUwv0wwOmUg9Q=; b=B0Ck2sWhAezPDMPNonxT/CUVxE+8vZtquI2inOXnClFzu616wygQs923c1WBmZHsd9 tLiG3nBiy1wUO7XcrXVTFM8RSR8jcdg3ehIjTCiAcaqqYx+5MVPyzIGvU0XNa4hu0tev F9Wz+rTKrMBA916U6QXmTFwJGuCnmF/eGn1ZoBwrjXewXjGaMUNe3h0531qK9z5vyE8T tAgVpa+OCJQnLAQkhEXk4qyffltQrpyfzITyWKsrQ8NdHz8TXI0SPjkUnNhmWHacTVGb 1Wjg448PdIh+4u4GBztO75cu3ILT0OlJF38YbtwEIfCHrEcDl+R7aFqNNkTh84P8YQkB e06g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686847683; x=1689439683; h=in-reply-to:content-transfer-encoding:content-disposition :mime-version:references:message-id:subject:cc:to:from:date :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=JV6IWWmfJwTNThP5380grMDG7rHqreUUwv0wwOmUg9Q=; b=FhjMzol/uEayKhEgMh/UE0AwlpcCBeVMsP1+ptKyGTxa0rKojG+KslRRUjNnIf4xa/ lKKeGyo/iQa3KMfvMB9EQ4JUy/OeJOC2OvWyfp9sOtX1sqtTZ6CY8miQ1+00/Q8ZcMFm G9q30y14X3UH20jRKucug0vV2DNRtg95Mciha83oVltmaqL2mRGuV/jBOH6CiumSsRoe 12Y0HQhKkART/qA55ODKKeRQqs6U0GSHfvgNUCACZoVctjhuAoOiX6W/qjS/0QSZzPIO 1EgQr5Urv2q6jfy2lF88eZH1mYcC7UWfzq+gUNhGJBRcGb9VnY6x8LFSl+Ct0zEij4tx +Dcg== X-Gm-Message-State: AC+VfDxTQ+jDqogE2MI2QQiZa1y3n+oFiddBAaSV6fSaE7fHBZZAoDdm 8Fn9gfidN7J7dy8s5f/h+j5VxQ== X-Google-Smtp-Source: ACHHUZ5t+K5BTdkfhoLr7nL3vpvHzqDFmbtRqs5wV//HlZInwup6qGbbpjesqa3TP0RSPx6iYfI6Og== X-Received: by 2002:a17:90b:286:b0:25b:d0c9:9f00 with SMTP id az6-20020a17090b028600b0025bd0c99f00mr4096911pjb.9.1686847683328; Thu, 15 Jun 2023 09:48:03 -0700 (PDT) Received: from p14s ([2604:3d09:148c:c800:af20:8a90:5e7d:9e63]) by smtp.gmail.com with ESMTPSA id in15-20020a17090b438f00b0025e9d16f95bsm1357250pjb.28.2023.06.15.09.48.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Jun 2023 09:48:02 -0700 (PDT) Date: Thu, 15 Jun 2023 10:48:00 -0600 From: Mathieu Poirier To: TingHan Shen =?utf-8?B?KOayiOW7t+e/sCk=?= Cc: "linux-kernel@vger.kernel.org" , "robh+dt@kernel.org" , "linux-remoteproc@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-mediatek@lists.infradead.org" , "conor+dt@kernel.org" , Project_Global_Chrome_Upstream_Group , "linux-arm-kernel@lists.infradead.org" , "krzysztof.kozlowski+dt@linaro.org" , "matthias.bgg@gmail.com" , "andersson@kernel.org" , "angelogioacchino.delregno@collabora.com" Subject: Re: [PATCH v13 05/11] remoteproc: mediatek: Introduce cluster on single-core SCP Message-ID: References: <20230607072222.8628-1-tinghan.shen@mediatek.com> <20230607072222.8628-6-tinghan.shen@mediatek.com> <0668bbfc732db80ad12703c1c4906cb4348b5730.camel@mediatek.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <0668bbfc732db80ad12703c1c4906cb4348b5730.camel@mediatek.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230615_094805_222244_5AD6AD1F X-CRM114-Status: GOOD ( 40.40 ) X-BeenThere: linux-arm-kernel@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-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gV2VkLCBKdW4gMTQsIDIwMjMgYXQgMDg6MTM6MThBTSArMDAwMCwgVGluZ0hhbiBTaGVuICjm sojlu7fnv7ApIHdyb3RlOgo+IEhpIE1hdGhpZXUsCj4gCj4gT24gTW9uLCAyMDIzLTA2LTEyIGF0 IDExOjI1IC0wNjAwLCBNYXRoaWV1IFBvaXJpZXIgd3JvdGU6Cj4gPiBPbiBXZWQsIEp1biAwNywg MjAyMyBhdCAwMzoyMjoxNlBNICswODAwLCBUaW5naGFuIFNoZW4gd3JvdGU6Cj4gPiA+IFRoaXMg aXMgdGhlIHByZWxpbWluYXJ5IHN0ZXAgZm9yIHByb2JpbmcgbXVsdGktY29yZSBTQ1AuCj4gPiA+ IFRoZSBpbml0aWFsaXphdGlvbiBwcm9jZWR1cmUgZm9yIHJlbW90ZXByb2MgaXMgc2ltaWxhciBm b3IgYm90aAo+ID4gPiBzaW5nbGUtY29yZSBhbmQgbXVsdGktY29yZSBhcmNoaXRlY3R1cmVzIGFu ZCBpcyByZXVzaW5nIHRvIGF2b2lkCj4gPiA+IHJlZHVuZGFudCBjb2RlLgo+ID4gPiAKPiA+ID4g UmV3cml0ZSB0aGUgcHJvYmluZyBmbG93IG9mIHNpbmdsZS1jb3JlIFNDUCB0byBhZGFwdCB3aXRo IHRoZSAnY2x1c3RlcicKPiA+ID4gY29uY2VwdCBuZWVkZWQgYnkgcHJvYmluZyB0aGUgbXVsdGkt Y29yZSBTQ1AuIFRoZSBtYWluIGRpZmZlcmVuY2VzCj4gPiA+IGFyZSwKPiA+ID4gLSB0aGUgU0NQ IGNvcmUgb2JqZWN0KHMpIGlzIG1haW50YWluZWQgYXQgdGhlIGNsdXN0ZXIgbGlzdCBpbnN0ZWFk IG9mIGF0Cj4gPiA+ICAgdGhlIHBsYXRvZm1yIGRldmljZSBkcml2ZXIgZGF0YSBwcm9wZXJ0eS4K PiA+ID4gLSBzYXZlIHRoZSBjbHVzdGVyIGluZm9ybWF0aW9uIGF0IHRoZSBwbGF0b2ZtciBkZXZp Y2UgZHJpdmVyIGRhdGEgcHJvcGVydHkuCj4gPiA+IC0gSW4gb3JkZXIgdG8ga2VlcCB0aGUgY29t cGF0aWJpbGl0eSBvZiBleHBvcnRlZCBTQ1AgQVBJcyB3aGljaCBnZXR0aW5nCj4gPiA+ICAgdGhl IFNDUCBjb3JlIG9iamVjdCBieSBTQ1Agbm9kZSBwaGFuZGxlLCBtb3ZlIHRoZSBTQ1AgY29yZSBv YmplY3QKPiA+ID4gICBwb2ludGVycyB0byB0aGUgcGxhdGZvcm0gZGV2aWNlIHBsYXRmb3JtIGRh dGEgcHJvcGVydHkuCj4gPiA+IAo+ID4gPiBUaGUgcmVnaXN0ZXJzIG9mIGNvbmZpZyBhbmQgbDF0 Y20gYXJlIHNoYXJlZCBmb3IgbXVsdGktY29yZQo+ID4gPiBTQ1AuIFJldXNlIHRoZSBtYXBwZWQg YWRkcmVzc2VzIGZvciBhbGwgY29yZXMuCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBUaW5n aGFuIFNoZW4gPHRpbmdoYW4uc2hlbkBtZWRpYXRlay5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgZHJp dmVycy9yZW1vdGVwcm9jL210a19jb21tb24uaCB8ICAgMiArCj4gPiA+ICBkcml2ZXJzL3JlbW90 ZXByb2MvbXRrX3NjcC5jICAgIHwgMTUxICsrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t Cj4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDExMiBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMo LSkKPiA+ID4gCj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL3JlbW90ZXByb2MvbXRrX2NvbW1v bi5oIGIvZHJpdmVycy9yZW1vdGVwcm9jL210a19jb21tb24uaAo+ID4gPiBpbmRleCBjMDkwNWFl YzNiNGIuLjU2Mzk1ZTg2NjRjYiAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9yZW1vdGVwcm9j L210a19jb21tb24uaAo+ID4gPiArKysgYi9kcml2ZXJzL3JlbW90ZXByb2MvbXRrX2NvbW1vbi5o Cj4gPiA+IEBAIC0xMjgsNiArMTI4LDggQEAgc3RydWN0IG10a19zY3Agewo+ID4gPiAgCXNpemVf dCBkcmFtX3NpemU7Cj4gPiA+ICAKPiA+ID4gIAlzdHJ1Y3QgcnByb2Nfc3ViZGV2ICpycG1zZ19z dWJkZXY7Cj4gPiA+ICsKPiA+ID4gKwlzdHJ1Y3QgbGlzdF9oZWFkIGVsZW07Cj4gPiA+ICB9Owo+ ID4gPiAgCj4gPiA+ICAvKioKPiA+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvcmVtb3RlcHJvYy9t dGtfc2NwLmMgYi9kcml2ZXJzL3JlbW90ZXByb2MvbXRrX3NjcC5jCj4gPiA+IGluZGV4IGQ2Njgy MmRhZDk0My4uYzhmYzZiNDZmODJiIDEwMDY0NAo+ID4gPiAtLS0gYS9kcml2ZXJzL3JlbW90ZXBy b2MvbXRrX3NjcC5jCj4gPiA+ICsrKyBiL2RyaXZlcnMvcmVtb3RlcHJvYy9tdGtfc2NwLmMKPiA+ ID4gQEAgLTIzLDYgKzIzLDE0IEBACj4gPiA+ICAjZGVmaW5lIE1BWF9DT0RFX1NJWkUgMHg1MDAw MDAKPiA+ID4gICNkZWZpbmUgU0VDVElPTl9OQU1FX0lQSV9CVUZGRVIgIi5pcGlfYnVmZmVyIgo+ ID4gPiAgCj4gPiA+ICtzdHJ1Y3QgbXRrX3NjcF9vZl9jbHVzdGVyIHsKPiA+ID4gKwl2b2lkIF9f aW9tZW0gKnJlZ19iYXNlOwo+ID4gPiArCXZvaWQgX19pb21lbSAqbDF0Y21fYmFzZTsKPiA+ID4g KwlzaXplX3QgbDF0Y21fc2l6ZTsKPiA+ID4gKwlwaHlzX2FkZHJfdCBsMXRjbV9waHlzOwo+ID4g PiArCXN0cnVjdCBsaXN0X2hlYWQgbXRrX3NjcF9saXN0Owo+ID4gPiArfTsKPiA+ID4gKwo+ID4g PiAgLyoqCj4gPiA+ICAgKiBzY3BfZ2V0KCkgLSBnZXQgYSByZWZlcmVuY2UgdG8gU0NQLgo+ID4g PiAgICoKPiA+ID4gQEAgLTUxLDcgKzU5LDcgQEAgc3RydWN0IG10a19zY3AgKnNjcF9nZXQoc3Ry dWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiA+ID4gIAkJcmV0dXJuIE5VTEw7Cj4gPiA+ICAJ fQo+ID4gPiAgCj4gPiA+IC0JcmV0dXJuIHBsYXRmb3JtX2dldF9kcnZkYXRhKHNjcF9wZGV2KTsK PiA+ID4gKwlyZXR1cm4gKihzdHJ1Y3QgbXRrX3NjcCAqKilkZXZfZ2V0X3BsYXRkYXRhKCZzY3Bf cGRldi0+ZGV2KTsKPiA+ID4gIH0KPiA+ID4gIEVYUE9SVF9TWU1CT0xfR1BMKHNjcF9nZXQpOwo+ ID4gPiAgCj4gPiA+IEBAIC04MTAsMTQgKzgxOCwxNCBAQCBzdGF0aWMgdm9pZCBzY3BfdW5tYXBf bWVtb3J5X3JlZ2lvbihzdHJ1Y3QgbXRrX3NjcCAqc2NwKQo+ID4gPiAgc3RhdGljIGludCBzY3Bf cmVnaXN0ZXJfaXBpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHUzMiBpZCwKPiA+ID4g IAkJCSAgICBpcGlfaGFuZGxlcl90IGhhbmRsZXIsIHZvaWQgKnByaXYpCj4gPiA+ICB7Cj4gPiA+ IC0Jc3RydWN0IG10a19zY3AgKnNjcCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOwo+ID4g PiArCXN0cnVjdCBtdGtfc2NwICpzY3AgPSAqKHN0cnVjdCBtdGtfc2NwICoqKWRldl9nZXRfcGxh dGRhdGEoJnBkZXYtPmRldik7Cj4gPiA+ICAKPiA+ID4gIAlyZXR1cm4gc2NwX2lwaV9yZWdpc3Rl cihzY3AsIGlkLCBoYW5kbGVyLCBwcml2KTsKPiA+ID4gIH0KPiA+ID4gIAo+ID4gPiAgc3RhdGlj IHZvaWQgc2NwX3VucmVnaXN0ZXJfaXBpKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYsIHUz MiBpZCkKPiA+ID4gIHsKPiA+ID4gLQlzdHJ1Y3QgbXRrX3NjcCAqc2NwID0gcGxhdGZvcm1fZ2V0 X2RydmRhdGEocGRldik7Cj4gPiA+ICsJc3RydWN0IG10a19zY3AgKnNjcCA9ICooc3RydWN0IG10 a19zY3AgKiopZGV2X2dldF9wbGF0ZGF0YSgmcGRldi0+ZGV2KTsKPiA+ID4gIAo+ID4gPiAgCXNj cF9pcGlfdW5yZWdpc3RlcihzY3AsIGlkKTsKPiA+ID4gIH0KPiA+ID4gQEAgLTgyNSw3ICs4MzMs NyBAQCBzdGF0aWMgdm9pZCBzY3BfdW5yZWdpc3Rlcl9pcGkoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldiwgdTMyIGlkKQo+ID4gPiAgc3RhdGljIGludCBzY3Bfc2VuZF9pcGkoc3RydWN0IHBs YXRmb3JtX2RldmljZSAqcGRldiwgdTMyIGlkLCB2b2lkICpidWYsCj4gPiA+ICAJCQl1bnNpZ25l ZCBpbnQgbGVuLCB1bnNpZ25lZCBpbnQgd2FpdCkKPiA+ID4gIHsKPiA+ID4gLQlzdHJ1Y3QgbXRr X3NjcCAqc2NwID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEocGRldik7Cj4gPiA+ICsJc3RydWN0IG10 a19zY3AgKnNjcCA9ICooc3RydWN0IG10a19zY3AgKiopZGV2X2dldF9wbGF0ZGF0YSgmcGRldi0+ ZGV2KTsKPiA+ID4gIAo+ID4gPiAgCXJldHVybiBzY3BfaXBpX3NlbmQoc2NwLCBpZCwgYnVmLCBs ZW4sIHdhaXQpOwo+ID4gPiAgfQo+ID4gPiBAQCAtODU1LDcgKzg2Myw4IEBAIHN0YXRpYyB2b2lk IHNjcF9yZW1vdmVfcnBtc2dfc3ViZGV2KHN0cnVjdCBtdGtfc2NwICpzY3ApCj4gPiA+ICAJfQo+ ID4gPiAgfQo+ID4gPiAgCj4gPiA+IC1zdGF0aWMgaW50IHNjcF9wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQo+ID4gPiArc3RhdGljIHN0cnVjdCBtdGtfc2NwICpzY3BfcnByb2Nf aW5pdChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2LAo+ID4gPiArCQkJCSAgICAgIHN0cnVj dCBtdGtfc2NwX29mX2NsdXN0ZXIgKnNjcF9jbHVzdGVyKQo+ID4gPiAgewo+ID4gPiAgCXN0cnVj dCBkZXZpY2UgKmRldiA9ICZwZGV2LT5kZXY7Cj4gPiA+ICAJc3RydWN0IGRldmljZV9ub2RlICpu cCA9IGRldi0+b2Zfbm9kZTsKPiA+ID4gQEAgLTg2Nyw1MiArODc2LDQyIEBAIHN0YXRpYyBpbnQg c2NwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiA+ICAKPiA+ID4gIAly ZXQgPSBycHJvY19vZl9wYXJzZV9maXJtd2FyZShkZXYsIDAsICZmd19uYW1lKTsKPiA+ID4gIAlp ZiAocmV0IDwgMCAmJiByZXQgIT0gLUVJTlZBTCkKPiA+ID4gLQkJcmV0dXJuIHJldDsKPiA+ID4g KwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiA+ID4gIAo+ID4gPiAgCXJwcm9jID0gZGV2bV9ycHJv Y19hbGxvYyhkZXYsIG5wLT5uYW1lLCAmc2NwX29wcywgZndfbmFtZSwgc2l6ZW9mKCpzY3ApKTsK PiA+ID4gLQlpZiAoIXJwcm9jKQo+ID4gPiAtCQlyZXR1cm4gZGV2X2Vycl9wcm9iZShkZXYsIC1F Tk9NRU0sICJ1bmFibGUgdG8gYWxsb2NhdGUgcmVtb3RlcHJvY1xuIik7Cj4gPiA+ICsJaWYgKCFy cHJvYykgewo+ID4gPiArCQlkZXZfZXJyKGRldiwgInVuYWJsZSB0byBhbGxvY2F0ZSByZW1vdGVw cm9jXG4iKTsKPiA+ID4gKwkJcmV0dXJuIEVSUl9QVFIoLUVOT01FTSk7Cj4gPiA+ICsJfQo+ID4g PiAgCj4gPiA+ICAJc2NwID0gcnByb2MtPnByaXY7Cj4gPiA+ICAJc2NwLT5ycHJvYyA9IHJwcm9j Owo+ID4gPiAgCXNjcC0+ZGV2ID0gZGV2Owo+ID4gPiAgCXNjcC0+ZGF0YSA9IG9mX2RldmljZV9n ZXRfbWF0Y2hfZGF0YShkZXYpOwo+ID4gPiAtCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHNj cCk7Cj4gPiA+ICsJcGxhdGZvcm1fZGV2aWNlX2FkZF9kYXRhKHBkZXYsICZzY3AsIHNpemVvZihz Y3ApKTsKPiA+ID4gKwo+ID4gPiArCXNjcC0+cmVnX2Jhc2UgPSBzY3BfY2x1c3Rlci0+cmVnX2Jh c2U7Cj4gPiA+ICsJc2NwLT5sMXRjbV9iYXNlID0gc2NwX2NsdXN0ZXItPmwxdGNtX2Jhc2U7Cj4g PiA+ICsJc2NwLT5sMXRjbV9zaXplID0gc2NwX2NsdXN0ZXItPmwxdGNtX3NpemU7Cj4gPiA+ICsJ c2NwLT5sMXRjbV9waHlzID0gc2NwX2NsdXN0ZXItPmwxdGNtX3BoeXM7Cj4gPiA+ICAKPiA+ID4g IAlyZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2VfYnluYW1lKHBkZXYsIElPUkVTT1VSQ0VfTUVN LCAic3JhbSIpOwo+ID4gPiAgCXNjcC0+c3JhbV9iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNl KGRldiwgcmVzKTsKPiA+ID4gLQlpZiAoSVNfRVJSKHNjcC0+c3JhbV9iYXNlKSkKPiA+ID4gLQkJ cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCBQVFJfRVJSKHNjcC0+c3JhbV9iYXNlKSwKPiA+ID4g LQkJCQkgICAgICJGYWlsZWQgdG8gcGFyc2UgYW5kIG1hcCBzcmFtIG1lbW9yeVxuIik7Cj4gPiA+ ICsJaWYgKElTX0VSUihzY3AtPnNyYW1fYmFzZSkpIHsKPiA+ID4gKwkJZGV2X2VycihkZXYsICJG YWlsZWQgdG8gcGFyc2UgYW5kIG1hcCBzcmFtIG1lbW9yeVxuIik7Cj4gPiA+ICsJCXJldHVybiBF UlJfUFRSKFBUUl9FUlIoc2NwLT5zcmFtX2Jhc2UpKTsKPiA+IAo+ID4gQ2FuIHlvdSBzcG90IHdo YXQgaXMgd3JvbmcgaGVyZT8KPiAKPiBBZnRlciBsb29rIGFyb3VuZCBvZiB0aGUgaGVhZGVyLCBJ IHRob3VnaHQgdGhhdCBJIHNob3VsZCB1c2UgdGhlIEVSUl9DQVNUIGluc3RlYWQuCj4gSXQgZml4 IHRoZSBzcGFyc2Ugd2FybmluZyBhbmQgcHJldmVudCB0aGUgd2VpcmVkIGRvdWJsZSB0eXBlIGNh c3RpbmcuCj4gSWYgdGhpcyBpcyBvaywgSSB3aWxsIGZpeCBpdCB0aGlzIHdheSBpbiB0aGUgbmV4 dCB2ZXJzaW9uLgo+CgpZZXMsIHRoZSBkb3VibGUgY2FzdGluZyBpcyB3aGF0IGdvdCBteSBhdHRl bnRpb24uICBFUlJfQ0FTVCgpIHdhcyBpbnRyb2R1Y2VkIHRvCmFkZHJlc3MgdGhvc2Uga2luZCBv ZiBwcm9ibGVtcy4KCj4gCj4gQmVzdCByZWdhcmRzLAo+IFRpbmdIYW4KPiAKPiA+IAo+ID4gPiAr CX0KPiA+ID4gIAo+ID4gPiAgCXNjcC0+c3JhbV9zaXplID0gcmVzb3VyY2Vfc2l6ZShyZXMpOwo+ ID4gPiAgCXNjcC0+c3JhbV9waHlzID0gcmVzLT5zdGFydDsKPiA+ID4gIAo+ID4gPiAtCS8qIGwx dGNtIGlzIGFuIG9wdGlvbmFsIG1lbW9yeSByZWdpb24gKi8KPiA+ID4gLQlyZXMgPSBwbGF0Zm9y bV9nZXRfcmVzb3VyY2VfYnluYW1lKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAibDF0Y20iKTsKPiA+ ID4gLQlzY3AtPmwxdGNtX2Jhc2UgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCByZXMpOwo+ ID4gPiAtCWlmIChJU19FUlIoc2NwLT5sMXRjbV9iYXNlKSkgewo+ID4gPiAtCQlyZXQgPSBQVFJf RVJSKHNjcC0+bDF0Y21fYmFzZSk7Cj4gPiA+IC0JCWlmIChyZXQgIT0gLUVJTlZBTCkgewo+ID4g PiAtCQkJcmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCByZXQsICJGYWlsZWQgdG8gbWFwIGwxdGNt IG1lbW9yeVxuIik7Cj4gPiA+IC0JCX0KPiA+ID4gLQl9IGVsc2Ugewo+ID4gPiAtCQlzY3AtPmwx dGNtX3NpemUgPSByZXNvdXJjZV9zaXplKHJlcyk7Cj4gPiA+IC0JCXNjcC0+bDF0Y21fcGh5cyA9 IHJlcy0+c3RhcnQ7Cj4gPiA+IC0JfQo+ID4gPiAtCj4gPiA+IC0Jc2NwLT5yZWdfYmFzZSA9IGRl dm1fcGxhdGZvcm1faW9yZW1hcF9yZXNvdXJjZV9ieW5hbWUocGRldiwgImNmZyIpOwo+ID4gPiAt CWlmIChJU19FUlIoc2NwLT5yZWdfYmFzZSkpCj4gPiA+IC0JCXJldHVybiBkZXZfZXJyX3Byb2Jl KGRldiwgUFRSX0VSUihzY3AtPnJlZ19iYXNlKSwKPiA+ID4gLQkJCQkgICAgICJGYWlsZWQgdG8g cGFyc2UgYW5kIG1hcCBjZmcgbWVtb3J5XG4iKTsKPiA+ID4gLQo+ID4gPiAgCXJldCA9IHNjcC0+ ZGF0YS0+c2NwX2Nsa19nZXQoc2NwKTsKPiA+ID4gIAlpZiAocmV0KQo+ID4gPiAtCQlyZXR1cm4g cmV0Owo+ID4gPiArCQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+ID4gPiAgCj4gPiA+ICAJcmV0ID0g c2NwX21hcF9tZW1vcnlfcmVnaW9uKHNjcCk7Cj4gPiA+ICAJaWYgKHJldCkKPiA+ID4gLQkJcmV0 dXJuIHJldDsKPiA+ID4gKwkJcmV0dXJuIEVSUl9QVFIocmV0KTsKPiA+ID4gIAo+ID4gPiAgCW11 dGV4X2luaXQoJnNjcC0+c2VuZF9sb2NrKTsKPiA+ID4gIAlmb3IgKGkgPSAwOyBpIDwgU0NQX0lQ SV9NQVg7IGkrKykKPiA+ID4gQEAgLTkzOSwxMSArOTM4LDcgQEAgc3RhdGljIGludCBzY3BfcHJv YmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiA+ID4gIAkJZ290byByZW1vdmVfc3Vi ZGV2Owo+ID4gPiAgCX0KPiA+ID4gIAo+ID4gPiAtCXJldCA9IHJwcm9jX2FkZChycHJvYyk7Cj4g PiA+IC0JaWYgKHJldCkKPiA+ID4gLQkJZ290byByZW1vdmVfc3ViZGV2Owo+ID4gPiAtCj4gPiA+ IC0JcmV0dXJuIDA7Cj4gPiA+ICsJcmV0dXJuIHNjcDsKPiA+ID4gIAo+ID4gPiAgcmVtb3ZlX3N1 YmRldjoKPiA+ID4gIAlzY3BfcmVtb3ZlX3JwbXNnX3N1YmRldihzY3ApOwo+ID4gPiBAQCAtOTU0 LDE1ICs5NDksMTMgQEAgc3RhdGljIGludCBzY3BfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikKPiA+ID4gIAkJbXV0ZXhfZGVzdHJveSgmc2NwLT5pcGlfZGVzY1tpXS5sb2NrKTsK PiA+ID4gIAltdXRleF9kZXN0cm95KCZzY3AtPnNlbmRfbG9jayk7Cj4gPiA+ICAKPiA+ID4gLQly ZXR1cm4gcmV0Owo+ID4gPiArCXJldHVybiBFUlJfUFRSKHJldCk7Cj4gPiA+ICB9Cj4gPiA+ICAK PiA+ID4gLXN0YXRpYyB2b2lkIHNjcF9yZW1vdmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRl dikKPiA+ID4gK3N0YXRpYyB2b2lkIHNjcF9mcmVlKHN0cnVjdCBtdGtfc2NwICpzY3ApCj4gPiA+ ICB7Cj4gPiA+IC0Jc3RydWN0IG10a19zY3AgKnNjcCA9IHBsYXRmb3JtX2dldF9kcnZkYXRhKHBk ZXYpOwo+ID4gPiAgCWludCBpOwo+ID4gPiAgCj4gPiA+IC0JcnByb2NfZGVsKHNjcC0+cnByb2Mp Owo+ID4gPiAgCXNjcF9yZW1vdmVfcnBtc2dfc3ViZGV2KHNjcCk7Cj4gPiA+ICAJc2NwX2lwaV91 bnJlZ2lzdGVyKHNjcCwgU0NQX0lQSV9JTklUKTsKPiA+ID4gIAlzY3BfdW5tYXBfbWVtb3J5X3Jl Z2lvbihzY3ApOwo+ID4gPiBAQCAtOTcxLDYgKzk2NCw4MiBAQCBzdGF0aWMgdm9pZCBzY3BfcmVt b3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiA+ICAJbXV0ZXhfZGVzdHJveSgm c2NwLT5zZW5kX2xvY2spOwo+ID4gPiAgfQo+ID4gPiAgCj4gPiA+ICtzdGF0aWMgaW50IHNjcF9j bHVzdGVyX2luaXQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikKPiA+ID4gK3sKPiA+ID4g KwlzdHJ1Y3QgbXRrX3NjcF9vZl9jbHVzdGVyICpzY3BfY2x1c3RlciA9IHBsYXRmb3JtX2dldF9k cnZkYXRhKHBkZXYpOwo+ID4gPiArCXN0cnVjdCBsaXN0X2hlYWQgKmNsdXN0ZXIgPSAmc2NwX2Ns dXN0ZXItPm10a19zY3BfbGlzdDsKPiA+ID4gKwlzdHJ1Y3QgbXRrX3NjcCAqc2NwOwo+ID4gPiAr CWludCByZXQ7Cj4gPiA+ICsKPiA+ID4gKwlzY3AgPSBzY3BfcnByb2NfaW5pdChwZGV2LCBzY3Bf Y2x1c3Rlcik7Cj4gPiA+ICsJaWYgKElTX0VSUihzY3ApKQo+ID4gPiArCQlyZXR1cm4gUFRSX0VS UihzY3ApOwo+ID4gPiArCj4gPiA+ICsJcmV0ID0gcnByb2NfYWRkKHNjcC0+cnByb2MpOwo+ID4g PiArCWlmIChyZXQpIHsKPiA+ID4gKwkJZGV2X2VycihkZXYsICJGYWlsZWQgdG8gYWRkIHJwcm9j XG4iKTsKPiA+ID4gKwkJc2NwX2ZyZWUoc2NwKTsKPiA+ID4gKwkJcmV0dXJuIHJldDsKPiA+ID4g Kwl9Cj4gPiA+ICsKPiA+ID4gKwlsaXN0X2FkZF90YWlsKCZzY3AtPmVsZW0sIGNsdXN0ZXIpOwo+ ID4gPiArCj4gPiA+ICsJcmV0dXJuIDA7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0YXRpYyBp bnQgc2NwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiA+ICt7Cj4gPiA+ ICsJc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiA+ID4gKwlzdHJ1Y3QgbXRrX3Nj cF9vZl9jbHVzdGVyICpzY3BfY2x1c3RlcjsKPiA+ID4gKwlzdHJ1Y3QgcmVzb3VyY2UgKnJlczsK PiA+ID4gKwlpbnQgcmV0Owo+ID4gPiArCj4gPiA+ICsJc2NwX2NsdXN0ZXIgPSBkZXZtX2t6YWxs b2MoZGV2LCBzaXplb2YoKnNjcF9jbHVzdGVyKSwgR0ZQX0tFUk5FTCk7Cj4gPiA+ICsJaWYgKCFz Y3BfY2x1c3RlcikKPiA+ID4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gPiA+ICsKPiA+ID4gKwlyZXMg PSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2VfYnluYW1lKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAiY2Zn Iik7Cj4gPiA+ICsJc2NwX2NsdXN0ZXItPnJlZ19iYXNlID0gZGV2bV9pb3JlbWFwX3Jlc291cmNl KGRldiwgcmVzKTsKPiA+ID4gKwlpZiAoSVNfRVJSKHNjcF9jbHVzdGVyLT5yZWdfYmFzZSkpCj4g PiA+ICsJCXJldHVybiBkZXZfZXJyX3Byb2JlKGRldiwgUFRSX0VSUihzY3BfY2x1c3Rlci0+cmVn X2Jhc2UpLAo+ID4gPiArCQkJCSAgICAgIkZhaWxlZCB0byBwYXJzZSBhbmQgbWFwIGNmZyBtZW1v cnlcbiIpOwo+ID4gPiArCj4gPiA+ICsJLyogbDF0Y20gaXMgYW4gb3B0aW9uYWwgbWVtb3J5IHJl Z2lvbiAqLwo+ID4gPiArCXJlcyA9IHBsYXRmb3JtX2dldF9yZXNvdXJjZV9ieW5hbWUocGRldiwg SU9SRVNPVVJDRV9NRU0sICJsMXRjbSIpOwo+ID4gPiArCXNjcF9jbHVzdGVyLT5sMXRjbV9iYXNl ID0gZGV2bV9pb3JlbWFwX3Jlc291cmNlKGRldiwgcmVzKTsKPiA+ID4gKwlpZiAoSVNfRVJSKHNj cF9jbHVzdGVyLT5sMXRjbV9iYXNlKSkgewo+ID4gPiArCQlyZXQgPSBQVFJfRVJSKHNjcF9jbHVz dGVyLT5sMXRjbV9iYXNlKTsKPiA+ID4gKwkJaWYgKHJldCAhPSAtRUlOVkFMKQo+ID4gPiArCQkJ cmV0dXJuIGRldl9lcnJfcHJvYmUoZGV2LCByZXQsICJGYWlsZWQgdG8gbWFwIGwxdGNtIG1lbW9y eVxuIik7Cj4gPiA+ICsKPiA+ID4gKwkJc2NwX2NsdXN0ZXItPmwxdGNtX2Jhc2UgPSBOVUxMOwo+ ID4gPiArCX0gZWxzZSB7Cj4gPiA+ICsJCXNjcF9jbHVzdGVyLT5sMXRjbV9zaXplID0gcmVzb3Vy Y2Vfc2l6ZShyZXMpOwo+ID4gPiArCQlzY3BfY2x1c3Rlci0+bDF0Y21fcGh5cyA9IHJlcy0+c3Rh cnQ7Cj4gPiA+ICsJfQo+ID4gPiArCj4gPiA+ICsJSU5JVF9MSVNUX0hFQUQoJnNjcF9jbHVzdGVy LT5tdGtfc2NwX2xpc3QpOwo+ID4gPiArCXBsYXRmb3JtX3NldF9kcnZkYXRhKHBkZXYsIHNjcF9j bHVzdGVyKTsKPiA+ID4gKwo+ID4gPiArCXJldCA9IHNjcF9jbHVzdGVyX2luaXQocGRldik7Cj4g PiA+ICsJaWYgKHJldCkKPiA+ID4gKwkJcmV0dXJuIHJldDsKPiA+ID4gKwo+ID4gPiArCXJldHVy biAwOwo+ID4gPiArfQo+ID4gPiArCj4gPiA+ICtzdGF0aWMgdm9pZCBzY3BfcmVtb3ZlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiA+ICt7Cj4gPiA+ICsJc3RydWN0IG10a19zY3Bf b2ZfY2x1c3RlciAqc2NwX2NsdXN0ZXIgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKPiA+ ID4gKwlzdHJ1Y3QgbXRrX3NjcCAqc2NwLCAqdGVtcDsKPiA+ID4gKwo+ID4gPiArCWxpc3RfZm9y X2VhY2hfZW50cnlfc2FmZV9yZXZlcnNlKHNjcCwgdGVtcCwgJnNjcF9jbHVzdGVyLT5tdGtfc2Nw X2xpc3QsIGVsZW0pIHsKPiA+ID4gKwkJbGlzdF9kZWwoJnNjcC0+ZWxlbSk7Cj4gPiA+ICsJCXJw cm9jX2RlbChzY3AtPnJwcm9jKTsKPiA+ID4gKwkJc2NwX2ZyZWUoc2NwKTsKPiA+ID4gKwl9Cj4g PiA+ICt9Cj4gPiA+ICsKPiA+ID4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX3NjcF9vZl9kYXRh IG10ODE4M19vZl9kYXRhID0gewo+ID4gPiAgCS5zY3BfY2xrX2dldCA9IG10ODE4M19zY3BfY2xr X2dldCwKPiA+ID4gIAkuc2NwX2JlZm9yZV9sb2FkID0gbXQ4MTgzX3NjcF9iZWZvcmVfbG9hZCwK PiA+ID4gLS0gCj4gPiA+IDIuMTguMAo+IAo+IAoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgt YXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3Jn L21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=