diff options
author | Michel Dänzer <michel.daenzer@amd.com> | 2014-06-30 13:12:34 +0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2014-07-01 20:26:48 +0400 |
commit | a2b6d3b33b6a255a271fb120cdc37c6757cdd2be (patch) | |
tree | 5da18e50c5c015d671cd245d01c03fd8f9e1d65e /drivers/gpu/drm/radeon/radeon_mode.h | |
parent | b0880e87c1fd038b84498944f52e52c3e86ebe59 (diff) | |
download | linux-a2b6d3b33b6a255a271fb120cdc37c6757cdd2be.tar.xz |
drm/radeon: Track the status of a page flip more explicitly
This prevents a panic: radeon_crtc_handle_page_flip() could run before
radeon_flip_work_func(), triggering the BUG_ON() in drm_vblank_put().
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_mode.h')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_mode.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h index 98a125d4e50b..0592ddb0904b 100644 --- a/drivers/gpu/drm/radeon/radeon_mode.h +++ b/drivers/gpu/drm/radeon/radeon_mode.h @@ -306,6 +306,12 @@ struct radeon_atom_ss { uint16_t amount; }; +enum radeon_flip_status { + RADEON_FLIP_NONE, + RADEON_FLIP_PENDING, + RADEON_FLIP_SUBMITTED +}; + struct radeon_crtc { struct drm_crtc base; int crtc_id; @@ -331,6 +337,7 @@ struct radeon_crtc { /* page flipping */ struct workqueue_struct *flip_queue; struct radeon_flip_work *flip_work; + enum radeon_flip_status flip_status; /* pll sharing */ struct radeon_atom_ss ss; bool ss_enabled; |