Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge branch 'clk-fixes' into clk-next

+8
+8
drivers/clk/clk.c
··· 1097 1097 */ 1098 1098 if (core->prepare_count) { 1099 1099 clk_core_prepare(parent); 1100 + flags = clk_enable_lock(); 1100 1101 clk_core_enable(parent); 1101 1102 clk_core_enable(core); 1103 + clk_enable_unlock(flags); 1102 1104 } 1103 1105 1104 1106 /* update the clk tree topology */ ··· 1115 1113 struct clk_core *parent, 1116 1114 struct clk_core *old_parent) 1117 1115 { 1116 + unsigned long flags; 1117 + 1118 1118 /* 1119 1119 * Finish the migration of prepare state and undo the changes done 1120 1120 * for preventing a race with clk_enable(). 1121 1121 */ 1122 1122 if (core->prepare_count) { 1123 + flags = clk_enable_lock(); 1123 1124 clk_core_disable(core); 1124 1125 clk_core_disable(old_parent); 1126 + clk_enable_unlock(flags); 1125 1127 clk_core_unprepare(old_parent); 1126 1128 } 1127 1129 } ··· 1153 1147 clk_enable_unlock(flags); 1154 1148 1155 1149 if (core->prepare_count) { 1150 + flags = clk_enable_lock(); 1156 1151 clk_core_disable(core); 1157 1152 clk_core_disable(parent); 1153 + clk_enable_unlock(flags); 1158 1154 clk_core_unprepare(parent); 1159 1155 } 1160 1156 return ret;