ice_pf_dis_all_vsi(pf, false);
 
        if (test_bit(ICE_FLAG_PTP_SUPPORTED, pf->flags))
-               ice_ptp_prepare_for_reset(pf);
+               ice_ptp_prepare_for_reset(pf, reset_type);
 
        if (ice_is_feature_supported(pf, ICE_F_GNSS))
                ice_gnss_exit(pf);
         * fail.
         */
        if (test_bit(ICE_FLAG_PTP_SUPPORTED, pf->flags))
-               ice_ptp_reset(pf);
+               ice_ptp_reset(pf, reset_type);
 
        if (ice_is_feature_supported(pf, ICE_F_GNSS))
                ice_gnss_init(pf);
 
 /**
  * ice_ptp_prepare_for_reset - Prepare PTP for reset
  * @pf: Board private structure
+ * @reset_type: the reset type being performed
  */
-void ice_ptp_prepare_for_reset(struct ice_pf *pf)
+void ice_ptp_prepare_for_reset(struct ice_pf *pf, enum ice_reset_req reset_type)
 {
        struct ice_ptp *ptp = &pf->ptp;
        u8 src_tmr;
 
        kthread_cancel_delayed_work_sync(&ptp->work);
 
-       if (test_bit(ICE_PFR_REQ, pf->state))
+       if (reset_type == ICE_RESET_PFR)
                return;
 
        ice_ptp_release_tx_tracker(pf, &pf->ptp.port.tx);
 /**
  * ice_ptp_reset - Initialize PTP hardware clock support after reset
  * @pf: Board private structure
+ * @reset_type: the reset type being performed
  */
-void ice_ptp_reset(struct ice_pf *pf)
+void ice_ptp_reset(struct ice_pf *pf, enum ice_reset_req reset_type)
 {
        struct ice_ptp *ptp = &pf->ptp;
        struct ice_hw *hw = &pf->hw;
        u64 time_diff;
 
        if (ptp->state == ICE_PTP_READY) {
-               ice_ptp_prepare_for_reset(pf);
+               ice_ptp_prepare_for_reset(pf, reset_type);
        } else if (ptp->state != ICE_PTP_RESETTING) {
                err = -EINVAL;
                dev_err(ice_pf_to_dev(pf), "PTP was not initialized\n");
                goto err;
        }
 
-       if (test_bit(ICE_PFR_REQ, pf->state) ||
-           !ice_pf_src_tmr_owned(pf))
+       if (reset_type == ICE_RESET_PFR || !ice_pf_src_tmr_owned(pf))
                goto pfr;
 
        err = ice_ptp_init_phc(hw);
 
 
 u64 ice_ptp_get_rx_hwts(const union ice_32b_rx_flex_desc *rx_desc,
                        const struct ice_pkt_ctx *pkt_ctx);
-void ice_ptp_reset(struct ice_pf *pf);
-void ice_ptp_prepare_for_reset(struct ice_pf *pf);
+void ice_ptp_reset(struct ice_pf *pf, enum ice_reset_req reset_type);
+void ice_ptp_prepare_for_reset(struct ice_pf *pf,
+                              enum ice_reset_req reset_type);
 void ice_ptp_init(struct ice_pf *pf);
 void ice_ptp_release(struct ice_pf *pf);
 void ice_ptp_link_change(struct ice_pf *pf, u8 port, bool linkup);
        return 0;
 }
 
-static inline void ice_ptp_reset(struct ice_pf *pf) { }
-static inline void ice_ptp_prepare_for_reset(struct ice_pf *pf) { }
+static inline void ice_ptp_reset(struct ice_pf *pf,
+                                enum ice_reset_req reset_type)
+{
+}
+
+static inline void ice_ptp_prepare_for_reset(struct ice_pf *pf,
+                                            enum ice_reset_req reset_type)
+{
+}
 static inline void ice_ptp_init(struct ice_pf *pf) { }
 static inline void ice_ptp_release(struct ice_pf *pf) { }
 static inline void ice_ptp_link_change(struct ice_pf *pf, u8 port, bool linkup)