write_unlock_irqrestore(&priv->ptp_lock, flags);
                break;
        case PTP_CLK_REQ_EXTTS:
-               if (on)
-                       priv->plat->flags |= STMMAC_FLAG_EXT_SNAPSHOT_EN;
-               else
-                       priv->plat->flags &= ~STMMAC_FLAG_EXT_SNAPSHOT_EN;
                mutex_lock(&priv->aux_ts_lock);
                acr_value = readl(ptpaddr + PTP_ACR);
                acr_value &= ~PTP_ACR_MASK;
                if (on) {
+                       priv->plat->flags |= STMMAC_FLAG_EXT_SNAPSHOT_EN;
+
                        /* Enable External snapshot trigger */
                        acr_value |= PTP_ACR_ATSEN(rq->extts.index);
                        acr_value |= PTP_ACR_ATSFC;
+               } else {
+                       priv->plat->flags &= ~STMMAC_FLAG_EXT_SNAPSHOT_EN;
                }
                netdev_dbg(priv->dev, "Auxiliary Snapshot %d %s.\n",
                           rq->extts.index, on ? "enabled" : "disabled");