return 0;
 }
 
+static int firewall_irq_counter_show(struct seq_file *s, void *v)
+{
+       struct ivpu_device *vdev = seq_to_ivpu(s);
+
+       seq_printf(s, "%d\n", atomic_read(&vdev->hw->firewall_irq_counter));
+       return 0;
+}
+
 static const struct drm_debugfs_info vdev_debugfs_list[] = {
        {"bo_list", bo_list_show, 0},
        {"fw_name", fw_name_show, 0},
        {"last_bootmode", last_bootmode_show, 0},
        {"reset_counter", reset_counter_show, 0},
        {"reset_pending", reset_pending_show, 0},
+       {"firewall_irq_counter", firewall_irq_counter_show, 0},
 };
 
 static ssize_t
 
 
 static void irq_noc_firewall_handler(struct ivpu_device *vdev)
 {
-       ivpu_pm_trigger_recovery(vdev, "NOC Firewall IRQ");
+       atomic_inc(&vdev->hw->firewall_irq_counter);
+
+       ivpu_dbg(vdev, IRQ, "NOC Firewall interrupt detected, counter %d\n",
+                atomic_read(&vdev->hw->firewall_irq_counter));
 }
 
 /* Handler for IRQs from NPU core */