static void device_hard_reset_pending(struct work_struct *work)
 {
        struct hl_device_reset_work *device_reset_work =
-               container_of(work, struct hl_device_reset_work,
-                               reset_work.work);
+               container_of(work, struct hl_device_reset_work, reset_work.work);
        struct hl_device *hdev = device_reset_work->hdev;
        u32 flags;
        int rc;
 
-       flags = HL_DRV_RESET_HARD | HL_DRV_RESET_FROM_RESET_THR;
-
-       if (device_reset_work->fw_reset)
-               flags |= HL_DRV_RESET_BYPASS_REQ_TO_FW;
+       flags = device_reset_work->flags | HL_DRV_RESET_FROM_RESET_THR;
 
        rc = hl_device_reset(hdev, flags);
        if ((rc == -EBUSY) && !hdev->device_fini_pending) {
 
                hdev->process_kill_trial_cnt = 0;
 
-               hdev->device_reset_work.fw_reset = fw_reset;
+               hdev->device_reset_work.flags = flags;
 
                /*
                 * Because the reset function can't run from heartbeat work,
 
  * @wq: work queue for device reset procedure.
  * @reset_work: reset work to be done.
  * @hdev: habanalabs device structure.
- * @fw_reset: whether f/w will do the reset without us sending them a message to do it.
+ * @flags: reset flags.
  */
 struct hl_device_reset_work {
        struct workqueue_struct         *wq;
        struct delayed_work             reset_work;
        struct hl_device                *hdev;
-       bool                            fw_reset;
+       u32                             flags;
 };
 
 /**