dev_err(hba->dev, "missing ack of refclk req, reg: 0x%x\n", value);
 
-       ufs_mtk_ref_clk_notify(host->ref_clk_enabled, POST_CHANGE, res);
+       /*
+        * If clock on timeout, assume clock is off, notify tfa do clock
+        * off setting.(keep DIFN disable, release resource)
+        * If clock off timeout, assume clock will off finally,
+        * set ref_clk_enabled directly.(keep DIFN disable, keep resource)
+        */
+       if (on)
+               ufs_mtk_ref_clk_notify(false, POST_CHANGE, res);
+       else
+               host->ref_clk_enabled = false;
 
        return -ETIMEDOUT;