mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-19 17:14:40 +08:00
drm/crc: Only open CRC on atomic drivers when the CRTC is active.
Commite8fa567118
("drm: crc: Wait for a frame before returning from open()") adds a wait for CRC frame, but with the CRTC off this will never be generated. For atomic drivers we know if a CRTC is active through crtc_state->active, so when inactive reject the open with -EIO. Just like with the previous patch changing debugfs opening semantics, this patch has been tested against igt. Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com> Fixes:e8fa567118
("drm: crc: Wait for a frame before returning from open()") Testcase: debugfs_test.read_all_entries Link: http://patchwork.freedesktop.org/patch/msgid/15f9d300-65d3-63aa-00e3-e83f5e4d5a7a@linux.intel.com Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
parent
eb42ea6d0b
commit
8038e09be5
@ -154,6 +154,19 @@ static int crtc_crc_open(struct inode *inode, struct file *filep)
|
||||
size_t values_cnt;
|
||||
int ret = 0;
|
||||
|
||||
if (drm_drv_uses_atomic_modeset(crtc->dev)) {
|
||||
ret = drm_modeset_lock_interruptible(&crtc->mutex, NULL);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
if (!crtc->state->active)
|
||||
ret = -EIO;
|
||||
drm_modeset_unlock(&crtc->mutex);
|
||||
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
|
||||
spin_lock_irq(&crc->lock);
|
||||
if (!crc->opened)
|
||||
crc->opened = true;
|
||||
|
Loading…
Reference in New Issue
Block a user