| 
									
										
										
											
												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 12:31:25 -03: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 05:42:59 -03: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 12:31:25 -03:00
										 |  |  | #define IVTV_DMA_UNMAPPED	((u32) -1)
 | 
					
						
							| 
									
										
										
										
											2008-09-03 16:47:14 -03: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 12:31:25 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | /* ivtv_buffer utility functions */ | 
					
						
							| 
									
										
										
										
											2007-05-19 14:07:16 -03: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 12:31:25 -03:00
										 |  |  | static inline void ivtv_buf_sync_for_cpu(struct ivtv_stream *s, struct ivtv_buffer *buf) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2007-05-19 14:07:16 -03:00
										 |  |  | 	if (ivtv_use_dma(s)) | 
					
						
							| 
									
										
										
										
											2009-02-07 07: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 12:31:25 -03: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 14:07:16 -03:00
										 |  |  | 	if (ivtv_use_dma(s)) | 
					
						
							| 
									
										
										
										
											2009-02-07 07: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 12:31:25 -03: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 14:07:16 -03:00
										 |  |  | 	if (ivtv_use_dma(s)) | 
					
						
							| 
									
										
										
										
											2009-02-07 07:02:27 -03:00
										 |  |  | 		pci_dma_sync_single_for_cpu(s->itv->pdev, s->sg_handle, | 
					
						
							| 
									
										
										
										
											2007-07-28 19:45:50 -03: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 12:31:25 -03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline void ivtv_stream_sync_for_device(struct ivtv_stream *s) | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2007-05-19 14:07:16 -03:00
										 |  |  | 	if (ivtv_use_dma(s)) | 
					
						
							| 
									
										
										
										
											2009-02-07 07:02:27 -03:00
										 |  |  | 		pci_dma_sync_single_for_device(s->itv->pdev, s->sg_handle, | 
					
						
							| 
									
										
										
										
											2007-07-28 19:45:50 -03: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 12:31:25 -03:00
										 |  |  | } | 
					
						
							| 
									
										
										
										
											2007-08-23 05:42:59 -03:00
										 |  |  | 
 | 
					
						
							|  |  |  | #endif
 |