From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (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 6F40713FE2 for ; Thu, 11 Jan 2024 10:19:58 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id DFA3E40354 for ; Thu, 11 Jan 2024 10:19:57 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org DFA3E40354 X-Virus-Scanned: amavisd-new at osuosl.org X-Spam-Flag: NO X-Spam-Score: -4.198 X-Spam-Level: Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id y5Kt_to7jbLt for ; Thu, 11 Jan 2024 10:19:55 +0000 (UTC) Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) by smtp2.osuosl.org (Postfix) with ESMTPS id 1FB5B40139 for ; Thu, 11 Jan 2024 10:19:54 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org 1FB5B40139 Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4T9gZf0gDvz6K8Kq; Thu, 11 Jan 2024 18:17:14 +0800 (CST) Received: from lhrpeml500005.china.huawei.com (unknown [7.191.163.240]) by mail.maildlp.com (Postfix) with ESMTPS id 3C7501400CD; Thu, 11 Jan 2024 18:19:51 +0800 (CST) Received: from localhost (10.202.227.76) by lhrpeml500005.china.huawei.com (7.191.163.240) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 11 Jan 2024 10:19:50 +0000 Date: Thu, 11 Jan 2024 10:19:49 +0000 From: Jonathan Cameron To: "Rafael J. Wysocki" CC: "Russell King (Oracle)" , "Rafael J. Wysocki" , , , , , , , , , , , , , , , Salil Mehta , Jean-Philippe Brucker , , , James Morse Subject: Re: [PATCH RFC v3 01/21] ACPI: Only enumerate enabled (or functional) devices Message-ID: <20240111101949.000075dc@Huawei.com> In-Reply-To: <20240102143925.00004361@Huawei.com> References: <20231215161539.00000940@Huawei.com> <5760569.DvuYhMxLoT@kreacher> <20240102143925.00004361@Huawei.com> Organization: Huawei Technologies Research and Development (UK) Ltd. X-Mailer: Claws Mail 4.1.0 (GTK 3.24.33; x86_64-w64-mingw32) Precedence: bulk X-Mailing-List: acpica-devel@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: lhrpeml100002.china.huawei.com (7.191.160.241) To lhrpeml500005.china.huawei.com (7.191.163.240) On Tue, 2 Jan 2024 14:39:25 +0000 Jonathan Cameron wrote: > On Fri, 15 Dec 2023 20:47:31 +0100 > "Rafael J. Wysocki" wrote: >=20 > > On Friday, December 15, 2023 5:15:39 PM CET Jonathan Cameron wrote: =20 > > > On Fri, 15 Dec 2023 15:31:55 +0000 > > > "Russell King (Oracle)" wrote: > > > =20 > > > > On Thu, Dec 14, 2023 at 07:37:10PM +0100, Rafael J. Wysocki wrote: = =20 > > > > > On Thu, Dec 14, 2023 at 7:16=E2=80=AFPM Rafael J. Wysocki wrote: =20 > > > > > > > > > > > > On Thu, Dec 14, 2023 at 7:10=E2=80=AFPM Russell King (Oracle) > > > > > > wrote: =20 > > > > > > > I guess we need something like: > > > > > > > > > > > > > > if (device->status.present) > > > > > > > return device->device_type !=3D ACPI_BUS_TYPE= _PROCESSOR || > > > > > > > device->status.enabled; > > > > > > > else > > > > > > > return device->status.functional; > > > > > > > > > > > > > > so we only check device->status.enabled for processor-type de= vices? =20 > > > > > > > > > > > > Yes, something like this. =20 > > > > >=20 > > > > > However, that is not sufficient, because there are > > > > > ACPI_BUS_TYPE_DEVICE devices representing processors. > > > > >=20 > > > > > I'm not sure about a clean way to do it ATM. =20 > > > >=20 > > > > Ok, how about: > > > >=20 > > > > static bool acpi_dev_is_processor(const struct acpi_device *device) > > > > { > > > > struct acpi_hardware_id *hwid; > > > >=20 > > > > if (device->device_type =3D=3D ACPI_BUS_TYPE_PROCESSOR) > > > > return true; > > > >=20 > > > > if (device->device_type !=3D ACPI_BUS_TYPE_DEVICE) > > > > return false; > > > >=20 > > > > list_for_each_entry(hwid, &device->pnp.ids, list) > > > > if (!strcmp(ACPI_PROCESSOR_OBJECT_HID, hwid->id) || > > > > !strcmp(ACPI_PROCESSOR_DEVICE_HID, hwid->id)) > > > > return true; > > > >=20 > > > > return false; > > > > } > > > >=20 > > > > and then: > > > >=20 > > > > if (device->status.present) > > > > return !acpi_dev_is_processor(device) || device->status.enabled; > > > > else > > > > return device->status.functional; > > > >=20 > > > > ? > > > > =20 > > > Changing it to CPU only for now makes sense to me and I think this co= de snippet should do the > > > job. Nice and simple. =20 > >=20 > > Well, except that it does checks that are done elsewhere slightly > > differently, which from the maintenance POV is not nice. > >=20 > > Maybe something like the appended patch (untested). =20 >=20 > Hi Rafael, >=20 > As far as I can see that's functionally equivalent, so looks good to me. > I'm not set up to test this today though, so will defer to Russell on whe= ther > there is anything missing >=20 > Thanks for putting this together. This is rather embarrassing... I span this up on a QEMU instance with some prints to find out we need the !acpi_device_is_processor() restriction. On my 'random' test setup it fails on one device. ACPI0017 - which I happen to know rather well. It's the weird pseudo device that lets a CXL aware OS know there is a CEDT table to probe. Whilst I really don't like that hack (it is all about making software distribution of out of tree modules easier rather than something fundamental), I'm the CXL QEMU maintainer :( Will fix that, but it shows there is at least one broken firmware out there. On plus side, Rafael's code seems to work as expected and lets that buggy firwmare carry on working :) So lets pretend the bug in qemu is a deliberate test case! Jonathan p.s. My test setup blows up later for an unrelated reason with latest kernel, so I'll be off debugging that for a while :( >=20 > Jonathan >=20 > >=20 > > --- > > drivers/acpi/acpi_processor.c | 11 +++++++++++ > > drivers/acpi/internal.h | 3 +++ > > drivers/acpi/scan.c | 24 +++++++++++++++++++++++- > > 3 files changed, 37 insertions(+), 1 deletion(-) > >=20 > > Index: linux-pm/drivers/acpi/acpi_processor.c > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > --- linux-pm.orig/drivers/acpi/acpi_processor.c > > +++ linux-pm/drivers/acpi/acpi_processor.c > > @@ -644,6 +644,17 @@ static struct acpi_scan_handler processo > > }, > > }; > > =20 > > +bool acpi_device_is_processor(const struct acpi_device *adev) > > +{ > > + if (adev->device_type =3D=3D ACPI_BUS_TYPE_PROCESSOR) > > + return true; > > + > > + if (adev->device_type !=3D ACPI_BUS_TYPE_DEVICE) > > + return false; > > + > > + return acpi_scan_check_handler(adev, &processor_handler); > > +} > > + > > static int acpi_processor_container_attach(struct acpi_device *dev, > > const struct acpi_device_id *id) > > { > > Index: linux-pm/drivers/acpi/internal.h > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > --- linux-pm.orig/drivers/acpi/internal.h > > +++ linux-pm/drivers/acpi/internal.h > > @@ -62,6 +62,8 @@ void acpi_sysfs_add_hotplug_profile(stru > > int acpi_scan_add_handler_with_hotplug(struct acpi_scan_handler *handl= er, > > const char *hotplug_profile_name); > > void acpi_scan_hotplug_enabled(struct acpi_hotplug_profile *hotplug, b= ool val); > > +bool acpi_scan_check_handler(const struct acpi_device *adev, > > + struct acpi_scan_handler *handler); > > =20 > > #ifdef CONFIG_DEBUG_FS > > extern struct dentry *acpi_debugfs_dir; > > @@ -133,6 +135,7 @@ int acpi_bus_register_early_device(int t > > const struct acpi_device *acpi_companion_match(const struct device *de= v); > > int __acpi_device_uevent_modalias(const struct acpi_device *adev, > > struct kobj_uevent_env *env); > > +bool acpi_device_is_processor(const struct acpi_device *adev); > > =20 > > /* -------------------------------------------------------------------= ------- > > Power Resource > > Index: linux-pm/drivers/acpi/scan.c > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > --- linux-pm.orig/drivers/acpi/scan.c > > +++ linux-pm/drivers/acpi/scan.c > > @@ -1938,6 +1938,19 @@ static bool acpi_scan_handler_matching(s > > return false; > > } > > =20 > > +bool acpi_scan_check_handler(const struct acpi_device *adev, > > + struct acpi_scan_handler *handler) > > +{ > > + struct acpi_hardware_id *hwid; > > + > > + list_for_each_entry(hwid, &adev->pnp.ids, list) { > > + if (acpi_scan_handler_matching(handler, hwid->id, NULL)) > > + return true; > > + } > > + > > + return false; > > +} > > + > > static struct acpi_scan_handler *acpi_scan_match_handler(const char *i= dstr, > > const struct acpi_device_id **matchid) > > { > > @@ -2410,7 +2423,16 @@ bool acpi_dev_ready_for_enumeration(cons > > if (device->flags.honor_deps && device->dep_unmet) > > return false; > > =20 > > - return acpi_device_is_present(device); > > + if (device->status.functional) > > + return true; > > + > > + if (!device->status.present) > > + return false; > > + > > + if (device->status.enabled) > > + return true; /* Fast path. */ > > + > > + return !acpi_device_is_processor(device); > > } > > EXPORT_SYMBOL_GPL(acpi_dev_ready_for_enumeration); > > =20 > >=20 > >=20 > > =20 >=20 >=20 > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel 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 BCDD1C47077 for ; Thu, 11 Jan 2024 10:20:16 +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=cRAZEbfDr9RJGTp2GF78h8kv5BfmQ9A4Gu8RtWX+5YQ=; b=hxykDgfDfG3Wa2 BrpSCgoQEdkOvbpT2dOofYjbOuC56cb1wFH5LcWfBgbxmv2rugVKeauUUVVAlZeKybhyR9wdSdcZs dy/KkFszdAgY+FIW0G1xhtMtF4L6LT06HP/li582pfcy3q/XfwSnFVASATTMwCawEFoXwuv6Wp0eE sXddwAoGoSClojcbc7qlzypj8UOxc81zQF5nbQCpKdGjwBWYDYRKfF3NZW+hsUs5nrdMeJv8V3ZRZ fGkDI/p6/3nRCJclEnbCSAW4peOlRqT91cYLSX6dvwgwPU4XyEWOgbHMqKzso2M4ICygu3WyeC+lH F3cjRegFxX/Zx0lxHGOA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rNsAR-00Gxb9-36; Thu, 11 Jan 2024 10:20:07 +0000 Received: from frasgout.his.huawei.com ([185.176.79.56]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rNsAN-00GxXU-0J; Thu, 11 Jan 2024 10:20:06 +0000 Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4T9gZf0gDvz6K8Kq; Thu, 11 Jan 2024 18:17:14 +0800 (CST) Received: from lhrpeml500005.china.huawei.com (unknown [7.191.163.240]) by mail.maildlp.com (Postfix) with ESMTPS id 3C7501400CD; Thu, 11 Jan 2024 18:19:51 +0800 (CST) Received: from localhost (10.202.227.76) by lhrpeml500005.china.huawei.com (7.191.163.240) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 11 Jan 2024 10:19:50 +0000 Date: Thu, 11 Jan 2024 10:19:49 +0000 From: Jonathan Cameron To: "Rafael J. Wysocki" CC: "Russell King (Oracle)" , "Rafael J. Wysocki" , , , , , , , , , , , , , , , Salil Mehta , Jean-Philippe Brucker , , , James Morse Subject: Re: [PATCH RFC v3 01/21] ACPI: Only enumerate enabled (or functional) devices Message-ID: <20240111101949.000075dc@Huawei.com> In-Reply-To: <20240102143925.00004361@Huawei.com> References: <20231215161539.00000940@Huawei.com> <5760569.DvuYhMxLoT@kreacher> <20240102143925.00004361@Huawei.com> Organization: Huawei Technologies Research and Development (UK) Ltd. X-Mailer: Claws Mail 4.1.0 (GTK 3.24.33; x86_64-w64-mingw32) MIME-Version: 1.0 X-Originating-IP: [10.202.227.76] X-ClientProxiedBy: lhrpeml100002.china.huawei.com (7.191.160.241) To lhrpeml500005.china.huawei.com (7.191.163.240) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240111_022003_466319_FA146B68 X-CRM114-Status: GOOD ( 37.73 ) X-BeenThere: linux-riscv@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-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org T24gVHVlLCAyIEphbiAyMDI0IDE0OjM5OjI1ICswMDAwCkpvbmF0aGFuIENhbWVyb24gPEpvbmF0 aGFuLkNhbWVyb25ASHVhd2VpLmNvbT4gd3JvdGU6Cgo+IE9uIEZyaSwgMTUgRGVjIDIwMjMgMjA6 NDc6MzEgKzAxMDAKPiAiUmFmYWVsIEouIFd5c29ja2kiIDxyandAcmp3eXNvY2tpLm5ldD4gd3Jv dGU6Cj4gCj4gPiBPbiBGcmlkYXksIERlY2VtYmVyIDE1LCAyMDIzIDU6MTU6MzkgUE0gQ0VUIEpv bmF0aGFuIENhbWVyb24gd3JvdGU6ICAKPiA+ID4gT24gRnJpLCAxNSBEZWMgMjAyMyAxNTozMTo1 NSArMDAwMAo+ID4gPiAiUnVzc2VsbCBLaW5nIChPcmFjbGUpIiA8bGludXhAYXJtbGludXgub3Jn LnVrPiB3cm90ZToKPiA+ID4gICAgIAo+ID4gPiA+IE9uIFRodSwgRGVjIDE0LCAyMDIzIGF0IDA3 OjM3OjEwUE0gKzAxMDAsIFJhZmFlbCBKLiBXeXNvY2tpIHdyb3RlOiAgICAKPiA+ID4gPiA+IE9u IFRodSwgRGVjIDE0LCAyMDIzIGF0IDc6MTbigK9QTSBSYWZhZWwgSi4gV3lzb2NraSA8cmFmYWVs QGtlcm5lbC5vcmc+IHdyb3RlOiAgICAgIAo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBPbiBUaHUs IERlYyAxNCwgMjAyMyBhdCA3OjEw4oCvUE0gUnVzc2VsbCBLaW5nIChPcmFjbGUpCj4gPiA+ID4g PiA+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOiAgICAgIAo+ID4gPiA+ID4gPiA+IEkg Z3Vlc3Mgd2UgbmVlZCBzb21ldGhpbmcgbGlrZToKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ ICAgICAgICAgaWYgKGRldmljZS0+c3RhdHVzLnByZXNlbnQpCj4gPiA+ID4gPiA+ID4gICAgICAg ICAgICAgICAgIHJldHVybiBkZXZpY2UtPmRldmljZV90eXBlICE9IEFDUElfQlVTX1RZUEVfUFJP Q0VTU09SIHx8Cj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2UtPnN0 YXR1cy5lbmFibGVkOwo+ID4gPiA+ID4gPiA+ICAgICAgICAgZWxzZQo+ID4gPiA+ID4gPiA+ICAg ICAgICAgICAgICAgICByZXR1cm4gZGV2aWNlLT5zdGF0dXMuZnVuY3Rpb25hbDsKPiA+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiA+IHNvIHdlIG9ubHkgY2hlY2sgZGV2aWNlLT5zdGF0dXMuZW5hYmxl ZCBmb3IgcHJvY2Vzc29yLXR5cGUgZGV2aWNlcz8gICAgICAKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gWWVzLCBzb21ldGhpbmcgbGlrZSB0aGlzLiAgICAgIAo+ID4gPiA+ID4gCj4gPiA+ID4gPiBI b3dldmVyLCB0aGF0IGlzIG5vdCBzdWZmaWNpZW50LCBiZWNhdXNlIHRoZXJlIGFyZQo+ID4gPiA+ ID4gQUNQSV9CVVNfVFlQRV9ERVZJQ0UgZGV2aWNlcyByZXByZXNlbnRpbmcgcHJvY2Vzc29ycy4K PiA+ID4gPiA+IAo+ID4gPiA+ID4gSSdtIG5vdCBzdXJlIGFib3V0IGEgY2xlYW4gd2F5IHRvIGRv IGl0IEFUTS4gICAgICAKPiA+ID4gPiAKPiA+ID4gPiBPaywgaG93IGFib3V0Ogo+ID4gPiA+IAo+ ID4gPiA+IHN0YXRpYyBib29sIGFjcGlfZGV2X2lzX3Byb2Nlc3Nvcihjb25zdCBzdHJ1Y3QgYWNw aV9kZXZpY2UgKmRldmljZSkKPiA+ID4gPiB7Cj4gPiA+ID4gCXN0cnVjdCBhY3BpX2hhcmR3YXJl X2lkICpod2lkOwo+ID4gPiA+IAo+ID4gPiA+IAlpZiAoZGV2aWNlLT5kZXZpY2VfdHlwZSA9PSBB Q1BJX0JVU19UWVBFX1BST0NFU1NPUikKPiA+ID4gPiAJCXJldHVybiB0cnVlOwo+ID4gPiA+IAo+ ID4gPiA+IAlpZiAoZGV2aWNlLT5kZXZpY2VfdHlwZSAhPSBBQ1BJX0JVU19UWVBFX0RFVklDRSkK PiA+ID4gPiAJCXJldHVybiBmYWxzZTsKPiA+ID4gPiAKPiA+ID4gPiAJbGlzdF9mb3JfZWFjaF9l bnRyeShod2lkLCAmZGV2aWNlLT5wbnAuaWRzLCBsaXN0KQo+ID4gPiA+IAkJaWYgKCFzdHJjbXAo QUNQSV9QUk9DRVNTT1JfT0JKRUNUX0hJRCwgaHdpZC0+aWQpIHx8Cj4gPiA+ID4gCQkgICAgIXN0 cmNtcChBQ1BJX1BST0NFU1NPUl9ERVZJQ0VfSElELCBod2lkLT5pZCkpCj4gPiA+ID4gCQkJcmV0 dXJuIHRydWU7Cj4gPiA+ID4gCj4gPiA+ID4gCXJldHVybiBmYWxzZTsKPiA+ID4gPiB9Cj4gPiA+ ID4gCj4gPiA+ID4gYW5kIHRoZW46Cj4gPiA+ID4gCj4gPiA+ID4gCWlmIChkZXZpY2UtPnN0YXR1 cy5wcmVzZW50KQo+ID4gPiA+IAkJcmV0dXJuICFhY3BpX2Rldl9pc19wcm9jZXNzb3IoZGV2aWNl KSB8fCBkZXZpY2UtPnN0YXR1cy5lbmFibGVkOwo+ID4gPiA+IAllbHNlCj4gPiA+ID4gCQlyZXR1 cm4gZGV2aWNlLT5zdGF0dXMuZnVuY3Rpb25hbDsKPiA+ID4gPiAKPiA+ID4gPiA/Cj4gPiA+ID4g ICAgIAo+ID4gPiBDaGFuZ2luZyBpdCB0byBDUFUgb25seSBmb3Igbm93IG1ha2VzIHNlbnNlIHRv IG1lIGFuZCBJIHRoaW5rIHRoaXMgY29kZSBzbmlwcGV0IHNob3VsZCBkbyB0aGUKPiA+ID4gam9i LiAgTmljZSBhbmQgc2ltcGxlLiAgICAKPiA+IAo+ID4gV2VsbCwgZXhjZXB0IHRoYXQgaXQgZG9l cyBjaGVja3MgdGhhdCBhcmUgZG9uZSBlbHNld2hlcmUgc2xpZ2h0bHkKPiA+IGRpZmZlcmVudGx5 LCB3aGljaCBmcm9tIHRoZSBtYWludGVuYW5jZSBQT1YgaXMgbm90IG5pY2UuCj4gPiAKPiA+IE1h eWJlIHNvbWV0aGluZyBsaWtlIHRoZSBhcHBlbmRlZCBwYXRjaCAodW50ZXN0ZWQpLiAgCj4gCj4g SGkgUmFmYWVsLAo+IAo+IEFzIGZhciBhcyBJIGNhbiBzZWUgdGhhdCdzIGZ1bmN0aW9uYWxseSBl cXVpdmFsZW50LCBzbyBsb29rcyBnb29kIHRvIG1lLgo+IEknbSBub3Qgc2V0IHVwIHRvIHRlc3Qg dGhpcyB0b2RheSB0aG91Z2gsIHNvIHdpbGwgZGVmZXIgdG8gUnVzc2VsbCBvbiB3aGV0aGVyCj4g dGhlcmUgaXMgYW55dGhpbmcgbWlzc2luZwo+IAo+IFRoYW5rcyBmb3IgcHV0dGluZyB0aGlzIHRv Z2V0aGVyLgoKVGhpcyBpcyByYXRoZXIgZW1iYXJyYXNzaW5nLi4uCgpJIHNwYW4gdGhpcyB1cCBv biBhIFFFTVUgaW5zdGFuY2Ugd2l0aCBzb21lIHByaW50cyB0byBmaW5kIG91dCB3ZSBuZWVkCnRo ZSAhYWNwaV9kZXZpY2VfaXNfcHJvY2Vzc29yKCkgcmVzdHJpY3Rpb24uCk9uIG15ICdyYW5kb20n IHRlc3Qgc2V0dXAgaXQgZmFpbHMgb24gb25lIGRldmljZS4gQUNQSTAwMTcgLSB3aGljaCBJCmhh cHBlbiB0byBrbm93IHJhdGhlciB3ZWxsLiBJdCdzIHRoZSB3ZWlyZCBwc2V1ZG8gZGV2aWNlIHRo YXQgbGV0cwphIENYTCBhd2FyZSBPUyBrbm93IHRoZXJlIGlzIGEgQ0VEVCB0YWJsZSB0byBwcm9i ZS4KCldoaWxzdCBJIHJlYWxseSBkb24ndCBsaWtlIHRoYXQgaGFjayAoaXQgaXMgYWxsIGFib3V0 IG1ha2luZyBzb2Z0d2FyZQpkaXN0cmlidXRpb24gb2Ygb3V0IG9mIHRyZWUgbW9kdWxlcyBlYXNp ZXIgcmF0aGVyIHRoYW4gc29tZXRoaW5nCmZ1bmRhbWVudGFsKSwgSSdtIHRoZSBDWEwgUUVNVSBt YWludGFpbmVyIDooCgpXaWxsIGZpeCB0aGF0LCBidXQgaXQgc2hvd3MgdGhlcmUgaXMgYXQgbGVh c3Qgb25lIGJyb2tlbiBmaXJtd2FyZSBvdXQKdGhlcmUuCgpPbiBwbHVzIHNpZGUsIFJhZmFlbCdz IGNvZGUgc2VlbXMgdG8gd29yayBhcyBleHBlY3RlZCBhbmQgbGV0cyB0aGF0CmJ1Z2d5IGZpcndt YXJlIGNhcnJ5IG9uIHdvcmtpbmcgOikgU28gbGV0cyBwcmV0ZW5kIHRoZSBidWcgaW4gcWVtdQpp cyBhIGRlbGliZXJhdGUgdGVzdCBjYXNlIQoKSm9uYXRoYW4KCnAucy4gTXkgdGVzdCBzZXR1cCBi bG93cyB1cCBsYXRlciBmb3IgYW4gdW5yZWxhdGVkIHJlYXNvbiB3aXRoIGxhdGVzdAprZXJuZWws IHNvIEknbGwgYmUgb2ZmIGRlYnVnZ2luZyB0aGF0IGZvciBhIHdoaWxlIDooCgoKPiAKPiBKb25h dGhhbgo+IAo+ID4gCj4gPiAtLS0KPiA+ICBkcml2ZXJzL2FjcGkvYWNwaV9wcm9jZXNzb3IuYyB8 ICAgMTEgKysrKysrKysrKysKPiA+ICBkcml2ZXJzL2FjcGkvaW50ZXJuYWwuaCAgICAgICB8ICAg IDMgKysrCj4gPiAgZHJpdmVycy9hY3BpL3NjYW4uYyAgICAgICAgICAgfCAgIDI0ICsrKysrKysr KysrKysrKysrKysrKysrLQo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQo+ID4gCj4gPiBJbmRleDogbGludXgtcG0vZHJpdmVycy9hY3BpL2FjcGlf cHJvY2Vzc29yLmMKPiA+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiA+IC0tLSBsaW51eC1wbS5vcmlnL2RyaXZlcnMv YWNwaS9hY3BpX3Byb2Nlc3Nvci5jCj4gPiArKysgbGludXgtcG0vZHJpdmVycy9hY3BpL2FjcGlf cHJvY2Vzc29yLmMKPiA+IEBAIC02NDQsNiArNjQ0LDE3IEBAIHN0YXRpYyBzdHJ1Y3QgYWNwaV9z Y2FuX2hhbmRsZXIgcHJvY2Vzc28KPiA+ICAJfSwKPiA+ICB9Owo+ID4gIAo+ID4gK2Jvb2wgYWNw aV9kZXZpY2VfaXNfcHJvY2Vzc29yKGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZSAqYWRldikKPiA+ ICt7Cj4gPiArCWlmIChhZGV2LT5kZXZpY2VfdHlwZSA9PSBBQ1BJX0JVU19UWVBFX1BST0NFU1NP UikKPiA+ICsJCXJldHVybiB0cnVlOwo+ID4gKwo+ID4gKwlpZiAoYWRldi0+ZGV2aWNlX3R5cGUg IT0gQUNQSV9CVVNfVFlQRV9ERVZJQ0UpCj4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiArCj4gPiAr CXJldHVybiBhY3BpX3NjYW5fY2hlY2tfaGFuZGxlcihhZGV2LCAmcHJvY2Vzc29yX2hhbmRsZXIp Owo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgaW50IGFjcGlfcHJvY2Vzc29yX2NvbnRhaW5lcl9h dHRhY2goc3RydWN0IGFjcGlfZGV2aWNlICpkZXYsCj4gPiAgCQkJCQkgICBjb25zdCBzdHJ1Y3Qg YWNwaV9kZXZpY2VfaWQgKmlkKQo+ID4gIHsKPiA+IEluZGV4OiBsaW51eC1wbS9kcml2ZXJzL2Fj cGkvaW50ZXJuYWwuaAo+ID4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ID4gLS0tIGxpbnV4LXBtLm9yaWcvZHJpdmVy cy9hY3BpL2ludGVybmFsLmgKPiA+ICsrKyBsaW51eC1wbS9kcml2ZXJzL2FjcGkvaW50ZXJuYWwu aAo+ID4gQEAgLTYyLDYgKzYyLDggQEAgdm9pZCBhY3BpX3N5c2ZzX2FkZF9ob3RwbHVnX3Byb2Zp bGUoc3RydQo+ID4gIGludCBhY3BpX3NjYW5fYWRkX2hhbmRsZXJfd2l0aF9ob3RwbHVnKHN0cnVj dCBhY3BpX3NjYW5faGFuZGxlciAqaGFuZGxlciwKPiA+ICAJCQkJICAgICAgIGNvbnN0IGNoYXIg KmhvdHBsdWdfcHJvZmlsZV9uYW1lKTsKPiA+ICB2b2lkIGFjcGlfc2Nhbl9ob3RwbHVnX2VuYWJs ZWQoc3RydWN0IGFjcGlfaG90cGx1Z19wcm9maWxlICpob3RwbHVnLCBib29sIHZhbCk7Cj4gPiAr Ym9vbCBhY3BpX3NjYW5fY2hlY2tfaGFuZGxlcihjb25zdCBzdHJ1Y3QgYWNwaV9kZXZpY2UgKmFk ZXYsCj4gPiArCQkJICAgICBzdHJ1Y3QgYWNwaV9zY2FuX2hhbmRsZXIgKmhhbmRsZXIpOwo+ID4g IAo+ID4gICNpZmRlZiBDT05GSUdfREVCVUdfRlMKPiA+ICBleHRlcm4gc3RydWN0IGRlbnRyeSAq YWNwaV9kZWJ1Z2ZzX2RpcjsKPiA+IEBAIC0xMzMsNiArMTM1LDcgQEAgaW50IGFjcGlfYnVzX3Jl Z2lzdGVyX2Vhcmx5X2RldmljZShpbnQgdAo+ID4gIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZSAq YWNwaV9jb21wYW5pb25fbWF0Y2goY29uc3Qgc3RydWN0IGRldmljZSAqZGV2KTsKPiA+ICBpbnQg X19hY3BpX2RldmljZV91ZXZlbnRfbW9kYWxpYXMoY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlICph ZGV2LAo+ID4gIAkJCQkgIHN0cnVjdCBrb2JqX3VldmVudF9lbnYgKmVudik7Cj4gPiArYm9vbCBh Y3BpX2RldmljZV9pc19wcm9jZXNzb3IoY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlICphZGV2KTsK PiA+ICAKPiA+ICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQb3dlciBSZXNvdXJjZQo+ID4gSW5kZXg6IGxpbnV4LXBtL2RyaXZlcnMv YWNwaS9zY2FuLmMKPiA+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiA+IC0tLSBsaW51eC1wbS5vcmlnL2RyaXZlcnMv YWNwaS9zY2FuLmMKPiA+ICsrKyBsaW51eC1wbS9kcml2ZXJzL2FjcGkvc2Nhbi5jCj4gPiBAQCAt MTkzOCw2ICsxOTM4LDE5IEBAIHN0YXRpYyBib29sIGFjcGlfc2Nhbl9oYW5kbGVyX21hdGNoaW5n KHMKPiA+ICAJcmV0dXJuIGZhbHNlOwo+ID4gIH0KPiA+ICAKPiA+ICtib29sIGFjcGlfc2Nhbl9j aGVja19oYW5kbGVyKGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZSAqYWRldiwKPiA+ICsJCQkgICAg IHN0cnVjdCBhY3BpX3NjYW5faGFuZGxlciAqaGFuZGxlcikKPiA+ICt7Cj4gPiArCXN0cnVjdCBh Y3BpX2hhcmR3YXJlX2lkICpod2lkOwo+ID4gKwo+ID4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGh3 aWQsICZhZGV2LT5wbnAuaWRzLCBsaXN0KSB7Cj4gPiArCQlpZiAoYWNwaV9zY2FuX2hhbmRsZXJf bWF0Y2hpbmcoaGFuZGxlciwgaHdpZC0+aWQsIE5VTEwpKQo+ID4gKwkJCXJldHVybiB0cnVlOwo+ ID4gKwl9Cj4gPiArCj4gPiArCXJldHVybiBmYWxzZTsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGlj IHN0cnVjdCBhY3BpX3NjYW5faGFuZGxlciAqYWNwaV9zY2FuX21hdGNoX2hhbmRsZXIoY29uc3Qg Y2hhciAqaWRzdHIsCj4gPiAgCQkJCQljb25zdCBzdHJ1Y3QgYWNwaV9kZXZpY2VfaWQgKiptYXRj aGlkKQo+ID4gIHsKPiA+IEBAIC0yNDEwLDcgKzI0MjMsMTYgQEAgYm9vbCBhY3BpX2Rldl9yZWFk eV9mb3JfZW51bWVyYXRpb24oY29ucwo+ID4gIAlpZiAoZGV2aWNlLT5mbGFncy5ob25vcl9kZXBz ICYmIGRldmljZS0+ZGVwX3VubWV0KQo+ID4gIAkJcmV0dXJuIGZhbHNlOwo+ID4gIAo+ID4gLQly ZXR1cm4gYWNwaV9kZXZpY2VfaXNfcHJlc2VudChkZXZpY2UpOwo+ID4gKwlpZiAoZGV2aWNlLT5z dGF0dXMuZnVuY3Rpb25hbCkKPiA+ICsJCXJldHVybiB0cnVlOwo+ID4gKwo+ID4gKwlpZiAoIWRl dmljZS0+c3RhdHVzLnByZXNlbnQpCj4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiArCj4gPiArCWlm IChkZXZpY2UtPnN0YXR1cy5lbmFibGVkKQo+ID4gKwkJcmV0dXJuIHRydWU7IC8qIEZhc3QgcGF0 aC4gKi8KPiA+ICsKPiA+ICsJcmV0dXJuICFhY3BpX2RldmljZV9pc19wcm9jZXNzb3IoZGV2aWNl KTsKPiA+ICB9Cj4gPiAgRVhQT1JUX1NZTUJPTF9HUEwoYWNwaV9kZXZfcmVhZHlfZm9yX2VudW1l cmF0aW9uKTsKPiA+ICAKPiA+IAo+ID4gCj4gPiAgIAo+IAo+IAo+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gbGludXgtYXJtLWtlcm5lbCBtYWlsaW5n IGxpc3QKPiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiBodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1yaXNjdiBt YWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2Cg== 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 03D0DC4707B for ; Thu, 11 Jan 2024 10:20:36 +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=sTI6tzuJwa9D9J4oSkAtWqCnHUxzTs/m1ArArW/S5d4=; b=osbxfWkem0d3tt lbK/DP+QyzyiBcpfBCHzseDKWDHpkP1SY4Usu76u8V+tyGfgX7ICbuSkrrWHi0s/bWtU2U+YzYb7a oU7SwJA3QlTidqhuvgevvv51NgWWfaAG7gUXz2XAvFNa6UQjrDqVWiKFRC4Ge+RgfXgg68eGX/9Wd 5pZmwvE4HqFtA1rodalomfwag5R0+LmSBqwBs49DYNZ9nwfHUtd08oDMZdpv+tQh6UxBiWXZRrfPP KBarGOpB028RPkeSek2I3usVt041tPWMlkRMJOBEz25Bf11DrBaDhOSfenWNMDO3l8jFZBms3YsqA wlS9/PsGoJ/Q69IgCC/Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1rNsAQ-00Gxah-3B; Thu, 11 Jan 2024 10:20:07 +0000 Received: from frasgout.his.huawei.com ([185.176.79.56]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1rNsAN-00GxXU-0J; Thu, 11 Jan 2024 10:20:06 +0000 Received: from mail.maildlp.com (unknown [172.18.186.31]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4T9gZf0gDvz6K8Kq; Thu, 11 Jan 2024 18:17:14 +0800 (CST) Received: from lhrpeml500005.china.huawei.com (unknown [7.191.163.240]) by mail.maildlp.com (Postfix) with ESMTPS id 3C7501400CD; Thu, 11 Jan 2024 18:19:51 +0800 (CST) Received: from localhost (10.202.227.76) by lhrpeml500005.china.huawei.com (7.191.163.240) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Thu, 11 Jan 2024 10:19:50 +0000 Date: Thu, 11 Jan 2024 10:19:49 +0000 From: Jonathan Cameron To: "Rafael J. Wysocki" CC: "Russell King (Oracle)" , "Rafael J. Wysocki" , , , , , , , , , , , , , , , Salil Mehta , Jean-Philippe Brucker , , , James Morse Subject: Re: [PATCH RFC v3 01/21] ACPI: Only enumerate enabled (or functional) devices Message-ID: <20240111101949.000075dc@Huawei.com> In-Reply-To: <20240102143925.00004361@Huawei.com> References: <20231215161539.00000940@Huawei.com> <5760569.DvuYhMxLoT@kreacher> <20240102143925.00004361@Huawei.com> Organization: Huawei Technologies Research and Development (UK) Ltd. X-Mailer: Claws Mail 4.1.0 (GTK 3.24.33; x86_64-w64-mingw32) MIME-Version: 1.0 X-Originating-IP: [10.202.227.76] X-ClientProxiedBy: lhrpeml100002.china.huawei.com (7.191.160.241) To lhrpeml500005.china.huawei.com (7.191.163.240) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240111_022003_466319_FA146B68 X-CRM114-Status: GOOD ( 37.73 ) 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 T24gVHVlLCAyIEphbiAyMDI0IDE0OjM5OjI1ICswMDAwCkpvbmF0aGFuIENhbWVyb24gPEpvbmF0 aGFuLkNhbWVyb25ASHVhd2VpLmNvbT4gd3JvdGU6Cgo+IE9uIEZyaSwgMTUgRGVjIDIwMjMgMjA6 NDc6MzEgKzAxMDAKPiAiUmFmYWVsIEouIFd5c29ja2kiIDxyandAcmp3eXNvY2tpLm5ldD4gd3Jv dGU6Cj4gCj4gPiBPbiBGcmlkYXksIERlY2VtYmVyIDE1LCAyMDIzIDU6MTU6MzkgUE0gQ0VUIEpv bmF0aGFuIENhbWVyb24gd3JvdGU6ICAKPiA+ID4gT24gRnJpLCAxNSBEZWMgMjAyMyAxNTozMTo1 NSArMDAwMAo+ID4gPiAiUnVzc2VsbCBLaW5nIChPcmFjbGUpIiA8bGludXhAYXJtbGludXgub3Jn LnVrPiB3cm90ZToKPiA+ID4gICAgIAo+ID4gPiA+IE9uIFRodSwgRGVjIDE0LCAyMDIzIGF0IDA3 OjM3OjEwUE0gKzAxMDAsIFJhZmFlbCBKLiBXeXNvY2tpIHdyb3RlOiAgICAKPiA+ID4gPiA+IE9u IFRodSwgRGVjIDE0LCAyMDIzIGF0IDc6MTbigK9QTSBSYWZhZWwgSi4gV3lzb2NraSA8cmFmYWVs QGtlcm5lbC5vcmc+IHdyb3RlOiAgICAgIAo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBPbiBUaHUs IERlYyAxNCwgMjAyMyBhdCA3OjEw4oCvUE0gUnVzc2VsbCBLaW5nIChPcmFjbGUpCj4gPiA+ID4g PiA+IDxsaW51eEBhcm1saW51eC5vcmcudWs+IHdyb3RlOiAgICAgIAo+ID4gPiA+ID4gPiA+IEkg Z3Vlc3Mgd2UgbmVlZCBzb21ldGhpbmcgbGlrZToKPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ ICAgICAgICAgaWYgKGRldmljZS0+c3RhdHVzLnByZXNlbnQpCj4gPiA+ID4gPiA+ID4gICAgICAg ICAgICAgICAgIHJldHVybiBkZXZpY2UtPmRldmljZV90eXBlICE9IEFDUElfQlVTX1RZUEVfUFJP Q0VTU09SIHx8Cj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2UtPnN0 YXR1cy5lbmFibGVkOwo+ID4gPiA+ID4gPiA+ICAgICAgICAgZWxzZQo+ID4gPiA+ID4gPiA+ICAg ICAgICAgICAgICAgICByZXR1cm4gZGV2aWNlLT5zdGF0dXMuZnVuY3Rpb25hbDsKPiA+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiA+IHNvIHdlIG9ubHkgY2hlY2sgZGV2aWNlLT5zdGF0dXMuZW5hYmxl ZCBmb3IgcHJvY2Vzc29yLXR5cGUgZGV2aWNlcz8gICAgICAKPiA+ID4gPiA+ID4KPiA+ID4gPiA+ ID4gWWVzLCBzb21ldGhpbmcgbGlrZSB0aGlzLiAgICAgIAo+ID4gPiA+ID4gCj4gPiA+ID4gPiBI b3dldmVyLCB0aGF0IGlzIG5vdCBzdWZmaWNpZW50LCBiZWNhdXNlIHRoZXJlIGFyZQo+ID4gPiA+ ID4gQUNQSV9CVVNfVFlQRV9ERVZJQ0UgZGV2aWNlcyByZXByZXNlbnRpbmcgcHJvY2Vzc29ycy4K PiA+ID4gPiA+IAo+ID4gPiA+ID4gSSdtIG5vdCBzdXJlIGFib3V0IGEgY2xlYW4gd2F5IHRvIGRv IGl0IEFUTS4gICAgICAKPiA+ID4gPiAKPiA+ID4gPiBPaywgaG93IGFib3V0Ogo+ID4gPiA+IAo+ ID4gPiA+IHN0YXRpYyBib29sIGFjcGlfZGV2X2lzX3Byb2Nlc3Nvcihjb25zdCBzdHJ1Y3QgYWNw aV9kZXZpY2UgKmRldmljZSkKPiA+ID4gPiB7Cj4gPiA+ID4gCXN0cnVjdCBhY3BpX2hhcmR3YXJl X2lkICpod2lkOwo+ID4gPiA+IAo+ID4gPiA+IAlpZiAoZGV2aWNlLT5kZXZpY2VfdHlwZSA9PSBB Q1BJX0JVU19UWVBFX1BST0NFU1NPUikKPiA+ID4gPiAJCXJldHVybiB0cnVlOwo+ID4gPiA+IAo+ ID4gPiA+IAlpZiAoZGV2aWNlLT5kZXZpY2VfdHlwZSAhPSBBQ1BJX0JVU19UWVBFX0RFVklDRSkK PiA+ID4gPiAJCXJldHVybiBmYWxzZTsKPiA+ID4gPiAKPiA+ID4gPiAJbGlzdF9mb3JfZWFjaF9l bnRyeShod2lkLCAmZGV2aWNlLT5wbnAuaWRzLCBsaXN0KQo+ID4gPiA+IAkJaWYgKCFzdHJjbXAo QUNQSV9QUk9DRVNTT1JfT0JKRUNUX0hJRCwgaHdpZC0+aWQpIHx8Cj4gPiA+ID4gCQkgICAgIXN0 cmNtcChBQ1BJX1BST0NFU1NPUl9ERVZJQ0VfSElELCBod2lkLT5pZCkpCj4gPiA+ID4gCQkJcmV0 dXJuIHRydWU7Cj4gPiA+ID4gCj4gPiA+ID4gCXJldHVybiBmYWxzZTsKPiA+ID4gPiB9Cj4gPiA+ ID4gCj4gPiA+ID4gYW5kIHRoZW46Cj4gPiA+ID4gCj4gPiA+ID4gCWlmIChkZXZpY2UtPnN0YXR1 cy5wcmVzZW50KQo+ID4gPiA+IAkJcmV0dXJuICFhY3BpX2Rldl9pc19wcm9jZXNzb3IoZGV2aWNl KSB8fCBkZXZpY2UtPnN0YXR1cy5lbmFibGVkOwo+ID4gPiA+IAllbHNlCj4gPiA+ID4gCQlyZXR1 cm4gZGV2aWNlLT5zdGF0dXMuZnVuY3Rpb25hbDsKPiA+ID4gPiAKPiA+ID4gPiA/Cj4gPiA+ID4g ICAgIAo+ID4gPiBDaGFuZ2luZyBpdCB0byBDUFUgb25seSBmb3Igbm93IG1ha2VzIHNlbnNlIHRv IG1lIGFuZCBJIHRoaW5rIHRoaXMgY29kZSBzbmlwcGV0IHNob3VsZCBkbyB0aGUKPiA+ID4gam9i LiAgTmljZSBhbmQgc2ltcGxlLiAgICAKPiA+IAo+ID4gV2VsbCwgZXhjZXB0IHRoYXQgaXQgZG9l cyBjaGVja3MgdGhhdCBhcmUgZG9uZSBlbHNld2hlcmUgc2xpZ2h0bHkKPiA+IGRpZmZlcmVudGx5 LCB3aGljaCBmcm9tIHRoZSBtYWludGVuYW5jZSBQT1YgaXMgbm90IG5pY2UuCj4gPiAKPiA+IE1h eWJlIHNvbWV0aGluZyBsaWtlIHRoZSBhcHBlbmRlZCBwYXRjaCAodW50ZXN0ZWQpLiAgCj4gCj4g SGkgUmFmYWVsLAo+IAo+IEFzIGZhciBhcyBJIGNhbiBzZWUgdGhhdCdzIGZ1bmN0aW9uYWxseSBl cXVpdmFsZW50LCBzbyBsb29rcyBnb29kIHRvIG1lLgo+IEknbSBub3Qgc2V0IHVwIHRvIHRlc3Qg dGhpcyB0b2RheSB0aG91Z2gsIHNvIHdpbGwgZGVmZXIgdG8gUnVzc2VsbCBvbiB3aGV0aGVyCj4g dGhlcmUgaXMgYW55dGhpbmcgbWlzc2luZwo+IAo+IFRoYW5rcyBmb3IgcHV0dGluZyB0aGlzIHRv Z2V0aGVyLgoKVGhpcyBpcyByYXRoZXIgZW1iYXJyYXNzaW5nLi4uCgpJIHNwYW4gdGhpcyB1cCBv biBhIFFFTVUgaW5zdGFuY2Ugd2l0aCBzb21lIHByaW50cyB0byBmaW5kIG91dCB3ZSBuZWVkCnRo ZSAhYWNwaV9kZXZpY2VfaXNfcHJvY2Vzc29yKCkgcmVzdHJpY3Rpb24uCk9uIG15ICdyYW5kb20n IHRlc3Qgc2V0dXAgaXQgZmFpbHMgb24gb25lIGRldmljZS4gQUNQSTAwMTcgLSB3aGljaCBJCmhh cHBlbiB0byBrbm93IHJhdGhlciB3ZWxsLiBJdCdzIHRoZSB3ZWlyZCBwc2V1ZG8gZGV2aWNlIHRo YXQgbGV0cwphIENYTCBhd2FyZSBPUyBrbm93IHRoZXJlIGlzIGEgQ0VEVCB0YWJsZSB0byBwcm9i ZS4KCldoaWxzdCBJIHJlYWxseSBkb24ndCBsaWtlIHRoYXQgaGFjayAoaXQgaXMgYWxsIGFib3V0 IG1ha2luZyBzb2Z0d2FyZQpkaXN0cmlidXRpb24gb2Ygb3V0IG9mIHRyZWUgbW9kdWxlcyBlYXNp ZXIgcmF0aGVyIHRoYW4gc29tZXRoaW5nCmZ1bmRhbWVudGFsKSwgSSdtIHRoZSBDWEwgUUVNVSBt YWludGFpbmVyIDooCgpXaWxsIGZpeCB0aGF0LCBidXQgaXQgc2hvd3MgdGhlcmUgaXMgYXQgbGVh c3Qgb25lIGJyb2tlbiBmaXJtd2FyZSBvdXQKdGhlcmUuCgpPbiBwbHVzIHNpZGUsIFJhZmFlbCdz IGNvZGUgc2VlbXMgdG8gd29yayBhcyBleHBlY3RlZCBhbmQgbGV0cyB0aGF0CmJ1Z2d5IGZpcndt YXJlIGNhcnJ5IG9uIHdvcmtpbmcgOikgU28gbGV0cyBwcmV0ZW5kIHRoZSBidWcgaW4gcWVtdQpp cyBhIGRlbGliZXJhdGUgdGVzdCBjYXNlIQoKSm9uYXRoYW4KCnAucy4gTXkgdGVzdCBzZXR1cCBi bG93cyB1cCBsYXRlciBmb3IgYW4gdW5yZWxhdGVkIHJlYXNvbiB3aXRoIGxhdGVzdAprZXJuZWws IHNvIEknbGwgYmUgb2ZmIGRlYnVnZ2luZyB0aGF0IGZvciBhIHdoaWxlIDooCgoKPiAKPiBKb25h dGhhbgo+IAo+ID4gCj4gPiAtLS0KPiA+ICBkcml2ZXJzL2FjcGkvYWNwaV9wcm9jZXNzb3IuYyB8 ICAgMTEgKysrKysrKysrKysKPiA+ICBkcml2ZXJzL2FjcGkvaW50ZXJuYWwuaCAgICAgICB8ICAg IDMgKysrCj4gPiAgZHJpdmVycy9hY3BpL3NjYW4uYyAgICAgICAgICAgfCAgIDI0ICsrKysrKysr KysrKysrKysrKysrKysrLQo+ID4gIDMgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0aW9ucygrKSwg MSBkZWxldGlvbigtKQo+ID4gCj4gPiBJbmRleDogbGludXgtcG0vZHJpdmVycy9hY3BpL2FjcGlf cHJvY2Vzc29yLmMKPiA+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiA+IC0tLSBsaW51eC1wbS5vcmlnL2RyaXZlcnMv YWNwaS9hY3BpX3Byb2Nlc3Nvci5jCj4gPiArKysgbGludXgtcG0vZHJpdmVycy9hY3BpL2FjcGlf cHJvY2Vzc29yLmMKPiA+IEBAIC02NDQsNiArNjQ0LDE3IEBAIHN0YXRpYyBzdHJ1Y3QgYWNwaV9z Y2FuX2hhbmRsZXIgcHJvY2Vzc28KPiA+ICAJfSwKPiA+ICB9Owo+ID4gIAo+ID4gK2Jvb2wgYWNw aV9kZXZpY2VfaXNfcHJvY2Vzc29yKGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZSAqYWRldikKPiA+ ICt7Cj4gPiArCWlmIChhZGV2LT5kZXZpY2VfdHlwZSA9PSBBQ1BJX0JVU19UWVBFX1BST0NFU1NP UikKPiA+ICsJCXJldHVybiB0cnVlOwo+ID4gKwo+ID4gKwlpZiAoYWRldi0+ZGV2aWNlX3R5cGUg IT0gQUNQSV9CVVNfVFlQRV9ERVZJQ0UpCj4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiArCj4gPiAr CXJldHVybiBhY3BpX3NjYW5fY2hlY2tfaGFuZGxlcihhZGV2LCAmcHJvY2Vzc29yX2hhbmRsZXIp Owo+ID4gK30KPiA+ICsKPiA+ICBzdGF0aWMgaW50IGFjcGlfcHJvY2Vzc29yX2NvbnRhaW5lcl9h dHRhY2goc3RydWN0IGFjcGlfZGV2aWNlICpkZXYsCj4gPiAgCQkJCQkgICBjb25zdCBzdHJ1Y3Qg YWNwaV9kZXZpY2VfaWQgKmlkKQo+ID4gIHsKPiA+IEluZGV4OiBsaW51eC1wbS9kcml2ZXJzL2Fj cGkvaW50ZXJuYWwuaAo+ID4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo+ID4gLS0tIGxpbnV4LXBtLm9yaWcvZHJpdmVy cy9hY3BpL2ludGVybmFsLmgKPiA+ICsrKyBsaW51eC1wbS9kcml2ZXJzL2FjcGkvaW50ZXJuYWwu aAo+ID4gQEAgLTYyLDYgKzYyLDggQEAgdm9pZCBhY3BpX3N5c2ZzX2FkZF9ob3RwbHVnX3Byb2Zp bGUoc3RydQo+ID4gIGludCBhY3BpX3NjYW5fYWRkX2hhbmRsZXJfd2l0aF9ob3RwbHVnKHN0cnVj dCBhY3BpX3NjYW5faGFuZGxlciAqaGFuZGxlciwKPiA+ICAJCQkJICAgICAgIGNvbnN0IGNoYXIg KmhvdHBsdWdfcHJvZmlsZV9uYW1lKTsKPiA+ICB2b2lkIGFjcGlfc2Nhbl9ob3RwbHVnX2VuYWJs ZWQoc3RydWN0IGFjcGlfaG90cGx1Z19wcm9maWxlICpob3RwbHVnLCBib29sIHZhbCk7Cj4gPiAr Ym9vbCBhY3BpX3NjYW5fY2hlY2tfaGFuZGxlcihjb25zdCBzdHJ1Y3QgYWNwaV9kZXZpY2UgKmFk ZXYsCj4gPiArCQkJICAgICBzdHJ1Y3QgYWNwaV9zY2FuX2hhbmRsZXIgKmhhbmRsZXIpOwo+ID4g IAo+ID4gICNpZmRlZiBDT05GSUdfREVCVUdfRlMKPiA+ICBleHRlcm4gc3RydWN0IGRlbnRyeSAq YWNwaV9kZWJ1Z2ZzX2RpcjsKPiA+IEBAIC0xMzMsNiArMTM1LDcgQEAgaW50IGFjcGlfYnVzX3Jl Z2lzdGVyX2Vhcmx5X2RldmljZShpbnQgdAo+ID4gIGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZSAq YWNwaV9jb21wYW5pb25fbWF0Y2goY29uc3Qgc3RydWN0IGRldmljZSAqZGV2KTsKPiA+ICBpbnQg X19hY3BpX2RldmljZV91ZXZlbnRfbW9kYWxpYXMoY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlICph ZGV2LAo+ID4gIAkJCQkgIHN0cnVjdCBrb2JqX3VldmVudF9lbnYgKmVudik7Cj4gPiArYm9vbCBh Y3BpX2RldmljZV9pc19wcm9jZXNzb3IoY29uc3Qgc3RydWN0IGFjcGlfZGV2aWNlICphZGV2KTsK PiA+ICAKPiA+ICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQb3dlciBSZXNvdXJjZQo+ID4gSW5kZXg6IGxpbnV4LXBtL2RyaXZlcnMv YWNwaS9zY2FuLmMKPiA+ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiA+IC0tLSBsaW51eC1wbS5vcmlnL2RyaXZlcnMv YWNwaS9zY2FuLmMKPiA+ICsrKyBsaW51eC1wbS9kcml2ZXJzL2FjcGkvc2Nhbi5jCj4gPiBAQCAt MTkzOCw2ICsxOTM4LDE5IEBAIHN0YXRpYyBib29sIGFjcGlfc2Nhbl9oYW5kbGVyX21hdGNoaW5n KHMKPiA+ICAJcmV0dXJuIGZhbHNlOwo+ID4gIH0KPiA+ICAKPiA+ICtib29sIGFjcGlfc2Nhbl9j aGVja19oYW5kbGVyKGNvbnN0IHN0cnVjdCBhY3BpX2RldmljZSAqYWRldiwKPiA+ICsJCQkgICAg IHN0cnVjdCBhY3BpX3NjYW5faGFuZGxlciAqaGFuZGxlcikKPiA+ICt7Cj4gPiArCXN0cnVjdCBh Y3BpX2hhcmR3YXJlX2lkICpod2lkOwo+ID4gKwo+ID4gKwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGh3 aWQsICZhZGV2LT5wbnAuaWRzLCBsaXN0KSB7Cj4gPiArCQlpZiAoYWNwaV9zY2FuX2hhbmRsZXJf bWF0Y2hpbmcoaGFuZGxlciwgaHdpZC0+aWQsIE5VTEwpKQo+ID4gKwkJCXJldHVybiB0cnVlOwo+ ID4gKwl9Cj4gPiArCj4gPiArCXJldHVybiBmYWxzZTsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGlj IHN0cnVjdCBhY3BpX3NjYW5faGFuZGxlciAqYWNwaV9zY2FuX21hdGNoX2hhbmRsZXIoY29uc3Qg Y2hhciAqaWRzdHIsCj4gPiAgCQkJCQljb25zdCBzdHJ1Y3QgYWNwaV9kZXZpY2VfaWQgKiptYXRj aGlkKQo+ID4gIHsKPiA+IEBAIC0yNDEwLDcgKzI0MjMsMTYgQEAgYm9vbCBhY3BpX2Rldl9yZWFk eV9mb3JfZW51bWVyYXRpb24oY29ucwo+ID4gIAlpZiAoZGV2aWNlLT5mbGFncy5ob25vcl9kZXBz ICYmIGRldmljZS0+ZGVwX3VubWV0KQo+ID4gIAkJcmV0dXJuIGZhbHNlOwo+ID4gIAo+ID4gLQly ZXR1cm4gYWNwaV9kZXZpY2VfaXNfcHJlc2VudChkZXZpY2UpOwo+ID4gKwlpZiAoZGV2aWNlLT5z dGF0dXMuZnVuY3Rpb25hbCkKPiA+ICsJCXJldHVybiB0cnVlOwo+ID4gKwo+ID4gKwlpZiAoIWRl dmljZS0+c3RhdHVzLnByZXNlbnQpCj4gPiArCQlyZXR1cm4gZmFsc2U7Cj4gPiArCj4gPiArCWlm IChkZXZpY2UtPnN0YXR1cy5lbmFibGVkKQo+ID4gKwkJcmV0dXJuIHRydWU7IC8qIEZhc3QgcGF0 aC4gKi8KPiA+ICsKPiA+ICsJcmV0dXJuICFhY3BpX2RldmljZV9pc19wcm9jZXNzb3IoZGV2aWNl KTsKPiA+ICB9Cj4gPiAgRVhQT1JUX1NZTUJPTF9HUEwoYWNwaV9kZXZfcmVhZHlfZm9yX2VudW1l cmF0aW9uKTsKPiA+ICAKPiA+IAo+ID4gCj4gPiAgIAo+IAo+IAo+IF9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gbGludXgtYXJtLWtlcm5lbCBtYWlsaW5n IGxpc3QKPiBsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKPiBodHRwOi8vbGlz dHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwKCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2Vy bmVsIG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0 cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVs Cg==