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 X-Spam-Level: X-Spam-Status: No, score=-7.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 00EE1C433ED for ; Mon, 19 Apr 2021 02:55:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C3E0961008 for ; Mon, 19 Apr 2021 02:55:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232324AbhDSC4V (ORCPT ); Sun, 18 Apr 2021 22:56:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34902 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229845AbhDSC4U (ORCPT ); Sun, 18 Apr 2021 22:56:20 -0400 Received: from mail-lj1-x229.google.com (mail-lj1-x229.google.com [IPv6:2a00:1450:4864:20::229]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1CCC7C06174A for ; Sun, 18 Apr 2021 19:55:51 -0700 (PDT) Received: by mail-lj1-x229.google.com with SMTP id a5so641134ljk.0 for ; Sun, 18 Apr 2021 19:55:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=qd/yXQAnNmWhACo+8fVhgtz40BtwSFB9zrVnZViVRO8=; b=gtjr8gcNr26kZ1CsfgkVIw3RTMLODTi9h87JQUJJVFZkSHETRuQelo7d6XQbZdAmmi o8SDHJQ93LDtFoP2Rm/A5DlRrcygdr/TJOnch8FNRimOVvn/a4YUHCyJlqUBr+DV5e9h Dx8A/h8akMoB2kPWiEvzZuirIbc8A/SFypJmMp38q1iBfOl8iKgJXVItvQ1lb9zh8uWy 4HXNuPpo47Gz5ilPj+ZMJFnb02hy4xULoIKYg3Jpv/jZHS0nWB5vKcn+zS0deHZbmmI8 Lxo/0fafzBmvtPOQQWp1YmZiPowFpGhqsIv1tW6uukuvb9VGbcbx2zeEjNwHV3uxeScK NqCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=qd/yXQAnNmWhACo+8fVhgtz40BtwSFB9zrVnZViVRO8=; b=LRRyAFP44Yo5j4u1/mWVbTkfHXo0Qj11rDfpzCaUwDofcF2lhCvK9jPPxnt0ZijZEM MhXXipugumlh8MOYoP2eZ0mRVh8xlInZeWlvk5uj7e/z2MPRA6AlznntiAktcnSiDX7l 3hg2jnqum5Y9zzTs48dfgkgloUvTjzmT23A0XZzAHhiFotSn6DbxLOAA3hoIx5l4tA43 bFxA/UrA/iznZpX+URoMSF0zVrBSeAjIbc7NRYxio59w9cHdORMp27XMAO/ODLZSNuhg WzFlenqeRnEdpJb92urNI9FLSPwVk7N2vvH/FGBBObW5xgNiy4hsq/c77jVuuLtdJh2u JswQ== X-Gm-Message-State: AOAM532qpJeA47eSpwwTR1FacxP9gvkGZ2LYTgudbSmtNKHee61RsS/+ yivVyzb6zvYowHNtPOa7oKfJHtRftFbTGNaiw7o= X-Google-Smtp-Source: ABdhPJxlpL6k3l3ULS+LH3sJREWlKCdtG0CsGJHRecaAhcq+5zmQ0OCLwYzEsEJXNkWeZFqcqfcKE9ELVfwgLVAr6f4= X-Received: by 2002:a2e:b4f2:: with SMTP id s18mr10048751ljm.138.1618800949482; Sun, 18 Apr 2021 19:55:49 -0700 (PDT) MIME-Version: 1.0 References: <20210414122326.5255-1-ruifeng.zhang0110@gmail.com> <8735vrmnc7.mognet@arm.com> <87wnt2lglo.mognet@arm.com> <44ab835f-3456-6bd9-97e9-5936cf5372da@arm.com> <2a4efeea-cc70-ca0a-81fd-84d8b54586c0@arm.com> In-Reply-To: <2a4efeea-cc70-ca0a-81fd-84d8b54586c0@arm.com> From: Ruifeng Zhang Date: Mon, 19 Apr 2021 10:55:14 +0800 Message-ID: Subject: Re: [PATCH v2 0/1] arm: topology: parse the topology from the dt To: Dietmar Eggemann Cc: Valentin Schneider , linux@armlinux.org.uk, sudeep.holla@arm.com, Greg KH , "Rafael J. Wysocki" , a.p.zijlstra@chello.nl, mingo@kernel.org, ruifeng.zhang1@unisoc.com, nianfu.bai@unisoc.com, linux-arm-kernel@lists.infradead.org, Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Dietmar Eggemann =E4=BA=8E2021=E5=B9=B44=E6=9C= =8817=E6=97=A5=E5=91=A8=E5=85=AD =E4=B8=8A=E5=8D=881:00=E5=86=99=E9=81=93= =EF=BC=9A > > On 16/04/2021 13:04, Ruifeng Zhang wrote: > > Dietmar Eggemann =E4=BA=8E2021=E5=B9=B44=E6= =9C=8816=E6=97=A5=E5=91=A8=E4=BA=94 =E4=B8=8B=E5=8D=886:39=E5=86=99=E9=81= =93=EF=BC=9A > >> > >> On 16/04/2021 11:32, Valentin Schneider wrote: > >>> On 16/04/21 15:47, Ruifeng Zhang wrote: > > [...] > > >> I'm confused. Do you have the MT bit set to 1 then? So the issue that > >> the mpidr handling in arm32's store_cpu_topology() is not correct does > >> not exist? > > > > I have reconfirmed it, the MT bit has been set to 1. I am sorry for > > the previous messages. > > The mpidr parse by store_cpu_topology is correct, at least for the sc98= 63a. > > Nice! This is sorted then. > > [...] > > >> Is this what you need for your arm32 kernel system? Adding the > >> possibility to parse cpu-map to create Phantom Domains? > > > > Yes, I need parse DT cpu-map to create different Phantom Domains. > > With it, the dts should be change to: > > cpu-map { > > cluster0 { > > core0 { > > cpu =3D <&CPU0>; > > }; > > core1 { > > cpu =3D <&CPU1>; > > }; > > core2 { > > cpu =3D <&CPU2>; > > }; > > core3 { > > cpu =3D <&CPU3>; > > }; > > }; > > > > cluster1 { > > core0 { > > cpu =3D <&CPU4>; > > }; > > core1 { > > cpu =3D <&CPU5>; > > }; > > core2 { > > cpu =3D <&CPU6>; > > }; > > core3 { > > cpu =3D <&CPU7>; > > }; > > }; > > }; > > > > I'm afraid that this is now a much weaker case to get this into > mainline. But it's still a problem and it's not break the original logic ( parse topology from MPIDR or parse capacity ), only add the support for parse topology from DT. I think it should still be merged into the mainline. If don't, the DynamIQ SoC has some issue in sched and cpufreq. > > I'm able to run with an extra cpu-map entry: Great. > > diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts b/arch/arm/boot/d= ts/vexpress-v2p-ca15_a7.dts > index 012d40a7228c..f60d9b448253 100644 > --- a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts > +++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts > @@ -35,6 +35,29 @@ cpus { > #address-cells =3D <1>; > #size-cells =3D <0>; > > + cpu-map { > + cluster0 { > + core0 { > + cpu =3D <&cpu0>; > + }; > + core1 { > + cpu =3D <&cpu1>; > + }; > + }; > + > + cluster1 { > + core0 { > + cpu =3D <&cpu2>; > + }; > + core1 { > + cpu =3D <&cpu3>; > + }; > + core2 { > + cpu =3D <&cpu4>; > + }; > + }; > + }; > + > cpu0: cpu@0 { > > a condensed version (see below) of your patch on my Arm32 TC2. > The move of update_cpu_capacity() in store_cpu_topology() is only > necessary when I use the old clock-frequency based cpu_efficiency > approach for asymmetric CPU capacity (TC2 is a15/a7): > > diff --git a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts b/arch/arm/boot/d= ts/vexpress-v2p-ca15_a7.dts > index f60d9b448253..e0679cca40ed 100644 > --- a/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts > +++ b/arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts > @@ -64,7 +64,7 @@ cpu0: cpu@0 { > reg =3D <0>; > cci-control-port =3D <&cci_control1>; > cpu-idle-states =3D <&CLUSTER_SLEEP_BIG>; > - capacity-dmips-mhz =3D <1024>; > + clock-frequency =3D <1000000000>; > dynamic-power-coefficient =3D <990>; > }; > > @@ -74,7 +74,7 @@ cpu1: cpu@1 { > reg =3D <1>; > cci-control-port =3D <&cci_control1>; > cpu-idle-states =3D <&CLUSTER_SLEEP_BIG>; > - capacity-dmips-mhz =3D <1024>; > + clock-frequency =3D <1000000000>; > dynamic-power-coefficient =3D <990>; > }; > > @@ -84,7 +84,7 @@ cpu2: cpu@2 { > reg =3D <0x100>; > cci-control-port =3D <&cci_control2>; > cpu-idle-states =3D <&CLUSTER_SLEEP_LITTLE>; > - capacity-dmips-mhz =3D <516>; > + clock-frequency =3D <800000000>; > dynamic-power-coefficient =3D <133>; > }; > > @@ -94,7 +94,7 @@ cpu3: cpu@3 { > reg =3D <0x101>; > cci-control-port =3D <&cci_control2>; > cpu-idle-states =3D <&CLUSTER_SLEEP_LITTLE>; > - capacity-dmips-mhz =3D <516>; > + clock-frequency =3D <800000000>; > dynamic-power-coefficient =3D <133>; > }; > > @@ -104,7 +104,7 @@ cpu4: cpu@4 { > reg =3D <0x102>; > cci-control-port =3D <&cci_control2>; > cpu-idle-states =3D <&CLUSTER_SLEEP_LITTLE>; > - capacity-dmips-mhz =3D <516>; > + clock-frequency =3D <800000000>; > dynamic-power-coefficient =3D <133>; > }; > > > > diff --git a/arch/arm/kernel/topology.c b/arch/arm/kernel/topology.c > index ef0058de432b..bff56c12c3a6 100644 > --- a/arch/arm/kernel/topology.c > +++ b/arch/arm/kernel/topology.c > @@ -82,7 +82,7 @@ static bool cap_from_dt =3D true; > * 'average' CPU is of middle capacity. Also see the comments near > * table_efficiency[] and update_cpu_capacity(). > */ > -static void __init parse_dt_topology(void) > +static void __init get_coretype_capacity(void) > { > const struct cpu_efficiency *cpu_eff; > struct device_node *cn =3D NULL; > @@ -173,7 +173,7 @@ static void update_cpu_capacity(unsigned int cpu) > } > > #else > -static inline void parse_dt_topology(void) {} > +static inline void get_coretype_capacity(void) {} > static inline void update_cpu_capacity(unsigned int cpuid) {} > #endif > > @@ -221,14 +221,13 @@ void store_cpu_topology(unsigned int cpuid) > cpuid_topo->package_id =3D -1; > } > > - update_cpu_capacity(cpuid); > - > pr_info("CPU%u: thread %d, cpu %d, socket %d, mpidr %x\n", > cpuid, cpu_topology[cpuid].thread_id, > cpu_topology[cpuid].core_id, > cpu_topology[cpuid].package_id, mpidr); > > topology_populated: > + update_cpu_capacity(cpuid); Agree, it's more better than mine. > update_siblings_masks(cpuid); > } > > @@ -241,5 +240,6 @@ void __init init_cpu_topology(void) > reset_cpu_topology(); > smp_wmb(); > > + get_coretype_capacity(); > parse_dt_topology(); > } > diff --git a/drivers/base/arch_topology.c b/drivers/base/arch_topology.c > index de8587cc119e..a2335da28f2a 100644 > --- a/drivers/base/arch_topology.c > +++ b/drivers/base/arch_topology.c > @@ -295,7 +295,6 @@ static void parsing_done_workfn(struct work_struct *w= ork) > core_initcall(free_raw_capacity); > #endif > > -#if defined(CONFIG_ARM64) || defined(CONFIG_RISCV) It seems that the following functions are not defined on other CPU architectures now, so I agree to remove it. > /* > * This function returns the logic cpu number of the node. > * There are basically three kinds of return values: > @@ -441,7 +440,7 @@ static int __init parse_cluster(struct device_node *c= luster, int depth) > return 0; > } > > -static int __init parse_dt_topology(void) > +int __init parse_dt_topology(void) > { > struct device_node *cn, *map; > int ret =3D 0; > @@ -481,7 +480,6 @@ static int __init parse_dt_topology(void) > of_node_put(cn); > return ret; > } > -#endif > > /* > * cpu topology table > diff --git a/include/linux/arch_topology.h b/include/linux/arch_topology.= h > index 0f6cd6b73a61..cfa5a5072aa0 100644 > --- a/include/linux/arch_topology.h > +++ b/include/linux/arch_topology.h > @@ -66,6 +66,7 @@ extern struct cpu_topology cpu_topology[NR_CPUS]; > #define topology_llc_cpumask(cpu) (&cpu_topology[cpu].llc_sibling) > void init_cpu_topology(void); > void store_cpu_topology(unsigned int cpuid); > +int __init parse_dt_topology(void); > const struct cpumask *cpu_coregroup_mask(int cpu); > void update_siblings_masks(unsigned int cpu); > void remove_cpu_topology(unsigned int cpuid); Why do you keep the logic of topology_parse_cpu_capacity in arm get_coretype_capacity function? The capacity-dmips-mhz will be parsed by drivers/base/arch_topology.c as following: parse_dt_topology parse_cluster parse_core get_cpu_for_node topology_parse_cpu_capacity 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 X-Spam-Level: X-Spam-Status: No, score=-5.7 required=3.0 tests=BAYES_00,DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A6827C433B4 for ; Mon, 19 Apr 2021 02:57:40 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 25D1960E08 for ; Mon, 19 Apr 2021 02:57:40 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 25D1960E08 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; 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=lp3NCVGhexU7MEW1LU+dZnRg0Wxv07/2aNN58OCTeII=; b=IJhN93Y0VCYd6Hs7T+ylxHNaO 0SntBop97D5ysuAy58MDFtvY0JcSqbUrAVpo1EaieJdHxHnrGz+3AKcBLvoiB0wHr76rLJ2OGkkUG TJXZb3Q4jNkbvLhzl2fkHjHldvFvVuP/dbM7JX0S0zIF5JYM/eyql5+qnTXjHbrwjcz1xDGhTrKjg 28tBT8+zgZIAWFdjPTkySOQmIAAIYnAHFP4FGB7zZuavxLeqbzZoeayDY9ttfqwkfnYJNu8mMvwXA 9daT7XTfTFFJAxpFk2L2iZyj1jgCEivt6mjl1LsYGQYm3cE2XVLd301gvWA5r/lCCur5zaUCBF22X KinWMfr7w==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lYK4w-008ybb-OB; Mon, 19 Apr 2021 02:56:02 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lYK4s-008ybD-Jk for linux-arm-kernel@desiato.infradead.org; Mon, 19 Apr 2021 02:55:59 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Sender:Reply-To:Content-ID:Content-Description; bh=qd/yXQAnNmWhACo+8fVhgtz40BtwSFB9zrVnZViVRO8=; b=S5L8bszJZcXPoUCx4t84BE7Gn5 shq2d+d2aJRB5M7TYev6FxeK1j57/xVilu41efDZnTyMq48GSqu3F+Z6RMilnq2Y4PoU8K8ex8Dbv 6yzGvNmH/CStHUO6DJWRmWn+IWSFtkJ7QrmdlB4cuEC7U0N9piNpXm7FAfGnjIE9Mm++qbOsIHFQd PhSv+a5NwSgGuWgu1DJeglvOA88NJZIo0+aulau+h0WLJsH1GQkdxwtbQj0308pZ8EIS2/T6qC0KZ AUkiEXFp8NCDAiA/MjaLEHfebhv60Ol3PsqLFYDbUWbimJinKNBFNgVOFyyBrp9O4/Evz2aQZvKSe PpBwInAQ==; Received: from mail-lj1-x22d.google.com ([2a00:1450:4864:20::22d]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lYK4l-00Au1c-RV for linux-arm-kernel@lists.infradead.org; Mon, 19 Apr 2021 02:55:56 +0000 Received: by mail-lj1-x22d.google.com with SMTP id u4so37621622ljo.6 for ; Sun, 18 Apr 2021 19:55:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=qd/yXQAnNmWhACo+8fVhgtz40BtwSFB9zrVnZViVRO8=; b=gtjr8gcNr26kZ1CsfgkVIw3RTMLODTi9h87JQUJJVFZkSHETRuQelo7d6XQbZdAmmi o8SDHJQ93LDtFoP2Rm/A5DlRrcygdr/TJOnch8FNRimOVvn/a4YUHCyJlqUBr+DV5e9h Dx8A/h8akMoB2kPWiEvzZuirIbc8A/SFypJmMp38q1iBfOl8iKgJXVItvQ1lb9zh8uWy 4HXNuPpo47Gz5ilPj+ZMJFnb02hy4xULoIKYg3Jpv/jZHS0nWB5vKcn+zS0deHZbmmI8 Lxo/0fafzBmvtPOQQWp1YmZiPowFpGhqsIv1tW6uukuvb9VGbcbx2zeEjNwHV3uxeScK NqCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=qd/yXQAnNmWhACo+8fVhgtz40BtwSFB9zrVnZViVRO8=; b=P7eghI7SgDIybTalIhUOTkpzk6r95niCyfz8829v+qrkeNE4n2ZrYMdukXmW9V06O0 gV9f5tFvCjtq0fk//oRLcdrphFJWtmykrKhn/yig6WIf75ItWiwkKewbEEzPuwWi6Ar3 RK+9VGSx0iOQ7AsIUKSw4iQ+Kom0SsdkIYqN2CtXToQHW1wm3vYN37gUOb7puQ3V1G+X 1ElP+WJxV6RyZiJtxRZ6eAeEU6fQ3rF03JDWnTWXFZvX4Pzqnb0sD8oorsDCM86ZZKqg xGdrNhu+4/cFas15IrrkzaePLdfO223IYneQolFLAHn5dNMK51W5donp7sWU3QLodlrQ WqEg== X-Gm-Message-State: AOAM532khu0LKCn3ABflnPxKTa/JFwC9+IL8af2uvt2ouQGNTp66eYTr GgBrx5mMZ1f8V4UKqESDpYqg3yI1ELQVeScKUlhg+N/HSXiSEHEH X-Google-Smtp-Source: ABdhPJxlpL6k3l3ULS+LH3sJREWlKCdtG0CsGJHRecaAhcq+5zmQ0OCLwYzEsEJXNkWeZFqcqfcKE9ELVfwgLVAr6f4= X-Received: by 2002:a2e:b4f2:: with SMTP id s18mr10048751ljm.138.1618800949482; Sun, 18 Apr 2021 19:55:49 -0700 (PDT) MIME-Version: 1.0 References: <20210414122326.5255-1-ruifeng.zhang0110@gmail.com> <8735vrmnc7.mognet@arm.com> <87wnt2lglo.mognet@arm.com> <44ab835f-3456-6bd9-97e9-5936cf5372da@arm.com> <2a4efeea-cc70-ca0a-81fd-84d8b54586c0@arm.com> In-Reply-To: <2a4efeea-cc70-ca0a-81fd-84d8b54586c0@arm.com> From: Ruifeng Zhang Date: Mon, 19 Apr 2021 10:55:14 +0800 Message-ID: Subject: Re: [PATCH v2 0/1] arm: topology: parse the topology from the dt To: Dietmar Eggemann Cc: Valentin Schneider , linux@armlinux.org.uk, sudeep.holla@arm.com, Greg KH , "Rafael J. Wysocki" , a.p.zijlstra@chello.nl, mingo@kernel.org, ruifeng.zhang1@unisoc.com, nianfu.bai@unisoc.com, linux-arm-kernel@lists.infradead.org, Linux Kernel Mailing List X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210418_195551_938143_A4AB08AD X-CRM114-Status: GOOD ( 36.95 ) 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 RGlldG1hciBFZ2dlbWFubiA8ZGlldG1hci5lZ2dlbWFubkBhcm0uY29tPiDkuo4yMDIx5bm0NOac iDE35pel5ZGo5YWtIOS4iuWNiDE6MDDlhpnpgZPvvJoKPgo+IE9uIDE2LzA0LzIwMjEgMTM6MDQs IFJ1aWZlbmcgWmhhbmcgd3JvdGU6Cj4gPiBEaWV0bWFyIEVnZ2VtYW5uIDxkaWV0bWFyLmVnZ2Vt YW5uQGFybS5jb20+IOS6jjIwMjHlubQ05pyIMTbml6XlkajkupQg5LiL5Y2INjozOeWGmemBk++8 mgo+ID4+Cj4gPj4gT24gMTYvMDQvMjAyMSAxMTozMiwgVmFsZW50aW4gU2NobmVpZGVyIHdyb3Rl Ogo+ID4+PiBPbiAxNi8wNC8yMSAxNTo0NywgUnVpZmVuZyBaaGFuZyB3cm90ZToKPgo+IFsuLi5d Cj4KPiA+PiBJJ20gY29uZnVzZWQuIERvIHlvdSBoYXZlIHRoZSBNVCBiaXQgc2V0IHRvIDEgdGhl bj8gU28gdGhlIGlzc3VlIHRoYXQKPiA+PiB0aGUgbXBpZHIgaGFuZGxpbmcgaW4gYXJtMzIncyBz dG9yZV9jcHVfdG9wb2xvZ3koKSBpcyBub3QgY29ycmVjdCBkb2VzCj4gPj4gbm90IGV4aXN0Pwo+ ID4KPiA+IEkgaGF2ZSByZWNvbmZpcm1lZCBpdCwgdGhlIE1UIGJpdCBoYXMgYmVlbiBzZXQgdG8g MS4gSSBhbSBzb3JyeSBmb3IKPiA+IHRoZSBwcmV2aW91cyBtZXNzYWdlcy4KPiA+IFRoZSBtcGlk ciBwYXJzZSBieSBzdG9yZV9jcHVfdG9wb2xvZ3kgaXMgY29ycmVjdCwgYXQgbGVhc3QgZm9yIHRo ZSBzYzk4NjNhLgo+Cj4gTmljZSEgVGhpcyBpcyBzb3J0ZWQgdGhlbi4KPgo+IFsuLi5dCj4KPiA+ PiBJcyB0aGlzIHdoYXQgeW91IG5lZWQgZm9yIHlvdXIgYXJtMzIga2VybmVsIHN5c3RlbT8gQWRk aW5nIHRoZQo+ID4+IHBvc3NpYmlsaXR5IHRvIHBhcnNlIGNwdS1tYXAgdG8gY3JlYXRlIFBoYW50 b20gRG9tYWlucz8KPiA+Cj4gPiBZZXMsIEkgbmVlZCBwYXJzZSBEVCBjcHUtbWFwIHRvIGNyZWF0 ZSBkaWZmZXJlbnQgUGhhbnRvbSBEb21haW5zLgo+ID4gV2l0aCBpdCwgdGhlIGR0cyBzaG91bGQg YmUgY2hhbmdlIHRvOgo+ID4gICAgICAgICAgICAgICAgIGNwdS1tYXAgewo+ID4gICAgICAgICAg ICAgICAgICAgICAgICAgY2x1c3RlcjAgewo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjb3JlMCB7Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Y3B1ID0gPCZDUFUwPjsKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yZTEgewo+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdSA9IDwmQ1BVMT47Cj4gPiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIH07Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGNvcmUyIHsKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj cHUgPSA8JkNQVTI+Owo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Owo+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JlMyB7Cj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1ID0gPCZDUFUzPjsKPiA+ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfTsKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIH07Cj4g Pgo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgY2x1c3RlcjEgewo+ID4gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb3JlMCB7Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgY3B1ID0gPCZDUFU0PjsKPiA+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfTsKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yZTEgewo+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNwdSA9IDwmQ1BVNT47 Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07Cj4gPiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGNvcmUyIHsKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjcHUgPSA8JkNQVTY+Owo+ID4gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB9Owo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3JlMyB7Cj4g PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1ID0gPCZDUFU3PjsK PiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKPiA+ICAgICAgICAgICAgICAg ICAgICAgICAgIH07Cj4gPiAgICAgICAgICAgICAgICAgfTsKPiA+Cj4KPiBJJ20gYWZyYWlkIHRo YXQgdGhpcyBpcyBub3cgYSBtdWNoIHdlYWtlciBjYXNlIHRvIGdldCB0aGlzIGludG8KPiBtYWlu bGluZS4KCkJ1dCBpdCdzIHN0aWxsIGEgcHJvYmxlbSBhbmQgaXQncyBub3QgYnJlYWsgdGhlIG9y aWdpbmFsIGxvZ2ljICggcGFyc2UKdG9wb2xvZ3kgZnJvbSBNUElEUiBvciBwYXJzZSBjYXBhY2l0 eSApLCBvbmx5IGFkZCB0aGUgc3VwcG9ydCBmb3IKcGFyc2UgdG9wb2xvZ3kgZnJvbSBEVC4KSSB0 aGluayBpdCBzaG91bGQgc3RpbGwgYmUgbWVyZ2VkIGludG8gdGhlIG1haW5saW5lLiBJZiBkb24n dCwgdGhlCkR5bmFtSVEgU29DIGhhcyBzb21lIGlzc3VlIGluIHNjaGVkIGFuZCBjcHVmcmVxLgo+ Cj4gSSdtIGFibGUgdG8gcnVuIHdpdGggYW4gZXh0cmEgY3B1LW1hcCBlbnRyeToKCkdyZWF0Lgo+ Cj4gZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2Jvb3QvZHRzL3ZleHByZXNzLXYycC1jYTE1X2E3LmR0 cyBiL2FyY2gvYXJtL2Jvb3QvZHRzL3ZleHByZXNzLXYycC1jYTE1X2E3LmR0cwo+IGluZGV4IDAx MmQ0MGE3MjI4Yy4uZjYwZDliNDQ4MjUzIDEwMDY0NAo+IC0tLSBhL2FyY2gvYXJtL2Jvb3QvZHRz L3ZleHByZXNzLXYycC1jYTE1X2E3LmR0cwo+ICsrKyBiL2FyY2gvYXJtL2Jvb3QvZHRzL3ZleHBy ZXNzLXYycC1jYTE1X2E3LmR0cwo+IEBAIC0zNSw2ICszNSwyOSBAQCBjcHVzIHsKPiAgICAgICAg ICAgICAgICAgI2FkZHJlc3MtY2VsbHMgPSA8MT47Cj4gICAgICAgICAgICAgICAgICNzaXplLWNl bGxzID0gPDA+Owo+Cj4gKyAgICAgICAgICAgICAgIGNwdS1tYXAgewo+ICsgICAgICAgICAgICAg ICAgICAgICAgIGNsdXN0ZXIwIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv cmUwIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1ID0gPCZj cHUwPjsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07Cj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb3JlMSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNwdSA9IDwmY3B1MT47Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9Owo+ICsgICAgICAgICAgICAgICAgICAgICAgIH07Cj4gKwo+ICsgICAgICAgICAgICAg ICAgICAgICAgIGNsdXN0ZXIxIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv cmUwIHsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B1ID0gPCZj cHUyPjsKPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07Cj4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBjb3JlMSB7Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGNwdSA9IDwmY3B1Mz47Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB9Owo+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29yZTIgewo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHUgPSA8JmNwdTQ+Owo+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfTsKPiArICAgICAgICAgICAgICAgICAgICAgICB9 Owo+ICsgICAgICAgICAgICAgICB9Owo+ICsKPiAgICAgICAgICAgICAgICAgY3B1MDogY3B1QDAg ewo+Cj4gYSBjb25kZW5zZWQgdmVyc2lvbiAoc2VlIGJlbG93KSBvZiB5b3VyIHBhdGNoIG9uIG15 IEFybTMyIFRDMi4KPiBUaGUgbW92ZSBvZiB1cGRhdGVfY3B1X2NhcGFjaXR5KCkgaW4gc3RvcmVf Y3B1X3RvcG9sb2d5KCkgaXMgb25seQo+IG5lY2Vzc2FyeSB3aGVuIEkgdXNlIHRoZSBvbGQgY2xv Y2stZnJlcXVlbmN5IGJhc2VkIGNwdV9lZmZpY2llbmN5Cj4gYXBwcm9hY2ggZm9yIGFzeW1tZXRy aWMgQ1BVIGNhcGFjaXR5IChUQzIgaXMgYTE1L2E3KToKPgo+IGRpZmYgLS1naXQgYS9hcmNoL2Fy bS9ib290L2R0cy92ZXhwcmVzcy12MnAtY2ExNV9hNy5kdHMgYi9hcmNoL2FybS9ib290L2R0cy92 ZXhwcmVzcy12MnAtY2ExNV9hNy5kdHMKPiBpbmRleCBmNjBkOWI0NDgyNTMuLmUwNjc5Y2NhNDBl ZCAxMDA2NDQKPiAtLS0gYS9hcmNoL2FybS9ib290L2R0cy92ZXhwcmVzcy12MnAtY2ExNV9hNy5k dHMKPiArKysgYi9hcmNoL2FybS9ib290L2R0cy92ZXhwcmVzcy12MnAtY2ExNV9hNy5kdHMKPiBA QCAtNjQsNyArNjQsNyBAQCBjcHUwOiBjcHVAMCB7Cj4gICAgICAgICAgICAgICAgICAgICAgICAg cmVnID0gPDA+Owo+ICAgICAgICAgICAgICAgICAgICAgICAgIGNjaS1jb250cm9sLXBvcnQgPSA8 JmNjaV9jb250cm9sMT47Cj4gICAgICAgICAgICAgICAgICAgICAgICAgY3B1LWlkbGUtc3RhdGVz ID0gPCZDTFVTVEVSX1NMRUVQX0JJRz47Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgY2FwYWNp dHktZG1pcHMtbWh6ID0gPDEwMjQ+Owo+ICsgICAgICAgICAgICAgICAgICAgICAgIGNsb2NrLWZy ZXF1ZW5jeSA9IDwxMDAwMDAwMDAwPjsKPiAgICAgICAgICAgICAgICAgICAgICAgICBkeW5hbWlj LXBvd2VyLWNvZWZmaWNpZW50ID0gPDk5MD47Cj4gICAgICAgICAgICAgICAgIH07Cj4KPiBAQCAt NzQsNyArNzQsNyBAQCBjcHUxOiBjcHVAMSB7Cj4gICAgICAgICAgICAgICAgICAgICAgICAgcmVn ID0gPDE+Owo+ICAgICAgICAgICAgICAgICAgICAgICAgIGNjaS1jb250cm9sLXBvcnQgPSA8JmNj aV9jb250cm9sMT47Cj4gICAgICAgICAgICAgICAgICAgICAgICAgY3B1LWlkbGUtc3RhdGVzID0g PCZDTFVTVEVSX1NMRUVQX0JJRz47Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgY2FwYWNpdHkt ZG1pcHMtbWh6ID0gPDEwMjQ+Owo+ICsgICAgICAgICAgICAgICAgICAgICAgIGNsb2NrLWZyZXF1 ZW5jeSA9IDwxMDAwMDAwMDAwPjsKPiAgICAgICAgICAgICAgICAgICAgICAgICBkeW5hbWljLXBv d2VyLWNvZWZmaWNpZW50ID0gPDk5MD47Cj4gICAgICAgICAgICAgICAgIH07Cj4KPiBAQCAtODQs NyArODQsNyBAQCBjcHUyOiBjcHVAMiB7Cj4gICAgICAgICAgICAgICAgICAgICAgICAgcmVnID0g PDB4MTAwPjsKPiAgICAgICAgICAgICAgICAgICAgICAgICBjY2ktY29udHJvbC1wb3J0ID0gPCZj Y2lfY29udHJvbDI+Owo+ICAgICAgICAgICAgICAgICAgICAgICAgIGNwdS1pZGxlLXN0YXRlcyA9 IDwmQ0xVU1RFUl9TTEVFUF9MSVRUTEU+Owo+IC0gICAgICAgICAgICAgICAgICAgICAgIGNhcGFj aXR5LWRtaXBzLW1oeiA9IDw1MTY+Owo+ICsgICAgICAgICAgICAgICAgICAgICAgIGNsb2NrLWZy ZXF1ZW5jeSA9IDw4MDAwMDAwMDA+Owo+ICAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWMt cG93ZXItY29lZmZpY2llbnQgPSA8MTMzPjsKPiAgICAgICAgICAgICAgICAgfTsKPgo+IEBAIC05 NCw3ICs5NCw3IEBAIGNwdTM6IGNwdUAzIHsKPiAgICAgICAgICAgICAgICAgICAgICAgICByZWcg PSA8MHgxMDE+Owo+ICAgICAgICAgICAgICAgICAgICAgICAgIGNjaS1jb250cm9sLXBvcnQgPSA8 JmNjaV9jb250cm9sMj47Cj4gICAgICAgICAgICAgICAgICAgICAgICAgY3B1LWlkbGUtc3RhdGVz ID0gPCZDTFVTVEVSX1NMRUVQX0xJVFRMRT47Cj4gLSAgICAgICAgICAgICAgICAgICAgICAgY2Fw YWNpdHktZG1pcHMtbWh6ID0gPDUxNj47Cj4gKyAgICAgICAgICAgICAgICAgICAgICAgY2xvY2st ZnJlcXVlbmN5ID0gPDgwMDAwMDAwMD47Cj4gICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1p Yy1wb3dlci1jb2VmZmljaWVudCA9IDwxMzM+Owo+ICAgICAgICAgICAgICAgICB9Owo+Cj4gQEAg LTEwNCw3ICsxMDQsNyBAQCBjcHU0OiBjcHVANCB7Cj4gICAgICAgICAgICAgICAgICAgICAgICAg cmVnID0gPDB4MTAyPjsKPiAgICAgICAgICAgICAgICAgICAgICAgICBjY2ktY29udHJvbC1wb3J0 ID0gPCZjY2lfY29udHJvbDI+Owo+ICAgICAgICAgICAgICAgICAgICAgICAgIGNwdS1pZGxlLXN0 YXRlcyA9IDwmQ0xVU1RFUl9TTEVFUF9MSVRUTEU+Owo+IC0gICAgICAgICAgICAgICAgICAgICAg IGNhcGFjaXR5LWRtaXBzLW1oeiA9IDw1MTY+Owo+ICsgICAgICAgICAgICAgICAgICAgICAgIGNs b2NrLWZyZXF1ZW5jeSA9IDw4MDAwMDAwMDA+Owo+ICAgICAgICAgICAgICAgICAgICAgICAgIGR5 bmFtaWMtcG93ZXItY29lZmZpY2llbnQgPSA8MTMzPjsKPiAgICAgICAgICAgICAgICAgfTsKPgo+ Cj4KPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0va2VybmVsL3RvcG9sb2d5LmMgYi9hcmNoL2FybS9r ZXJuZWwvdG9wb2xvZ3kuYwo+IGluZGV4IGVmMDA1OGRlNDMyYi4uYmZmNTZjMTJjM2E2IDEwMDY0 NAo+IC0tLSBhL2FyY2gvYXJtL2tlcm5lbC90b3BvbG9neS5jCj4gKysrIGIvYXJjaC9hcm0va2Vy bmVsL3RvcG9sb2d5LmMKPiBAQCAtODIsNyArODIsNyBAQCBzdGF0aWMgYm9vbCBjYXBfZnJvbV9k dCA9IHRydWU7Cj4gICAqICdhdmVyYWdlJyBDUFUgaXMgb2YgbWlkZGxlIGNhcGFjaXR5LiBBbHNv IHNlZSB0aGUgY29tbWVudHMgbmVhcgo+ICAgKiB0YWJsZV9lZmZpY2llbmN5W10gYW5kIHVwZGF0 ZV9jcHVfY2FwYWNpdHkoKS4KPiAgICovCj4gLXN0YXRpYyB2b2lkIF9faW5pdCBwYXJzZV9kdF90 b3BvbG9neSh2b2lkKQo+ICtzdGF0aWMgdm9pZCBfX2luaXQgZ2V0X2NvcmV0eXBlX2NhcGFjaXR5 KHZvaWQpCj4gIHsKPiAgICAgICAgIGNvbnN0IHN0cnVjdCBjcHVfZWZmaWNpZW5jeSAqY3B1X2Vm ZjsKPiAgICAgICAgIHN0cnVjdCBkZXZpY2Vfbm9kZSAqY24gPSBOVUxMOwo+IEBAIC0xNzMsNyAr MTczLDcgQEAgc3RhdGljIHZvaWQgdXBkYXRlX2NwdV9jYXBhY2l0eSh1bnNpZ25lZCBpbnQgY3B1 KQo+ICB9Cj4KPiAgI2Vsc2UKPiAtc3RhdGljIGlubGluZSB2b2lkIHBhcnNlX2R0X3RvcG9sb2d5 KHZvaWQpIHt9Cj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBnZXRfY29yZXR5cGVfY2FwYWNpdHkodm9p ZCkge30KPiAgc3RhdGljIGlubGluZSB2b2lkIHVwZGF0ZV9jcHVfY2FwYWNpdHkodW5zaWduZWQg aW50IGNwdWlkKSB7fQo+ICAjZW5kaWYKPgo+IEBAIC0yMjEsMTQgKzIyMSwxMyBAQCB2b2lkIHN0 b3JlX2NwdV90b3BvbG9neSh1bnNpZ25lZCBpbnQgY3B1aWQpCj4gICAgICAgICAgICAgICAgIGNw dWlkX3RvcG8tPnBhY2thZ2VfaWQgPSAtMTsKPiAgICAgICAgIH0KPgo+IC0gICAgICAgdXBkYXRl X2NwdV9jYXBhY2l0eShjcHVpZCk7Cj4gLQo+ICAgICAgICAgcHJfaW5mbygiQ1BVJXU6IHRocmVh ZCAlZCwgY3B1ICVkLCBzb2NrZXQgJWQsIG1waWRyICV4XG4iLAo+ICAgICAgICAgICAgICAgICBj cHVpZCwgY3B1X3RvcG9sb2d5W2NwdWlkXS50aHJlYWRfaWQsCj4gICAgICAgICAgICAgICAgIGNw dV90b3BvbG9neVtjcHVpZF0uY29yZV9pZCwKPiAgICAgICAgICAgICAgICAgY3B1X3RvcG9sb2d5 W2NwdWlkXS5wYWNrYWdlX2lkLCBtcGlkcik7Cj4KPiAgdG9wb2xvZ3lfcG9wdWxhdGVkOgo+ICsg ICAgICAgdXBkYXRlX2NwdV9jYXBhY2l0eShjcHVpZCk7CgpBZ3JlZSwgaXQncyBtb3JlIGJldHRl ciB0aGFuIG1pbmUuCj4gICAgICAgICB1cGRhdGVfc2libGluZ3NfbWFza3MoY3B1aWQpOwo+ICB9 Cj4KPiBAQCAtMjQxLDUgKzI0MCw2IEBAIHZvaWQgX19pbml0IGluaXRfY3B1X3RvcG9sb2d5KHZv aWQpCj4gICAgICAgICByZXNldF9jcHVfdG9wb2xvZ3koKTsKPiAgICAgICAgIHNtcF93bWIoKTsK Pgo+ICsgICAgICAgZ2V0X2NvcmV0eXBlX2NhcGFjaXR5KCk7Cj4gICAgICAgICBwYXJzZV9kdF90 b3BvbG9neSgpOwo+ICB9Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvYmFzZS9hcmNoX3RvcG9sb2d5 LmMgYi9kcml2ZXJzL2Jhc2UvYXJjaF90b3BvbG9neS5jCj4gaW5kZXggZGU4NTg3Y2MxMTllLi5h MjMzNWRhMjhmMmEgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9iYXNlL2FyY2hfdG9wb2xvZ3kuYwo+ ICsrKyBiL2RyaXZlcnMvYmFzZS9hcmNoX3RvcG9sb2d5LmMKPiBAQCAtMjk1LDcgKzI5NSw2IEBA IHN0YXRpYyB2b2lkIHBhcnNpbmdfZG9uZV93b3JrZm4oc3RydWN0IHdvcmtfc3RydWN0ICp3b3Jr KQo+ICBjb3JlX2luaXRjYWxsKGZyZWVfcmF3X2NhcGFjaXR5KTsKPiAgI2VuZGlmCj4KPiAtI2lm IGRlZmluZWQoQ09ORklHX0FSTTY0KSB8fCBkZWZpbmVkKENPTkZJR19SSVNDVikKCkl0IHNlZW1z IHRoYXQgdGhlIGZvbGxvd2luZyBmdW5jdGlvbnMgYXJlIG5vdCBkZWZpbmVkIG9uIG90aGVyIENQ VQphcmNoaXRlY3R1cmVzIG5vdywgc28gSSBhZ3JlZSB0byByZW1vdmUgaXQuCj4gIC8qCj4gICAq IFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0aGUgbG9naWMgY3B1IG51bWJlciBvZiB0aGUgbm9kZS4K PiAgICogVGhlcmUgYXJlIGJhc2ljYWxseSB0aHJlZSBraW5kcyBvZiByZXR1cm4gdmFsdWVzOgo+ IEBAIC00NDEsNyArNDQwLDcgQEAgc3RhdGljIGludCBfX2luaXQgcGFyc2VfY2x1c3RlcihzdHJ1 Y3QgZGV2aWNlX25vZGUgKmNsdXN0ZXIsIGludCBkZXB0aCkKPiAgICAgICAgIHJldHVybiAwOwo+ ICB9Cj4KPiAtc3RhdGljIGludCBfX2luaXQgcGFyc2VfZHRfdG9wb2xvZ3kodm9pZCkKPiAraW50 IF9faW5pdCBwYXJzZV9kdF90b3BvbG9neSh2b2lkKQo+ICB7Cj4gICAgICAgICBzdHJ1Y3QgZGV2 aWNlX25vZGUgKmNuLCAqbWFwOwo+ICAgICAgICAgaW50IHJldCA9IDA7Cj4gQEAgLTQ4MSw3ICs0 ODAsNiBAQCBzdGF0aWMgaW50IF9faW5pdCBwYXJzZV9kdF90b3BvbG9neSh2b2lkKQo+ICAgICAg ICAgb2Zfbm9kZV9wdXQoY24pOwo+ICAgICAgICAgcmV0dXJuIHJldDsKPiAgfQo+IC0jZW5kaWYK Pgo+ICAvKgo+ICAgKiBjcHUgdG9wb2xvZ3kgdGFibGUKPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9s aW51eC9hcmNoX3RvcG9sb2d5LmggYi9pbmNsdWRlL2xpbnV4L2FyY2hfdG9wb2xvZ3kuaAo+IGlu ZGV4IDBmNmNkNmI3M2E2MS4uY2ZhNWE1MDcyYWEwIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGlu dXgvYXJjaF90b3BvbG9neS5oCj4gKysrIGIvaW5jbHVkZS9saW51eC9hcmNoX3RvcG9sb2d5LmgK PiBAQCAtNjYsNiArNjYsNyBAQCBleHRlcm4gc3RydWN0IGNwdV90b3BvbG9neSBjcHVfdG9wb2xv Z3lbTlJfQ1BVU107Cj4gICNkZWZpbmUgdG9wb2xvZ3lfbGxjX2NwdW1hc2soY3B1KSAgICAgICgm Y3B1X3RvcG9sb2d5W2NwdV0ubGxjX3NpYmxpbmcpCj4gIHZvaWQgaW5pdF9jcHVfdG9wb2xvZ3ko dm9pZCk7Cj4gIHZvaWQgc3RvcmVfY3B1X3RvcG9sb2d5KHVuc2lnbmVkIGludCBjcHVpZCk7Cj4g K2ludCBfX2luaXQgcGFyc2VfZHRfdG9wb2xvZ3kodm9pZCk7Cj4gIGNvbnN0IHN0cnVjdCBjcHVt YXNrICpjcHVfY29yZWdyb3VwX21hc2soaW50IGNwdSk7Cj4gIHZvaWQgdXBkYXRlX3NpYmxpbmdz X21hc2tzKHVuc2lnbmVkIGludCBjcHUpOwo+ICB2b2lkIHJlbW92ZV9jcHVfdG9wb2xvZ3kodW5z aWduZWQgaW50IGNwdWlkKTsKCldoeSBkbyB5b3Uga2VlcCB0aGUgbG9naWMgb2YgdG9wb2xvZ3lf cGFyc2VfY3B1X2NhcGFjaXR5IGluIGFybQpnZXRfY29yZXR5cGVfY2FwYWNpdHkgZnVuY3Rpb24/ IFRoZSBjYXBhY2l0eS1kbWlwcy1taHogd2lsbCBiZSBwYXJzZWQKYnkgZHJpdmVycy9iYXNlL2Fy Y2hfdG9wb2xvZ3kuYyBhcyBmb2xsb3dpbmc6CnBhcnNlX2R0X3RvcG9sb2d5CiAgICBwYXJzZV9j bHVzdGVyCiAgICAgICAgcGFyc2VfY29yZQogICAgICAgICAgICBnZXRfY3B1X2Zvcl9ub2RlCiAg ICAgICAgICAgICAgICB0b3BvbG9neV9wYXJzZV9jcHVfY2FwYWNpdHkKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGlu ZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK