|
@@ -91,6 +91,12 @@ static int cpg_mstp_clock_endisable(struct clk_hw *hw, bool enable)
|
|
|
value |= bitmask;
|
|
|
cpg_mstp_write(group, value, group->smstpcr);
|
|
|
|
|
|
+ if (!group->mstpsr) {
|
|
|
+ /* dummy read to ensure write has completed */
|
|
|
+ cpg_mstp_read(group, group->smstpcr);
|
|
|
+ barrier_data(group->smstpcr);
|
|
|
+ }
|
|
|
+
|
|
|
spin_unlock_irqrestore(&group->lock, flags);
|
|
|
|
|
|
if (!enable || !group->mstpsr)
|