staging: vboxvideo: Change address of scanout buffer on page-flip
Commit2408898e3b
("staging: vboxvideo: Add page-flip support") only calls vbox_crtc_do_set_base() on page-flips, but despite that function's name it only pins the new fb, unpins the old fb and sets vbox_crtc->fb_offset. It does not program the hardware to scan out at the new vbox_crtc->fb_offset value. This was causing only every other frame (assuming page-flipping between 2 buffers) to be shown since we kept scanning out of the old (now unpinned!) buffer. This commit fixes this by adding code to vbox_crtc_page_flip() to tell the hardware to scanout from the new fb_offset. Fixes:2408898e3b
("staging: vboxvideo: Add page-flip support") Cc: Steve Longerbeam <steve_longerbeam@mentor.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
1ebafd1561
commit
65aac17423
|
@ -323,6 +323,11 @@ static int vbox_crtc_page_flip(struct drm_crtc *crtc,
|
|||
if (rc)
|
||||
return rc;
|
||||
|
||||
mutex_lock(&vbox->hw_mutex);
|
||||
vbox_set_view(crtc);
|
||||
vbox_do_modeset(crtc, &crtc->mode);
|
||||
mutex_unlock(&vbox->hw_mutex);
|
||||
|
||||
spin_lock_irqsave(&drm->event_lock, flags);
|
||||
|
||||
if (event)
|
||||
|
|
Loading…
Reference in New Issue