struct device *dev;
struct drm_device *drm_dev;
struct drm_property *plane_zpos_prop;
- bool is_enabled;
/* mutex vsync_ work */
struct mutex vsync_mutex;
{
unsigned long flags;
- if (WARN_ON(!vop->is_enabled))
- return;
-
spin_lock_irqsave(&vop->irq_lock, flags);
VOP_INTR_SET_TYPE(vop, enable, DSP_HOLD_VALID_INTR, 1);
{
unsigned long flags;
- if (WARN_ON(!vop->is_enabled))
- return;
-
spin_lock_irqsave(&vop->irq_lock, flags);
VOP_INTR_SET_TYPE(vop, enable, DSP_HOLD_VALID_INTR, 0);
VOP_WIN_SET(vop, win, gate, 1);
}
- /*
- * At here, vop clock & iommu is enable, R/W vop regs would be safe.
- */
- vop->is_enabled = true;
-
spin_lock(&vop->reg_lock);
VOP_CTRL_SET(vop, standby, 0);
disable_irq(vop->irq);
- vop->is_enabled = false;
-
/*
* vop standby complete, so iommu detach is safe.
*/
if (!crtc)
return;
- if (WARN_ON(!vop->is_enabled))
- return;
-
if (!vop_plane_state->enable) {
vop_plane_atomic_disable(plane, old_state);
return;
struct vop *vop = to_vop(crtc);
unsigned long flags;
- if (WARN_ON(!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 (WARN_ON(!vop->is_enabled))
- return;
-
spin_lock_irqsave(&vop->irq_lock, flags);
VOP_INTR_SET_TYPE(vop, enable, FS_INTR, 0);
to_rockchip_crtc_state(crtc->state);
struct vop *vop = to_vop(crtc);
- if (WARN_ON(!vop->is_enabled))
- return;
-
spin_lock(&vop->reg_lock);
VOP_CTRL_SET(vop, dsp_layer_sel, s->dsp_layer_sel);