Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753634AbeAJJbi (ORCPT + 1 other); Wed, 10 Jan 2018 04:31:38 -0500 Received: from mailout3.samsung.com ([203.254.224.33]:28706 "EHLO mailout3.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S964859AbeAJJbd (ORCPT ); Wed, 10 Jan 2018 04:31:33 -0500 DKIM-Filter: OpenDKIM Filter v2.11.0 mailout3.samsung.com 20180110093131epoutp03bfcb8be8019402852fe31ac799b01517~IaPie6aSX2786927869epoutp03b X-AuditID: b6c32a35-c51ff700000010dd-d5-5a55dd72c2a6 MIME-version: 1.0 Content-transfer-encoding: 8BIT Content-type: text/plain; charset="utf-8" Message-id: <5A55DD71.2060808@samsung.com> Date: Wed, 10 Jan 2018 18:31:29 +0900 From: Chanwoo Choi Organization: Samsung Electronics User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 To: Krzysztof Kozlowski Cc: Marek Szyprowski , Sylwester Nawrocki , kgene@kernel.org, Tomasz Figa , chanwoo@kernel.org, Jaehoon Chung , Inki Dae , linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, Michael Turquette , Stephen Boyd , linux-clk@vger.kernel.org Subject: Re: [PATCH 1/9] clk: samsung: exynos5433: Add clock flag to support suspend-to-ram In-reply-to: X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrLJsWRmVeSWpSXmKPExsWy7bCmgW7R3dAogx9ntSwm3rjCYjH/yDlW i0n3J7BY3PjVxmrR//g1s8X58xvYLTY9vsZq8bHnHqvF5V1z2CxmnN/HZLH2yF12i4unXC0O v2lntfhxppvFYtWuP4wO/B7vb7Sye1zu62Xy2DnrLrvHplWdbB6bl9R79G1ZxejxeZNcAHtU qk1GamJKapFCal5yfkpmXrqtkndwvHO8qZmBoa6hpYW5kkJeYm6qrZKLT4CuW2YO0NlKCmWJ OaVAoYDE4mIlfTubovzSklSFjPziElulaENDIz1DA3M9IyMjPRPjWCsjU6CShNSMea+7WQu+ WFR0vr/E1sB4RqOLkZNDQsBE4tyR6SxdjFwcQgI7GCUaH11ihXC+M0rcnvKcEabq/7zHUFUb GCUmnLrDBJLgFRCU+DH5HlCCg4NZQF7iyKVskDCzgKbEiy+ToOrvMUrcW9zMAlGvJbFvfg8z iM0ioCqx/fMUdhCbDSi+/8UNNhCbX0BR4uqPx2CLRQUiJHbO/wZWIwI09Prf72DXMQu8Y5Y4 ee8EWJGwQKzE8S2bwIo4BYIlbh/ewwhSJCEwmV1i7rmHzBAvuEhs+DODFcIWlnh1fAs7yNUS AtISl47aQtS3M0q0753HDOFMYZQ4d/0eE0SDscSzhV1MEL/xSbz72sMK0cwr0dEmBFHiIfH0 5VNocDlKzJ/TxQzx/hwmia8Tu9kmMMrNQgqxWYgQm4UUYgsYmVcxiqUWFOempxYbFhjqFSfm Fpfmpesl5+duYgQnVS3THYxTzvkcYhTgYFTi4f1wIyRKiDWxrLgy9xCjBAezkgiv7/zgKCHe lMTKqtSi/Pii0pzU4kOMpsAAn8gsJZqcD0z4eSXxhiaWBiZmRsAEZmloqCTOGxDgEiUkkJ5Y kpqdmlqQWgTTx8TBKdXAmHDa66nSyRtWF7LflrDdfnuVu8CH73Lrm72P5fZJPnCxZ9mnNPei 8ms20Yh+r+1dr262/WoqiDT5OCXSWIzx/9WeauHEhnOfDkYK/8oR2Ook6lC6KHXre8Wntfkb eostDBe8nrPm7d38Lbbd2cZvDl271vHspaOZVJT6uW/XvLREV6XynHSfr8RSnJFoqMVcVJwI AM+pljzAAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplkeLIzCtJLcpLzFFi42I5/e+xoG7R3dAog46LEhYTb1xhsZh/5Byr xaT7E1gsbvxqY7Xof/ya2eL8+Q3sFpseX2O1+Nhzj9Xi8q45bBYzzu9jslh75C67xcVTrhaH 37SzWvw4081isWrXH0YHfo/3N1rZPS739TJ57Jx1l91j06pONo/NS+o9+rasYvT4vEkugD2K yyYlNSezLLVI3y6BK2Pe627Wgi8WFZ3vL7E1MJ7R6GLk5JAQMJH4P+8xSxcjF4eQwDpGiceH 21lAErwCghI/Jt8Dsjk4mAXkJY5cyoYw1SWmTMmFKH/AKLHt63pWiHItiX3ze5hBbBYBVYnt n6ewg9hsQPH9L26wgdj8AooSV388ZgSZIyoQIdF9ohIkLCKgKXH973dWkJnMAu+YJY41rGYC SQgLxEoc37KJHWLZPCaJO19/gS3gFAiWOHl6J/sERoFZSE6dhXDqLIRTFzAyr2KUTC0ozk3P LTYqMMxLLdcrTswtLs1L10vOz93ECIykbYe1+nYw3l8Sf4hRgINRiYfX43ZIlBBrYllxZe4h RgkOZiURXt/5wVFCvCmJlVWpRfnxRaU5qcWHGKU5WJTEeW/nHYsUEkhPLEnNTk0tSC2CyTJx cEo1MG6R0KxYecb+GMdiyTJOEfdnv9MkDf+J5p44r+ASwfbXsWp/8cb1vV+84jfJXdGvlHkf NmPTeZMNU07GJMmzyHft+xeRFVbbEDW102XXdN6LISl14SwcV3983s0ep8z1/ND/t09EVsYY nEi7LGchI7go18dKLfnqN1UjlYn75GuaVH91R266pcRSnJFoqMVcVJwIAM6U7DagAgAA X-CMS-MailID: 20180110093130epcas1p369452406f14dbe7d4b8bb20a160cb3af X-Msg-Generator: CA CMS-TYPE: 101P DLP-Filter: Pass X-CFilter-Loop: Reflected X-CMS-RootMailID: 20180109075905epcas1p1486543d8fec46f47d9d5ac350d841337 X-RootMTR: 20180109075905epcas1p1486543d8fec46f47d9d5ac350d841337 References: <1515484746-10656-1-git-send-email-cw00.choi@samsung.com> <1515484746-10656-2-git-send-email-cw00.choi@samsung.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: On 2018년 01월 09일 20:44, Krzysztof Kozlowski wrote: > On Tue, Jan 9, 2018 at 8:58 AM, Chanwoo Choi wrote: >> This patch adds the CLK_IS_CRITICAL and CLK_IGNORE_UNUSED flag >> to some clocks in order to avoid the hang-out in the suspend mode. >> >> Signed-off-by: Chanwoo Choi >> Cc: Tomasz Figa >> Cc: Michael Turquette >> Cc: Stephen Boyd >> Cc: linux-clk@vger.kernel.org >> --- >> drivers/clk/samsung/clk-exynos5433.c | 22 +++++++++++----------- >> 1 file changed, 11 insertions(+), 11 deletions(-) >> >> diff --git a/drivers/clk/samsung/clk-exynos5433.c b/drivers/clk/samsung/clk-exynos5433.c >> index db270908037a..3dc53cd0c730 100644 >> --- a/drivers/clk/samsung/clk-exynos5433.c >> +++ b/drivers/clk/samsung/clk-exynos5433.c >> @@ -583,25 +583,25 @@ >> CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 0), >> GATE(CLK_ACLK_CAM1_333, "aclk_cam1_333", "div_aclk_cam1_333", >> ENABLE_ACLK_TOP, 13, >> - CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 0), >> + CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 0), >> GATE(CLK_ACLK_CAM1_400, "aclk_cam1_400", "div_aclk_cam1_400", >> ENABLE_ACLK_TOP, 12, >> CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 0), >> GATE(CLK_ACLK_CAM1_552, "aclk_cam1_552", "div_aclk_cam1_552", >> ENABLE_ACLK_TOP, 11, >> - CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 0), >> + CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 0), >> GATE(CLK_ACLK_CAM0_333, "aclk_cam0_333", "div_aclk_cam0_333", >> ENABLE_ACLK_TOP, 10, >> - CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 0), >> + CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 0), >> GATE(CLK_ACLK_CAM0_400, "aclk_cam0_400", "div_aclk_cam0_400", >> ENABLE_ACLK_TOP, 9, >> CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 0), >> GATE(CLK_ACLK_CAM0_552, "aclk_cam0_552", "div_aclk_cam0_552", >> ENABLE_ACLK_TOP, 8, >> - CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 0), >> + CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 0), >> GATE(CLK_ACLK_ISP_DIS_400, "aclk_isp_dis_400", "div_aclk_isp_dis_400", >> ENABLE_ACLK_TOP, 7, >> - CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED, 0), >> + CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 0), >> GATE(CLK_ACLK_ISP_400, "aclk_isp_400", "div_aclk_isp_400", >> ENABLE_ACLK_TOP, 6, >> CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 0), >> @@ -624,11 +624,11 @@ >> >> /* ENABLE_SCLK_TOP_CAM1 */ >> GATE(CLK_SCLK_ISP_SENSOR2, "sclk_isp_sensor2", "div_sclk_isp_sensor2_b", >> - ENABLE_SCLK_TOP_CAM1, 7, 0, 0), >> + ENABLE_SCLK_TOP_CAM1, 7, CLK_IGNORE_UNUSED, 0), >> GATE(CLK_SCLK_ISP_SENSOR1, "sclk_isp_sensor1", "div_sclk_isp_sensor1_b", >> ENABLE_SCLK_TOP_CAM1, 6, 0, 0), >> GATE(CLK_SCLK_ISP_SENSOR0, "sclk_isp_sensor0", "div_sclk_isp_sensor0_b", >> - ENABLE_SCLK_TOP_CAM1, 5, 0, 0), >> + ENABLE_SCLK_TOP_CAM1, 5, CLK_IGNORE_UNUSED, 0), > > Marking this and few others related to ISP as ignore_unused or > is_critical looks like a hacky workaround for wrong topology or > missing clock users. The real cause should be fixed instead marking > all the clocks as critical or ignore_unused. I'm sorry. It is my mistake. When I tested the suspend again, following three clocks need CLK_IS_CRITICAL flag. - CLK_ACLK_CAM0_552 / CLK_SCLK_UFSUNIPRO_FSYS : there are not clk consumer until now. - CLK_SCLK_AUD_UART is for serial_3. : There are no problem for the clocks of other serial port. Only this clock must need to enable it always on. If we have to handle CLK_SCLK_AUD_UART on drivers/tty/serial/samsung.c, we need to pass the 'serial port information and Exynos info'. So, If possible, adding the CLK_IS_CRITICAL flag to CLK_SCLK_AUD_UART is simple. > > Best regards, > Krzysztof > >> GATE(CLK_SCLK_ISP_MCTADC_CAM1, "sclk_isp_mctadc_cam1", "oscclk", >> ENABLE_SCLK_TOP_CAM1, 4, 0, 0), >> GATE(CLK_SCLK_ISP_UART_CAM1, "sclk_isp_uart_cam1", "div_sclk_isp_uart", >> @@ -636,7 +636,7 @@ >> GATE(CLK_SCLK_ISP_SPI1_CAM1, "sclk_isp_spi1_cam1", "div_sclk_isp_spi1_b", >> ENABLE_SCLK_TOP_CAM1, 1, 0, 0), >> GATE(CLK_SCLK_ISP_SPI0_CAM1, "sclk_isp_spi0_cam1", "div_sclk_isp_spi0_b", >> - ENABLE_SCLK_TOP_CAM1, 0, 0, 0), >> + ENABLE_SCLK_TOP_CAM1, 0, CLK_IGNORE_UNUSED, 0), >> >> /* ENABLE_SCLK_TOP_DISP */ >> GATE(CLK_SCLK_HDMI_SPDIF_DISP, "sclk_hdmi_spdif_disp", >> @@ -654,7 +654,7 @@ >> ENABLE_SCLK_TOP_FSYS, 4, CLK_SET_RATE_PARENT, 0), >> GATE(CLK_SCLK_UFSUNIPRO_FSYS, "sclk_ufsunipro_fsys", >> "div_sclk_ufsunipro", ENABLE_SCLK_TOP_FSYS, >> - 3, CLK_SET_RATE_PARENT, 0), >> + 3, CLK_SET_RATE_PARENT | CLK_IS_CRITICAL, 0), >> GATE(CLK_SCLK_USBHOST30_FSYS, "sclk_usbhost30_fsys", >> "div_sclk_usbhost30", ENABLE_SCLK_TOP_FSYS, >> 1, CLK_SET_RATE_PARENT, 0), >> @@ -2982,7 +2982,7 @@ static void __init exynos5433_cmu_peris_init(struct device_node *np) >> GATE(CLK_PCLK_AUD_SLIMBUS, "pclk_aud_slimbus", "div_aclk_aud", >> ENABLE_PCLK_AUD, 6, 0, 0), >> GATE(CLK_PCLK_AUD_UART, "pclk_aud_uart", "div_aclk_aud", >> - ENABLE_PCLK_AUD, 5, 0, 0), >> + ENABLE_PCLK_AUD, 5, CLK_IS_CRITICAL, 0), >> GATE(CLK_PCLK_AUD_PCM, "pclk_aud_pcm", "div_aclk_aud", >> ENABLE_PCLK_AUD, 4, 0, 0), >> GATE(CLK_PCLK_AUD_I2S, "pclk_aud_i2s", "div_aclk_aud", >> @@ -3008,7 +3008,7 @@ static void __init exynos5433_cmu_peris_init(struct device_node *np) >> GATE(CLK_SCLK_AUD_SLIMBUS, "sclk_aud_slimbus", "div_sclk_aud_slimbus", >> ENABLE_SCLK_AUD1, 4, 0, 0), >> GATE(CLK_SCLK_AUD_UART, "sclk_aud_uart", "div_sclk_aud_uart", >> - ENABLE_SCLK_AUD1, 3, CLK_IGNORE_UNUSED, 0), >> + ENABLE_SCLK_AUD1, 3, CLK_IS_CRITICAL, 0), >> GATE(CLK_SCLK_AUD_PCM, "sclk_aud_pcm", "div_sclk_aud_pcm", >> ENABLE_SCLK_AUD1, 2, 0, 0), >> GATE(CLK_SCLK_I2S_BCLK, "sclk_i2s_bclk", "ioclk_i2s_bclk", >> -- >> 1.9.1 >> > -- > To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > -- Best Regards, Chanwoo Choi Samsung Electronics