mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-22 20:30:58 +02:00
Reapply "media: bttv: add back vbi hack"
This reverts commit ac24c93aa4
.
This commit is contained in:
@@ -2772,6 +2772,27 @@ bttv_irq_wakeup_vbi(struct bttv *btv, struct bttv_buffer *wakeup,
|
||||
return;
|
||||
wakeup->vbuf.vb2_buf.timestamp = ktime_get_ns();
|
||||
wakeup->vbuf.sequence = btv->field_count >> 1;
|
||||
|
||||
/*
|
||||
* Ugly hack for backwards compatibility.
|
||||
* Some applications expect that the last 4 bytes of
|
||||
* the VBI data contains the sequence number.
|
||||
*
|
||||
* This makes it possible to associate the VBI data
|
||||
* with the video frame if you use read() to get the
|
||||
* VBI data.
|
||||
*/
|
||||
if (vb2_fileio_is_active(wakeup->vbuf.vb2_buf.vb2_queue)) {
|
||||
u32 *vaddr = vb2_plane_vaddr(&wakeup->vbuf.vb2_buf, 0);
|
||||
unsigned long size =
|
||||
vb2_get_plane_payload(&wakeup->vbuf.vb2_buf, 0) / 4;
|
||||
|
||||
if (vaddr && size) {
|
||||
vaddr += size - 1;
|
||||
*vaddr = wakeup->vbuf.sequence;
|
||||
}
|
||||
}
|
||||
|
||||
vb2_buffer_done(&wakeup->vbuf.vb2_buf, state);
|
||||
if (btv->field_count == 0)
|
||||
btor(BT848_INT_VSYNC, BT848_INT_MASK);
|
||||
|
Reference in New Issue
Block a user