From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A494D7F487 for ; Thu, 28 Mar 2024 12:34:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.42 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711629291; cv=none; b=pHXsz4IfpM7aQDOnYQ5WJdmS8zXhqVK32w52voUPi4HqrsiJ0PbEhbVjYdrHue6K9KXaSk9bbk5OqpgwPN4/nMqrgN14VobmvDUcJ3Z0uUrhAUQrEfK46voYfGq5rCMs7Q/nN18iynHiYlHlnOmF2XM+W80NMQ0kVaxWAbsoDdY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1711629291; c=relaxed/simple; bh=AeymmzYOVhV6ILBFdgZM5v3j4YNp4ZKQ8Dg8Z67qRwA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=XGwdvwVYiS/UKmRXSj5LVZ1z2V+LucQKEC9AbTLUUTzZstFrMaTlbspnYNScYfMyjAj8y0CTz2uDn/n8SzXZfQMaQIONl1LUIvDDVEz4HLcUclwHj25tuTrb+vJvYBzX0NOcCr0pujnXCOcnTJ5FvT82cNBPUiCqLhJf6IlmWo8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=ONX2w3L4; arc=none smtp.client-ip=209.85.221.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="ONX2w3L4" Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-34261edaf7eso581620f8f.1 for ; Thu, 28 Mar 2024 05:34:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711629287; x=1712234087; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JZ0vv1wQnvryEwq3rhsZ/X7XAHDM6osgJBQ005R7xBw=; b=ONX2w3L455L8KoxKD9jWmjLDD2nSQEGNGeiZ59OHdMGvw/0+V2JTpV3IWJsMTlT9DR kzVy4DMrffviUkxyN82HQd6qc+aD2D5DXoYytqmFgqPuBU36lJ8UYT0Lp2+foJOmCTdj /FOV+SzOPc/NNmXmnzOxg+Tu00zKDzNM+OaneAazQfJcH89uSvO8n2zqS1jWn7FbvKAo mKO1jmNvb9KaoVOOIcaFDrdgACTVcKjCD1T5qexjpl+p0UErRPtbAi2iyRL1JszvBY+9 goJPCCB1WOHOR8xeaCZzwsZYz+OGhostpJLuTQg+MS/q4zI26H+PhmtOASj4urBvsqnf 7N4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711629287; x=1712234087; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JZ0vv1wQnvryEwq3rhsZ/X7XAHDM6osgJBQ005R7xBw=; b=m1koy4G9Oxihc3Zt8qdcUV8LrfD27ZphfxwSnaUcMThNTP8K4Y/+6QiFlOJkErCMaL RhbCYl25SouPRV7nI0+I9cxH+7yyY/O6ukbn7nwE6sD4S+z3sBpy4tgZCgMFJd8Ovvqx uxt/+WIhJIQknCyAoouwvVV1grbp4SOI3+cTca4lT4hEMFESdnms+EcjFP/Xu5XR5Hsd DoIfZiJdva6cCyor4FSJWwJVoKLUTF1YP9PTDMpoLb5RhSERJ9SZ4zZQGZ/U7U1bxZjD RpkPt8IXQDkRzo4nhvvTZkz4ocb6/tWQCu65fN24ueFS+Wpt9LIEoTGTxXAhhgqxo5sn Uwyw== X-Forwarded-Encrypted: i=1; AJvYcCV1nAI1jdaYuDjbclSU9ai2PiP6Q9cX66HeOr6xzgpCd5/D4P9qcsKIA1S3oMLzz+LqiExowPQt7zfESV2ZnnXRvjAWem1xyflgHFmv X-Gm-Message-State: AOJu0YybbsMU/95ArapDBhKQd1OlHhxpLiT7lJ6xW3IfpOt8KUxpOwqw iklNkvIkjGSvvNrAJLqUEzk/KdKn2yhx5Ouh9I9U51IrU1e0OEwTpe4qmP/1i5Y= X-Google-Smtp-Source: AGHT+IGFNHOP84yRVpbydpE4oIv0WdGd/p3WZ93Ua0lXB3ARSXpZbu2w0NOolGbkZr9E3N7yAevC1g== X-Received: by 2002:a5d:64ef:0:b0:341:b846:9b5d with SMTP id g15-20020a5d64ef000000b00341b8469b5dmr2770700wri.52.1711629286962; Thu, 28 Mar 2024 05:34:46 -0700 (PDT) Received: from ta2.c.googlers.com.com (158.100.79.34.bc.googleusercontent.com. [34.79.100.158]) by smtp.gmail.com with ESMTPSA id u6-20020adfa186000000b00341e2146b53sm1639671wru.106.2024.03.28.05.34.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Mar 2024 05:34:46 -0700 (PDT) From: Tudor Ambarus To: peter.griffin@linaro.org, krzysztof.kozlowski@linaro.org Cc: alim.akhtar@samsung.com, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, andre.draszik@linaro.org, willmcvicker@google.com, kernel-team@android.com, s.nawrocki@samsung.com, cw00.choi@samsung.com, mturquette@baylibre.com, sboyd@kernel.org, semen.protsenko@linaro.org, linux-clk@vger.kernel.org, jaewon02.kim@samsung.com, Tudor Ambarus Subject: [PATCH v3 3/3] clk: samsung: gs101: propagate PERIC0 USI SPI clock rate Date: Thu, 28 Mar 2024 12:34:40 +0000 Message-ID: <20240328123440.1387823-4-tudor.ambarus@linaro.org> X-Mailer: git-send-email 2.44.0.396.g6e790dbe36-goog In-Reply-To: <20240328123440.1387823-1-tudor.ambarus@linaro.org> References: <20240328123440.1387823-1-tudor.ambarus@linaro.org> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When SPI transfer is being prepared, the spi-s3c64xx driver will call clk_set_rate() to change the rate of SPI source clock (IPCLK). But IPCLK is a gate (leaf) clock, so it must propagate the rate change up the clock tree, so that corresponding MUX/DIV clocks can actually change their values. Add CLK_SET_RATE_PARENT flag to corresponding clocks for all USI instances in GS101 PERIC0: USI{1-8, 14}. This change involves the following clocks: PERIC0 USI*: Clock Div range MUX Selection ------------------------------------------------------------------- gout_peric0_peric0_top0_ipclk_* - - dout_peric0_usi*_usi /1..16 - mout_peric0_usi*_usi_user - {24.5 MHz, 400 MHz} With input clock of 400 MHz this scheme provides the following IPCLK rate range, for each USI block: PERIC0 USI*: 1.5 MHz ... 400 MHz Accounting for internal /4 divider in SPI blocks, and because the max SPI frequency is limited at 50 MHz, it gives us next SPI SCK rates: PERIC0 USI_SPI*: 384 KHz ... 49.9 MHz Which shall be fine for the applications of the SPI bus. Note that with this we allow the reparenting of the MUX_USIx clocks to OSCCLK. Each instance of the USI IP has its own MUX_USI clock, thus the reparenting of a MUX_USI clock corresponds to a single instance of the USI IP. The datasheet mentions OSCCLK just in the low-power mode context, but the downstream driver reparents too the MUX_USI clocks to OSCCLK. Follow the downstream driver and do the same. Fixes: 893f133a040b ("clk: samsung: gs101: add support for cmu_peric0") Reviewed-by: Peter Griffin Acked-by: André Draszik Signed-off-by: Tudor Ambarus --- drivers/clk/samsung/clk-gs101.c | 135 +++++++++++++++++--------------- 1 file changed, 72 insertions(+), 63 deletions(-) diff --git a/drivers/clk/samsung/clk-gs101.c b/drivers/clk/samsung/clk-gs101.c index ddf2d57eed68..bd3c1b02715b 100644 --- a/drivers/clk/samsung/clk-gs101.c +++ b/drivers/clk/samsung/clk-gs101.c @@ -2763,33 +2763,33 @@ static const struct samsung_mux_clock peric0_mux_clks[] __initconst = { MUX(CLK_MOUT_PERIC0_USI0_UART_USER, "mout_peric0_usi0_uart_user", mout_peric0_usi0_uart_user_p, PLL_CON0_MUX_CLKCMU_PERIC0_USI0_UART_USER, 4, 1), - MUX(CLK_MOUT_PERIC0_USI14_USI_USER, - "mout_peric0_usi14_usi_user", mout_peric0_usi_usi_user_p, - PLL_CON0_MUX_CLKCMU_PERIC0_USI14_USI_USER, 4, 1), - MUX(CLK_MOUT_PERIC0_USI1_USI_USER, - "mout_peric0_usi1_usi_user", mout_peric0_usi_usi_user_p, - PLL_CON0_MUX_CLKCMU_PERIC0_USI1_USI_USER, 4, 1), - MUX(CLK_MOUT_PERIC0_USI2_USI_USER, - "mout_peric0_usi2_usi_user", mout_peric0_usi_usi_user_p, - PLL_CON0_MUX_CLKCMU_PERIC0_USI2_USI_USER, 4, 1), - MUX(CLK_MOUT_PERIC0_USI3_USI_USER, - "mout_peric0_usi3_usi_user", mout_peric0_usi_usi_user_p, - PLL_CON0_MUX_CLKCMU_PERIC0_USI3_USI_USER, 4, 1), - MUX(CLK_MOUT_PERIC0_USI4_USI_USER, - "mout_peric0_usi4_usi_user", mout_peric0_usi_usi_user_p, - PLL_CON0_MUX_CLKCMU_PERIC0_USI4_USI_USER, 4, 1), - MUX(CLK_MOUT_PERIC0_USI5_USI_USER, - "mout_peric0_usi5_usi_user", mout_peric0_usi_usi_user_p, - PLL_CON0_MUX_CLKCMU_PERIC0_USI5_USI_USER, 4, 1), - MUX(CLK_MOUT_PERIC0_USI6_USI_USER, - "mout_peric0_usi6_usi_user", mout_peric0_usi_usi_user_p, - PLL_CON0_MUX_CLKCMU_PERIC0_USI6_USI_USER, 4, 1), - MUX(CLK_MOUT_PERIC0_USI7_USI_USER, - "mout_peric0_usi7_usi_user", mout_peric0_usi_usi_user_p, - PLL_CON0_MUX_CLKCMU_PERIC0_USI7_USI_USER, 4, 1), - MUX(CLK_MOUT_PERIC0_USI8_USI_USER, - "mout_peric0_usi8_usi_user", mout_peric0_usi_usi_user_p, - PLL_CON0_MUX_CLKCMU_PERIC0_USI8_USI_USER, 4, 1), + nMUX(CLK_MOUT_PERIC0_USI14_USI_USER, + "mout_peric0_usi14_usi_user", mout_peric0_usi_usi_user_p, + PLL_CON0_MUX_CLKCMU_PERIC0_USI14_USI_USER, 4, 1), + nMUX(CLK_MOUT_PERIC0_USI1_USI_USER, + "mout_peric0_usi1_usi_user", mout_peric0_usi_usi_user_p, + PLL_CON0_MUX_CLKCMU_PERIC0_USI1_USI_USER, 4, 1), + nMUX(CLK_MOUT_PERIC0_USI2_USI_USER, + "mout_peric0_usi2_usi_user", mout_peric0_usi_usi_user_p, + PLL_CON0_MUX_CLKCMU_PERIC0_USI2_USI_USER, 4, 1), + nMUX(CLK_MOUT_PERIC0_USI3_USI_USER, + "mout_peric0_usi3_usi_user", mout_peric0_usi_usi_user_p, + PLL_CON0_MUX_CLKCMU_PERIC0_USI3_USI_USER, 4, 1), + nMUX(CLK_MOUT_PERIC0_USI4_USI_USER, + "mout_peric0_usi4_usi_user", mout_peric0_usi_usi_user_p, + PLL_CON0_MUX_CLKCMU_PERIC0_USI4_USI_USER, 4, 1), + nMUX(CLK_MOUT_PERIC0_USI5_USI_USER, + "mout_peric0_usi5_usi_user", mout_peric0_usi_usi_user_p, + PLL_CON0_MUX_CLKCMU_PERIC0_USI5_USI_USER, 4, 1), + nMUX(CLK_MOUT_PERIC0_USI6_USI_USER, + "mout_peric0_usi6_usi_user", mout_peric0_usi_usi_user_p, + PLL_CON0_MUX_CLKCMU_PERIC0_USI6_USI_USER, 4, 1), + nMUX(CLK_MOUT_PERIC0_USI7_USI_USER, + "mout_peric0_usi7_usi_user", mout_peric0_usi_usi_user_p, + PLL_CON0_MUX_CLKCMU_PERIC0_USI7_USI_USER, 4, 1), + nMUX(CLK_MOUT_PERIC0_USI8_USI_USER, + "mout_peric0_usi8_usi_user", mout_peric0_usi_usi_user_p, + PLL_CON0_MUX_CLKCMU_PERIC0_USI8_USI_USER, 4, 1), }; static const struct samsung_div_clock peric0_div_clks[] __initconst = { @@ -2798,33 +2798,42 @@ static const struct samsung_div_clock peric0_div_clks[] __initconst = { DIV(CLK_DOUT_PERIC0_USI0_UART, "dout_peric0_usi0_uart", "mout_peric0_usi0_uart_user", CLK_CON_DIV_DIV_CLK_PERIC0_USI0_UART, 0, 4), - DIV(CLK_DOUT_PERIC0_USI14_USI, - "dout_peric0_usi14_usi", "mout_peric0_usi14_usi_user", - CLK_CON_DIV_DIV_CLK_PERIC0_USI14_USI, 0, 4), - DIV(CLK_DOUT_PERIC0_USI1_USI, - "dout_peric0_usi1_usi", "mout_peric0_usi1_usi_user", - CLK_CON_DIV_DIV_CLK_PERIC0_USI1_USI, 0, 4), - DIV(CLK_DOUT_PERIC0_USI2_USI, - "dout_peric0_usi2_usi", "mout_peric0_usi2_usi_user", - CLK_CON_DIV_DIV_CLK_PERIC0_USI2_USI, 0, 4), - DIV(CLK_DOUT_PERIC0_USI3_USI, - "dout_peric0_usi3_usi", "mout_peric0_usi3_usi_user", - CLK_CON_DIV_DIV_CLK_PERIC0_USI3_USI, 0, 4), - DIV(CLK_DOUT_PERIC0_USI4_USI, - "dout_peric0_usi4_usi", "mout_peric0_usi4_usi_user", - CLK_CON_DIV_DIV_CLK_PERIC0_USI4_USI, 0, 4), - DIV(CLK_DOUT_PERIC0_USI5_USI, - "dout_peric0_usi5_usi", "mout_peric0_usi5_usi_user", - CLK_CON_DIV_DIV_CLK_PERIC0_USI5_USI, 0, 4), - DIV(CLK_DOUT_PERIC0_USI6_USI, - "dout_peric0_usi6_usi", "mout_peric0_usi6_usi_user", - CLK_CON_DIV_DIV_CLK_PERIC0_USI6_USI, 0, 4), - DIV(CLK_DOUT_PERIC0_USI7_USI, - "dout_peric0_usi7_usi", "mout_peric0_usi7_usi_user", - CLK_CON_DIV_DIV_CLK_PERIC0_USI7_USI, 0, 4), - DIV(CLK_DOUT_PERIC0_USI8_USI, - "dout_peric0_usi8_usi", "mout_peric0_usi8_usi_user", - CLK_CON_DIV_DIV_CLK_PERIC0_USI8_USI, 0, 4), + DIV_F(CLK_DOUT_PERIC0_USI14_USI, + "dout_peric0_usi14_usi", "mout_peric0_usi14_usi_user", + CLK_CON_DIV_DIV_CLK_PERIC0_USI14_USI, 0, 4, + CLK_SET_RATE_PARENT, 0), + DIV_F(CLK_DOUT_PERIC0_USI1_USI, + "dout_peric0_usi1_usi", "mout_peric0_usi1_usi_user", + CLK_CON_DIV_DIV_CLK_PERIC0_USI1_USI, 0, 4, + CLK_SET_RATE_PARENT, 0), + DIV_F(CLK_DOUT_PERIC0_USI2_USI, + "dout_peric0_usi2_usi", "mout_peric0_usi2_usi_user", + CLK_CON_DIV_DIV_CLK_PERIC0_USI2_USI, 0, 4, + CLK_SET_RATE_PARENT, 0), + DIV_F(CLK_DOUT_PERIC0_USI3_USI, + "dout_peric0_usi3_usi", "mout_peric0_usi3_usi_user", + CLK_CON_DIV_DIV_CLK_PERIC0_USI3_USI, 0, 4, + CLK_SET_RATE_PARENT, 0), + DIV_F(CLK_DOUT_PERIC0_USI4_USI, + "dout_peric0_usi4_usi", "mout_peric0_usi4_usi_user", + CLK_CON_DIV_DIV_CLK_PERIC0_USI4_USI, 0, 4, + CLK_SET_RATE_PARENT, 0), + DIV_F(CLK_DOUT_PERIC0_USI5_USI, + "dout_peric0_usi5_usi", "mout_peric0_usi5_usi_user", + CLK_CON_DIV_DIV_CLK_PERIC0_USI5_USI, 0, 4, + CLK_SET_RATE_PARENT, 0), + DIV_F(CLK_DOUT_PERIC0_USI6_USI, + "dout_peric0_usi6_usi", "mout_peric0_usi6_usi_user", + CLK_CON_DIV_DIV_CLK_PERIC0_USI6_USI, 0, 4, + CLK_SET_RATE_PARENT, 0), + DIV_F(CLK_DOUT_PERIC0_USI7_USI, + "dout_peric0_usi7_usi", "mout_peric0_usi7_usi_user", + CLK_CON_DIV_DIV_CLK_PERIC0_USI7_USI, 0, 4, + CLK_SET_RATE_PARENT, 0), + DIV_F(CLK_DOUT_PERIC0_USI8_USI, + "dout_peric0_usi8_usi", "mout_peric0_usi8_usi_user", + CLK_CON_DIV_DIV_CLK_PERIC0_USI8_USI, 0, 4, + CLK_SET_RATE_PARENT, 0), }; static const struct samsung_gate_clock peric0_gate_clks[] __initconst = { @@ -2857,11 +2866,11 @@ static const struct samsung_gate_clock peric0_gate_clks[] __initconst = { GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_0, "gout_peric0_peric0_top0_ipclk_0", "dout_peric0_usi1_usi", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_0, - 21, 0, 0), + 21, CLK_SET_RATE_PARENT, 0), GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_1, "gout_peric0_peric0_top0_ipclk_1", "dout_peric0_usi2_usi", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_1, - 21, 0, 0), + 21, CLK_SET_RATE_PARENT, 0), GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_10, "gout_peric0_peric0_top0_ipclk_10", "dout_peric0_i3c", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_10, @@ -2889,27 +2898,27 @@ static const struct samsung_gate_clock peric0_gate_clks[] __initconst = { GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_2, "gout_peric0_peric0_top0_ipclk_2", "dout_peric0_usi3_usi", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_2, - 21, 0, 0), + 21, CLK_SET_RATE_PARENT, 0), GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_3, "gout_peric0_peric0_top0_ipclk_3", "dout_peric0_usi4_usi", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_3, - 21, 0, 0), + 21, CLK_SET_RATE_PARENT, 0), GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_4, "gout_peric0_peric0_top0_ipclk_4", "dout_peric0_usi5_usi", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_4, - 21, 0, 0), + 21, CLK_SET_RATE_PARENT, 0), GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_5, "gout_peric0_peric0_top0_ipclk_5", "dout_peric0_usi6_usi", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_5, - 21, 0, 0), + 21, CLK_SET_RATE_PARENT, 0), GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_6, "gout_peric0_peric0_top0_ipclk_6", "dout_peric0_usi7_usi", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_6, - 21, 0, 0), + 21, CLK_SET_RATE_PARENT, 0), GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_7, "gout_peric0_peric0_top0_ipclk_7", "dout_peric0_usi8_usi", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_7, - 21, 0, 0), + 21, CLK_SET_RATE_PARENT, 0), GATE(CLK_GOUT_PERIC0_PERIC0_TOP0_IPCLK_8, "gout_peric0_peric0_top0_ipclk_8", "dout_peric0_i3c", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP0_IPCLKPORT_IPCLK_8, @@ -2990,7 +2999,7 @@ static const struct samsung_gate_clock peric0_gate_clks[] __initconst = { GATE(CLK_GOUT_PERIC0_PERIC0_TOP1_IPCLK_2, "gout_peric0_peric0_top1_ipclk_2", "dout_peric0_usi14_usi", CLK_CON_GAT_GOUT_BLK_PERIC0_UID_PERIC0_TOP1_IPCLKPORT_IPCLK_2, - 21, 0, 0), + 21, CLK_SET_RATE_PARENT, 0), /* Disabling this clock makes the system hang. Mark the clock as critical. */ GATE(CLK_GOUT_PERIC0_PERIC0_TOP1_PCLK_0, "gout_peric0_peric0_top1_pclk_0", "mout_peric0_bus_user", -- 2.44.0.396.g6e790dbe36-goog 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 BE4A2C54E64 for ; Thu, 28 Mar 2024 12:35:23 +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: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=OhK6tX2Evj5bsJdZ32PprsUnETtdPy6PkyYEIshynG8=; b=ork8mq925mTkfl jtrqixXxfnSPtw16gRD6gcFpLfS9oIzCqH+LoK/M/m0CdTAMXLpTQNbqgU6bS7FkAOYGSLigMGzWD kcqctq+ZOvjY0b4qylJ8Nytd/Dh4hDKzO3A9ZLRUQuDTkk8xJb87mDWympOFvvBcOoURNTx+IoBNB g1ebRg4WRhxRJG8Ljh6KAfN3tyRNLi/CK3JMMQo5+8W+3zS+9sGbzGvZ5yvLp7kg+BgaNecA6WIDU 2adZ/o8RlxpaC5ZNnzia4m4jMlBawSwBnKnSTdpG3w5nj/tPy88FM3/GWVLSV8ai7hBiBhJV78GWl c4GCx6J6LI1w1cfT34OA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpoyL-0000000DvkQ-0JCl; Thu, 28 Mar 2024 12:35:09 +0000 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rpoy0-0000000Dval-3KPg for linux-arm-kernel@lists.infradead.org; Thu, 28 Mar 2024 12:34:50 +0000 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-34175878e3cso636284f8f.0 for ; Thu, 28 Mar 2024 05:34:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1711629287; x=1712234087; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=JZ0vv1wQnvryEwq3rhsZ/X7XAHDM6osgJBQ005R7xBw=; b=pYDweUJwLVw7YWD7WdRVcG1m06Glj+LO0xfWSz7aP5X61SN8f8xsFkhNiDY05JpxJc eo/nLtfis36THy/JWqqnJnmXctRd3BRYf+G3Aj3Gcp8VOcIyM0nNnOplHLxobcdCC5R9 Ik9fw6rKxPFEfmPZwhOQkwhsoihc6QofFMgUlZggMBbZ/g/J6Yj//NxQEJC3LC9p9wRf 30LGv9h58yW2V4NztMnW4IUZtiAtpR8hXlYFk3oI0pMAOYQWt1tjRzCRiX8xWf8qd1Bn EzdAxQaJ5UtKPsjrWqCt8071OSudNWGsEbEwA47khVyLkzMrdtoIOKOsYht/KDGQePeX JwAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711629287; x=1712234087; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JZ0vv1wQnvryEwq3rhsZ/X7XAHDM6osgJBQ005R7xBw=; b=gc874pg3YhT32uJI6coURvCLZel5gfjRPHOYl7KPfjCJJ4xeqD/8aVCCIPbHidUyPm jZFPqJpzYVV91rmn0/Z5psso8c5bjlRJO8d/aX/OyKzcn1zl00F+9NAHuQYS+vY5y7TR kWclE9LYMrwHc/16PZuX/V6JJFbrJ5TstqUR2b8Pv9sg6LQ9FSm017zMV0fHx/SZQTop 5lixkYjsNxtfoCTVrxe+ab7kSwHkFyPsWfMYwwEtcflUY57bL6ss1YJX76f1FRU4cq4g UFzerBzD26bfjJfwoVyyl1NT97jMgidAilxlYh1znpP9PDJfmza+dsb1hQp6GEqk5jLq QIJg== X-Forwarded-Encrypted: i=1; AJvYcCUNqbLn0NmY0oI7eRjtHaG+/CrBmVznSOn8Zxpn9GB4SGaO3o4dC7hHcA986HPu8RaST4IVyJ28n0ES1xItjzYWBPN1AC05szlZyzz0T5MD2SoigHs= X-Gm-Message-State: AOJu0YxzklSINiPCNn9otjNiTHBCV2bJTxq8fW+KOGl8n16PzR3KNojq l68Frddp3FqQfC3MVxsPtKpHcAuTINUIHlrNbQzJN+8yz72UgaycklDUKGz8Bjc= X-Google-Smtp-Source: AGHT+IGFNHOP84yRVpbydpE4oIv0WdGd/p3WZ93Ua0lXB3ARSXpZbu2w0NOolGbkZr9E3N7yAevC1g== X-Received: by 2002:a5d:64ef:0:b0:341:b846:9b5d with SMTP id g15-20020a5d64ef000000b00341b8469b5dmr2770700wri.52.1711629286962; Thu, 28 Mar 2024 05:34:46 -0700 (PDT) Received: from ta2.c.googlers.com.com (158.100.79.34.bc.googleusercontent.com. [34.79.100.158]) by smtp.gmail.com with ESMTPSA id u6-20020adfa186000000b00341e2146b53sm1639671wru.106.2024.03.28.05.34.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 28 Mar 2024 05:34:46 -0700 (PDT) From: Tudor Ambarus To: peter.griffin@linaro.org, krzysztof.kozlowski@linaro.org Cc: alim.akhtar@samsung.com, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, andre.draszik@linaro.org, willmcvicker@google.com, kernel-team@android.com, s.nawrocki@samsung.com, cw00.choi@samsung.com, mturquette@baylibre.com, sboyd@kernel.org, semen.protsenko@linaro.org, linux-clk@vger.kernel.org, jaewon02.kim@samsung.com, Tudor Ambarus Subject: [PATCH v3 3/3] clk: samsung: gs101: propagate PERIC0 USI SPI clock rate Date: Thu, 28 Mar 2024 12:34:40 +0000 Message-ID: <20240328123440.1387823-4-tudor.ambarus@linaro.org> X-Mailer: git-send-email 2.44.0.396.g6e790dbe36-goog In-Reply-To: <20240328123440.1387823-1-tudor.ambarus@linaro.org> References: <20240328123440.1387823-1-tudor.ambarus@linaro.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240328_053448_880398_A0E967A9 X-CRM114-Status: GOOD ( 14.49 ) 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 V2hlbiBTUEkgdHJhbnNmZXIgaXMgYmVpbmcgcHJlcGFyZWQsIHRoZSBzcGktczNjNjR4eCBkcml2 ZXIgd2lsbCBjYWxsCmNsa19zZXRfcmF0ZSgpIHRvIGNoYW5nZSB0aGUgcmF0ZSBvZiBTUEkgc291 cmNlIGNsb2NrIChJUENMSykuIEJ1dCBJUENMSwppcyBhIGdhdGUgKGxlYWYpIGNsb2NrLCBzbyBp dCBtdXN0IHByb3BhZ2F0ZSB0aGUgcmF0ZSBjaGFuZ2UgdXAgdGhlCmNsb2NrIHRyZWUsIHNvIHRo YXQgY29ycmVzcG9uZGluZyBNVVgvRElWIGNsb2NrcyBjYW4gYWN0dWFsbHkgY2hhbmdlCnRoZWly IHZhbHVlcy4gQWRkIENMS19TRVRfUkFURV9QQVJFTlQgZmxhZyB0byBjb3JyZXNwb25kaW5nIGNs b2NrcyBmb3IKYWxsIFVTSSBpbnN0YW5jZXMgaW4gR1MxMDEgUEVSSUMwOiBVU0l7MS04LCAxNH0u IFRoaXMgY2hhbmdlIGludm9sdmVzIHRoZQpmb2xsb3dpbmcgY2xvY2tzOgoKUEVSSUMwIFVTSSo6 CgogICAgQ2xvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXYgcmFuZ2UgICAgTVVY IFNlbGVjdGlvbgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgZ291dF9wZXJpYzBfcGVyaWMwX3RvcDBfaXBj bGtfKiAgICAtICAgICAgICAgICAgLQogICAgZG91dF9wZXJpYzBfdXNpKl91c2kgICAgICAgICAg ICAgICAvMS4uMTYgICAgICAgLQogICAgbW91dF9wZXJpYzBfdXNpKl91c2lfdXNlciAgICAgICAg ICAtICAgICAgICAgICAgezI0LjUgTUh6LCA0MDAgTUh6fQoKV2l0aCBpbnB1dCBjbG9jayBvZiA0 MDAgTUh6IHRoaXMgc2NoZW1lIHByb3ZpZGVzIHRoZSBmb2xsb3dpbmcgSVBDTEsKcmF0ZSByYW5n ZSwgZm9yIGVhY2ggVVNJIGJsb2NrOgoKICAgIFBFUklDMCBVU0kqOiAgICAgICAxLjUgTUh6IC4u LiA0MDAgTUh6CgpBY2NvdW50aW5nIGZvciBpbnRlcm5hbCAvNCBkaXZpZGVyIGluIFNQSSBibG9j a3MsIGFuZCBiZWNhdXNlIHRoZSBtYXgKU1BJIGZyZXF1ZW5jeSBpcyBsaW1pdGVkIGF0IDUwIE1I eiwgaXQgZ2l2ZXMgdXMgbmV4dCBTUEkgU0NLIHJhdGVzOgoKICAgIFBFUklDMCBVU0lfU1BJKjog ICAzODQgS0h6IC4uLiA0OS45IE1IegoKV2hpY2ggc2hhbGwgYmUgZmluZSBmb3IgdGhlIGFwcGxp Y2F0aW9ucyBvZiB0aGUgU1BJIGJ1cy4KCk5vdGUgdGhhdCB3aXRoIHRoaXMgd2UgYWxsb3cgdGhl IHJlcGFyZW50aW5nIG9mIHRoZSBNVVhfVVNJeCBjbG9ja3MgdG8KT1NDQ0xLLiBFYWNoIGluc3Rh bmNlIG9mIHRoZSBVU0kgSVAgaGFzIGl0cyBvd24gTVVYX1VTSSBjbG9jaywgdGh1cyB0aGUKcmVw YXJlbnRpbmcgb2YgYSBNVVhfVVNJIGNsb2NrIGNvcnJlc3BvbmRzIHRvIGEgc2luZ2xlIGluc3Rh bmNlIG9mIHRoZQpVU0kgSVAuIFRoZSBkYXRhc2hlZXQgbWVudGlvbnMgT1NDQ0xLIGp1c3QgaW4g dGhlIGxvdy1wb3dlciBtb2RlCmNvbnRleHQsIGJ1dCB0aGUgZG93bnN0cmVhbSBkcml2ZXIgcmVw YXJlbnRzIHRvbyB0aGUgTVVYX1VTSSBjbG9ja3MgdG8KT1NDQ0xLLiBGb2xsb3cgdGhlIGRvd25z dHJlYW0gZHJpdmVyIGFuZCBkbyB0aGUgc2FtZS4KCkZpeGVzOiA4OTNmMTMzYTA0MGIgKCJjbGs6 IHNhbXN1bmc6IGdzMTAxOiBhZGQgc3VwcG9ydCBmb3IgY211X3BlcmljMCIpClJldmlld2VkLWJ5 OiBQZXRlciBHcmlmZmluIDxwZXRlci5ncmlmZmluQGxpbmFyby5vcmc+CkFja2VkLWJ5OiBBbmRy w6kgRHJhc3ppayA8YW5kcmUuZHJhc3ppa0BsaW5hcm8ub3JnPgpTaWduZWQtb2ZmLWJ5OiBUdWRv ciBBbWJhcnVzIDx0dWRvci5hbWJhcnVzQGxpbmFyby5vcmc+Ci0tLQogZHJpdmVycy9jbGsvc2Ft c3VuZy9jbGstZ3MxMDEuYyB8IDEzNSArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQog MSBmaWxlIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RyaXZlcnMvY2xrL3NhbXN1bmcvY2xrLWdzMTAxLmMgYi9kcml2ZXJzL2Nsay9zYW1z dW5nL2Nsay1nczEwMS5jCmluZGV4IGRkZjJkNTdlZWQ2OC4uYmQzYzFiMDI3MTViIDEwMDY0NAot LS0gYS9kcml2ZXJzL2Nsay9zYW1zdW5nL2Nsay1nczEwMS5jCisrKyBiL2RyaXZlcnMvY2xrL3Nh bXN1bmcvY2xrLWdzMTAxLmMKQEAgLTI3NjMsMzMgKzI3NjMsMzMgQEAgc3RhdGljIGNvbnN0IHN0 cnVjdCBzYW1zdW5nX211eF9jbG9jayBwZXJpYzBfbXV4X2Nsa3NbXSBfX2luaXRjb25zdCA9IHsK IAlNVVgoQ0xLX01PVVRfUEVSSUMwX1VTSTBfVUFSVF9VU0VSLAogCSAgICAibW91dF9wZXJpYzBf dXNpMF91YXJ0X3VzZXIiLCBtb3V0X3BlcmljMF91c2kwX3VhcnRfdXNlcl9wLAogCSAgICBQTExf Q09OMF9NVVhfQ0xLQ01VX1BFUklDMF9VU0kwX1VBUlRfVVNFUiwgNCwgMSksCi0JTVVYKENMS19N T1VUX1BFUklDMF9VU0kxNF9VU0lfVVNFUiwKLQkgICAgIm1vdXRfcGVyaWMwX3VzaTE0X3VzaV91 c2VyIiwgbW91dF9wZXJpYzBfdXNpX3VzaV91c2VyX3AsCi0JICAgIFBMTF9DT04wX01VWF9DTEtD TVVfUEVSSUMwX1VTSTE0X1VTSV9VU0VSLCA0LCAxKSwKLQlNVVgoQ0xLX01PVVRfUEVSSUMwX1VT STFfVVNJX1VTRVIsCi0JICAgICJtb3V0X3BlcmljMF91c2kxX3VzaV91c2VyIiwgbW91dF9wZXJp YzBfdXNpX3VzaV91c2VyX3AsCi0JICAgIFBMTF9DT04wX01VWF9DTEtDTVVfUEVSSUMwX1VTSTFf VVNJX1VTRVIsIDQsIDEpLAotCU1VWChDTEtfTU9VVF9QRVJJQzBfVVNJMl9VU0lfVVNFUiwKLQkg ICAgIm1vdXRfcGVyaWMwX3VzaTJfdXNpX3VzZXIiLCBtb3V0X3BlcmljMF91c2lfdXNpX3VzZXJf cCwKLQkgICAgUExMX0NPTjBfTVVYX0NMS0NNVV9QRVJJQzBfVVNJMl9VU0lfVVNFUiwgNCwgMSks Ci0JTVVYKENMS19NT1VUX1BFUklDMF9VU0kzX1VTSV9VU0VSLAotCSAgICAibW91dF9wZXJpYzBf dXNpM191c2lfdXNlciIsIG1vdXRfcGVyaWMwX3VzaV91c2lfdXNlcl9wLAotCSAgICBQTExfQ09O MF9NVVhfQ0xLQ01VX1BFUklDMF9VU0kzX1VTSV9VU0VSLCA0LCAxKSwKLQlNVVgoQ0xLX01PVVRf UEVSSUMwX1VTSTRfVVNJX1VTRVIsCi0JICAgICJtb3V0X3BlcmljMF91c2k0X3VzaV91c2VyIiwg bW91dF9wZXJpYzBfdXNpX3VzaV91c2VyX3AsCi0JICAgIFBMTF9DT04wX01VWF9DTEtDTVVfUEVS SUMwX1VTSTRfVVNJX1VTRVIsIDQsIDEpLAotCU1VWChDTEtfTU9VVF9QRVJJQzBfVVNJNV9VU0lf VVNFUiwKLQkgICAgIm1vdXRfcGVyaWMwX3VzaTVfdXNpX3VzZXIiLCBtb3V0X3BlcmljMF91c2lf dXNpX3VzZXJfcCwKLQkgICAgUExMX0NPTjBfTVVYX0NMS0NNVV9QRVJJQzBfVVNJNV9VU0lfVVNF UiwgNCwgMSksCi0JTVVYKENMS19NT1VUX1BFUklDMF9VU0k2X1VTSV9VU0VSLAotCSAgICAibW91 dF9wZXJpYzBfdXNpNl91c2lfdXNlciIsIG1vdXRfcGVyaWMwX3VzaV91c2lfdXNlcl9wLAotCSAg ICBQTExfQ09OMF9NVVhfQ0xLQ01VX1BFUklDMF9VU0k2X1VTSV9VU0VSLCA0LCAxKSwKLQlNVVgo Q0xLX01PVVRfUEVSSUMwX1VTSTdfVVNJX1VTRVIsCi0JICAgICJtb3V0X3BlcmljMF91c2k3X3Vz aV91c2VyIiwgbW91dF9wZXJpYzBfdXNpX3VzaV91c2VyX3AsCi0JICAgIFBMTF9DT04wX01VWF9D TEtDTVVfUEVSSUMwX1VTSTdfVVNJX1VTRVIsIDQsIDEpLAotCU1VWChDTEtfTU9VVF9QRVJJQzBf VVNJOF9VU0lfVVNFUiwKLQkgICAgIm1vdXRfcGVyaWMwX3VzaThfdXNpX3VzZXIiLCBtb3V0X3Bl cmljMF91c2lfdXNpX3VzZXJfcCwKLQkgICAgUExMX0NPTjBfTVVYX0NMS0NNVV9QRVJJQzBfVVNJ OF9VU0lfVVNFUiwgNCwgMSksCisJbk1VWChDTEtfTU9VVF9QRVJJQzBfVVNJMTRfVVNJX1VTRVIs CisJICAgICAibW91dF9wZXJpYzBfdXNpMTRfdXNpX3VzZXIiLCBtb3V0X3BlcmljMF91c2lfdXNp X3VzZXJfcCwKKwkgICAgIFBMTF9DT04wX01VWF9DTEtDTVVfUEVSSUMwX1VTSTE0X1VTSV9VU0VS LCA0LCAxKSwKKwluTVVYKENMS19NT1VUX1BFUklDMF9VU0kxX1VTSV9VU0VSLAorCSAgICAgIm1v dXRfcGVyaWMwX3VzaTFfdXNpX3VzZXIiLCBtb3V0X3BlcmljMF91c2lfdXNpX3VzZXJfcCwKKwkg ICAgIFBMTF9DT04wX01VWF9DTEtDTVVfUEVSSUMwX1VTSTFfVVNJX1VTRVIsIDQsIDEpLAorCW5N VVgoQ0xLX01PVVRfUEVSSUMwX1VTSTJfVVNJX1VTRVIsCisJICAgICAibW91dF9wZXJpYzBfdXNp Ml91c2lfdXNlciIsIG1vdXRfcGVyaWMwX3VzaV91c2lfdXNlcl9wLAorCSAgICAgUExMX0NPTjBf TVVYX0NMS0NNVV9QRVJJQzBfVVNJMl9VU0lfVVNFUiwgNCwgMSksCisJbk1VWChDTEtfTU9VVF9Q RVJJQzBfVVNJM19VU0lfVVNFUiwKKwkgICAgICJtb3V0X3BlcmljMF91c2kzX3VzaV91c2VyIiwg bW91dF9wZXJpYzBfdXNpX3VzaV91c2VyX3AsCisJICAgICBQTExfQ09OMF9NVVhfQ0xLQ01VX1BF UklDMF9VU0kzX1VTSV9VU0VSLCA0LCAxKSwKKwluTVVYKENMS19NT1VUX1BFUklDMF9VU0k0X1VT SV9VU0VSLAorCSAgICAgIm1vdXRfcGVyaWMwX3VzaTRfdXNpX3VzZXIiLCBtb3V0X3BlcmljMF91 c2lfdXNpX3VzZXJfcCwKKwkgICAgIFBMTF9DT04wX01VWF9DTEtDTVVfUEVSSUMwX1VTSTRfVVNJ X1VTRVIsIDQsIDEpLAorCW5NVVgoQ0xLX01PVVRfUEVSSUMwX1VTSTVfVVNJX1VTRVIsCisJICAg ICAibW91dF9wZXJpYzBfdXNpNV91c2lfdXNlciIsIG1vdXRfcGVyaWMwX3VzaV91c2lfdXNlcl9w LAorCSAgICAgUExMX0NPTjBfTVVYX0NMS0NNVV9QRVJJQzBfVVNJNV9VU0lfVVNFUiwgNCwgMSks CisJbk1VWChDTEtfTU9VVF9QRVJJQzBfVVNJNl9VU0lfVVNFUiwKKwkgICAgICJtb3V0X3Blcmlj MF91c2k2X3VzaV91c2VyIiwgbW91dF9wZXJpYzBfdXNpX3VzaV91c2VyX3AsCisJICAgICBQTExf Q09OMF9NVVhfQ0xLQ01VX1BFUklDMF9VU0k2X1VTSV9VU0VSLCA0LCAxKSwKKwluTVVYKENMS19N T1VUX1BFUklDMF9VU0k3X1VTSV9VU0VSLAorCSAgICAgIm1vdXRfcGVyaWMwX3VzaTdfdXNpX3Vz ZXIiLCBtb3V0X3BlcmljMF91c2lfdXNpX3VzZXJfcCwKKwkgICAgIFBMTF9DT04wX01VWF9DTEtD TVVfUEVSSUMwX1VTSTdfVVNJX1VTRVIsIDQsIDEpLAorCW5NVVgoQ0xLX01PVVRfUEVSSUMwX1VT SThfVVNJX1VTRVIsCisJICAgICAibW91dF9wZXJpYzBfdXNpOF91c2lfdXNlciIsIG1vdXRfcGVy aWMwX3VzaV91c2lfdXNlcl9wLAorCSAgICAgUExMX0NPTjBfTVVYX0NMS0NNVV9QRVJJQzBfVVNJ OF9VU0lfVVNFUiwgNCwgMSksCiB9OwogCiBzdGF0aWMgY29uc3Qgc3RydWN0IHNhbXN1bmdfZGl2 X2Nsb2NrIHBlcmljMF9kaXZfY2xrc1tdIF9faW5pdGNvbnN0ID0gewpAQCAtMjc5OCwzMyArMjc5 OCw0MiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNhbXN1bmdfZGl2X2Nsb2NrIHBlcmljMF9kaXZf Y2xrc1tdIF9faW5pdGNvbnN0ID0gewogCURJVihDTEtfRE9VVF9QRVJJQzBfVVNJMF9VQVJULAog CSAgICAiZG91dF9wZXJpYzBfdXNpMF91YXJ0IiwgIm1vdXRfcGVyaWMwX3VzaTBfdWFydF91c2Vy IiwKIAkgICAgQ0xLX0NPTl9ESVZfRElWX0NMS19QRVJJQzBfVVNJMF9VQVJULCAwLCA0KSwKLQlE SVYoQ0xLX0RPVVRfUEVSSUMwX1VTSTE0X1VTSSwKLQkgICAgImRvdXRfcGVyaWMwX3VzaTE0X3Vz aSIsICJtb3V0X3BlcmljMF91c2kxNF91c2lfdXNlciIsCi0JICAgIENMS19DT05fRElWX0RJVl9D TEtfUEVSSUMwX1VTSTE0X1VTSSwgMCwgNCksCi0JRElWKENMS19ET1VUX1BFUklDMF9VU0kxX1VT SSwKLQkgICAgImRvdXRfcGVyaWMwX3VzaTFfdXNpIiwgIm1vdXRfcGVyaWMwX3VzaTFfdXNpX3Vz ZXIiLAotCSAgICBDTEtfQ09OX0RJVl9ESVZfQ0xLX1BFUklDMF9VU0kxX1VTSSwgMCwgNCksCi0J RElWKENMS19ET1VUX1BFUklDMF9VU0kyX1VTSSwKLQkgICAgImRvdXRfcGVyaWMwX3VzaTJfdXNp IiwgIm1vdXRfcGVyaWMwX3VzaTJfdXNpX3VzZXIiLAotCSAgICBDTEtfQ09OX0RJVl9ESVZfQ0xL X1BFUklDMF9VU0kyX1VTSSwgMCwgNCksCi0JRElWKENMS19ET1VUX1BFUklDMF9VU0kzX1VTSSwK LQkgICAgImRvdXRfcGVyaWMwX3VzaTNfdXNpIiwgIm1vdXRfcGVyaWMwX3VzaTNfdXNpX3VzZXIi LAotCSAgICBDTEtfQ09OX0RJVl9ESVZfQ0xLX1BFUklDMF9VU0kzX1VTSSwgMCwgNCksCi0JRElW KENMS19ET1VUX1BFUklDMF9VU0k0X1VTSSwKLQkgICAgImRvdXRfcGVyaWMwX3VzaTRfdXNpIiwg Im1vdXRfcGVyaWMwX3VzaTRfdXNpX3VzZXIiLAotCSAgICBDTEtfQ09OX0RJVl9ESVZfQ0xLX1BF UklDMF9VU0k0X1VTSSwgMCwgNCksCi0JRElWKENMS19ET1VUX1BFUklDMF9VU0k1X1VTSSwKLQkg ICAgImRvdXRfcGVyaWMwX3VzaTVfdXNpIiwgIm1vdXRfcGVyaWMwX3VzaTVfdXNpX3VzZXIiLAot CSAgICBDTEtfQ09OX0RJVl9ESVZfQ0xLX1BFUklDMF9VU0k1X1VTSSwgMCwgNCksCi0JRElWKENM S19ET1VUX1BFUklDMF9VU0k2X1VTSSwKLQkgICAgImRvdXRfcGVyaWMwX3VzaTZfdXNpIiwgIm1v dXRfcGVyaWMwX3VzaTZfdXNpX3VzZXIiLAotCSAgICBDTEtfQ09OX0RJVl9ESVZfQ0xLX1BFUklD MF9VU0k2X1VTSSwgMCwgNCksCi0JRElWKENMS19ET1VUX1BFUklDMF9VU0k3X1VTSSwKLQkgICAg ImRvdXRfcGVyaWMwX3VzaTdfdXNpIiwgIm1vdXRfcGVyaWMwX3VzaTdfdXNpX3VzZXIiLAotCSAg ICBDTEtfQ09OX0RJVl9ESVZfQ0xLX1BFUklDMF9VU0k3X1VTSSwgMCwgNCksCi0JRElWKENMS19E T1VUX1BFUklDMF9VU0k4X1VTSSwKLQkgICAgImRvdXRfcGVyaWMwX3VzaThfdXNpIiwgIm1vdXRf cGVyaWMwX3VzaThfdXNpX3VzZXIiLAotCSAgICBDTEtfQ09OX0RJVl9ESVZfQ0xLX1BFUklDMF9V U0k4X1VTSSwgMCwgNCksCisJRElWX0YoQ0xLX0RPVVRfUEVSSUMwX1VTSTE0X1VTSSwKKwkgICAg ICAiZG91dF9wZXJpYzBfdXNpMTRfdXNpIiwgIm1vdXRfcGVyaWMwX3VzaTE0X3VzaV91c2VyIiwK KwkgICAgICBDTEtfQ09OX0RJVl9ESVZfQ0xLX1BFUklDMF9VU0kxNF9VU0ksIDAsIDQsCisJICAg ICAgQ0xLX1NFVF9SQVRFX1BBUkVOVCwgMCksCisJRElWX0YoQ0xLX0RPVVRfUEVSSUMwX1VTSTFf VVNJLAorCSAgICAgICJkb3V0X3BlcmljMF91c2kxX3VzaSIsICJtb3V0X3BlcmljMF91c2kxX3Vz aV91c2VyIiwKKwkgICAgICBDTEtfQ09OX0RJVl9ESVZfQ0xLX1BFUklDMF9VU0kxX1VTSSwgMCwg NCwKKwkgICAgICBDTEtfU0VUX1JBVEVfUEFSRU5ULCAwKSwKKwlESVZfRihDTEtfRE9VVF9QRVJJ QzBfVVNJMl9VU0ksCisJICAgICAgImRvdXRfcGVyaWMwX3VzaTJfdXNpIiwgIm1vdXRfcGVyaWMw X3VzaTJfdXNpX3VzZXIiLAorCSAgICAgIENMS19DT05fRElWX0RJVl9DTEtfUEVSSUMwX1VTSTJf VVNJLCAwLCA0LAorCSAgICAgIENMS19TRVRfUkFURV9QQVJFTlQsIDApLAorCURJVl9GKENMS19E T1VUX1BFUklDMF9VU0kzX1VTSSwKKwkgICAgICAiZG91dF9wZXJpYzBfdXNpM191c2kiLCAibW91 dF9wZXJpYzBfdXNpM191c2lfdXNlciIsCisJICAgICAgQ0xLX0NPTl9ESVZfRElWX0NMS19QRVJJ QzBfVVNJM19VU0ksIDAsIDQsCisJICAgICAgQ0xLX1NFVF9SQVRFX1BBUkVOVCwgMCksCisJRElW X0YoQ0xLX0RPVVRfUEVSSUMwX1VTSTRfVVNJLAorCSAgICAgICJkb3V0X3BlcmljMF91c2k0X3Vz aSIsICJtb3V0X3BlcmljMF91c2k0X3VzaV91c2VyIiwKKwkgICAgICBDTEtfQ09OX0RJVl9ESVZf Q0xLX1BFUklDMF9VU0k0X1VTSSwgMCwgNCwKKwkgICAgICBDTEtfU0VUX1JBVEVfUEFSRU5ULCAw KSwKKwlESVZfRihDTEtfRE9VVF9QRVJJQzBfVVNJNV9VU0ksCisJICAgICAgImRvdXRfcGVyaWMw X3VzaTVfdXNpIiwgIm1vdXRfcGVyaWMwX3VzaTVfdXNpX3VzZXIiLAorCSAgICAgIENMS19DT05f RElWX0RJVl9DTEtfUEVSSUMwX1VTSTVfVVNJLCAwLCA0LAorCSAgICAgIENMS19TRVRfUkFURV9Q QVJFTlQsIDApLAorCURJVl9GKENMS19ET1VUX1BFUklDMF9VU0k2X1VTSSwKKwkgICAgICAiZG91 dF9wZXJpYzBfdXNpNl91c2kiLCAibW91dF9wZXJpYzBfdXNpNl91c2lfdXNlciIsCisJICAgICAg Q0xLX0NPTl9ESVZfRElWX0NMS19QRVJJQzBfVVNJNl9VU0ksIDAsIDQsCisJICAgICAgQ0xLX1NF VF9SQVRFX1BBUkVOVCwgMCksCisJRElWX0YoQ0xLX0RPVVRfUEVSSUMwX1VTSTdfVVNJLAorCSAg ICAgICJkb3V0X3BlcmljMF91c2k3X3VzaSIsICJtb3V0X3BlcmljMF91c2k3X3VzaV91c2VyIiwK KwkgICAgICBDTEtfQ09OX0RJVl9ESVZfQ0xLX1BFUklDMF9VU0k3X1VTSSwgMCwgNCwKKwkgICAg ICBDTEtfU0VUX1JBVEVfUEFSRU5ULCAwKSwKKwlESVZfRihDTEtfRE9VVF9QRVJJQzBfVVNJOF9V U0ksCisJICAgICAgImRvdXRfcGVyaWMwX3VzaThfdXNpIiwgIm1vdXRfcGVyaWMwX3VzaThfdXNp X3VzZXIiLAorCSAgICAgIENMS19DT05fRElWX0RJVl9DTEtfUEVSSUMwX1VTSThfVVNJLCAwLCA0 LAorCSAgICAgIENMS19TRVRfUkFURV9QQVJFTlQsIDApLAogfTsKIAogc3RhdGljIGNvbnN0IHN0 cnVjdCBzYW1zdW5nX2dhdGVfY2xvY2sgcGVyaWMwX2dhdGVfY2xrc1tdIF9faW5pdGNvbnN0ID0g ewpAQCAtMjg1NywxMSArMjg2NiwxMSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNhbXN1bmdfZ2F0 ZV9jbG9jayBwZXJpYzBfZ2F0ZV9jbGtzW10gX19pbml0Y29uc3QgPSB7CiAJR0FURShDTEtfR09V VF9QRVJJQzBfUEVSSUMwX1RPUDBfSVBDTEtfMCwKIAkgICAgICJnb3V0X3BlcmljMF9wZXJpYzBf dG9wMF9pcGNsa18wIiwgImRvdXRfcGVyaWMwX3VzaTFfdXNpIiwKIAkgICAgIENMS19DT05fR0FU X0dPVVRfQkxLX1BFUklDMF9VSURfUEVSSUMwX1RPUDBfSVBDTEtQT1JUX0lQQ0xLXzAsCi0JICAg ICAyMSwgMCwgMCksCisJICAgICAyMSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwgMCksCiAJR0FURShD TEtfR09VVF9QRVJJQzBfUEVSSUMwX1RPUDBfSVBDTEtfMSwKIAkgICAgICJnb3V0X3BlcmljMF9w ZXJpYzBfdG9wMF9pcGNsa18xIiwgImRvdXRfcGVyaWMwX3VzaTJfdXNpIiwKIAkgICAgIENMS19D T05fR0FUX0dPVVRfQkxLX1BFUklDMF9VSURfUEVSSUMwX1RPUDBfSVBDTEtQT1JUX0lQQ0xLXzEs Ci0JICAgICAyMSwgMCwgMCksCisJICAgICAyMSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwgMCksCiAJ R0FURShDTEtfR09VVF9QRVJJQzBfUEVSSUMwX1RPUDBfSVBDTEtfMTAsCiAJICAgICAiZ291dF9w ZXJpYzBfcGVyaWMwX3RvcDBfaXBjbGtfMTAiLCAiZG91dF9wZXJpYzBfaTNjIiwKIAkgICAgIENM S19DT05fR0FUX0dPVVRfQkxLX1BFUklDMF9VSURfUEVSSUMwX1RPUDBfSVBDTEtQT1JUX0lQQ0xL XzEwLApAQCAtMjg4OSwyNyArMjg5OCwyNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNhbXN1bmdf Z2F0ZV9jbG9jayBwZXJpYzBfZ2F0ZV9jbGtzW10gX19pbml0Y29uc3QgPSB7CiAJR0FURShDTEtf R09VVF9QRVJJQzBfUEVSSUMwX1RPUDBfSVBDTEtfMiwKIAkgICAgICJnb3V0X3BlcmljMF9wZXJp YzBfdG9wMF9pcGNsa18yIiwgImRvdXRfcGVyaWMwX3VzaTNfdXNpIiwKIAkgICAgIENMS19DT05f R0FUX0dPVVRfQkxLX1BFUklDMF9VSURfUEVSSUMwX1RPUDBfSVBDTEtQT1JUX0lQQ0xLXzIsCi0J ICAgICAyMSwgMCwgMCksCisJICAgICAyMSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwgMCksCiAJR0FU RShDTEtfR09VVF9QRVJJQzBfUEVSSUMwX1RPUDBfSVBDTEtfMywKIAkgICAgICJnb3V0X3Blcmlj MF9wZXJpYzBfdG9wMF9pcGNsa18zIiwgImRvdXRfcGVyaWMwX3VzaTRfdXNpIiwKIAkgICAgIENM S19DT05fR0FUX0dPVVRfQkxLX1BFUklDMF9VSURfUEVSSUMwX1RPUDBfSVBDTEtQT1JUX0lQQ0xL XzMsCi0JICAgICAyMSwgMCwgMCksCisJICAgICAyMSwgQ0xLX1NFVF9SQVRFX1BBUkVOVCwgMCks CiAJR0FURShDTEtfR09VVF9QRVJJQzBfUEVSSUMwX1RPUDBfSVBDTEtfNCwKIAkgICAgICJnb3V0 X3BlcmljMF9wZXJpYzBfdG9wMF9pcGNsa180IiwgImRvdXRfcGVyaWMwX3VzaTVfdXNpIiwKIAkg ICAgIENMS19DT05fR0FUX0dPVVRfQkxLX1BFUklDMF9VSURfUEVSSUMwX1RPUDBfSVBDTEtQT1JU X0lQQ0xLXzQsCi0JICAgICAyMSwgMCwgMCksCisJICAgICAyMSwgQ0xLX1NFVF9SQVRFX1BBUkVO VCwgMCksCiAJR0FURShDTEtfR09VVF9QRVJJQzBfUEVSSUMwX1RPUDBfSVBDTEtfNSwKIAkgICAg ICJnb3V0X3BlcmljMF9wZXJpYzBfdG9wMF9pcGNsa181IiwgImRvdXRfcGVyaWMwX3VzaTZfdXNp IiwKIAkgICAgIENMS19DT05fR0FUX0dPVVRfQkxLX1BFUklDMF9VSURfUEVSSUMwX1RPUDBfSVBD TEtQT1JUX0lQQ0xLXzUsCi0JICAgICAyMSwgMCwgMCksCisJICAgICAyMSwgQ0xLX1NFVF9SQVRF X1BBUkVOVCwgMCksCiAJR0FURShDTEtfR09VVF9QRVJJQzBfUEVSSUMwX1RPUDBfSVBDTEtfNiwK IAkgICAgICJnb3V0X3BlcmljMF9wZXJpYzBfdG9wMF9pcGNsa182IiwgImRvdXRfcGVyaWMwX3Vz aTdfdXNpIiwKIAkgICAgIENMS19DT05fR0FUX0dPVVRfQkxLX1BFUklDMF9VSURfUEVSSUMwX1RP UDBfSVBDTEtQT1JUX0lQQ0xLXzYsCi0JICAgICAyMSwgMCwgMCksCisJICAgICAyMSwgQ0xLX1NF VF9SQVRFX1BBUkVOVCwgMCksCiAJR0FURShDTEtfR09VVF9QRVJJQzBfUEVSSUMwX1RPUDBfSVBD TEtfNywKIAkgICAgICJnb3V0X3BlcmljMF9wZXJpYzBfdG9wMF9pcGNsa183IiwgImRvdXRfcGVy aWMwX3VzaThfdXNpIiwKIAkgICAgIENMS19DT05fR0FUX0dPVVRfQkxLX1BFUklDMF9VSURfUEVS SUMwX1RPUDBfSVBDTEtQT1JUX0lQQ0xLXzcsCi0JICAgICAyMSwgMCwgMCksCisJICAgICAyMSwg Q0xLX1NFVF9SQVRFX1BBUkVOVCwgMCksCiAJR0FURShDTEtfR09VVF9QRVJJQzBfUEVSSUMwX1RP UDBfSVBDTEtfOCwKIAkgICAgICJnb3V0X3BlcmljMF9wZXJpYzBfdG9wMF9pcGNsa184IiwgImRv dXRfcGVyaWMwX2kzYyIsCiAJICAgICBDTEtfQ09OX0dBVF9HT1VUX0JMS19QRVJJQzBfVUlEX1BF UklDMF9UT1AwX0lQQ0xLUE9SVF9JUENMS184LApAQCAtMjk5MCw3ICsyOTk5LDcgQEAgc3RhdGlj IGNvbnN0IHN0cnVjdCBzYW1zdW5nX2dhdGVfY2xvY2sgcGVyaWMwX2dhdGVfY2xrc1tdIF9faW5p dGNvbnN0ID0gewogCUdBVEUoQ0xLX0dPVVRfUEVSSUMwX1BFUklDMF9UT1AxX0lQQ0xLXzIsCiAJ ICAgICAiZ291dF9wZXJpYzBfcGVyaWMwX3RvcDFfaXBjbGtfMiIsICJkb3V0X3BlcmljMF91c2kx NF91c2kiLAogCSAgICAgQ0xLX0NPTl9HQVRfR09VVF9CTEtfUEVSSUMwX1VJRF9QRVJJQzBfVE9Q MV9JUENMS1BPUlRfSVBDTEtfMiwKLQkgICAgIDIxLCAwLCAwKSwKKwkgICAgIDIxLCBDTEtfU0VU X1JBVEVfUEFSRU5ULCAwKSwKIAkvKiBEaXNhYmxpbmcgdGhpcyBjbG9jayBtYWtlcyB0aGUgc3lz dGVtIGhhbmcuIE1hcmsgdGhlIGNsb2NrIGFzIGNyaXRpY2FsLiAqLwogCUdBVEUoQ0xLX0dPVVRf UEVSSUMwX1BFUklDMF9UT1AxX1BDTEtfMCwKIAkgICAgICJnb3V0X3BlcmljMF9wZXJpYzBfdG9w MV9wY2xrXzAiLCAibW91dF9wZXJpYzBfYnVzX3VzZXIiLAotLSAKMi40NC4wLjM5Ni5nNmU3OTBk YmUzNi1nb29nCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5p bmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8v bGludXgtYXJtLWtlcm5lbAo=