struct drm_property *plane_feature_prop;
bool is_iommu_enabled;
bool is_iommu_needed;
+ bool is_enabled;
/* mutex vsync_ work */
struct mutex vsync_mutex;
VOP_WIN_SET(vop, win, gate, 1);
}
+ vop->is_enabled = true;
spin_lock(&vop->reg_lock);
disable_irq(vop->irq);
+ vop->is_enabled = false;
if (vop->is_iommu_enabled) {
/*
* vop standby complete, so iommu detach is safe.
struct vop *vop = to_vop(crtc);
unsigned long flags;
+ if (!vop->is_enabled)
+ return -EPERM;
+
spin_lock_irqsave(&vop->irq_lock, flags);
VOP_INTR_SET_TYPE(vop, enable, FS_INTR, 1);
struct vop *vop = to_vop(crtc);
unsigned long flags;
+ if (!vop->is_enabled)
+ return;
+
spin_lock_irqsave(&vop->irq_lock, flags);
VOP_INTR_SET_TYPE(vop, enable, FS_INTR, 0);