Skip to content

Commit e47bd93

Browse files
mszyprowSylwester Nawrocki
authored andcommitted
clk: samsung: Mark top ISP and CAM clocks on Exynos542x as critical
The TOP 'aclk*_isp', 'aclk550_cam', 'gscl_wa' and 'gscl_wb' clocks must be kept enabled all the time to allow proper access to power management control for the ISP and CAM power domains. The last two clocks, although related to GScaler device and GSCL power domain, provides also the I_WRAP_CLK signal to MIPI CSIS0/1 devices, which are a part of CAM power domain and are needed for proper power on/off sequence. Currently there are no drivers for the devices, which are part of CAM and ISP power domains yet. This patch only fixes the race between disabling the unused power domains and disabling unused clocks, which randomly resulted in the following error during boot: Power domain CAM disable failed Power domain ISP disable failed Fixes: 318fa46 ("clk/samsung: exynos542x: mark some clocks as critical") Signed-off-by: Marek Szyprowski <[email protected]> Acked-by: Chanwoo Choi <[email protected]> Signed-off-by: Sylwester Nawrocki <[email protected]>
1 parent 8f3d9f3 commit e47bd93

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

drivers/clk/samsung/clk-exynos5420.c

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -540,7 +540,7 @@ static const struct samsung_div_clock exynos5800_div_clks[] __initconst = {
540540

541541
static const struct samsung_gate_clock exynos5800_gate_clks[] __initconst = {
542542
GATE(CLK_ACLK550_CAM, "aclk550_cam", "mout_user_aclk550_cam",
543-
GATE_BUS_TOP, 24, 0, 0),
543+
GATE_BUS_TOP, 24, CLK_IS_CRITICAL, 0),
544544
GATE(CLK_ACLK432_SCALER, "aclk432_scaler", "mout_user_aclk432_scaler",
545545
GATE_BUS_TOP, 27, CLK_IS_CRITICAL, 0),
546546
};
@@ -943,25 +943,25 @@ static const struct samsung_gate_clock exynos5x_gate_clks[] __initconst = {
943943
GATE(0, "aclk300_jpeg", "mout_user_aclk300_jpeg",
944944
GATE_BUS_TOP, 4, CLK_IGNORE_UNUSED, 0),
945945
GATE(0, "aclk333_432_isp0", "mout_user_aclk333_432_isp0",
946-
GATE_BUS_TOP, 5, 0, 0),
946+
GATE_BUS_TOP, 5, CLK_IS_CRITICAL, 0),
947947
GATE(0, "aclk300_gscl", "mout_user_aclk300_gscl",
948948
GATE_BUS_TOP, 6, CLK_IS_CRITICAL, 0),
949949
GATE(0, "aclk333_432_gscl", "mout_user_aclk333_432_gscl",
950950
GATE_BUS_TOP, 7, CLK_IGNORE_UNUSED, 0),
951951
GATE(0, "aclk333_432_isp", "mout_user_aclk333_432_isp",
952-
GATE_BUS_TOP, 8, 0, 0),
952+
GATE_BUS_TOP, 8, CLK_IS_CRITICAL, 0),
953953
GATE(CLK_PCLK66_GPIO, "pclk66_gpio", "mout_user_pclk66_gpio",
954954
GATE_BUS_TOP, 9, CLK_IGNORE_UNUSED, 0),
955955
GATE(0, "aclk66_psgen", "mout_user_aclk66_psgen",
956956
GATE_BUS_TOP, 10, CLK_IGNORE_UNUSED, 0),
957957
GATE(0, "aclk266_isp", "mout_user_aclk266_isp",
958-
GATE_BUS_TOP, 13, 0, 0),
958+
GATE_BUS_TOP, 13, CLK_IS_CRITICAL, 0),
959959
GATE(0, "aclk166", "mout_user_aclk166",
960960
GATE_BUS_TOP, 14, CLK_IGNORE_UNUSED, 0),
961961
GATE(CLK_ACLK333, "aclk333", "mout_user_aclk333",
962962
GATE_BUS_TOP, 15, CLK_IS_CRITICAL, 0),
963963
GATE(0, "aclk400_isp", "mout_user_aclk400_isp",
964-
GATE_BUS_TOP, 16, 0, 0),
964+
GATE_BUS_TOP, 16, CLK_IS_CRITICAL, 0),
965965
GATE(0, "aclk400_mscl", "mout_user_aclk400_mscl",
966966
GATE_BUS_TOP, 17, CLK_IS_CRITICAL, 0),
967967
GATE(0, "aclk200_disp1", "mout_user_aclk200_disp1",
@@ -1161,8 +1161,10 @@ static const struct samsung_gate_clock exynos5x_gate_clks[] __initconst = {
11611161
GATE_IP_GSCL1, 3, 0, 0),
11621162
GATE(CLK_SMMU_FIMCL1, "smmu_fimcl1", "dout_gscl_blk_333",
11631163
GATE_IP_GSCL1, 4, 0, 0),
1164-
GATE(CLK_GSCL_WA, "gscl_wa", "sclk_gscl_wa", GATE_IP_GSCL1, 12, 0, 0),
1165-
GATE(CLK_GSCL_WB, "gscl_wb", "sclk_gscl_wb", GATE_IP_GSCL1, 13, 0, 0),
1164+
GATE(CLK_GSCL_WA, "gscl_wa", "sclk_gscl_wa", GATE_IP_GSCL1, 12,
1165+
CLK_IS_CRITICAL, 0),
1166+
GATE(CLK_GSCL_WB, "gscl_wb", "sclk_gscl_wb", GATE_IP_GSCL1, 13,
1167+
CLK_IS_CRITICAL, 0),
11661168
GATE(CLK_SMMU_FIMCL3, "smmu_fimcl3,", "dout_gscl_blk_333",
11671169
GATE_IP_GSCL1, 16, 0, 0),
11681170
GATE(CLK_FIMC_LITE3, "fimc_lite3", "aclk333_432_gscl",

0 commit comments

Comments
 (0)