From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A8E768062B; Mon, 15 Apr 2024 16:16:40 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713197800; cv=none; b=Z3rEvKccooKo9iX0hZoSYKzI+JLR+mT1hxJo3kcVLJLcd4JFJ6F3gT8tv+dWQgt0Zpd3dyd4VrdE0GVIkOQzM55uFwF05/wTDOurN3YW+9O7oZ2AmYdrKQHJxnVFYaUus2VssESbT49uIQKT5NNNlGeGpRYCE00ir/YBhXzgErY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1713197800; c=relaxed/simple; bh=Hs/q49qb60MQ9lAAe4xXemSwTw6fkk0SfYoTbJyFBXM=; h=MIME-Version:References:In-Reply-To:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=S8seho20nsfH3sVh7GlmyTGf+DEqkAXwclky+YakKf4ApsR+ilis1fGSP4EQPbKTGNFIzZIpu3lnIZrXRJLMojNgVeSas+5M/ie7gxLehD5tytsdZcxVCPyftSDM0NlNAuM1b4kSXNSZDy0TcX83nPPIeuLVbygtT956p/faOak= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=btljuCii; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="btljuCii" Received: by smtp.kernel.org (Postfix) with ESMTPSA id 55511C4AF0A; Mon, 15 Apr 2024 16:16:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1713197800; bh=Hs/q49qb60MQ9lAAe4xXemSwTw6fkk0SfYoTbJyFBXM=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=btljuCiiWdQTJW7dfqzIAc7iRwxdf0AC8sj+my3GALMNqlOv43Dwpan5DYS5qLmST LSIAo03teu1vXjyowKxAbEop5Iex5fXyUTDwpk8rdWCCyb7042GJJONQqVcfhjvX63 n9bkdcVVURuwXmDook5W60z+hx8k767W4p8cxeoBcPXf0hv3qofHJAsgI/Ymf6bYxM 2IFf5TeTQ/4hKHNWY2+eJ28l0jxKecULKAcK5h/Fr+V3NIm5dQMPaNnuEI2P8VKylV qn7gcP4hcxBLKAShiXsT8kuWIgqrw36DCEslqrVf2BsxQr9TVn3e6u9oEtjy7gX1dj FPHzN7fYOAMvQ== Received: by mail-oo1-f51.google.com with SMTP id 006d021491bc7-5aa327a5514so593626eaf.0; Mon, 15 Apr 2024 09:16:40 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCUS23cO2TcjyQif0de0m6FB8G4/P1XCRt73PFq/08dPUnTZQmVGDaX4jIZyfdDvz/dK0lZymP2+zrfHHcXgBvn01Ym+LdnaCT2S5g5Kwd/KChmL9dsZMDHJhi29KUUGCvYWmel/DEcjfJdbVdzgVcZXc9q/wEikKQe8YkWEzPe+sVjiok+/TyGP1Gpfhz3+f77zjUuW92ETuJtgmezKCA== X-Gm-Message-State: AOJu0Ywr+iIM1zkjY3fQir89qQDqp1PI3jQ0vpAJtVFYyM6LQyckGm+p Nfb83Pjn3pQ95iJBxfbg5Ql3ugoyRFDDRtCqEhz21tNJSm+Di5S8dTPb9ls1yZOeX38MkZfr5AJ KnnHmSvc0O49hbED4xJobkIKLu0M= X-Google-Smtp-Source: AGHT+IFfwQFWHYDwwvCKgMxQECCk6RQ2kJ/daxbr7Nx3CWpOEdn6mrSGfGG7iuqV1kOEiKYzgFgiPWVdDd9bL9zcm4k= X-Received: by 2002:a05:6870:5248:b0:220:bd4d:674d with SMTP id o8-20020a056870524800b00220bd4d674dmr11333403oai.5.1713197799419; Mon, 15 Apr 2024 09:16:39 -0700 (PDT) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 References: <20240412143719.11398-1-Jonathan.Cameron@huawei.com> <20240412143719.11398-3-Jonathan.Cameron@huawei.com> <20240415164854.0000264f@Huawei.com> In-Reply-To: <20240415164854.0000264f@Huawei.com> From: "Rafael J. Wysocki" Date: Mon, 15 Apr 2024 18:16:27 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v5 02/18] ACPI: processor: Set the ACPI_COMPANION for the struct cpu instance To: Jonathan Cameron Cc: "Rafael J. Wysocki" , linux-pm@vger.kernel.org, loongarch@lists.linux.dev, linux-acpi@vger.kernel.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, x86@kernel.org, Russell King , Miguel Luis , James Morse , Salil Mehta , Jean-Philippe Brucker , Catalin Marinas , Will Deacon , linuxarm@huawei.com, justin.he@arm.com, jianyong.wu@arm.com Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Apr 15, 2024 at 5:49=E2=80=AFPM Jonathan Cameron wrote: > > On Fri, 12 Apr 2024 20:10:54 +0200 > "Rafael J. Wysocki" wrote: > > > On Fri, Apr 12, 2024 at 4:38=E2=80=AFPM Jonathan Cameron > > wrote: > > > > > > The arm64 specific arch_register_cpu() needs to access the _STA > > > method of the DSDT object so make it available by assigning the > > > appropriate handle to the struct cpu instance. > > > > > > Signed-off-by: Jonathan Cameron > > > --- > > > drivers/acpi/acpi_processor.c | 3 +++ > > > 1 file changed, 3 insertions(+) > > > > > > diff --git a/drivers/acpi/acpi_processor.c b/drivers/acpi/acpi_proces= sor.c > > > index 7a0dd35d62c9..93e029403d05 100644 > > > --- a/drivers/acpi/acpi_processor.c > > > +++ b/drivers/acpi/acpi_processor.c > > > @@ -235,6 +235,7 @@ static int acpi_processor_get_info(struct acpi_de= vice *device) > > > union acpi_object object =3D { 0 }; > > > struct acpi_buffer buffer =3D { sizeof(union acpi_object), &o= bject }; > > > struct acpi_processor *pr =3D acpi_driver_data(device); > > > + struct cpu *c; > > > int device_declaration =3D 0; > > > acpi_status status =3D AE_OK; > > > static int cpu0_initialized; > > > @@ -314,6 +315,8 @@ static int acpi_processor_get_info(struct acpi_de= vice *device) > > > cpufreq_add_device("acpi-cpufreq"); > > > } > > > > > > + c =3D &per_cpu(cpu_devices, pr->id); > > > + ACPI_COMPANION_SET(&c->dev, device); > > > > This is also set for per_cpu(cpu_sys_devices, pr->id) in > > acpi_processor_add(), via acpi_bind_one(). > > Hi Rafael, > > cpu_sys_devices gets filled with a pointer to this same structure. > The contents gets set in register_cpu() so at this point > it doesn't point anywhere. As a side note register_cpu() > memsets to zero the value I set it to in the code above which isn't > great, particularly as I want to use this in post_eject for > arm64. > > We could make a copy of the handle and put it back after > the memset in register_cpu() but that is also ugly. > It's the best I've come up with to make sure this is still set > come remove time but is rather odd. > > > > Moreover, there is some pr->id validation in acpi_processor_add(), so > > it seems premature to use it here this way. > > > > I think that ACPI_COMPANION_SET() should be called from here on > > per_cpu(cpu_sys_devices, pr->id) after validating pr->id (so the > > pr->id validation should all be done here) and then NULL can be passed > > as acpi_dev to acpi_bind_one() in acpi_processor_add(). Then, there > > will be one physical device corresponding to the processor ACPI device > > and no confusion. > > I'm fairly sure this is pointing to the same device but agreed this > is a tiny bit confusing. However we can't use cpu_sys_devices at this poi= nt > so I'm not immediately seeing a cleaner solution :( Well, OK. Please at least consider doing the pr->id validation checks before setting the ACPI companion for &per_cpu(cpu_devices, pr->id). Also, acpi_bind_one() needs to be called on the "physical" devices passed to ACPI_COMPANION_SET() (with NULL as the second argument) for the reference counting and physical device lookup to work. Please also note that acpi_primary_dev_companion() should return per_cpu(cpu_sys_devices, pr->id) for the processor ACPI device, which depends on the order of acpi_bind_one() calls involving the same ACPI device. 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 A26AEC4345F for ; Mon, 15 Apr 2024 16:16:54 +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:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=1smzKkGun+5RsJrop1p5yzB1W5je7OdtfzWk8MopIic=; b=g5ZUsfvoob1Ozc z6FefSCVAT+j8SODeDFc+REbEDDNXZWYwe/2lBxsh+epKm54kI5uEEzaO8dI+yT7pkZsnHDhA99hK JbuNmotwClRpb6SYYRbfRqPPxxZUshGx7ONc2D3Dwn9rIts484wzpkNegagGU0N8uAXXIkLl7gbVn WbvrQGV5Ei6sO2qBsOTWAXw0Em/9DOcQMjVoBpv27l+8kqhve6Xpf6r9xpA+ii/LSVUUyHMq60kUv d3OSxASx/oC+WYdkJq+XR0/IH7AN+iYFItl8QpZKNitTLo9YyHCJxB3seUCBVwhTgCcgv4xRQXDgy fkzzisiHaLl5n2Rb96Qg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rwP0f-000000092Tl-3Uma; Mon, 15 Apr 2024 16:16:45 +0000 Received: from sin.source.kernel.org ([145.40.73.55]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rwP0c-000000092Rx-3ki5 for linux-arm-kernel@lists.infradead.org; Mon, 15 Apr 2024 16:16:44 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id E7760CE0BA0 for ; Mon, 15 Apr 2024 16:16:40 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 31396C113CC for ; Mon, 15 Apr 2024 16:16:40 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1713197800; bh=Hs/q49qb60MQ9lAAe4xXemSwTw6fkk0SfYoTbJyFBXM=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=btljuCiiWdQTJW7dfqzIAc7iRwxdf0AC8sj+my3GALMNqlOv43Dwpan5DYS5qLmST LSIAo03teu1vXjyowKxAbEop5Iex5fXyUTDwpk8rdWCCyb7042GJJONQqVcfhjvX63 n9bkdcVVURuwXmDook5W60z+hx8k767W4p8cxeoBcPXf0hv3qofHJAsgI/Ymf6bYxM 2IFf5TeTQ/4hKHNWY2+eJ28l0jxKecULKAcK5h/Fr+V3NIm5dQMPaNnuEI2P8VKylV qn7gcP4hcxBLKAShiXsT8kuWIgqrw36DCEslqrVf2BsxQr9TVn3e6u9oEtjy7gX1dj FPHzN7fYOAMvQ== Received: by mail-ot1-f49.google.com with SMTP id 46e09a7af769-6ea26ea8c4bso248396a34.0 for ; Mon, 15 Apr 2024 09:16:40 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCXxmqR7xcjFzF1/91TC5KIgKFQxgrvGzGVDN81R1p9+InhovQ+h2o6W1preMgnMWB16Q1vpZyKm+TW+ZTPyuxWBvBLWhLUsN3uVxveT/7rT5Zw/yAI= X-Gm-Message-State: AOJu0YwWLC58NPSnM4ZUJ7rggCGCmvdXtgcxxtt8ulyk3vkW2h1FvZc6 ZxhNDttQic/xHnhj7hEk/0ulPs/bgd9yGUKGjkCZoyYwBgxPDUN4B7isGWkhVRtgkW++EigL+5P 0QiIOCd5Zi+C7VW4N0X2n7eFvUO0= X-Google-Smtp-Source: AGHT+IFfwQFWHYDwwvCKgMxQECCk6RQ2kJ/daxbr7Nx3CWpOEdn6mrSGfGG7iuqV1kOEiKYzgFgiPWVdDd9bL9zcm4k= X-Received: by 2002:a05:6870:5248:b0:220:bd4d:674d with SMTP id o8-20020a056870524800b00220bd4d674dmr11333403oai.5.1713197799419; Mon, 15 Apr 2024 09:16:39 -0700 (PDT) MIME-Version: 1.0 References: <20240412143719.11398-1-Jonathan.Cameron@huawei.com> <20240412143719.11398-3-Jonathan.Cameron@huawei.com> <20240415164854.0000264f@Huawei.com> In-Reply-To: <20240415164854.0000264f@Huawei.com> From: "Rafael J. Wysocki" Date: Mon, 15 Apr 2024 18:16:27 +0200 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v5 02/18] ACPI: processor: Set the ACPI_COMPANION for the struct cpu instance To: Jonathan Cameron Cc: "Rafael J. Wysocki" , linux-pm@vger.kernel.org, loongarch@lists.linux.dev, linux-acpi@vger.kernel.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kvmarm@lists.linux.dev, x86@kernel.org, Russell King , Miguel Luis , James Morse , Salil Mehta , Jean-Philippe Brucker , Catalin Marinas , Will Deacon , linuxarm@huawei.com, justin.he@arm.com, jianyong.wu@arm.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240415_091643_304106_B1EDA3F6 X-CRM114-Status: GOOD ( 41.03 ) 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 T24gTW9uLCBBcHIgMTUsIDIwMjQgYXQgNTo0OeKAr1BNIEpvbmF0aGFuIENhbWVyb24KPEpvbmF0 aGFuLkNhbWVyb25AaHVhd2VpLmNvbT4gd3JvdGU6Cj4KPiBPbiBGcmksIDEyIEFwciAyMDI0IDIw OjEwOjU0ICswMjAwCj4gIlJhZmFlbCBKLiBXeXNvY2tpIiA8cmFmYWVsQGtlcm5lbC5vcmc+IHdy b3RlOgo+Cj4gPiBPbiBGcmksIEFwciAxMiwgMjAyNCBhdCA0OjM44oCvUE0gSm9uYXRoYW4gQ2Ft ZXJvbgo+ID4gPEpvbmF0aGFuLkNhbWVyb25AaHVhd2VpLmNvbT4gd3JvdGU6Cj4gPiA+Cj4gPiA+ IFRoZSBhcm02NCBzcGVjaWZpYyBhcmNoX3JlZ2lzdGVyX2NwdSgpIG5lZWRzIHRvIGFjY2VzcyB0 aGUgX1NUQQo+ID4gPiBtZXRob2Qgb2YgdGhlIERTRFQgb2JqZWN0IHNvIG1ha2UgaXQgYXZhaWxh YmxlIGJ5IGFzc2lnbmluZyB0aGUKPiA+ID4gYXBwcm9wcmlhdGUgaGFuZGxlIHRvIHRoZSBzdHJ1 Y3QgY3B1IGluc3RhbmNlLgo+ID4gPgo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBKb25hdGhhbiBDYW1l cm9uIDxKb25hdGhhbi5DYW1lcm9uQGh1YXdlaS5jb20+Cj4gPiA+IC0tLQo+ID4gPiAgZHJpdmVy cy9hY3BpL2FjcGlfcHJvY2Vzc29yLmMgfCAzICsrKwo+ID4gPiAgMSBmaWxlIGNoYW5nZWQsIDMg aW5zZXJ0aW9ucygrKQo+ID4gPgo+ID4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9hY3BpL2FjcGlf cHJvY2Vzc29yLmMgYi9kcml2ZXJzL2FjcGkvYWNwaV9wcm9jZXNzb3IuYwo+ID4gPiBpbmRleCA3 YTBkZDM1ZDYyYzkuLjkzZTAyOTQwM2QwNSAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9hY3Bp L2FjcGlfcHJvY2Vzc29yLmMKPiA+ID4gKysrIGIvZHJpdmVycy9hY3BpL2FjcGlfcHJvY2Vzc29y LmMKPiA+ID4gQEAgLTIzNSw2ICsyMzUsNyBAQCBzdGF0aWMgaW50IGFjcGlfcHJvY2Vzc29yX2dl dF9pbmZvKHN0cnVjdCBhY3BpX2RldmljZSAqZGV2aWNlKQo+ID4gPiAgICAgICAgIHVuaW9uIGFj cGlfb2JqZWN0IG9iamVjdCA9IHsgMCB9Owo+ID4gPiAgICAgICAgIHN0cnVjdCBhY3BpX2J1ZmZl ciBidWZmZXIgPSB7IHNpemVvZih1bmlvbiBhY3BpX29iamVjdCksICZvYmplY3QgfTsKPiA+ID4g ICAgICAgICBzdHJ1Y3QgYWNwaV9wcm9jZXNzb3IgKnByID0gYWNwaV9kcml2ZXJfZGF0YShkZXZp Y2UpOwo+ID4gPiArICAgICAgIHN0cnVjdCBjcHUgKmM7Cj4gPiA+ICAgICAgICAgaW50IGRldmlj ZV9kZWNsYXJhdGlvbiA9IDA7Cj4gPiA+ICAgICAgICAgYWNwaV9zdGF0dXMgc3RhdHVzID0gQUVf T0s7Cj4gPiA+ICAgICAgICAgc3RhdGljIGludCBjcHUwX2luaXRpYWxpemVkOwo+ID4gPiBAQCAt MzE0LDYgKzMxNSw4IEBAIHN0YXRpYyBpbnQgYWNwaV9wcm9jZXNzb3JfZ2V0X2luZm8oc3RydWN0 IGFjcGlfZGV2aWNlICpkZXZpY2UpCj4gPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGNwdWZy ZXFfYWRkX2RldmljZSgiYWNwaS1jcHVmcmVxIik7Cj4gPiA+ICAgICAgICAgfQo+ID4gPgo+ID4g PiArICAgICAgIGMgPSAmcGVyX2NwdShjcHVfZGV2aWNlcywgcHItPmlkKTsKPiA+ID4gKyAgICAg ICBBQ1BJX0NPTVBBTklPTl9TRVQoJmMtPmRldiwgZGV2aWNlKTsKPiA+Cj4gPiBUaGlzIGlzIGFs c28gc2V0IGZvciBwZXJfY3B1KGNwdV9zeXNfZGV2aWNlcywgcHItPmlkKSBpbgo+ID4gYWNwaV9w cm9jZXNzb3JfYWRkKCksIHZpYSBhY3BpX2JpbmRfb25lKCkuCj4KPiBIaSBSYWZhZWwsCj4KPiBj cHVfc3lzX2RldmljZXMgZ2V0cyBmaWxsZWQgd2l0aCBhIHBvaW50ZXIgdG8gdGhpcyBzYW1lIHN0 cnVjdHVyZS4KPiBUaGUgY29udGVudHMgZ2V0cyBzZXQgaW4gcmVnaXN0ZXJfY3B1KCkgc28gYXQg dGhpcyBwb2ludAo+IGl0IGRvZXNuJ3QgcG9pbnQgYW55d2hlcmUuICBBcyBhIHNpZGUgbm90ZSBy ZWdpc3Rlcl9jcHUoKQo+IG1lbXNldHMgdG8gemVybyB0aGUgdmFsdWUgSSBzZXQgaXQgdG8gaW4g dGhlIGNvZGUgYWJvdmUgd2hpY2ggaXNuJ3QKPiBncmVhdCwgcGFydGljdWxhcmx5IGFzIEkgd2Fu dCB0byB1c2UgdGhpcyBpbiBwb3N0X2VqZWN0IGZvcgo+IGFybTY0Lgo+Cj4gV2UgY291bGQgbWFr ZSBhIGNvcHkgb2YgdGhlIGhhbmRsZSBhbmQgcHV0IGl0IGJhY2sgYWZ0ZXIKPiB0aGUgbWVtc2V0 IGluIHJlZ2lzdGVyX2NwdSgpIGJ1dCB0aGF0IGlzIGFsc28gdWdseS4KPiBJdCdzIHRoZSBiZXN0 IEkndmUgY29tZSB1cCB3aXRoIHRvIG1ha2Ugc3VyZSB0aGlzIGlzIHN0aWxsIHNldAo+IGNvbWUg cmVtb3ZlIHRpbWUgYnV0IGlzIHJhdGhlciBvZGQuCj4gPgo+ID4gTW9yZW92ZXIsIHRoZXJlIGlz IHNvbWUgcHItPmlkIHZhbGlkYXRpb24gaW4gYWNwaV9wcm9jZXNzb3JfYWRkKCksIHNvCj4gPiBp dCBzZWVtcyBwcmVtYXR1cmUgdG8gdXNlIGl0IGhlcmUgdGhpcyB3YXkuCj4gPgo+ID4gSSB0aGlu ayB0aGF0IEFDUElfQ09NUEFOSU9OX1NFVCgpIHNob3VsZCBiZSBjYWxsZWQgZnJvbSBoZXJlIG9u Cj4gPiBwZXJfY3B1KGNwdV9zeXNfZGV2aWNlcywgcHItPmlkKSBhZnRlciB2YWxpZGF0aW5nIHBy LT5pZCAoc28gdGhlCj4gPiBwci0+aWQgdmFsaWRhdGlvbiBzaG91bGQgYWxsIGJlIGRvbmUgaGVy ZSkgYW5kIHRoZW4gTlVMTCBjYW4gYmUgcGFzc2VkCj4gPiBhcyBhY3BpX2RldiB0byBhY3BpX2Jp bmRfb25lKCkgaW4gYWNwaV9wcm9jZXNzb3JfYWRkKCkuICBUaGVuLCB0aGVyZQo+ID4gd2lsbCBi ZSBvbmUgcGh5c2ljYWwgZGV2aWNlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHByb2Nlc3NvciBBQ1BJ IGRldmljZQo+ID4gYW5kIG5vIGNvbmZ1c2lvbi4KPgo+IEknbSBmYWlybHkgc3VyZSB0aGlzIGlz IHBvaW50aW5nIHRvIHRoZSBzYW1lIGRldmljZSBidXQgYWdyZWVkIHRoaXMKPiBpcyBhIHRpbnkg Yml0IGNvbmZ1c2luZy4gSG93ZXZlciB3ZSBjYW4ndCB1c2UgY3B1X3N5c19kZXZpY2VzIGF0IHRo aXMgcG9pbnQKPiBzbyBJJ20gbm90IGltbWVkaWF0ZWx5IHNlZWluZyBhIGNsZWFuZXIgc29sdXRp b24gOigKCldlbGwsIE9LLgoKUGxlYXNlIGF0IGxlYXN0IGNvbnNpZGVyIGRvaW5nIHRoZSBwci0+ aWQgdmFsaWRhdGlvbiBjaGVja3MgYmVmb3JlCnNldHRpbmcgdGhlIEFDUEkgY29tcGFuaW9uIGZv ciAmcGVyX2NwdShjcHVfZGV2aWNlcywgcHItPmlkKS4KCkFsc28sIGFjcGlfYmluZF9vbmUoKSBu ZWVkcyB0byBiZSBjYWxsZWQgb24gdGhlICJwaHlzaWNhbCIgZGV2aWNlcwpwYXNzZWQgdG8gQUNQ SV9DT01QQU5JT05fU0VUKCkgKHdpdGggTlVMTCBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50KSBmb3IK dGhlIHJlZmVyZW5jZSBjb3VudGluZyBhbmQgcGh5c2ljYWwgZGV2aWNlIGxvb2t1cCB0byB3b3Jr LgoKUGxlYXNlIGFsc28gbm90ZSB0aGF0IGFjcGlfcHJpbWFyeV9kZXZfY29tcGFuaW9uKCkgc2hv dWxkIHJldHVybgpwZXJfY3B1KGNwdV9zeXNfZGV2aWNlcywgcHItPmlkKSBmb3IgdGhlIHByb2Nl c3NvciBBQ1BJIGRldmljZSwgd2hpY2gKZGVwZW5kcyBvbiB0aGUgb3JkZXIgb2YgYWNwaV9iaW5k X29uZSgpIGNhbGxzIGludm9sdmluZyB0aGUgc2FtZSBBQ1BJCmRldmljZS4KCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFp bGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK