V4L/DVB (5345): ivtv driver for Conexant cx23416/cx23415 MPEG encoder/decoder
It took three core maintainers, over four years of work, eight new i2c
modules, eleven new V4L2 ioctls, three new DVB video ioctls, a Sliced
VBI API, a new MPEG encoder API, an enhanced DVB video MPEG decoding
API, major YUV/OSD contributions from Ian and John, web/wiki/svn/trac
support from Axel Thimm, (hardware) support from Hauppauge, support and
assistance from the v4l-dvb people and the many, many users of ivtv to
finally make it possible to merge this driver into the kernel.
Thank you all!
Signed-off-by: Kevin Thayer <nufan_wfk@yahoo.com>
Signed-off-by: Chris Kennedy <c@groovy.org>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: John P Harvey <john.p.harvey@btinternet.com>
Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-04-27 19:31:25 +04:00
/*
buffer queues .
Copyright ( C ) 2003 - 2004 Kevin Thayer < nufan_wfk at yahoo . com >
Copyright ( C ) 2004 Chris Kennedy < c @ groovy . org >
Copyright ( C ) 2005 - 2007 Hans Verkuil < hverkuil @ xs4all . nl >
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation ; either version 2 of the License , or
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with this program ; if not , write to the Free Software
Foundation , Inc . , 59 Temple Place , Suite 330 , Boston , MA 02111 - 1307 USA
*/
2007-08-23 12:42:59 +04:00
# ifndef IVTV_QUEUE_H
# define IVTV_QUEUE_H
V4L/DVB (5345): ivtv driver for Conexant cx23416/cx23415 MPEG encoder/decoder
It took three core maintainers, over four years of work, eight new i2c
modules, eleven new V4L2 ioctls, three new DVB video ioctls, a Sliced
VBI API, a new MPEG encoder API, an enhanced DVB video MPEG decoding
API, major YUV/OSD contributions from Ian and John, web/wiki/svn/trac
support from Axel Thimm, (hardware) support from Hauppauge, support and
assistance from the v4l-dvb people and the many, many users of ivtv to
finally make it possible to merge this driver into the kernel.
Thank you all!
Signed-off-by: Kevin Thayer <nufan_wfk@yahoo.com>
Signed-off-by: Chris Kennedy <c@groovy.org>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: John P Harvey <john.p.harvey@btinternet.com>
Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-04-27 19:31:25 +04:00
# define IVTV_DMA_UNMAPPED ((u32) -1)
2008-09-03 23:47:14 +04:00
# define SLICED_VBI_PIO 0
V4L/DVB (5345): ivtv driver for Conexant cx23416/cx23415 MPEG encoder/decoder
It took three core maintainers, over four years of work, eight new i2c
modules, eleven new V4L2 ioctls, three new DVB video ioctls, a Sliced
VBI API, a new MPEG encoder API, an enhanced DVB video MPEG decoding
API, major YUV/OSD contributions from Ian and John, web/wiki/svn/trac
support from Axel Thimm, (hardware) support from Hauppauge, support and
assistance from the v4l-dvb people and the many, many users of ivtv to
finally make it possible to merge this driver into the kernel.
Thank you all!
Signed-off-by: Kevin Thayer <nufan_wfk@yahoo.com>
Signed-off-by: Chris Kennedy <c@groovy.org>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: John P Harvey <john.p.harvey@btinternet.com>
Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-04-27 19:31:25 +04:00
/* ivtv_buffer utility functions */
2007-05-19 21:07:16 +04:00
static inline int ivtv_might_use_pio ( struct ivtv_stream * s )
{
return s - > dma = = PCI_DMA_NONE | | ( SLICED_VBI_PIO & & s - > type = = IVTV_ENC_STREAM_TYPE_VBI ) ;
}
static inline int ivtv_use_pio ( struct ivtv_stream * s )
{
struct ivtv * itv = s - > itv ;
return s - > dma = = PCI_DMA_NONE | |
( SLICED_VBI_PIO & & s - > type = = IVTV_ENC_STREAM_TYPE_VBI & & itv - > vbi . sliced_in - > service_set ) ;
}
static inline int ivtv_might_use_dma ( struct ivtv_stream * s )
{
return s - > dma ! = PCI_DMA_NONE ;
}
static inline int ivtv_use_dma ( struct ivtv_stream * s )
{
return ! ivtv_use_pio ( s ) ;
}
V4L/DVB (5345): ivtv driver for Conexant cx23416/cx23415 MPEG encoder/decoder
It took three core maintainers, over four years of work, eight new i2c
modules, eleven new V4L2 ioctls, three new DVB video ioctls, a Sliced
VBI API, a new MPEG encoder API, an enhanced DVB video MPEG decoding
API, major YUV/OSD contributions from Ian and John, web/wiki/svn/trac
support from Axel Thimm, (hardware) support from Hauppauge, support and
assistance from the v4l-dvb people and the many, many users of ivtv to
finally make it possible to merge this driver into the kernel.
Thank you all!
Signed-off-by: Kevin Thayer <nufan_wfk@yahoo.com>
Signed-off-by: Chris Kennedy <c@groovy.org>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: John P Harvey <john.p.harvey@btinternet.com>
Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-04-27 19:31:25 +04:00
static inline void ivtv_buf_sync_for_cpu ( struct ivtv_stream * s , struct ivtv_buffer * buf )
{
2007-05-19 21:07:16 +04:00
if ( ivtv_use_dma ( s ) )
2009-02-07 13:02:27 +03:00
pci_dma_sync_single_for_cpu ( s - > itv - > pdev , buf - > dma_handle ,
V4L/DVB (5345): ivtv driver for Conexant cx23416/cx23415 MPEG encoder/decoder
It took three core maintainers, over four years of work, eight new i2c
modules, eleven new V4L2 ioctls, three new DVB video ioctls, a Sliced
VBI API, a new MPEG encoder API, an enhanced DVB video MPEG decoding
API, major YUV/OSD contributions from Ian and John, web/wiki/svn/trac
support from Axel Thimm, (hardware) support from Hauppauge, support and
assistance from the v4l-dvb people and the many, many users of ivtv to
finally make it possible to merge this driver into the kernel.
Thank you all!
Signed-off-by: Kevin Thayer <nufan_wfk@yahoo.com>
Signed-off-by: Chris Kennedy <c@groovy.org>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: John P Harvey <john.p.harvey@btinternet.com>
Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-04-27 19:31:25 +04:00
s - > buf_size + 256 , s - > dma ) ;
}
static inline void ivtv_buf_sync_for_device ( struct ivtv_stream * s , struct ivtv_buffer * buf )
{
2007-05-19 21:07:16 +04:00
if ( ivtv_use_dma ( s ) )
2009-02-07 13:02:27 +03:00
pci_dma_sync_single_for_device ( s - > itv - > pdev , buf - > dma_handle ,
V4L/DVB (5345): ivtv driver for Conexant cx23416/cx23415 MPEG encoder/decoder
It took three core maintainers, over four years of work, eight new i2c
modules, eleven new V4L2 ioctls, three new DVB video ioctls, a Sliced
VBI API, a new MPEG encoder API, an enhanced DVB video MPEG decoding
API, major YUV/OSD contributions from Ian and John, web/wiki/svn/trac
support from Axel Thimm, (hardware) support from Hauppauge, support and
assistance from the v4l-dvb people and the many, many users of ivtv to
finally make it possible to merge this driver into the kernel.
Thank you all!
Signed-off-by: Kevin Thayer <nufan_wfk@yahoo.com>
Signed-off-by: Chris Kennedy <c@groovy.org>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: John P Harvey <john.p.harvey@btinternet.com>
Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-04-27 19:31:25 +04:00
s - > buf_size + 256 , s - > dma ) ;
}
int ivtv_buf_copy_from_user ( struct ivtv_stream * s , struct ivtv_buffer * buf , const char __user * src , int copybytes ) ;
void ivtv_buf_swap ( struct ivtv_buffer * buf ) ;
/* ivtv_queue utility functions */
void ivtv_queue_init ( struct ivtv_queue * q ) ;
void ivtv_enqueue ( struct ivtv_stream * s , struct ivtv_buffer * buf , struct ivtv_queue * q ) ;
struct ivtv_buffer * ivtv_dequeue ( struct ivtv_stream * s , struct ivtv_queue * q ) ;
int ivtv_queue_move ( struct ivtv_stream * s , struct ivtv_queue * from , struct ivtv_queue * steal ,
struct ivtv_queue * to , int needed_bytes ) ;
void ivtv_flush_queues ( struct ivtv_stream * s ) ;
/* ivtv_stream utility functions */
int ivtv_stream_alloc ( struct ivtv_stream * s ) ;
void ivtv_stream_free ( struct ivtv_stream * s ) ;
static inline void ivtv_stream_sync_for_cpu ( struct ivtv_stream * s )
{
2007-05-19 21:07:16 +04:00
if ( ivtv_use_dma ( s ) )
2009-02-07 13:02:27 +03:00
pci_dma_sync_single_for_cpu ( s - > itv - > pdev , s - > sg_handle ,
2007-07-29 02:45:50 +04:00
sizeof ( struct ivtv_sg_element ) , PCI_DMA_TODEVICE ) ;
V4L/DVB (5345): ivtv driver for Conexant cx23416/cx23415 MPEG encoder/decoder
It took three core maintainers, over four years of work, eight new i2c
modules, eleven new V4L2 ioctls, three new DVB video ioctls, a Sliced
VBI API, a new MPEG encoder API, an enhanced DVB video MPEG decoding
API, major YUV/OSD contributions from Ian and John, web/wiki/svn/trac
support from Axel Thimm, (hardware) support from Hauppauge, support and
assistance from the v4l-dvb people and the many, many users of ivtv to
finally make it possible to merge this driver into the kernel.
Thank you all!
Signed-off-by: Kevin Thayer <nufan_wfk@yahoo.com>
Signed-off-by: Chris Kennedy <c@groovy.org>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: John P Harvey <john.p.harvey@btinternet.com>
Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-04-27 19:31:25 +04:00
}
static inline void ivtv_stream_sync_for_device ( struct ivtv_stream * s )
{
2007-05-19 21:07:16 +04:00
if ( ivtv_use_dma ( s ) )
2009-02-07 13:02:27 +03:00
pci_dma_sync_single_for_device ( s - > itv - > pdev , s - > sg_handle ,
2007-07-29 02:45:50 +04:00
sizeof ( struct ivtv_sg_element ) , PCI_DMA_TODEVICE ) ;
V4L/DVB (5345): ivtv driver for Conexant cx23416/cx23415 MPEG encoder/decoder
It took three core maintainers, over four years of work, eight new i2c
modules, eleven new V4L2 ioctls, three new DVB video ioctls, a Sliced
VBI API, a new MPEG encoder API, an enhanced DVB video MPEG decoding
API, major YUV/OSD contributions from Ian and John, web/wiki/svn/trac
support from Axel Thimm, (hardware) support from Hauppauge, support and
assistance from the v4l-dvb people and the many, many users of ivtv to
finally make it possible to merge this driver into the kernel.
Thank you all!
Signed-off-by: Kevin Thayer <nufan_wfk@yahoo.com>
Signed-off-by: Chris Kennedy <c@groovy.org>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: John P Harvey <john.p.harvey@btinternet.com>
Signed-off-by: Ian Armstrong <ian@iarmst.demon.co.uk>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
2007-04-27 19:31:25 +04:00
}
2007-08-23 12:42:59 +04:00
# endif