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 DD01ECCD1A5 for ; Sun, 26 Oct 2025 14:50:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc: To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Ue9I/EQZfufXLjOyZFcJ/DZ1KJ5FB4+IbS7sciaL0Vk=; b=cbve5ormK/OZM0Zdxup/zEue8D 7raRsjPCrhPgo/jKlGOGsx2hJ/aaHrxZMCnyPPyu3c+A8uyMP+/RZcwb1cDl8uVOOlCdYb+JBYMw7 x2lBFCHgtDkJpsj2aflFB8YSmofx95CSq/IwDokIVyl0AZ2GH3KwfbnIvvnsIVIe2XWaYG/q+vVZr UxrA+I7QpGc0vK+AcHye+DqAhUktjDoOE/ydOO4mAPrDxXrAg2m1wUlnAb5Fb8KPDTlBvrqo5LVN6 WX6AoM/Rz79swkcvB620Jon6UOtXi0wcKFziefCvALAyUWnmLJJBRh2H6CYQHZj7ky7DjvCNROIjO QwYH+81w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vD24Q-0000000CRkh-2F9t; Sun, 26 Oct 2025 14:50:10 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vD24O-0000000CRjx-2PzY; Sun, 26 Oct 2025 14:50:09 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 6BE1D43E21; Sun, 26 Oct 2025 14:50:07 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E2703C116B1; Sun, 26 Oct 2025 14:50:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1761490207; bh=8cx012AHIyAVT81End9yKPY7nr1ogoBemutO1syf4RE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qJy7xLpubR4b7Vqt55wzHVVDjZa3qy3B3jW3frp8cVH339QiJPRQrf1X0JhMfytq5 MrPoqSEOAtCoC1QSgqRV7goA6JFuwPteYB7X2PoBZBF9LxK9wMBoCpWudq+5wzGGD+ MM3opFxrq+Kj+L3iPyv2tiy/VzWcvDHHqO7y6yWh3C+44DdfSWdbSk45SvSxONEN3Z 0ZDKHCQy145YxEUNjGqSQSYKD4OvIeuRnNFs7Gkiyrppb3dstnUv7pLGfoBpzow6I+ 83icfGhz5uYV93S89kajcbag6iSRLi79ALc6GL+X7BzlmTxkXkwj7IzdlRdQxTjMSj auhVbZU5urQdg== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Cc: Icenowy Zheng , Drew Fustini , Sasha Levin , guoren@kernel.org, wefu@redhat.com, matthias.bgg@gmail.com, angelogioacchino.delregno@collabora.com, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org Subject: [PATCH AUTOSEL 6.17] clk: thead: th1520-ap: set all AXI clocks to CLK_IS_CRITICAL Date: Sun, 26 Oct 2025 10:48:43 -0400 Message-ID: <20251026144958.26750-5-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251026144958.26750-1-sashal@kernel.org> References: <20251026144958.26750-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.17.5 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251026_075008_672669_A0A4CEA0 X-CRM114-Status: GOOD ( 14.26 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Icenowy Zheng [ Upstream commit c567bc5fc68c4388c00e11fc65fd14fe86b52070 ] The AXI crossbar of TH1520 has no proper timeout handling, which means gating AXI clocks can easily lead to bus timeout and thus system hang. Set all AXI clock gates to CLK_IS_CRITICAL. All these clock gates are ungated by default on system reset. In addition, convert all current CLK_IGNORE_UNUSED usage to CLK_IS_CRITICAL to prevent unwanted clock gating. Signed-off-by: Icenowy Zheng Reviewed-by: Drew Fustini Signed-off-by: Drew Fustini Signed-off-by: Sasha Levin --- LLM Generated explanations, may be completely bogus: ## Backport Recommendation **YES** - This commit should be backported to stable kernel trees. --- ## Executive Summary This commit fixes a critical system stability issue on TH1520 SoC-based systems (LicheePi 4A, BeagleV Ahead boards) by preventing AXI clock gating, which causes bus timeouts and system hangs due to a hardware limitation. The fix is small, localized, low-risk, and follows established kernel patterns. --- ## Detailed Analysis ### 1. Problem Description **Hardware Limitation**: The TH1520 SoC's AXI crossbar lacks proper timeout handling. When AXI clocks are gated, bus transactions can timeout indefinitely, causing complete system hangs. **User Impact**: Without this fix, users experience: - System hangs during boot (especially after "clk: Disabling unused clocks") - Unresponsive devices when accessing peripherals - Random freezes when the kernel's power-saving mechanisms gate AXI bus clocks ### 2. Code Changes Analysis The commit makes **44 lines of mechanical flag changes** in `drivers/clk/thead/clk-th1520-ap.c`: **Two types of changes:** 1. **Converting `0` → `CLK_IS_CRITICAL`** (15 clocks): - `axi4_cpusys2_aclk` (drivers/clk/thead/clk-th1520-ap.c:483) - `axi_aclk` (drivers/clk/thead/clk-th1520-ap.c:505) - `vi_clk` (drivers/clk/thead/clk-th1520-ap.c:685) - `vo_axi_clk` (drivers/clk/thead/clk-th1520-ap.c:710) - `aon2cpu_a2x_clk` (drivers/clk/thead/clk-th1520-ap.c:794) - `x2x_cpusys_clk` (drivers/clk/thead/clk-th1520-ap.c:796) - `npu_axi_clk` (drivers/clk/thead/clk-th1520-ap.c:813) - `cpu2vp_clk` (drivers/clk/thead/clk-th1520-ap.c:814) - `axi4_vo_aclk` (drivers/clk/thead/clk-th1520-ap.c:858) - `gpu_cfg_aclk` (drivers/clk/thead/clk-th1520-ap.c:862) - `x2h_dpu1_aclk` (drivers/clk/thead/clk-th1520-ap.c:894) - `x2h_dpu_aclk` (drivers/clk/thead/clk-th1520-ap.c:896) - `iopmp_dpu1_aclk` (drivers/clk/thead/clk-th1520-ap.c:906) - `iopmp_dpu_aclk` (drivers/clk/thead/clk-th1520-ap.c:908) - `iopmp_gpu_aclk` (drivers/clk/thead/clk-th1520-ap.c:910) 2. **Converting `CLK_IGNORE_UNUSED` → `CLK_IS_CRITICAL`** (7 clocks): - `apb_pclk` (drivers/clk/thead/clk-th1520-ap.c:654) - `vp_axi_clk` (drivers/clk/thead/clk-th1520-ap.c:735) - `cpu2aon_x2h_clk` (drivers/clk/thead/clk-th1520-ap.c:798) - `cpu2peri_x2h_clk` (drivers/clk/thead/clk-th1520-ap.c:800) - `perisys_apb1_hclk` (drivers/clk/thead/clk-th1520-ap.c:802) - `perisys_apb2_hclk` (drivers/clk/thead/clk-th1520-ap.c:804) - `perisys_apb3_hclk` (drivers/clk/thead/clk-th1520-ap.c:806) **Technical Significance**: - `CLK_IGNORE_UNUSED` (BIT(3)): Only prevents gating during initial cleanup - `CLK_IS_CRITICAL` (BIT(11)): Prevents gating at ALL times - enforced with WARN messages in clk core ### 3. Historical Context The TH1520 clock driver has a history of clock gating issues: **Timeline:** - **v6.11** (July 2024): Driver introduced (ae81b69fd2b1e) - **January 2025**: First fix added `CLK_IGNORE_UNUSED` to prevent boot hangs (037705e94bf6e) - Commit message: "Without this flag, the boot hangs after 'clk: Disabling unused clocks'" - **June 2025**: More bus clocks marked `CLK_IGNORE_UNUSED` (0370395d45ca6) - Fixed boot hangs with PVT thermal sensor and PWM controller - Documented that alternative solutions (simple-pm-bus) were not viable - **August 2025**: Current commit upgrades to `CLK_IS_CRITICAL` (c567bc5fc68c4) - Addresses root cause: AXI crossbar hardware limitation **Pattern**: Progressive escalation shows that `CLK_IGNORE_UNUSED` was insufficient, and the proper fix requires `CLK_IS_CRITICAL` to prevent ANY clock gating, not just initial cleanup. ### 4. Validation Against Kernel Patterns **Industry Standard Practice**: Using `CLK_IS_CRITICAL` for critical bus clocks is well-established: ```bash # Similar patterns found in: - drivers/clk/imx/clk-imx6q.c: mmdc_ch0_axi (CLK_IS_CRITICAL) - drivers/clk/imx/clk-imx6ul.c: axi (CLK_IS_CRITICAL) - drivers/clk/imx/clk-imx7d.c: main_axi_root_clk (CLK_IS_CRITICAL) - drivers/clk/imx/clk-imx93.c: wakeup_axi_root, nic_axi_root (CLK_IS_CRITICAL) - drivers/clk/npcm/clk-npcm7xx.c: axi (CLK_IS_CRITICAL) - drivers/clk/mediatek/: Multiple AXI/bus clocks (CLK_IS_CRITICAL) ``` This confirms the approach is not unusual and follows established best practices. ### 5. Risk Assessment **Risk of Backporting: VERY LOW** **Positive factors:** - ✅ Changes are purely flag modifications, no logic changes - ✅ Only affects TH1520 SoC (narrow hardware scope) - ✅ Change is conservative (prevents gating vs enabling new features) - ✅ Hardware defaults already have these clocks ungated - ✅ No dependencies on other commits - ✅ No follow-up fixes or reverts found - ✅ Follows kernel best practices - ✅ Small, contained change (44 lines, single file) **Potential side effects:** - ⚠️ Slightly higher power consumption (clocks stay enabled) - **Mitigated**: Hardware already leaves these ungated by default - **Acceptable**: Stability > minor power savings for critical infrastructure **Risk of NOT Backporting: HIGH** Users on stable kernels (v6.11+) will experience: - System hangs and freezes - Boot failures - Unresponsive peripherals - Unreliable systems ### 6. Backport Criteria Compliance | Criterion | Status | Details | |-----------|--------|---------| | **Fixes important bug** | ✅ YES | Fixes critical system hangs | | **Affects users** | ✅ YES | All TH1520 hardware users affected | | **Small and contained** | ✅ YES | 44 lines, single file, mechanical changes | | **No new features** | ✅ YES | Only prevents clock gating | | **No architectural changes** | ✅ YES | Simple flag changes | | **Minimal regression risk** | ✅ YES | Conservative change, hardware limitation | | **Confined to subsystem** | ✅ YES | Only affects TH1520 clock driver | | **Clear side effects** | ✅ YES | Slightly higher power (acceptable tradeoff) | ### 7. Target Stable Kernels **Recommended backport targets:** - v6.11+ stable trees (where TH1520 driver was introduced) - Current LTS kernels that include TH1520 support **Dependencies:** None - this is a standalone fix ### 8. Supporting Evidence **Real Hardware Impact**: This affects actual production hardware: - LicheePi 4A (RISC-V development board) - BeagleV Ahead (RISC-V development board) - Other TH1520-based systems **Documentation**: Commit message clearly explains the rationale and hardware limitation. **Community Review**: - Reviewed-by: Drew Fustini (TH1520 maintainer) - Signed-off-by: Drew Fustini (subsystem maintainer) --- ## Conclusion This commit is an **excellent candidate for backporting** to stable kernel trees. It fixes a critical reliability issue (system hangs) caused by a documented hardware limitation, uses a conservative and well-established approach, has minimal regression risk, and is essential for users of TH1520-based hardware. The change follows stable kernel rules precisely: important bugfix, small and contained, no architectural changes, minimal risk. **Recommendation: BACKPORT to v6.11+ stable kernels** drivers/clk/thead/clk-th1520-ap.c | 44 +++++++++++++++---------------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/drivers/clk/thead/clk-th1520-ap.c b/drivers/clk/thead/clk-th1520-ap.c index ec52726fbea95..6c1976aa1ae62 100644 --- a/drivers/clk/thead/clk-th1520-ap.c +++ b/drivers/clk/thead/clk-th1520-ap.c @@ -480,7 +480,7 @@ static struct ccu_div axi4_cpusys2_aclk = { .hw.init = CLK_HW_INIT_PARENTS_HW("axi4-cpusys2-aclk", gmac_pll_clk_parent, &ccu_div_ops, - 0), + CLK_IS_CRITICAL), }, }; @@ -502,7 +502,7 @@ static struct ccu_div axi_aclk = { .hw.init = CLK_HW_INIT_PARENTS_DATA("axi-aclk", axi_parents, &ccu_div_ops, - 0), + CLK_IS_CRITICAL), }, }; @@ -651,7 +651,7 @@ static struct ccu_div apb_pclk = { .hw.init = CLK_HW_INIT_PARENTS_DATA("apb-pclk", apb_parents, &ccu_div_ops, - CLK_IGNORE_UNUSED), + CLK_IS_CRITICAL), }, }; @@ -682,7 +682,7 @@ static struct ccu_div vi_clk = { .hw.init = CLK_HW_INIT_PARENTS_HW("vi", video_pll_clk_parent, &ccu_div_ops, - 0), + CLK_IS_CRITICAL), }, }; @@ -707,7 +707,7 @@ static struct ccu_div vo_axi_clk = { .hw.init = CLK_HW_INIT_PARENTS_HW("vo-axi", video_pll_clk_parent, &ccu_div_ops, - 0), + CLK_IS_CRITICAL), }, }; @@ -732,7 +732,7 @@ static struct ccu_div vp_axi_clk = { .hw.init = CLK_HW_INIT_PARENTS_HW("vp-axi", video_pll_clk_parent, &ccu_div_ops, - CLK_IGNORE_UNUSED), + CLK_IS_CRITICAL), }, }; @@ -791,27 +791,27 @@ static const struct clk_parent_data emmc_sdio_ref_clk_pd[] = { static CCU_GATE(CLK_BROM, brom_clk, "brom", ahb2_cpusys_hclk_pd, 0x100, 4, 0); static CCU_GATE(CLK_BMU, bmu_clk, "bmu", axi4_cpusys2_aclk_pd, 0x100, 5, 0); static CCU_GATE(CLK_AON2CPU_A2X, aon2cpu_a2x_clk, "aon2cpu-a2x", axi4_cpusys2_aclk_pd, - 0x134, 8, 0); + 0x134, 8, CLK_IS_CRITICAL); static CCU_GATE(CLK_X2X_CPUSYS, x2x_cpusys_clk, "x2x-cpusys", axi4_cpusys2_aclk_pd, - 0x134, 7, 0); + 0x134, 7, CLK_IS_CRITICAL); static CCU_GATE(CLK_CPU2AON_X2H, cpu2aon_x2h_clk, "cpu2aon-x2h", axi_aclk_pd, - 0x138, 8, CLK_IGNORE_UNUSED); + 0x138, 8, CLK_IS_CRITICAL); static CCU_GATE(CLK_CPU2PERI_X2H, cpu2peri_x2h_clk, "cpu2peri-x2h", axi4_cpusys2_aclk_pd, - 0x140, 9, CLK_IGNORE_UNUSED); + 0x140, 9, CLK_IS_CRITICAL); static CCU_GATE(CLK_PERISYS_APB1_HCLK, perisys_apb1_hclk, "perisys-apb1-hclk", perisys_ahb_hclk_pd, - 0x150, 9, CLK_IGNORE_UNUSED); + 0x150, 9, CLK_IS_CRITICAL); static CCU_GATE(CLK_PERISYS_APB2_HCLK, perisys_apb2_hclk, "perisys-apb2-hclk", perisys_ahb_hclk_pd, - 0x150, 10, CLK_IGNORE_UNUSED); + 0x150, 10, CLK_IS_CRITICAL); static CCU_GATE(CLK_PERISYS_APB3_HCLK, perisys_apb3_hclk, "perisys-apb3-hclk", perisys_ahb_hclk_pd, - 0x150, 11, CLK_IGNORE_UNUSED); + 0x150, 11, CLK_IS_CRITICAL); static CCU_GATE(CLK_PERISYS_APB4_HCLK, perisys_apb4_hclk, "perisys-apb4-hclk", perisys_ahb_hclk_pd, 0x150, 12, 0); static const struct clk_parent_data perisys_apb4_hclk_pd[] = { { .hw = &perisys_apb4_hclk.gate.hw }, }; -static CCU_GATE(CLK_NPU_AXI, npu_axi_clk, "npu-axi", axi_aclk_pd, 0x1c8, 5, 0); -static CCU_GATE(CLK_CPU2VP, cpu2vp_clk, "cpu2vp", axi_aclk_pd, 0x1e0, 13, 0); +static CCU_GATE(CLK_NPU_AXI, npu_axi_clk, "npu-axi", axi_aclk_pd, 0x1c8, 5, CLK_IS_CRITICAL); +static CCU_GATE(CLK_CPU2VP, cpu2vp_clk, "cpu2vp", axi_aclk_pd, 0x1e0, 13, CLK_IS_CRITICAL); static CCU_GATE(CLK_EMMC_SDIO, emmc_sdio_clk, "emmc-sdio", emmc_sdio_ref_clk_pd, 0x204, 30, 0); static CCU_GATE(CLK_GMAC1, gmac1_clk, "gmac1", gmac_pll_clk_pd, 0x204, 26, 0); static CCU_GATE(CLK_PADCTRL1, padctrl1_clk, "padctrl1", perisys_apb_pclk_pd, 0x204, 24, 0); @@ -855,11 +855,11 @@ static CCU_GATE(CLK_SRAM2, sram2_clk, "sram2", axi_aclk_pd, 0x20c, 2, 0); static CCU_GATE(CLK_SRAM3, sram3_clk, "sram3", axi_aclk_pd, 0x20c, 1, 0); static CCU_GATE(CLK_AXI4_VO_ACLK, axi4_vo_aclk, "axi4-vo-aclk", - video_pll_clk_pd, 0x0, 0, 0); + video_pll_clk_pd, 0x0, 0, CLK_IS_CRITICAL); static CCU_GATE(CLK_GPU_CORE, gpu_core_clk, "gpu-core-clk", video_pll_clk_pd, 0x0, 3, 0); static CCU_GATE(CLK_GPU_CFG_ACLK, gpu_cfg_aclk, "gpu-cfg-aclk", - video_pll_clk_pd, 0x0, 4, 0); + video_pll_clk_pd, 0x0, 4, CLK_IS_CRITICAL); static CCU_GATE(CLK_DPU_PIXELCLK0, dpu0_pixelclk, "dpu0-pixelclk", dpu0_clk_pd, 0x0, 5, 0); static CCU_GATE(CLK_DPU_PIXELCLK1, dpu1_pixelclk, "dpu1-pixelclk", @@ -891,9 +891,9 @@ static CCU_GATE(CLK_MIPI_DSI1_REFCLK, mipi_dsi1_refclk, "mipi-dsi1-refclk", static CCU_GATE(CLK_HDMI_I2S, hdmi_i2s_clk, "hdmi-i2s-clk", video_pll_clk_pd, 0x0, 19, 0); static CCU_GATE(CLK_X2H_DPU1_ACLK, x2h_dpu1_aclk, "x2h-dpu1-aclk", - video_pll_clk_pd, 0x0, 20, 0); + video_pll_clk_pd, 0x0, 20, CLK_IS_CRITICAL); static CCU_GATE(CLK_X2H_DPU_ACLK, x2h_dpu_aclk, "x2h-dpu-aclk", - video_pll_clk_pd, 0x0, 21, 0); + video_pll_clk_pd, 0x0, 21, CLK_IS_CRITICAL); static CCU_GATE(CLK_AXI4_VO_PCLK, axi4_vo_pclk, "axi4-vo-pclk", video_pll_clk_pd, 0x0, 22, 0); static CCU_GATE(CLK_IOPMP_VOSYS_DPU_PCLK, iopmp_vosys_dpu_pclk, @@ -903,11 +903,11 @@ static CCU_GATE(CLK_IOPMP_VOSYS_DPU1_PCLK, iopmp_vosys_dpu1_pclk, static CCU_GATE(CLK_IOPMP_VOSYS_GPU_PCLK, iopmp_vosys_gpu_pclk, "iopmp-vosys-gpu-pclk", video_pll_clk_pd, 0x0, 25, 0); static CCU_GATE(CLK_IOPMP_DPU1_ACLK, iopmp_dpu1_aclk, "iopmp-dpu1-aclk", - video_pll_clk_pd, 0x0, 27, 0); + video_pll_clk_pd, 0x0, 27, CLK_IS_CRITICAL); static CCU_GATE(CLK_IOPMP_DPU_ACLK, iopmp_dpu_aclk, "iopmp-dpu-aclk", - video_pll_clk_pd, 0x0, 28, 0); + video_pll_clk_pd, 0x0, 28, CLK_IS_CRITICAL); static CCU_GATE(CLK_IOPMP_GPU_ACLK, iopmp_gpu_aclk, "iopmp-gpu-aclk", - video_pll_clk_pd, 0x0, 29, 0); + video_pll_clk_pd, 0x0, 29, CLK_IS_CRITICAL); static CCU_GATE(CLK_MIPIDSI0_PIXCLK, mipi_dsi0_pixclk, "mipi-dsi0-pixclk", video_pll_clk_pd, 0x0, 30, 0); static CCU_GATE(CLK_MIPIDSI1_PIXCLK, mipi_dsi1_pixclk, "mipi-dsi1-pixclk", -- 2.51.0 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 4523ECCF9E5 for ; Sun, 26 Oct 2025 14:50:24 +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:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=XCoPmFZgDQIjyEMt57fHAsy6PpHiXdHr/9C1thJx8nI=; b=hcCkrf8mn367ig ncPmNboHDB5ttYINXEzECiPj8kR0gd1VYuOpAQBVrMUDuzaANvhxyjEFxu9aQZfswaoYMFgFOaiEE sOL5xAfSgONaQh5nHwJm6BfmU6LhTT1JpxtqEk+IQPAkR5nz8UZhp2PIO4QWw1CGKxtlR5RhHn76N RRDE2M7SfPkpPZ8mprAhsRe9BO2IA6gOztoU5ywfY/ksdAPlmbpVth1JwdUKyBTzQPGIOzNP3NDgx MfXhq6dRo2SW4TyPLLT6Dpt2/UmSEOHZoM+aYveS01If87JDaKpROFNEcY6hIgXK7nQ2pg+EkQ4/R R/hHinJieJXLgkic3PeQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vD24R-0000000CRlD-1bVs; Sun, 26 Oct 2025 14:50:11 +0000 Received: from sea.source.kernel.org ([2600:3c0a:e001:78e:0:1991:8:25]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vD24O-0000000CRjx-2PzY; Sun, 26 Oct 2025 14:50:09 +0000 Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sea.source.kernel.org (Postfix) with ESMTP id 6BE1D43E21; Sun, 26 Oct 2025 14:50:07 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E2703C116B1; Sun, 26 Oct 2025 14:50:05 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1761490207; bh=8cx012AHIyAVT81End9yKPY7nr1ogoBemutO1syf4RE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qJy7xLpubR4b7Vqt55wzHVVDjZa3qy3B3jW3frp8cVH339QiJPRQrf1X0JhMfytq5 MrPoqSEOAtCoC1QSgqRV7goA6JFuwPteYB7X2PoBZBF9LxK9wMBoCpWudq+5wzGGD+ MM3opFxrq+Kj+L3iPyv2tiy/VzWcvDHHqO7y6yWh3C+44DdfSWdbSk45SvSxONEN3Z 0ZDKHCQy145YxEUNjGqSQSYKD4OvIeuRnNFs7Gkiyrppb3dstnUv7pLGfoBpzow6I+ 83icfGhz5uYV93S89kajcbag6iSRLi79ALc6GL+X7BzlmTxkXkwj7IzdlRdQxTjMSj auhVbZU5urQdg== From: Sasha Levin To: patches@lists.linux.dev, stable@vger.kernel.org Subject: [PATCH AUTOSEL 6.17] clk: thead: th1520-ap: set all AXI clocks to CLK_IS_CRITICAL Date: Sun, 26 Oct 2025 10:48:43 -0400 Message-ID: <20251026144958.26750-5-sashal@kernel.org> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20251026144958.26750-1-sashal@kernel.org> References: <20251026144958.26750-1-sashal@kernel.org> MIME-Version: 1.0 X-stable: review X-Patchwork-Hint: Ignore X-stable-base: Linux 6.17.5 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20251026_075008_672669_A0A4CEA0 X-CRM114-Status: GOOD ( 14.26 ) 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: , Cc: Sasha Levin , Drew Fustini , linux-kernel@vger.kernel.org, guoren@kernel.org, matthias.bgg@gmail.com, linux-mediatek@lists.infradead.org, linux-riscv@lists.infradead.org, angelogioacchino.delregno@collabora.com, linux-arm-kernel@lists.infradead.org, wefu@redhat.com 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 RnJvbTogSWNlbm93eSBaaGVuZyA8dXd1QGljZW5vd3kubWU+CgpbIFVwc3RyZWFtIGNvbW1pdCBj NTY3YmM1ZmM2OGM0Mzg4YzAwZTExZmM2NWZkMTRmZTg2YjUyMDcwIF0KClRoZSBBWEkgY3Jvc3Ni YXIgb2YgVEgxNTIwIGhhcyBubyBwcm9wZXIgdGltZW91dCBoYW5kbGluZywgd2hpY2ggbWVhbnMK Z2F0aW5nIEFYSSBjbG9ja3MgY2FuIGVhc2lseSBsZWFkIHRvIGJ1cyB0aW1lb3V0IGFuZCB0aHVz IHN5c3RlbSBoYW5nLgoKU2V0IGFsbCBBWEkgY2xvY2sgZ2F0ZXMgdG8gQ0xLX0lTX0NSSVRJQ0FM LiBBbGwgdGhlc2UgY2xvY2sgZ2F0ZXMgYXJlCnVuZ2F0ZWQgYnkgZGVmYXVsdCBvbiBzeXN0ZW0g cmVzZXQuCgpJbiBhZGRpdGlvbiwgY29udmVydCBhbGwgY3VycmVudCBDTEtfSUdOT1JFX1VOVVNF RCB1c2FnZSB0bwpDTEtfSVNfQ1JJVElDQUwgdG8gcHJldmVudCB1bndhbnRlZCBjbG9jayBnYXRp bmcuCgpTaWduZWQtb2ZmLWJ5OiBJY2Vub3d5IFpoZW5nIDx1d3VAaWNlbm93eS5tZT4KUmV2aWV3 ZWQtYnk6IERyZXcgRnVzdGluaSA8ZnVzdGluaUBrZXJuZWwub3JnPgpTaWduZWQtb2ZmLWJ5OiBE cmV3IEZ1c3RpbmkgPGZ1c3RpbmlAa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogU2FzaGEgTGV2 aW4gPHNhc2hhbEBrZXJuZWwub3JnPgotLS0KCkxMTSBHZW5lcmF0ZWQgZXhwbGFuYXRpb25zLCBt YXkgYmUgY29tcGxldGVseSBib2d1czoKCiMjIEJhY2twb3J0IFJlY29tbWVuZGF0aW9uCgoqKllF UyoqIC0gVGhpcyBjb21taXQgc2hvdWxkIGJlIGJhY2twb3J0ZWQgdG8gc3RhYmxlIGtlcm5lbCB0 cmVlcy4KCi0tLQoKIyMgRXhlY3V0aXZlIFN1bW1hcnkKClRoaXMgY29tbWl0IGZpeGVzIGEgY3Jp dGljYWwgc3lzdGVtIHN0YWJpbGl0eSBpc3N1ZSBvbiBUSDE1MjAgU29DLWJhc2VkCnN5c3RlbXMg KExpY2hlZVBpIDRBLCBCZWFnbGVWIEFoZWFkIGJvYXJkcykgYnkgcHJldmVudGluZyBBWEkgY2xv Y2sKZ2F0aW5nLCB3aGljaCBjYXVzZXMgYnVzIHRpbWVvdXRzIGFuZCBzeXN0ZW0gaGFuZ3MgZHVl IHRvIGEgaGFyZHdhcmUKbGltaXRhdGlvbi4gVGhlIGZpeCBpcyBzbWFsbCwgbG9jYWxpemVkLCBs b3ctcmlzaywgYW5kIGZvbGxvd3MKZXN0YWJsaXNoZWQga2VybmVsIHBhdHRlcm5zLgoKLS0tCgoj IyBEZXRhaWxlZCBBbmFseXNpcwoKIyMjIDEuIFByb2JsZW0gRGVzY3JpcHRpb24KCioqSGFyZHdh cmUgTGltaXRhdGlvbioqOiBUaGUgVEgxNTIwIFNvQydzIEFYSSBjcm9zc2JhciBsYWNrcyBwcm9w ZXIKdGltZW91dCBoYW5kbGluZy4gV2hlbiBBWEkgY2xvY2tzIGFyZSBnYXRlZCwgYnVzIHRyYW5z YWN0aW9ucyBjYW4KdGltZW91dCBpbmRlZmluaXRlbHksIGNhdXNpbmcgY29tcGxldGUgc3lzdGVt IGhhbmdzLgoKKipVc2VyIEltcGFjdCoqOiBXaXRob3V0IHRoaXMgZml4LCB1c2VycyBleHBlcmll bmNlOgotIFN5c3RlbSBoYW5ncyBkdXJpbmcgYm9vdCAoZXNwZWNpYWxseSBhZnRlciAiY2xrOiBE aXNhYmxpbmcgdW51c2VkCiAgY2xvY2tzIikKLSBVbnJlc3BvbnNpdmUgZGV2aWNlcyB3aGVuIGFj Y2Vzc2luZyBwZXJpcGhlcmFscwotIFJhbmRvbSBmcmVlemVzIHdoZW4gdGhlIGtlcm5lbCdzIHBv d2VyLXNhdmluZyBtZWNoYW5pc21zIGdhdGUgQVhJIGJ1cwogIGNsb2NrcwoKIyMjIDIuIENvZGUg Q2hhbmdlcyBBbmFseXNpcwoKVGhlIGNvbW1pdCBtYWtlcyAqKjQ0IGxpbmVzIG9mIG1lY2hhbmlj YWwgZmxhZyBjaGFuZ2VzKiogaW4KYGRyaXZlcnMvY2xrL3RoZWFkL2Nsay10aDE1MjAtYXAuY2A6 CgoqKlR3byB0eXBlcyBvZiBjaGFuZ2VzOioqCgoxLiAqKkNvbnZlcnRpbmcgYDBgIOKGkiBgQ0xL X0lTX0NSSVRJQ0FMYCoqICgxNSBjbG9ja3MpOgogICAtIGBheGk0X2NwdXN5czJfYWNsa2AgKGRy aXZlcnMvY2xrL3RoZWFkL2Nsay10aDE1MjAtYXAuYzo0ODMpCiAgIC0gYGF4aV9hY2xrYCAoZHJp dmVycy9jbGsvdGhlYWQvY2xrLXRoMTUyMC1hcC5jOjUwNSkKICAgLSBgdmlfY2xrYCAoZHJpdmVy cy9jbGsvdGhlYWQvY2xrLXRoMTUyMC1hcC5jOjY4NSkKICAgLSBgdm9fYXhpX2Nsa2AgKGRyaXZl cnMvY2xrL3RoZWFkL2Nsay10aDE1MjAtYXAuYzo3MTApCiAgIC0gYGFvbjJjcHVfYTJ4X2Nsa2Ag KGRyaXZlcnMvY2xrL3RoZWFkL2Nsay10aDE1MjAtYXAuYzo3OTQpCiAgIC0gYHgyeF9jcHVzeXNf Y2xrYCAoZHJpdmVycy9jbGsvdGhlYWQvY2xrLXRoMTUyMC1hcC5jOjc5NikKICAgLSBgbnB1X2F4 aV9jbGtgIChkcml2ZXJzL2Nsay90aGVhZC9jbGstdGgxNTIwLWFwLmM6ODEzKQogICAtIGBjcHUy dnBfY2xrYCAoZHJpdmVycy9jbGsvdGhlYWQvY2xrLXRoMTUyMC1hcC5jOjgxNCkKICAgLSBgYXhp NF92b19hY2xrYCAoZHJpdmVycy9jbGsvdGhlYWQvY2xrLXRoMTUyMC1hcC5jOjg1OCkKICAgLSBg Z3B1X2NmZ19hY2xrYCAoZHJpdmVycy9jbGsvdGhlYWQvY2xrLXRoMTUyMC1hcC5jOjg2MikKICAg LSBgeDJoX2RwdTFfYWNsa2AgKGRyaXZlcnMvY2xrL3RoZWFkL2Nsay10aDE1MjAtYXAuYzo4OTQp CiAgIC0gYHgyaF9kcHVfYWNsa2AgKGRyaXZlcnMvY2xrL3RoZWFkL2Nsay10aDE1MjAtYXAuYzo4 OTYpCiAgIC0gYGlvcG1wX2RwdTFfYWNsa2AgKGRyaXZlcnMvY2xrL3RoZWFkL2Nsay10aDE1MjAt YXAuYzo5MDYpCiAgIC0gYGlvcG1wX2RwdV9hY2xrYCAoZHJpdmVycy9jbGsvdGhlYWQvY2xrLXRo MTUyMC1hcC5jOjkwOCkKICAgLSBgaW9wbXBfZ3B1X2FjbGtgIChkcml2ZXJzL2Nsay90aGVhZC9j bGstdGgxNTIwLWFwLmM6OTEwKQoKMi4gKipDb252ZXJ0aW5nIGBDTEtfSUdOT1JFX1VOVVNFRGAg 4oaSIGBDTEtfSVNfQ1JJVElDQUxgKiogKDcgY2xvY2tzKToKICAgLSBgYXBiX3BjbGtgIChkcml2 ZXJzL2Nsay90aGVhZC9jbGstdGgxNTIwLWFwLmM6NjU0KQogICAtIGB2cF9heGlfY2xrYCAoZHJp dmVycy9jbGsvdGhlYWQvY2xrLXRoMTUyMC1hcC5jOjczNSkKICAgLSBgY3B1MmFvbl94MmhfY2xr YCAoZHJpdmVycy9jbGsvdGhlYWQvY2xrLXRoMTUyMC1hcC5jOjc5OCkKICAgLSBgY3B1MnBlcmlf eDJoX2Nsa2AgKGRyaXZlcnMvY2xrL3RoZWFkL2Nsay10aDE1MjAtYXAuYzo4MDApCiAgIC0gYHBl cmlzeXNfYXBiMV9oY2xrYCAoZHJpdmVycy9jbGsvdGhlYWQvY2xrLXRoMTUyMC1hcC5jOjgwMikK ICAgLSBgcGVyaXN5c19hcGIyX2hjbGtgIChkcml2ZXJzL2Nsay90aGVhZC9jbGstdGgxNTIwLWFw LmM6ODA0KQogICAtIGBwZXJpc3lzX2FwYjNfaGNsa2AgKGRyaXZlcnMvY2xrL3RoZWFkL2Nsay10 aDE1MjAtYXAuYzo4MDYpCgoqKlRlY2huaWNhbCBTaWduaWZpY2FuY2UqKjoKLSBgQ0xLX0lHTk9S RV9VTlVTRURgIChCSVQoMykpOiBPbmx5IHByZXZlbnRzIGdhdGluZyBkdXJpbmcgaW5pdGlhbAog IGNsZWFudXAKLSBgQ0xLX0lTX0NSSVRJQ0FMYCAoQklUKDExKSk6IFByZXZlbnRzIGdhdGluZyBh dCBBTEwgdGltZXMgLSBlbmZvcmNlZAogIHdpdGggV0FSTiBtZXNzYWdlcyBpbiBjbGsgY29yZQoK IyMjIDMuIEhpc3RvcmljYWwgQ29udGV4dAoKVGhlIFRIMTUyMCBjbG9jayBkcml2ZXIgaGFzIGEg aGlzdG9yeSBvZiBjbG9jayBnYXRpbmcgaXNzdWVzOgoKKipUaW1lbGluZToqKgotICoqdjYuMTEq KiAoSnVseSAyMDI0KTogRHJpdmVyIGludHJvZHVjZWQgKGFlODFiNjlmZDJiMWUpCi0gKipKYW51 YXJ5IDIwMjUqKjogRmlyc3QgZml4IGFkZGVkIGBDTEtfSUdOT1JFX1VOVVNFRGAgdG8gcHJldmVu dCBib290CiAgaGFuZ3MgKDAzNzcwNWU5NGJmNmUpCiAgLSBDb21taXQgbWVzc2FnZTogIldpdGhv dXQgdGhpcyBmbGFnLCB0aGUgYm9vdCBoYW5ncyBhZnRlciAnY2xrOgogICAgRGlzYWJsaW5nIHVu dXNlZCBjbG9ja3MnIgotICoqSnVuZSAyMDI1Kio6IE1vcmUgYnVzIGNsb2NrcyBtYXJrZWQgYENM S19JR05PUkVfVU5VU0VEYAogICgwMzcwMzk1ZDQ1Y2E2KQogIC0gRml4ZWQgYm9vdCBoYW5ncyB3 aXRoIFBWVCB0aGVybWFsIHNlbnNvciBhbmQgUFdNIGNvbnRyb2xsZXIKICAtIERvY3VtZW50ZWQg dGhhdCBhbHRlcm5hdGl2ZSBzb2x1dGlvbnMgKHNpbXBsZS1wbS1idXMpIHdlcmUgbm90CiAgICB2 aWFibGUKLSAqKkF1Z3VzdCAyMDI1Kio6IEN1cnJlbnQgY29tbWl0IHVwZ3JhZGVzIHRvIGBDTEtf SVNfQ1JJVElDQUxgCiAgKGM1NjdiYzVmYzY4YzQpCiAgLSBBZGRyZXNzZXMgcm9vdCBjYXVzZTog QVhJIGNyb3NzYmFyIGhhcmR3YXJlIGxpbWl0YXRpb24KCioqUGF0dGVybioqOiBQcm9ncmVzc2l2 ZSBlc2NhbGF0aW9uIHNob3dzIHRoYXQgYENMS19JR05PUkVfVU5VU0VEYCB3YXMKaW5zdWZmaWNp ZW50LCBhbmQgdGhlIHByb3BlciBmaXggcmVxdWlyZXMgYENMS19JU19DUklUSUNBTGAgdG8gcHJl dmVudApBTlkgY2xvY2sgZ2F0aW5nLCBub3QganVzdCBpbml0aWFsIGNsZWFudXAuCgojIyMgNC4g VmFsaWRhdGlvbiBBZ2FpbnN0IEtlcm5lbCBQYXR0ZXJucwoKKipJbmR1c3RyeSBTdGFuZGFyZCBQ cmFjdGljZSoqOiBVc2luZyBgQ0xLX0lTX0NSSVRJQ0FMYCBmb3IgY3JpdGljYWwgYnVzCmNsb2Nr cyBpcyB3ZWxsLWVzdGFibGlzaGVkOgoKYGBgYmFzaAojIFNpbWlsYXIgcGF0dGVybnMgZm91bmQg aW46Ci0gZHJpdmVycy9jbGsvaW14L2Nsay1pbXg2cS5jOiBtbWRjX2NoMF9heGkgKENMS19JU19D UklUSUNBTCkKLSBkcml2ZXJzL2Nsay9pbXgvY2xrLWlteDZ1bC5jOiBheGkgKENMS19JU19DUklU SUNBTCkKLSBkcml2ZXJzL2Nsay9pbXgvY2xrLWlteDdkLmM6IG1haW5fYXhpX3Jvb3RfY2xrIChD TEtfSVNfQ1JJVElDQUwpCi0gZHJpdmVycy9jbGsvaW14L2Nsay1pbXg5My5jOiB3YWtldXBfYXhp X3Jvb3QsIG5pY19heGlfcm9vdAogIChDTEtfSVNfQ1JJVElDQUwpCi0gZHJpdmVycy9jbGsvbnBj bS9jbGstbnBjbTd4eC5jOiBheGkgKENMS19JU19DUklUSUNBTCkKLSBkcml2ZXJzL2Nsay9tZWRp YXRlay86IE11bHRpcGxlIEFYSS9idXMgY2xvY2tzIChDTEtfSVNfQ1JJVElDQUwpCmBgYAoKVGhp cyBjb25maXJtcyB0aGUgYXBwcm9hY2ggaXMgbm90IHVudXN1YWwgYW5kIGZvbGxvd3MgZXN0YWJs aXNoZWQgYmVzdApwcmFjdGljZXMuCgojIyMgNS4gUmlzayBBc3Nlc3NtZW50CgoqKlJpc2sgb2Yg QmFja3BvcnRpbmc6IFZFUlkgTE9XKioKCioqUG9zaXRpdmUgZmFjdG9yczoqKgotIOKchSBDaGFu Z2VzIGFyZSBwdXJlbHkgZmxhZyBtb2RpZmljYXRpb25zLCBubyBsb2dpYyBjaGFuZ2VzCi0g4pyF IE9ubHkgYWZmZWN0cyBUSDE1MjAgU29DIChuYXJyb3cgaGFyZHdhcmUgc2NvcGUpCi0g4pyFIENo YW5nZSBpcyBjb25zZXJ2YXRpdmUgKHByZXZlbnRzIGdhdGluZyB2cyBlbmFibGluZyBuZXcgZmVh dHVyZXMpCi0g4pyFIEhhcmR3YXJlIGRlZmF1bHRzIGFscmVhZHkgaGF2ZSB0aGVzZSBjbG9ja3Mg dW5nYXRlZAotIOKchSBObyBkZXBlbmRlbmNpZXMgb24gb3RoZXIgY29tbWl0cwotIOKchSBObyBm b2xsb3ctdXAgZml4ZXMgb3IgcmV2ZXJ0cyBmb3VuZAotIOKchSBGb2xsb3dzIGtlcm5lbCBiZXN0 IHByYWN0aWNlcwotIOKchSBTbWFsbCwgY29udGFpbmVkIGNoYW5nZSAoNDQgbGluZXMsIHNpbmds ZSBmaWxlKQoKKipQb3RlbnRpYWwgc2lkZSBlZmZlY3RzOioqCi0g4pqg77iPIFNsaWdodGx5IGhp Z2hlciBwb3dlciBjb25zdW1wdGlvbiAoY2xvY2tzIHN0YXkgZW5hYmxlZCkKICAtICoqTWl0aWdh dGVkKio6IEhhcmR3YXJlIGFscmVhZHkgbGVhdmVzIHRoZXNlIHVuZ2F0ZWQgYnkgZGVmYXVsdAog IC0gKipBY2NlcHRhYmxlKio6IFN0YWJpbGl0eSA+IG1pbm9yIHBvd2VyIHNhdmluZ3MgZm9yIGNy aXRpY2FsCiAgICBpbmZyYXN0cnVjdHVyZQoKKipSaXNrIG9mIE5PVCBCYWNrcG9ydGluZzogSElH SCoqCgpVc2VycyBvbiBzdGFibGUga2VybmVscyAodjYuMTErKSB3aWxsIGV4cGVyaWVuY2U6Ci0g U3lzdGVtIGhhbmdzIGFuZCBmcmVlemVzCi0gQm9vdCBmYWlsdXJlcwotIFVucmVzcG9uc2l2ZSBw ZXJpcGhlcmFscwotIFVucmVsaWFibGUgc3lzdGVtcwoKIyMjIDYuIEJhY2twb3J0IENyaXRlcmlh IENvbXBsaWFuY2UKCnwgQ3JpdGVyaW9uIHwgU3RhdHVzIHwgRGV0YWlscyB8CnwtLS0tLS0tLS0t LXwtLS0tLS0tLXwtLS0tLS0tLS18CnwgKipGaXhlcyBpbXBvcnRhbnQgYnVnKiogfCDinIUgWUVT IHwgRml4ZXMgY3JpdGljYWwgc3lzdGVtIGhhbmdzIHwKfCAqKkFmZmVjdHMgdXNlcnMqKiB8IOKc hSBZRVMgfCBBbGwgVEgxNTIwIGhhcmR3YXJlIHVzZXJzIGFmZmVjdGVkIHwKfCAqKlNtYWxsIGFu ZCBjb250YWluZWQqKiB8IOKchSBZRVMgfCA0NCBsaW5lcywgc2luZ2xlIGZpbGUsIG1lY2hhbmlj YWwKY2hhbmdlcyB8CnwgKipObyBuZXcgZmVhdHVyZXMqKiB8IOKchSBZRVMgfCBPbmx5IHByZXZl bnRzIGNsb2NrIGdhdGluZyB8CnwgKipObyBhcmNoaXRlY3R1cmFsIGNoYW5nZXMqKiB8IOKchSBZ RVMgfCBTaW1wbGUgZmxhZyBjaGFuZ2VzIHwKfCAqKk1pbmltYWwgcmVncmVzc2lvbiByaXNrKiog fCDinIUgWUVTIHwgQ29uc2VydmF0aXZlIGNoYW5nZSwgaGFyZHdhcmUKbGltaXRhdGlvbiB8Cnwg KipDb25maW5lZCB0byBzdWJzeXN0ZW0qKiB8IOKchSBZRVMgfCBPbmx5IGFmZmVjdHMgVEgxNTIw IGNsb2NrIGRyaXZlciB8CnwgKipDbGVhciBzaWRlIGVmZmVjdHMqKiB8IOKchSBZRVMgfCBTbGln aHRseSBoaWdoZXIgcG93ZXIgKGFjY2VwdGFibGUKdHJhZGVvZmYpIHwKCiMjIyA3LiBUYXJnZXQg U3RhYmxlIEtlcm5lbHMKCioqUmVjb21tZW5kZWQgYmFja3BvcnQgdGFyZ2V0czoqKgotIHY2LjEx KyBzdGFibGUgdHJlZXMgKHdoZXJlIFRIMTUyMCBkcml2ZXIgd2FzIGludHJvZHVjZWQpCi0gQ3Vy cmVudCBMVFMga2VybmVscyB0aGF0IGluY2x1ZGUgVEgxNTIwIHN1cHBvcnQKCioqRGVwZW5kZW5j aWVzOioqIE5vbmUgLSB0aGlzIGlzIGEgc3RhbmRhbG9uZSBmaXgKCiMjIyA4LiBTdXBwb3J0aW5n IEV2aWRlbmNlCgoqKlJlYWwgSGFyZHdhcmUgSW1wYWN0Kio6IFRoaXMgYWZmZWN0cyBhY3R1YWwg cHJvZHVjdGlvbiBoYXJkd2FyZToKLSBMaWNoZWVQaSA0QSAoUklTQy1WIGRldmVsb3BtZW50IGJv YXJkKQotIEJlYWdsZVYgQWhlYWQgKFJJU0MtViBkZXZlbG9wbWVudCBib2FyZCkKLSBPdGhlciBU SDE1MjAtYmFzZWQgc3lzdGVtcwoKKipEb2N1bWVudGF0aW9uKio6IENvbW1pdCBtZXNzYWdlIGNs ZWFybHkgZXhwbGFpbnMgdGhlIHJhdGlvbmFsZSBhbmQKaGFyZHdhcmUgbGltaXRhdGlvbi4KCioq Q29tbXVuaXR5IFJldmlldyoqOgotIFJldmlld2VkLWJ5OiBEcmV3IEZ1c3RpbmkgKFRIMTUyMCBt YWludGFpbmVyKQotIFNpZ25lZC1vZmYtYnk6IERyZXcgRnVzdGluaSAoc3Vic3lzdGVtIG1haW50 YWluZXIpCgotLS0KCiMjIENvbmNsdXNpb24KClRoaXMgY29tbWl0IGlzIGFuICoqZXhjZWxsZW50 IGNhbmRpZGF0ZSBmb3IgYmFja3BvcnRpbmcqKiB0byBzdGFibGUKa2VybmVsIHRyZWVzLiBJdCBm aXhlcyBhIGNyaXRpY2FsIHJlbGlhYmlsaXR5IGlzc3VlIChzeXN0ZW0gaGFuZ3MpCmNhdXNlZCBi eSBhIGRvY3VtZW50ZWQgaGFyZHdhcmUgbGltaXRhdGlvbiwgdXNlcyBhIGNvbnNlcnZhdGl2ZSBh bmQKd2VsbC1lc3RhYmxpc2hlZCBhcHByb2FjaCwgaGFzIG1pbmltYWwgcmVncmVzc2lvbiByaXNr LCBhbmQgaXMgZXNzZW50aWFsCmZvciB1c2VycyBvZiBUSDE1MjAtYmFzZWQgaGFyZHdhcmUuIFRo ZSBjaGFuZ2UgZm9sbG93cyBzdGFibGUga2VybmVsCnJ1bGVzIHByZWNpc2VseTogaW1wb3J0YW50 IGJ1Z2ZpeCwgc21hbGwgYW5kIGNvbnRhaW5lZCwgbm8gYXJjaGl0ZWN0dXJhbApjaGFuZ2VzLCBt aW5pbWFsIHJpc2suCgoqKlJlY29tbWVuZGF0aW9uOiBCQUNLUE9SVCB0byB2Ni4xMSsgc3RhYmxl IGtlcm5lbHMqKgoKIGRyaXZlcnMvY2xrL3RoZWFkL2Nsay10aDE1MjAtYXAuYyB8IDQ0ICsrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCAyMiBpbnNlcnRpb25z KCspLCAyMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2Nsay90aGVhZC9jbGst dGgxNTIwLWFwLmMgYi9kcml2ZXJzL2Nsay90aGVhZC9jbGstdGgxNTIwLWFwLmMKaW5kZXggZWM1 MjcyNmZiZWE5NS4uNmMxOTc2YWExYWU2MiAxMDA2NDQKLS0tIGEvZHJpdmVycy9jbGsvdGhlYWQv Y2xrLXRoMTUyMC1hcC5jCisrKyBiL2RyaXZlcnMvY2xrL3RoZWFkL2Nsay10aDE1MjAtYXAuYwpA QCAtNDgwLDcgKzQ4MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2N1X2RpdiBheGk0X2NwdXN5czJfYWNs ayA9IHsKIAkJLmh3LmluaXQJPSBDTEtfSFdfSU5JVF9QQVJFTlRTX0hXKCJheGk0LWNwdXN5czIt YWNsayIsCiAJCQkJCSAgICAgIGdtYWNfcGxsX2Nsa19wYXJlbnQsCiAJCQkJCSAgICAgICZjY3Vf ZGl2X29wcywKLQkJCQkJICAgICAgMCksCisJCQkJCSAgICAgIENMS19JU19DUklUSUNBTCksCiAJ fSwKIH07CiAKQEAgLTUwMiw3ICs1MDIsNyBAQCBzdGF0aWMgc3RydWN0IGNjdV9kaXYgYXhpX2Fj bGsgPSB7CiAJCS5ody5pbml0CT0gQ0xLX0hXX0lOSVRfUEFSRU5UU19EQVRBKCJheGktYWNsayIs CiAJCQkJCQkgICAgICBheGlfcGFyZW50cywKIAkJCQkJCSAgICAgICZjY3VfZGl2X29wcywKLQkJ CQkJCSAgICAgIDApLAorCQkJCQkJICAgICAgQ0xLX0lTX0NSSVRJQ0FMKSwKIAl9LAogfTsKIApA QCAtNjUxLDcgKzY1MSw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2N1X2RpdiBhcGJfcGNsayA9IHsKIAkJ Lmh3LmluaXQJPSBDTEtfSFdfSU5JVF9QQVJFTlRTX0RBVEEoImFwYi1wY2xrIiwKIAkJCQkJCSAg ICAgIGFwYl9wYXJlbnRzLAogCQkJCQkJICAgICAgJmNjdV9kaXZfb3BzLAotCQkJCQkJICAgICAg Q0xLX0lHTk9SRV9VTlVTRUQpLAorCQkJCQkJICAgICAgQ0xLX0lTX0NSSVRJQ0FMKSwKIAl9LAog fTsKIApAQCAtNjgyLDcgKzY4Miw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2N1X2RpdiB2aV9jbGsgPSB7 CiAJCS5ody5pbml0CT0gQ0xLX0hXX0lOSVRfUEFSRU5UU19IVygidmkiLAogCQkJCQkgICAgICB2 aWRlb19wbGxfY2xrX3BhcmVudCwKIAkJCQkJICAgICAgJmNjdV9kaXZfb3BzLAotCQkJCQkgICAg ICAwKSwKKwkJCQkJICAgICAgQ0xLX0lTX0NSSVRJQ0FMKSwKIAl9LAogfTsKIApAQCAtNzA3LDcg KzcwNyw3IEBAIHN0YXRpYyBzdHJ1Y3QgY2N1X2RpdiB2b19heGlfY2xrID0gewogCQkuaHcuaW5p dAk9IENMS19IV19JTklUX1BBUkVOVFNfSFcoInZvLWF4aSIsCiAJCQkJCSAgICAgIHZpZGVvX3Bs bF9jbGtfcGFyZW50LAogCQkJCQkgICAgICAmY2N1X2Rpdl9vcHMsCi0JCQkJCSAgICAgIDApLAor CQkJCQkgICAgICBDTEtfSVNfQ1JJVElDQUwpLAogCX0sCiB9OwogCkBAIC03MzIsNyArNzMyLDcg QEAgc3RhdGljIHN0cnVjdCBjY3VfZGl2IHZwX2F4aV9jbGsgPSB7CiAJCS5ody5pbml0CT0gQ0xL X0hXX0lOSVRfUEFSRU5UU19IVygidnAtYXhpIiwKIAkJCQkJICAgICAgdmlkZW9fcGxsX2Nsa19w YXJlbnQsCiAJCQkJCSAgICAgICZjY3VfZGl2X29wcywKLQkJCQkJICAgICAgQ0xLX0lHTk9SRV9V TlVTRUQpLAorCQkJCQkgICAgICBDTEtfSVNfQ1JJVElDQUwpLAogCX0sCiB9OwogCkBAIC03OTEs MjcgKzc5MSwyNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSBlbW1jX3Nk aW9fcmVmX2Nsa19wZFtdID0gewogc3RhdGljIENDVV9HQVRFKENMS19CUk9NLCBicm9tX2Nsaywg ImJyb20iLCBhaGIyX2NwdXN5c19oY2xrX3BkLCAweDEwMCwgNCwgMCk7CiBzdGF0aWMgQ0NVX0dB VEUoQ0xLX0JNVSwgYm11X2NsaywgImJtdSIsIGF4aTRfY3B1c3lzMl9hY2xrX3BkLCAweDEwMCwg NSwgMCk7CiBzdGF0aWMgQ0NVX0dBVEUoQ0xLX0FPTjJDUFVfQTJYLCBhb24yY3B1X2EyeF9jbGss ICJhb24yY3B1LWEyeCIsIGF4aTRfY3B1c3lzMl9hY2xrX3BkLAotCQkweDEzNCwgOCwgMCk7CisJ CTB4MTM0LCA4LCBDTEtfSVNfQ1JJVElDQUwpOwogc3RhdGljIENDVV9HQVRFKENMS19YMlhfQ1BV U1lTLCB4MnhfY3B1c3lzX2NsaywgIngyeC1jcHVzeXMiLCBheGk0X2NwdXN5czJfYWNsa19wZCwK LQkJMHgxMzQsIDcsIDApOworCQkweDEzNCwgNywgQ0xLX0lTX0NSSVRJQ0FMKTsKIHN0YXRpYyBD Q1VfR0FURShDTEtfQ1BVMkFPTl9YMkgsIGNwdTJhb25feDJoX2NsaywgImNwdTJhb24teDJoIiwg YXhpX2FjbGtfcGQsCi0JCTB4MTM4LCA4LCBDTEtfSUdOT1JFX1VOVVNFRCk7CisJCTB4MTM4LCA4 LCBDTEtfSVNfQ1JJVElDQUwpOwogc3RhdGljIENDVV9HQVRFKENMS19DUFUyUEVSSV9YMkgsIGNw dTJwZXJpX3gyaF9jbGssICJjcHUycGVyaS14MmgiLCBheGk0X2NwdXN5czJfYWNsa19wZCwKLQkJ MHgxNDAsIDksIENMS19JR05PUkVfVU5VU0VEKTsKKwkJMHgxNDAsIDksIENMS19JU19DUklUSUNB TCk7CiBzdGF0aWMgQ0NVX0dBVEUoQ0xLX1BFUklTWVNfQVBCMV9IQ0xLLCBwZXJpc3lzX2FwYjFf aGNsaywgInBlcmlzeXMtYXBiMS1oY2xrIiwgcGVyaXN5c19haGJfaGNsa19wZCwKLQkJMHgxNTAs IDksIENMS19JR05PUkVfVU5VU0VEKTsKKwkJMHgxNTAsIDksIENMS19JU19DUklUSUNBTCk7CiBz dGF0aWMgQ0NVX0dBVEUoQ0xLX1BFUklTWVNfQVBCMl9IQ0xLLCBwZXJpc3lzX2FwYjJfaGNsaywg InBlcmlzeXMtYXBiMi1oY2xrIiwgcGVyaXN5c19haGJfaGNsa19wZCwKLQkJMHgxNTAsIDEwLCBD TEtfSUdOT1JFX1VOVVNFRCk7CisJCTB4MTUwLCAxMCwgQ0xLX0lTX0NSSVRJQ0FMKTsKIHN0YXRp YyBDQ1VfR0FURShDTEtfUEVSSVNZU19BUEIzX0hDTEssIHBlcmlzeXNfYXBiM19oY2xrLCAicGVy aXN5cy1hcGIzLWhjbGsiLCBwZXJpc3lzX2FoYl9oY2xrX3BkLAotCQkweDE1MCwgMTEsIENMS19J R05PUkVfVU5VU0VEKTsKKwkJMHgxNTAsIDExLCBDTEtfSVNfQ1JJVElDQUwpOwogc3RhdGljIEND VV9HQVRFKENMS19QRVJJU1lTX0FQQjRfSENMSywgcGVyaXN5c19hcGI0X2hjbGssICJwZXJpc3lz LWFwYjQtaGNsayIsIHBlcmlzeXNfYWhiX2hjbGtfcGQsCiAJCTB4MTUwLCAxMiwgMCk7CiBzdGF0 aWMgY29uc3Qgc3RydWN0IGNsa19wYXJlbnRfZGF0YSBwZXJpc3lzX2FwYjRfaGNsa19wZFtdID0g ewogCXsgLmh3ID0gJnBlcmlzeXNfYXBiNF9oY2xrLmdhdGUuaHcgfSwKIH07CiAKLXN0YXRpYyBD Q1VfR0FURShDTEtfTlBVX0FYSSwgbnB1X2F4aV9jbGssICJucHUtYXhpIiwgYXhpX2FjbGtfcGQs IDB4MWM4LCA1LCAwKTsKLXN0YXRpYyBDQ1VfR0FURShDTEtfQ1BVMlZQLCBjcHUydnBfY2xrLCAi Y3B1MnZwIiwgYXhpX2FjbGtfcGQsIDB4MWUwLCAxMywgMCk7CitzdGF0aWMgQ0NVX0dBVEUoQ0xL X05QVV9BWEksIG5wdV9heGlfY2xrLCAibnB1LWF4aSIsIGF4aV9hY2xrX3BkLCAweDFjOCwgNSwg Q0xLX0lTX0NSSVRJQ0FMKTsKK3N0YXRpYyBDQ1VfR0FURShDTEtfQ1BVMlZQLCBjcHUydnBfY2xr LCAiY3B1MnZwIiwgYXhpX2FjbGtfcGQsIDB4MWUwLCAxMywgQ0xLX0lTX0NSSVRJQ0FMKTsKIHN0 YXRpYyBDQ1VfR0FURShDTEtfRU1NQ19TRElPLCBlbW1jX3NkaW9fY2xrLCAiZW1tYy1zZGlvIiwg ZW1tY19zZGlvX3JlZl9jbGtfcGQsIDB4MjA0LCAzMCwgMCk7CiBzdGF0aWMgQ0NVX0dBVEUoQ0xL X0dNQUMxLCBnbWFjMV9jbGssICJnbWFjMSIsIGdtYWNfcGxsX2Nsa19wZCwgMHgyMDQsIDI2LCAw KTsKIHN0YXRpYyBDQ1VfR0FURShDTEtfUEFEQ1RSTDEsIHBhZGN0cmwxX2NsaywgInBhZGN0cmwx IiwgcGVyaXN5c19hcGJfcGNsa19wZCwgMHgyMDQsIDI0LCAwKTsKQEAgLTg1NSwxMSArODU1LDEx IEBAIHN0YXRpYyBDQ1VfR0FURShDTEtfU1JBTTIsIHNyYW0yX2NsaywgInNyYW0yIiwgYXhpX2Fj bGtfcGQsIDB4MjBjLCAyLCAwKTsKIHN0YXRpYyBDQ1VfR0FURShDTEtfU1JBTTMsIHNyYW0zX2Ns aywgInNyYW0zIiwgYXhpX2FjbGtfcGQsIDB4MjBjLCAxLCAwKTsKIAogc3RhdGljIENDVV9HQVRF KENMS19BWEk0X1ZPX0FDTEssIGF4aTRfdm9fYWNsaywgImF4aTQtdm8tYWNsayIsCi0JCXZpZGVv X3BsbF9jbGtfcGQsIDB4MCwgMCwgMCk7CisJCXZpZGVvX3BsbF9jbGtfcGQsIDB4MCwgMCwgQ0xL X0lTX0NSSVRJQ0FMKTsKIHN0YXRpYyBDQ1VfR0FURShDTEtfR1BVX0NPUkUsIGdwdV9jb3JlX2Ns aywgImdwdS1jb3JlLWNsayIsIHZpZGVvX3BsbF9jbGtfcGQsCiAJCTB4MCwgMywgMCk7CiBzdGF0 aWMgQ0NVX0dBVEUoQ0xLX0dQVV9DRkdfQUNMSywgZ3B1X2NmZ19hY2xrLCAiZ3B1LWNmZy1hY2xr IiwKLQkJdmlkZW9fcGxsX2Nsa19wZCwgMHgwLCA0LCAwKTsKKwkJdmlkZW9fcGxsX2Nsa19wZCwg MHgwLCA0LCBDTEtfSVNfQ1JJVElDQUwpOwogc3RhdGljIENDVV9HQVRFKENMS19EUFVfUElYRUxD TEswLCBkcHUwX3BpeGVsY2xrLCAiZHB1MC1waXhlbGNsayIsCiAJCWRwdTBfY2xrX3BkLCAweDAs IDUsIDApOwogc3RhdGljIENDVV9HQVRFKENMS19EUFVfUElYRUxDTEsxLCBkcHUxX3BpeGVsY2xr LCAiZHB1MS1waXhlbGNsayIsCkBAIC04OTEsOSArODkxLDkgQEAgc3RhdGljIENDVV9HQVRFKENM S19NSVBJX0RTSTFfUkVGQ0xLLCBtaXBpX2RzaTFfcmVmY2xrLCAibWlwaS1kc2kxLXJlZmNsayIs CiBzdGF0aWMgQ0NVX0dBVEUoQ0xLX0hETUlfSTJTLCBoZG1pX2kyc19jbGssICJoZG1pLWkycy1j bGsiLCB2aWRlb19wbGxfY2xrX3BkLAogCQkweDAsIDE5LCAwKTsKIHN0YXRpYyBDQ1VfR0FURShD TEtfWDJIX0RQVTFfQUNMSywgeDJoX2RwdTFfYWNsaywgIngyaC1kcHUxLWFjbGsiLAotCQl2aWRl b19wbGxfY2xrX3BkLCAweDAsIDIwLCAwKTsKKwkJdmlkZW9fcGxsX2Nsa19wZCwgMHgwLCAyMCwg Q0xLX0lTX0NSSVRJQ0FMKTsKIHN0YXRpYyBDQ1VfR0FURShDTEtfWDJIX0RQVV9BQ0xLLCB4Mmhf ZHB1X2FjbGssICJ4MmgtZHB1LWFjbGsiLAotCQl2aWRlb19wbGxfY2xrX3BkLCAweDAsIDIxLCAw KTsKKwkJdmlkZW9fcGxsX2Nsa19wZCwgMHgwLCAyMSwgQ0xLX0lTX0NSSVRJQ0FMKTsKIHN0YXRp YyBDQ1VfR0FURShDTEtfQVhJNF9WT19QQ0xLLCBheGk0X3ZvX3BjbGssICJheGk0LXZvLXBjbGsi LAogCQl2aWRlb19wbGxfY2xrX3BkLCAweDAsIDIyLCAwKTsKIHN0YXRpYyBDQ1VfR0FURShDTEtf SU9QTVBfVk9TWVNfRFBVX1BDTEssIGlvcG1wX3Zvc3lzX2RwdV9wY2xrLApAQCAtOTAzLDExICs5 MDMsMTEgQEAgc3RhdGljIENDVV9HQVRFKENMS19JT1BNUF9WT1NZU19EUFUxX1BDTEssIGlvcG1w X3Zvc3lzX2RwdTFfcGNsaywKIHN0YXRpYyBDQ1VfR0FURShDTEtfSU9QTVBfVk9TWVNfR1BVX1BD TEssIGlvcG1wX3Zvc3lzX2dwdV9wY2xrLAogCQkiaW9wbXAtdm9zeXMtZ3B1LXBjbGsiLCB2aWRl b19wbGxfY2xrX3BkLCAweDAsIDI1LCAwKTsKIHN0YXRpYyBDQ1VfR0FURShDTEtfSU9QTVBfRFBV MV9BQ0xLLCBpb3BtcF9kcHUxX2FjbGssICJpb3BtcC1kcHUxLWFjbGsiLAotCQl2aWRlb19wbGxf Y2xrX3BkLCAweDAsIDI3LCAwKTsKKwkJdmlkZW9fcGxsX2Nsa19wZCwgMHgwLCAyNywgQ0xLX0lT X0NSSVRJQ0FMKTsKIHN0YXRpYyBDQ1VfR0FURShDTEtfSU9QTVBfRFBVX0FDTEssIGlvcG1wX2Rw dV9hY2xrLCAiaW9wbXAtZHB1LWFjbGsiLAotCQl2aWRlb19wbGxfY2xrX3BkLCAweDAsIDI4LCAw KTsKKwkJdmlkZW9fcGxsX2Nsa19wZCwgMHgwLCAyOCwgQ0xLX0lTX0NSSVRJQ0FMKTsKIHN0YXRp YyBDQ1VfR0FURShDTEtfSU9QTVBfR1BVX0FDTEssIGlvcG1wX2dwdV9hY2xrLCAiaW9wbXAtZ3B1 LWFjbGsiLAotCQl2aWRlb19wbGxfY2xrX3BkLCAweDAsIDI5LCAwKTsKKwkJdmlkZW9fcGxsX2Ns a19wZCwgMHgwLCAyOSwgQ0xLX0lTX0NSSVRJQ0FMKTsKIHN0YXRpYyBDQ1VfR0FURShDTEtfTUlQ SURTSTBfUElYQ0xLLCBtaXBpX2RzaTBfcGl4Y2xrLCAibWlwaS1kc2kwLXBpeGNsayIsCiAJCXZp ZGVvX3BsbF9jbGtfcGQsIDB4MCwgMzAsIDApOwogc3RhdGljIENDVV9HQVRFKENMS19NSVBJRFNJ MV9QSVhDTEssIG1pcGlfZHNpMV9waXhjbGssICJtaXBpLWRzaTEtcGl4Y2xrIiwKLS0gCjIuNTEu MAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4 LXJpc2N2IG1haWxpbmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6 Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK