diff options
author | Jesse Barnes <jbarnes@nietzche.virtuousgeek.org> | 2008-02-07 10:40:06 -0800 |
---|---|---|
committer | Jesse Barnes <jbarnes@nietzche.virtuousgeek.org> | 2008-02-07 10:40:06 -0800 |
commit | 79d69285202b55f269aa88a6bcda257257c9dee3 (patch) | |
tree | 7b68a0e162b885ae77fc00e8d8e14e2ccc190f25 /linux-core/drm_modes.c | |
parent | 76748efae2f51409813eeb6b91b783c73cb2845e (diff) |
Fix vblank enable/disable callbacks
There were two problems with the existing callback code: the vblank
enable callback happened multiple times per disable, making drivers more
complex than they had to be, and there was a race between the final
decrement of the vblank usage counter and the next enable call, which
could have resulted in a put->schedule disable->get->enable->disable
sequence, which would be bad.
So add a new vblank_enabled array to track vblank enable on per-pipe
basis, and add a lock to protect it along with the refcount +
enable/disable calls to fix the race.
Diffstat (limited to 'linux-core/drm_modes.c')
0 files changed, 0 insertions, 0 deletions