/* Implement some hardware workarounds */
        if (version >= IPA_VERSION_4_0 && version < IPA_VERSION_4_5) {
-               /* Enable open global clocks (not needed for IPA v4.5) */
-               val = GLOBAL_FMASK;
-               val |= GLOBAL_2X_CLK_FMASK;
-               iowrite32(val, ipa->reg_virt + IPA_REG_CLKON_CFG_OFFSET);
-
                /* Disable PA mask to allow HOLB drop */
                val = ioread32(ipa->reg_virt + IPA_REG_TX_CFG_OFFSET);
                val &= ~PA_MASK_EN_FMASK;
                iowrite32(val, ipa->reg_virt + IPA_REG_TX_CFG_OFFSET);
+
+               /* Enable open global clocks in the CLKON configuration */
+               val = GLOBAL_FMASK | GLOBAL_2X_CLK_FMASK;
+       } else if (version == IPA_VERSION_3_1) {
+               val = MISC_FMASK;       /* Disable MISC clock gating */
+       } else {
+               val = 0;                /* No CLKON configuration needed */
        }
+       if (val)
+               iowrite32(val, ipa->reg_virt + IPA_REG_CLKON_CFG_OFFSET);
 
        ipa_hardware_config_comp(ipa);