Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932779AbbD0Ljg (ORCPT ); Mon, 27 Apr 2015 07:39:36 -0400 Received: from mailout3.samsung.com ([203.254.224.33]:55113 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932638AbbD0Lig (ORCPT ); Mon, 27 Apr 2015 07:38:36 -0400 X-AuditID: cbfee68e-f79c56d000006efb-4b-553e1fb20006 From: Chanwoo Choi To: s.nawrocki@samsung.com, tomasz.figa@gmail.com, mturquette@linaro.org Cc: kgene@kernel.org, inki.dae@samsung.com, chanho61.park@samsung.com, cw00.choi@samsung.com, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Jonghwa Lee Subject: [PATCH v3 10/10] clk: samsung: exynos5433: Add CLK_IGNORE_UNUSED flag to prevent the hang for suspend-to-ram Date: Mon, 27 Apr 2015 20:36:37 +0900 Message-id: <1430134597-14668-11-git-send-email-cw00.choi@samsung.com> X-Mailer: git-send-email 1.8.5.5 In-reply-to: <1430134597-14668-1-git-send-email-cw00.choi@samsung.com> References: <1430134597-14668-1-git-send-email-cw00.choi@samsung.com> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrHLMWRmVeSWpSXmKPExsWyRsSkWHeTvF2owecnBhaX92tbXP/ynNVi /pFzrBaT7k9gseg8+4TZov/xa2aLy7vmsFnMOL+PyeLphItsFofftLNarNr1h9GB22PnrLvs HptWdbJ53Lm2h82jb8sqRo/Pm+QCWKO4bFJSczLLUov07RK4MiZ/vcVaMFGj4soT/gbGY0pd jJwcEgImEvv3HWeFsMUkLtxbz9bFyMUhJLCUUaKp6zU7TNGL/acYIRLTGSVOzXjABJIQEvjC KNH1OgTEZhPQktj/4gYbiC0i4CFx+tlNFpAGZoHnjBJLNrWDNQgLlEs8PbgRbB2LgKrE0293 wWxeATeJ1ptPGCG2KUgsWz4TLM4JFF+69REzxDJXiXXrt4KdJyGwjV3iyf6pLBCDBCS+TT4E ZHMAJWQlNh1ghpgjKXFwxQ2WCYzCCxgZVjGKphYkFxQnpRcZ6RUn5haX5qXrJefnbmIERsPp f8/6djDePGB9iFGAg1GJh1diom2oEGtiWXFl7iFGU6ANE5mlRJPzgTGXVxJvaGxmZGFqYmps ZG5ppiTOmyD1M1hIID2xJDU7NbUgtSi+qDQntfgQIxMHp1QDY7VNt6nb2vV/dr5xPcR+2mqH 3KmTEmsPVD6erTOpvNY/4F3wzOAO941cIucXrAr4w7mPddOMitaQqC1qbNqCvxdl8jH+Ohj2 847Tx5DPnc7X5Q/PmhEcUBs9LT9yS8bD07E5HhmekwNmv7gdwn3hkLPj1PX6z/SSpQr2Hj7S EpxQvPRN6XaezUosxRmJhlrMRcWJADS2zEqBAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrBIsWRmVeSWpSXmKPExsVy+t9jQd1N8nahBuu+aFlc3q9tcf3Lc1aL +UfOsVpMuj+BxaLz7BNmi/7Hr5ktLu+aw2Yx4/w+JounEy6yWRx+085qsWrXH0YHbo+ds+6y e2xa1cnmcefaHjaPvi2rGD0+b5ILYI1qYLTJSE1MSS1SSM1Lzk/JzEu3VfIOjneONzUzMNQ1 tLQwV1LIS8xNtVVy8QnQdcvMATpNSaEsMacUKBSQWFyspG+HaUJoiJuuBUxjhK5vSBBcj5EB GkhYw5gx+est1oKJGhVXnvA3MB5T6mLk5JAQMJF4sf8UI4QtJnHh3nq2LkYuDiGB6YwSp2Y8 YAJJCAl8YZToeh0CYrMJaEnsf3GDDcQWEfCQOP3sJgtIA7PAc0aJJZvawRqEBcolnh7cyApi swioSjz9dhfM5hVwk2i9+QRqm4LEsuUzweKcQPGlWx8xQyxzlVi3fivbBEbeBYwMqxhFUwuS C4qT0nON9IoTc4tL89L1kvNzNzGCY+2Z9A7GVQ0WhxgFOBiVeHglJtqGCrEmlhVX5h5ilOBg VhLh5ZazCxXiTUmsrEotyo8vKs1JLT7EaAp01URmKdHkfGAayCuJNzQ2MTOyNDI3tDAyNlcS 552jKxcqJJCeWJKanZpakFoE08fEwSnVwLjh07+vpqby8Y/6Vj3iqfi6Zdfmb7/dtfuXPvnA Zrkl4HrvozWF0y06LSbfaF2m+pU3Yn9Tw0KVyi/m1h8Yvz5NLJ8uaZQs/FAn4//fdEGV7fPP rnja5sV5pLHJ+vOF6Znnjm/dtHt6XFiA7Nw7554H/6i3VOSoWc2rG7nO9qnfAT7V4wJfd55U YinOSDTUYi4qTgQA+qcUkMsCAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 5274 Lines: 113 From: Jonghwa Lee Some clocks are required being unmasked for suspend-to-ram. Otherwise, PMU (Power Management Unit) will stick and power line never down. Signed-off-by: Jonghwa Lee Signed-off-by: Chanwoo Choi --- drivers/clk/samsung/clk-exynos5433.c | 33 +++++++++++++++++++++------------ 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/drivers/clk/samsung/clk-exynos5433.c b/drivers/clk/samsung/clk-exynos5433.c index 39c9564..84f02ec 100644 --- a/drivers/clk/samsung/clk-exynos5433.c +++ b/drivers/clk/samsung/clk-exynos5433.c @@ -697,11 +697,14 @@ static struct samsung_gate_clock top_gate_clks[] __initdata = { GATE(CLK_SCLK_PCM1_PERIC, "sclk_pcm1_peric", "div_sclk_pcm1", ENABLE_SCLK_TOP_PERIC, 7, CLK_SET_RATE_PARENT, 0), GATE(CLK_SCLK_UART2_PERIC, "sclk_uart2_peric", "div_sclk_uart2", - ENABLE_SCLK_TOP_PERIC, 5, CLK_SET_RATE_PARENT, 0), + ENABLE_SCLK_TOP_PERIC, 5, CLK_SET_RATE_PARENT | + CLK_IGNORE_UNUSED, 0), GATE(CLK_SCLK_UART1_PERIC, "sclk_uart1_peric", "div_sclk_uart1", - ENABLE_SCLK_TOP_PERIC, 4, CLK_SET_RATE_PARENT, 0), + ENABLE_SCLK_TOP_PERIC, 4, CLK_SET_RATE_PARENT | + CLK_IGNORE_UNUSED, 0), GATE(CLK_SCLK_UART0_PERIC, "sclk_uart0_peric", "div_sclk_uart0", - ENABLE_SCLK_TOP_PERIC, 3, CLK_SET_RATE_PARENT, 0), + ENABLE_SCLK_TOP_PERIC, 3, CLK_SET_RATE_PARENT | + CLK_IGNORE_UNUSED, 0), GATE(CLK_SCLK_SPI2_PERIC, "sclk_spi2_peric", "div_sclk_spi2_b", ENABLE_SCLK_TOP_PERIC, 2, CLK_SET_RATE_PARENT, 0), GATE(CLK_SCLK_SPI1_PERIC, "sclk_spi1_peric", "div_sclk_spi1_b", @@ -862,7 +865,7 @@ static struct samsung_div_clock cpif_div_clks[] __initdata = { static struct samsung_gate_clock cpif_gate_clks[] __initdata = { /* ENABLE_SCLK_CPIF */ GATE(CLK_SCLK_MPHY_PLL, "sclk_mphy_pll", "mout_mphy_pll", - ENABLE_SCLK_CPIF, 9, 0, 0), + ENABLE_SCLK_CPIF, 9, CLK_IGNORE_UNUSED, 0), GATE(CLK_SCLK_UFS_MPHY, "sclk_ufs_mphy", "div_sclk_mphy", ENABLE_SCLK_CPIF, 4, 0, 0), }; @@ -1444,6 +1447,7 @@ static struct samsung_gate_clock mif_gate_clks[] __initdata = { GATE(CLK_PCLK_ASYNCAXI_NOC_P_CCI, "pclk_asyncaxi_noc_p_cci", "div_aclk_mif_133", ENABLE_PCLK_MIF, 21, CLK_IGNORE_UNUSED, 0), + GATE(CLK_PCLK_ASYNCAXI_CP1, "pclk_asyncaxi_cp1", "div_aclk_mif_133", ENABLE_PCLK_MIF, 19, 0, 0), GATE(CLK_PCLK_ASYNCAXI_CP0, "pclk_asyncaxi_cp0", "div_aclk_mif_133", @@ -1483,11 +1487,11 @@ static struct samsung_gate_clock mif_gate_clks[] __initdata = { /* ENABLE_PCLK_MIF_SECURE_DREX0_TZ */ GATE(CLK_PCLK_DREX0_TZ, "pclk_drex0_tz", "div_aclk_mif_133", - ENABLE_PCLK_MIF_SECURE_DREX0_TZ, 0, 0, 0), + ENABLE_PCLK_MIF_SECURE_DREX0_TZ, 0, CLK_IGNORE_UNUSED, 0), /* ENABLE_PCLK_MIF_SECURE_DREX1_TZ */ GATE(CLK_PCLK_DREX1_TZ, "pclk_drex1_tz", "div_aclk_mif_133", - ENABLE_PCLK_MIF_SECURE_DREX1_TZ, 0, 0, 0), + ENABLE_PCLK_MIF_SECURE_DREX1_TZ, 0, CLK_IGNORE_UNUSED, 0), /* ENABLE_PCLK_MIF_SECURE_MONOTONIC_CNT */ GATE(CLK_PCLK_MONOTONIC_CNT, "pclk_monotonic_cnt", "div_aclk_mif_133", @@ -1718,11 +1722,14 @@ static struct samsung_gate_clock peric_gate_clks[] __initdata = { GATE(CLK_SCLK_SPI0, "sclk_spi0", "sclk_spi0_peric", ENABLE_SCLK_PERIC, 3, CLK_SET_RATE_PARENT, 0), GATE(CLK_SCLK_UART2, "sclk_uart2", "sclk_uart2_peric", - ENABLE_SCLK_PERIC, 2, CLK_SET_RATE_PARENT, 0), + ENABLE_SCLK_PERIC, 2, + CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 0), GATE(CLK_SCLK_UART1, "sclk_uart1", "sclk_uart1_peric", - ENABLE_SCLK_PERIC, 1, CLK_SET_RATE_PARENT, 0), + ENABLE_SCLK_PERIC, 1, + CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 0), GATE(CLK_SCLK_UART0, "sclk_uart0", "sclk_uart0_peric", - ENABLE_SCLK_PERIC, 0, CLK_SET_RATE_PARENT, 0), + ENABLE_SCLK_PERIC, 0, + CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 0), }; static struct samsung_cmu_info peric_cmu_info __initdata = { @@ -3025,7 +3032,7 @@ static struct samsung_gate_clock aud_gate_clks[] __initdata = { /* ENABLE_SCLK_AUD0 */ GATE(CLK_ATCLK_AUD, "atclk_aud", "div_atclk_aud", ENABLE_SCLK_AUD0, - 2, 0, 0), + 2, CLK_IGNORE_UNUSED, 0), GATE(CLK_PCLK_DBG_AUD, "pclk_dbg_aud", "div_pclk_dbg_aud", ENABLE_SCLK_AUD0, 1, 0, 0), GATE(CLK_SCLK_AUD_CA5, "sclk_aud_ca5", "div_aud_ca5", ENABLE_SCLK_AUD0, @@ -3425,9 +3432,11 @@ static struct samsung_gate_clock gscl_gate_clks[] __initdata = { GATE(CLK_ACLK_GSCLNP_111, "aclk_gsclnp_111", "mout_aclk_gscl_111_user", ENABLE_ACLK_GSCL, 6, CLK_IGNORE_UNUSED, 0), GATE(CLK_ACLK_GSCLRTND_333, "aclk_gsclrtnd_333", - "mout_aclk_gscl_333_user", ENABLE_ACLK_GSCL, 5, 0, 0), + "mout_aclk_gscl_333_user", ENABLE_ACLK_GSCL, 5, + CLK_IGNORE_UNUSED, 0), GATE(CLK_ACLK_GSCLBEND_333, "aclk_gsclbend_333", - "mout_aclk_gscl_333_user", ENABLE_ACLK_GSCL, 4, 0, 0), + "mout_aclk_gscl_333_user", ENABLE_ACLK_GSCL, 4, + CLK_IGNORE_UNUSED, 0), GATE(CLK_ACLK_GSD, "aclk_gsd", "mout_aclk_gscl_333_user", ENABLE_ACLK_GSCL, 3, 0, 0), GATE(CLK_ACLK_GSCL2, "aclk_gscl2", "mout_aclk_gscl_333_user", -- 1.8.5.5 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/