mirror of
https://github.com/FEX-Emu/linux.git
synced 2024-12-22 17:33:01 +00:00
V4L/DVB: cx25821: prepend cx25821_ to video exported symbols
As reported by Randy Dunlap <randy.dunlap@oracle.com>: drivers/staging/cx25821/cx25821-video.c:89:struct cx25821_fmt *format_by_fourcc(unsigned int fourcc) (not static) conflicts with (has the same non-static name as) drivers/media/common/saa7146_video.c:87:struct saa7146_format* format_by_fourcc(struct saa7146_dev *dev, int fourcc) To solve, add cx25821_ prefix to the exported functions found on cx25821-video.h. This patch were generated by this little shell/perl script: cat drivers/staging/cx25821/cx25821-video.h|perl -ne \ 'if (m/extern.* ([^\s\*]+)\(/) { $n=$1; print "s/([^\d\w_\.])$1/\\1cx25821_$1/g;\n" if (!($n =~ m/cx25821/)); }' \ >changes; for i in drivers/staging/cx25821/*.[ch]; do sed -r -f changes $i >a && mv a $i; done Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com> Cc: Palash Bandyopadhyay <palash.bandyopadhyay@conexant.com>
This commit is contained in:
parent
d7d9338742
commit
f2466d63a5
@ -88,10 +88,10 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
||||
}
|
||||
|
||||
static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
.buf_setup = buffer_setup,
|
||||
.buf_prepare = buffer_prepare,
|
||||
.buf_setup = cx25821_buffer_setup,
|
||||
.buf_prepare = cx25821_buffer_prepare,
|
||||
.buf_queue = buffer_queue,
|
||||
.buf_release = buffer_release,
|
||||
.buf_release = cx25821_buffer_release,
|
||||
};
|
||||
|
||||
static int video_open(struct file *file)
|
||||
@ -145,7 +145,7 @@ static ssize_t video_read(struct file *file, char __user * data, size_t count,
|
||||
|
||||
switch (fh->type) {
|
||||
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
|
||||
if (res_locked(fh->dev, RESOURCE_VIDEO11))
|
||||
if (cx25821_res_locked(fh->dev, RESOURCE_VIDEO11))
|
||||
return -EBUSY;
|
||||
|
||||
return videobuf_read_one(&fh->vidq, data, count, ppos,
|
||||
@ -163,7 +163,7 @@ static unsigned int video_poll(struct file *file,
|
||||
struct cx25821_fh *fh = file->private_data;
|
||||
struct cx25821_buffer *buf;
|
||||
|
||||
if (res_check(fh, RESOURCE_VIDEO11)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO11)) {
|
||||
/* streaming capture */
|
||||
if (list_empty(&fh->vidq.stream))
|
||||
return POLLERR;
|
||||
@ -191,13 +191,13 @@ static int video_release(struct file *file)
|
||||
//cx_write(channel11->dma_ctl, 0);
|
||||
|
||||
/* stop video capture */
|
||||
if (res_check(fh, RESOURCE_VIDEO11)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO11)) {
|
||||
videobuf_queue_cancel(&fh->vidq);
|
||||
res_free(dev, fh, RESOURCE_VIDEO11);
|
||||
cx25821_res_free(dev, fh, RESOURCE_VIDEO11);
|
||||
}
|
||||
|
||||
if (fh->vidq.read_buf) {
|
||||
buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
cx25821_buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
kfree(fh->vidq.read_buf);
|
||||
}
|
||||
|
||||
@ -224,7 +224,7 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO11)))) {
|
||||
if (unlikely(!cx25821_res_get(dev, fh, cx25821_get_resource(fh, RESOURCE_VIDEO11)))) {
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
@ -242,11 +242,11 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
if (i != fh->type)
|
||||
return -EINVAL;
|
||||
|
||||
res = get_resource(fh, RESOURCE_VIDEO11);
|
||||
res = cx25821_get_resource(fh, RESOURCE_VIDEO11);
|
||||
err = videobuf_streamoff(get_queue(fh));
|
||||
if (err < 0)
|
||||
return err;
|
||||
res_free(dev, fh, res);
|
||||
cx25821_res_free(dev, fh, res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -264,7 +264,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
}
|
||||
|
||||
dprintk(2, "%s()\n", __func__);
|
||||
err = vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
err = cx25821_vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
|
||||
if (0 != err)
|
||||
return err;
|
||||
@ -364,50 +364,50 @@ static const struct v4l2_file_operations video_fops = {
|
||||
.release = video_release,
|
||||
.read = video_read,
|
||||
.poll = video_poll,
|
||||
.mmap = video_mmap,
|
||||
.mmap = cx25821_video_mmap,
|
||||
.ioctl = video_ioctl_upstream11,
|
||||
};
|
||||
|
||||
static const struct v4l2_ioctl_ops video_ioctl_ops = {
|
||||
.vidioc_querycap = vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap,
|
||||
.vidioc_querycap = cx25821_vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = cx25821_vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = cx25821_vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = cx25821_vidioc_try_fmt_vid_cap,
|
||||
.vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap,
|
||||
.vidioc_reqbufs = vidioc_reqbufs,
|
||||
.vidioc_querybuf = vidioc_querybuf,
|
||||
.vidioc_qbuf = vidioc_qbuf,
|
||||
.vidioc_reqbufs = cx25821_vidioc_reqbufs,
|
||||
.vidioc_querybuf = cx25821_vidioc_querybuf,
|
||||
.vidioc_qbuf = cx25821_vidioc_qbuf,
|
||||
.vidioc_dqbuf = vidioc_dqbuf,
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_s_std = vidioc_s_std,
|
||||
.vidioc_querystd = vidioc_querystd,
|
||||
.vidioc_s_std = cx25821_vidioc_s_std,
|
||||
.vidioc_querystd = cx25821_vidioc_querystd,
|
||||
#endif
|
||||
.vidioc_cropcap = vidioc_cropcap,
|
||||
.vidioc_s_crop = vidioc_s_crop,
|
||||
.vidioc_g_crop = vidioc_g_crop,
|
||||
.vidioc_enum_input = vidioc_enum_input,
|
||||
.vidioc_g_input = vidioc_g_input,
|
||||
.vidioc_s_input = vidioc_s_input,
|
||||
.vidioc_g_ctrl = vidioc_g_ctrl,
|
||||
.vidioc_cropcap = cx25821_vidioc_cropcap,
|
||||
.vidioc_s_crop = cx25821_vidioc_s_crop,
|
||||
.vidioc_g_crop = cx25821_vidioc_g_crop,
|
||||
.vidioc_enum_input = cx25821_vidioc_enum_input,
|
||||
.vidioc_g_input = cx25821_vidioc_g_input,
|
||||
.vidioc_s_input = cx25821_vidioc_s_input,
|
||||
.vidioc_g_ctrl = cx25821_vidioc_g_ctrl,
|
||||
.vidioc_s_ctrl = vidioc_s_ctrl,
|
||||
.vidioc_queryctrl = vidioc_queryctrl,
|
||||
.vidioc_queryctrl = cx25821_vidioc_queryctrl,
|
||||
.vidioc_streamon = vidioc_streamon,
|
||||
.vidioc_streamoff = vidioc_streamoff,
|
||||
.vidioc_log_status = vidioc_log_status,
|
||||
.vidioc_g_priority = vidioc_g_priority,
|
||||
.vidioc_s_priority = vidioc_s_priority,
|
||||
.vidioc_g_priority = cx25821_vidioc_g_priority,
|
||||
.vidioc_s_priority = cx25821_vidioc_s_priority,
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
.vidiocgmbuf = vidiocgmbuf,
|
||||
.vidiocgmbuf = cx25821_vidiocgmbuf,
|
||||
#endif
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_g_tuner = vidioc_g_tuner,
|
||||
.vidioc_s_tuner = vidioc_s_tuner,
|
||||
.vidioc_g_frequency = vidioc_g_frequency,
|
||||
.vidioc_s_frequency = vidioc_s_frequency,
|
||||
.vidioc_g_tuner = cx25821_vidioc_g_tuner,
|
||||
.vidioc_s_tuner = cx25821_vidioc_s_tuner,
|
||||
.vidioc_g_frequency = cx25821_vidioc_g_frequency,
|
||||
.vidioc_s_frequency = cx25821_vidioc_s_frequency,
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
.vidioc_g_register = vidioc_g_register,
|
||||
.vidioc_s_register = vidioc_s_register,
|
||||
.vidioc_g_register = cx25821_vidioc_g_register,
|
||||
.vidioc_s_register = cx25821_vidioc_s_register,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -864,7 +864,7 @@ static void cx25821_initialize(struct cx25821_dev *dev)
|
||||
cx25821_gpio_init(dev);
|
||||
}
|
||||
|
||||
static int get_resources(struct cx25821_dev *dev)
|
||||
static int cx25821_get_resources(struct cx25821_dev *dev)
|
||||
{
|
||||
if (request_mem_region
|
||||
(pci_resource_start(dev->pci, 0), pci_resource_len(dev->pci, 0),
|
||||
@ -971,7 +971,7 @@ static int cx25821_dev_setup(struct cx25821_dev *dev)
|
||||
dev->i2c_bus[0].i2c_period = (0x07 << 24); /* 1.95MHz */
|
||||
|
||||
|
||||
if (get_resources(dev) < 0) {
|
||||
if (cx25821_get_resources(dev) < 0) {
|
||||
printk(KERN_ERR "%s No more PCIe resources for "
|
||||
"subsystem: %04x:%04x\n",
|
||||
dev->name, dev->pci->subsystem_vendor,
|
||||
|
@ -81,7 +81,7 @@ struct cx25821_fmt formats[] = {
|
||||
},
|
||||
};
|
||||
|
||||
int get_format_size(void)
|
||||
int cx25821_get_format_size(void)
|
||||
{
|
||||
return ARRAY_SIZE(formats);
|
||||
}
|
||||
@ -102,7 +102,7 @@ struct cx25821_fmt *format_by_fourcc(unsigned int fourcc)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void dump_video_queue(struct cx25821_dev *dev, struct cx25821_dmaqueue *q)
|
||||
void cx25821_dump_video_queue(struct cx25821_dev *dev, struct cx25821_dmaqueue *q)
|
||||
{
|
||||
struct cx25821_buffer *buf;
|
||||
struct list_head *item;
|
||||
@ -212,7 +212,7 @@ static int cx25821_ctrl_query(struct v4l2_queryctrl *qctrl)
|
||||
*/
|
||||
|
||||
// resource management
|
||||
int res_get(struct cx25821_dev *dev, struct cx25821_fh *fh, unsigned int bit)
|
||||
int cx25821_res_get(struct cx25821_dev *dev, struct cx25821_fh *fh, unsigned int bit)
|
||||
{
|
||||
dprintk(1, "%s()\n", __func__);
|
||||
if (fh->resources & bit)
|
||||
@ -234,17 +234,17 @@ int res_get(struct cx25821_dev *dev, struct cx25821_fh *fh, unsigned int bit)
|
||||
return 1;
|
||||
}
|
||||
|
||||
int res_check(struct cx25821_fh *fh, unsigned int bit)
|
||||
int cx25821_res_check(struct cx25821_fh *fh, unsigned int bit)
|
||||
{
|
||||
return fh->resources & bit;
|
||||
}
|
||||
|
||||
int res_locked(struct cx25821_dev *dev, unsigned int bit)
|
||||
int cx25821_res_locked(struct cx25821_dev *dev, unsigned int bit)
|
||||
{
|
||||
return dev->resources & bit;
|
||||
}
|
||||
|
||||
void res_free(struct cx25821_dev *dev, struct cx25821_fh *fh, unsigned int bits)
|
||||
void cx25821_res_free(struct cx25821_dev *dev, struct cx25821_fh *fh, unsigned int bits)
|
||||
{
|
||||
BUG_ON((fh->resources & bits) != bits);
|
||||
dprintk(1, "%s()\n", __func__);
|
||||
@ -506,7 +506,7 @@ int cx25821_video_register(struct cx25821_dev *dev, int chan_num,
|
||||
return err;
|
||||
}
|
||||
|
||||
int buffer_setup(struct videobuf_queue *q, unsigned int *count,
|
||||
int cx25821_buffer_setup(struct videobuf_queue *q, unsigned int *count,
|
||||
unsigned int *size)
|
||||
{
|
||||
struct cx25821_fh *fh = q->priv_data;
|
||||
@ -522,7 +522,7 @@ int buffer_setup(struct videobuf_queue *q, unsigned int *count,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int buffer_prepare(struct videobuf_queue *q, struct videobuf_buffer *vb,
|
||||
int cx25821_buffer_prepare(struct videobuf_queue *q, struct videobuf_buffer *vb,
|
||||
enum v4l2_field field)
|
||||
{
|
||||
struct cx25821_fh *fh = q->priv_data;
|
||||
@ -648,7 +648,7 @@ int buffer_prepare(struct videobuf_queue *q, struct videobuf_buffer *vb,
|
||||
return rc;
|
||||
}
|
||||
|
||||
void buffer_release(struct videobuf_queue *q, struct videobuf_buffer *vb)
|
||||
void cx25821_buffer_release(struct videobuf_queue *q, struct videobuf_buffer *vb)
|
||||
{
|
||||
struct cx25821_buffer *buf =
|
||||
container_of(vb, struct cx25821_buffer, vb);
|
||||
@ -667,7 +667,7 @@ struct videobuf_queue *get_queue(struct cx25821_fh *fh)
|
||||
}
|
||||
}
|
||||
|
||||
int get_resource(struct cx25821_fh *fh, int resource)
|
||||
int cx25821_get_resource(struct cx25821_fh *fh, int resource)
|
||||
{
|
||||
switch (fh->type) {
|
||||
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
|
||||
@ -678,7 +678,7 @@ int get_resource(struct cx25821_fh *fh, int resource)
|
||||
}
|
||||
}
|
||||
|
||||
int video_mmap(struct file *file, struct vm_area_struct *vma)
|
||||
int cx25821_video_mmap(struct file *file, struct vm_area_struct *vma)
|
||||
{
|
||||
struct cx25821_fh *fh = file->private_data;
|
||||
|
||||
@ -686,7 +686,7 @@ int video_mmap(struct file *file, struct vm_area_struct *vma)
|
||||
}
|
||||
|
||||
/* VIDEO IOCTLS */
|
||||
int vidioc_g_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format *f)
|
||||
int cx25821_vidioc_g_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format *f)
|
||||
{
|
||||
struct cx25821_fh *fh = priv;
|
||||
|
||||
@ -700,7 +700,7 @@ int vidioc_g_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format *f)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vidioc_try_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format *f)
|
||||
int cx25821_vidioc_try_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format *f)
|
||||
{
|
||||
struct cx25821_fmt *fmt;
|
||||
enum v4l2_field field;
|
||||
@ -746,7 +746,7 @@ int vidioc_try_fmt_vid_cap(struct file *file, void *priv, struct v4l2_format *f)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vidioc_querycap(struct file *file, void *priv, struct v4l2_capability *cap)
|
||||
int cx25821_vidioc_querycap(struct file *file, void *priv, struct v4l2_capability *cap)
|
||||
{
|
||||
struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
|
||||
|
||||
@ -761,7 +761,7 @@ int vidioc_querycap(struct file *file, void *priv, struct v4l2_capability *cap)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vidioc_enum_fmt_vid_cap(struct file *file, void *priv,
|
||||
int cx25821_vidioc_enum_fmt_vid_cap(struct file *file, void *priv,
|
||||
struct v4l2_fmtdesc *f)
|
||||
{
|
||||
if (unlikely(f->index >= ARRAY_SIZE(formats)))
|
||||
@ -774,7 +774,7 @@ int vidioc_enum_fmt_vid_cap(struct file *file, void *priv,
|
||||
}
|
||||
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
int vidiocgmbuf(struct file *file, void *priv, struct video_mbuf *mbuf)
|
||||
int cx25821_vidiocgmbuf(struct file *file, void *priv, struct video_mbuf *mbuf)
|
||||
{
|
||||
struct cx25821_fh *fh = priv;
|
||||
struct videobuf_queue *q;
|
||||
@ -801,25 +801,25 @@ int vidiocgmbuf(struct file *file, void *priv, struct video_mbuf *mbuf)
|
||||
}
|
||||
#endif
|
||||
|
||||
int vidioc_reqbufs(struct file *file, void *priv, struct v4l2_requestbuffers *p)
|
||||
int cx25821_vidioc_reqbufs(struct file *file, void *priv, struct v4l2_requestbuffers *p)
|
||||
{
|
||||
struct cx25821_fh *fh = priv;
|
||||
return videobuf_reqbufs(get_queue(fh), p);
|
||||
}
|
||||
|
||||
int vidioc_querybuf(struct file *file, void *priv, struct v4l2_buffer *p)
|
||||
int cx25821_vidioc_querybuf(struct file *file, void *priv, struct v4l2_buffer *p)
|
||||
{
|
||||
struct cx25821_fh *fh = priv;
|
||||
return videobuf_querybuf(get_queue(fh), p);
|
||||
}
|
||||
|
||||
int vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *p)
|
||||
int cx25821_vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *p)
|
||||
{
|
||||
struct cx25821_fh *fh = priv;
|
||||
return videobuf_qbuf(get_queue(fh), p);
|
||||
}
|
||||
|
||||
int vidioc_g_priority(struct file *file, void *f, enum v4l2_priority *p)
|
||||
int cx25821_vidioc_g_priority(struct file *file, void *f, enum v4l2_priority *p)
|
||||
{
|
||||
struct cx25821_dev *dev = ((struct cx25821_fh *)f)->dev;
|
||||
|
||||
@ -828,7 +828,7 @@ int vidioc_g_priority(struct file *file, void *f, enum v4l2_priority *p)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vidioc_s_priority(struct file *file, void *f, enum v4l2_priority prio)
|
||||
int cx25821_vidioc_s_priority(struct file *file, void *f, enum v4l2_priority prio)
|
||||
{
|
||||
struct cx25821_fh *fh = f;
|
||||
struct cx25821_dev *dev = ((struct cx25821_fh *)f)->dev;
|
||||
@ -837,7 +837,7 @@ int vidioc_s_priority(struct file *file, void *f, enum v4l2_priority prio)
|
||||
}
|
||||
|
||||
#ifdef TUNER_FLAG
|
||||
int vidioc_s_std(struct file *file, void *priv, v4l2_std_id * tvnorms)
|
||||
int cx25821_vidioc_s_std(struct file *file, void *priv, v4l2_std_id * tvnorms)
|
||||
{
|
||||
struct cx25821_fh *fh = priv;
|
||||
struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
|
||||
@ -891,14 +891,14 @@ int cx25821_enum_input(struct cx25821_dev *dev, struct v4l2_input *i)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vidioc_enum_input(struct file *file, void *priv, struct v4l2_input *i)
|
||||
int cx25821_vidioc_enum_input(struct file *file, void *priv, struct v4l2_input *i)
|
||||
{
|
||||
struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
|
||||
dprintk(1, "%s()\n", __func__);
|
||||
return cx25821_enum_input(dev, i);
|
||||
}
|
||||
|
||||
int vidioc_g_input(struct file *file, void *priv, unsigned int *i)
|
||||
int cx25821_vidioc_g_input(struct file *file, void *priv, unsigned int *i)
|
||||
{
|
||||
struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
|
||||
|
||||
@ -907,7 +907,7 @@ int vidioc_g_input(struct file *file, void *priv, unsigned int *i)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vidioc_s_input(struct file *file, void *priv, unsigned int i)
|
||||
int cx25821_vidioc_s_input(struct file *file, void *priv, unsigned int i)
|
||||
{
|
||||
struct cx25821_fh *fh = priv;
|
||||
struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
|
||||
@ -933,7 +933,7 @@ int vidioc_s_input(struct file *file, void *priv, unsigned int i)
|
||||
}
|
||||
|
||||
#ifdef TUNER_FLAG
|
||||
int vidioc_g_frequency(struct file *file, void *priv, struct v4l2_frequency *f)
|
||||
int cx25821_vidioc_g_frequency(struct file *file, void *priv, struct v4l2_frequency *f)
|
||||
{
|
||||
struct cx25821_fh *fh = priv;
|
||||
struct cx25821_dev *dev = fh->dev;
|
||||
@ -960,7 +960,7 @@ int cx25821_set_freq(struct cx25821_dev *dev, struct v4l2_frequency *f)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vidioc_s_frequency(struct file *file, void *priv, struct v4l2_frequency *f)
|
||||
int cx25821_vidioc_s_frequency(struct file *file, void *priv, struct v4l2_frequency *f)
|
||||
{
|
||||
struct cx25821_fh *fh = priv;
|
||||
struct cx25821_dev *dev;
|
||||
@ -978,7 +978,7 @@ int vidioc_s_frequency(struct file *file, void *priv, struct v4l2_frequency *f)
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
int vidioc_g_register(struct file *file, void *fh,
|
||||
int cx25821_vidioc_g_register(struct file *file, void *fh,
|
||||
struct v4l2_dbg_register *reg)
|
||||
{
|
||||
struct cx25821_dev *dev = ((struct cx25821_fh *)fh)->dev;
|
||||
@ -991,7 +991,7 @@ int vidioc_g_register(struct file *file, void *fh,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vidioc_s_register(struct file *file, void *fh,
|
||||
int cx25821_vidioc_s_register(struct file *file, void *fh,
|
||||
struct v4l2_dbg_register *reg)
|
||||
{
|
||||
struct cx25821_dev *dev = ((struct cx25821_fh *)fh)->dev;
|
||||
@ -1007,7 +1007,7 @@ int vidioc_s_register(struct file *file, void *fh,
|
||||
#endif
|
||||
|
||||
#ifdef TUNER_FLAG
|
||||
int vidioc_g_tuner(struct file *file, void *priv, struct v4l2_tuner *t)
|
||||
int cx25821_vidioc_g_tuner(struct file *file, void *priv, struct v4l2_tuner *t)
|
||||
{
|
||||
struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
|
||||
|
||||
@ -1025,7 +1025,7 @@ int vidioc_g_tuner(struct file *file, void *priv, struct v4l2_tuner *t)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vidioc_s_tuner(struct file *file, void *priv, struct v4l2_tuner *t)
|
||||
int cx25821_vidioc_s_tuner(struct file *file, void *priv, struct v4l2_tuner *t)
|
||||
{
|
||||
struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
|
||||
struct cx25821_fh *fh = priv;
|
||||
@ -1108,7 +1108,7 @@ static int cx25821_ctrl_query(struct v4l2_queryctrl *qctrl)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vidioc_queryctrl(struct file *file, void *priv,
|
||||
int cx25821_vidioc_queryctrl(struct file *file, void *priv,
|
||||
struct v4l2_queryctrl *qctrl)
|
||||
{
|
||||
return cx25821_ctrl_query(qctrl);
|
||||
@ -1127,7 +1127,7 @@ static const struct v4l2_queryctrl *ctrl_by_id(unsigned int id)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int vidioc_g_ctrl(struct file *file, void *priv, struct v4l2_control *ctl)
|
||||
int cx25821_vidioc_g_ctrl(struct file *file, void *priv, struct v4l2_control *ctl)
|
||||
{
|
||||
struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
|
||||
|
||||
@ -1216,7 +1216,7 @@ static void init_controls(struct cx25821_dev *dev, int chan_num)
|
||||
}
|
||||
}
|
||||
|
||||
int vidioc_cropcap(struct file *file, void *priv, struct v4l2_cropcap *cropcap)
|
||||
int cx25821_vidioc_cropcap(struct file *file, void *priv, struct v4l2_cropcap *cropcap)
|
||||
{
|
||||
struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
|
||||
|
||||
@ -1233,7 +1233,7 @@ int vidioc_cropcap(struct file *file, void *priv, struct v4l2_cropcap *cropcap)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int vidioc_s_crop(struct file *file, void *priv, struct v4l2_crop *crop)
|
||||
int cx25821_vidioc_s_crop(struct file *file, void *priv, struct v4l2_crop *crop)
|
||||
{
|
||||
struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
|
||||
struct cx25821_fh *fh = priv;
|
||||
@ -1244,17 +1244,17 @@ int vidioc_s_crop(struct file *file, void *priv, struct v4l2_crop *crop)
|
||||
if (0 != err)
|
||||
return err;
|
||||
}
|
||||
// vidioc_s_crop not supported
|
||||
// cx25821_vidioc_s_crop not supported
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
int vidioc_g_crop(struct file *file, void *priv, struct v4l2_crop *crop)
|
||||
int cx25821_vidioc_g_crop(struct file *file, void *priv, struct v4l2_crop *crop)
|
||||
{
|
||||
// vidioc_g_crop not supported
|
||||
// cx25821_vidioc_g_crop not supported
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
int vidioc_querystd(struct file *file, void *priv, v4l2_std_id * norm)
|
||||
int cx25821_vidioc_querystd(struct file *file, void *priv, v4l2_std_id * norm)
|
||||
{
|
||||
// medusa does not support video standard sensing of current input
|
||||
*norm = CX25821_NORMS;
|
||||
@ -1262,7 +1262,7 @@ int vidioc_querystd(struct file *file, void *priv, v4l2_std_id * norm)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int is_valid_width(u32 width, v4l2_std_id tvnorm)
|
||||
int cx25821_is_valid_width(u32 width, v4l2_std_id tvnorm)
|
||||
{
|
||||
if (tvnorm == V4L2_STD_PAL_BG) {
|
||||
if (width == 352 || width == 720)
|
||||
@ -1280,7 +1280,7 @@ int is_valid_width(u32 width, v4l2_std_id tvnorm)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int is_valid_height(u32 height, v4l2_std_id tvnorm)
|
||||
int cx25821_is_valid_height(u32 height, v4l2_std_id tvnorm)
|
||||
{
|
||||
if (tvnorm == V4L2_STD_PAL_BG) {
|
||||
if (height == 576 || height == 288)
|
||||
|
@ -101,7 +101,7 @@ extern struct cx25821_fmt formats[];
|
||||
extern struct cx25821_fmt *format_by_fourcc(unsigned int fourcc);
|
||||
extern struct cx25821_data timeout_data[MAX_VID_CHANNEL_NUM];
|
||||
|
||||
extern void dump_video_queue(struct cx25821_dev *dev,
|
||||
extern void cx25821_dump_video_queue(struct cx25821_dev *dev,
|
||||
struct cx25821_dmaqueue *q);
|
||||
extern void cx25821_video_wakeup(struct cx25821_dev *dev,
|
||||
struct cx25821_dmaqueue *q, u32 count);
|
||||
@ -110,11 +110,11 @@ extern void cx25821_video_wakeup(struct cx25821_dev *dev,
|
||||
extern int cx25821_set_tvnorm(struct cx25821_dev *dev, v4l2_std_id norm);
|
||||
#endif
|
||||
|
||||
extern int res_get(struct cx25821_dev *dev, struct cx25821_fh *fh,
|
||||
extern int cx25821_res_get(struct cx25821_dev *dev, struct cx25821_fh *fh,
|
||||
unsigned int bit);
|
||||
extern int res_check(struct cx25821_fh *fh, unsigned int bit);
|
||||
extern int res_locked(struct cx25821_dev *dev, unsigned int bit);
|
||||
extern void res_free(struct cx25821_dev *dev, struct cx25821_fh *fh,
|
||||
extern int cx25821_res_check(struct cx25821_fh *fh, unsigned int bit);
|
||||
extern int cx25821_res_locked(struct cx25821_dev *dev, unsigned int bit);
|
||||
extern void cx25821_res_free(struct cx25821_dev *dev, struct cx25821_fh *fh,
|
||||
unsigned int bits);
|
||||
extern int cx25821_video_mux(struct cx25821_dev *dev, unsigned int input);
|
||||
extern int cx25821_start_video_dma(struct cx25821_dev *dev,
|
||||
@ -128,67 +128,67 @@ extern int cx25821_video_irq(struct cx25821_dev *dev, int chan_num, u32 status);
|
||||
extern void cx25821_video_unregister(struct cx25821_dev *dev, int chan_num);
|
||||
extern int cx25821_video_register(struct cx25821_dev *dev, int chan_num,
|
||||
struct video_device *video_template);
|
||||
extern int get_format_size(void);
|
||||
extern int cx25821_get_format_size(void);
|
||||
|
||||
extern int buffer_setup(struct videobuf_queue *q, unsigned int *count,
|
||||
extern int cx25821_buffer_setup(struct videobuf_queue *q, unsigned int *count,
|
||||
unsigned int *size);
|
||||
extern int buffer_prepare(struct videobuf_queue *q, struct videobuf_buffer *vb,
|
||||
extern int cx25821_buffer_prepare(struct videobuf_queue *q, struct videobuf_buffer *vb,
|
||||
enum v4l2_field field);
|
||||
extern void buffer_release(struct videobuf_queue *q,
|
||||
extern void cx25821_buffer_release(struct videobuf_queue *q,
|
||||
struct videobuf_buffer *vb);
|
||||
extern struct videobuf_queue *get_queue(struct cx25821_fh *fh);
|
||||
extern int get_resource(struct cx25821_fh *fh, int resource);
|
||||
extern int video_mmap(struct file *file, struct vm_area_struct *vma);
|
||||
extern int vidioc_try_fmt_vid_cap(struct file *file, void *priv,
|
||||
extern int cx25821_get_resource(struct cx25821_fh *fh, int resource);
|
||||
extern int cx25821_video_mmap(struct file *file, struct vm_area_struct *vma);
|
||||
extern int cx25821_vidioc_try_fmt_vid_cap(struct file *file, void *priv,
|
||||
struct v4l2_format *f);
|
||||
extern int vidioc_querycap(struct file *file, void *priv,
|
||||
extern int cx25821_vidioc_querycap(struct file *file, void *priv,
|
||||
struct v4l2_capability *cap);
|
||||
extern int vidioc_enum_fmt_vid_cap(struct file *file, void *priv,
|
||||
extern int cx25821_vidioc_enum_fmt_vid_cap(struct file *file, void *priv,
|
||||
struct v4l2_fmtdesc *f);
|
||||
extern int vidiocgmbuf(struct file *file, void *priv, struct video_mbuf *mbuf);
|
||||
extern int vidioc_reqbufs(struct file *file, void *priv,
|
||||
extern int cx25821_vidiocgmbuf(struct file *file, void *priv, struct video_mbuf *mbuf);
|
||||
extern int cx25821_vidioc_reqbufs(struct file *file, void *priv,
|
||||
struct v4l2_requestbuffers *p);
|
||||
extern int vidioc_querybuf(struct file *file, void *priv,
|
||||
extern int cx25821_vidioc_querybuf(struct file *file, void *priv,
|
||||
struct v4l2_buffer *p);
|
||||
extern int vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *p);
|
||||
extern int vidioc_s_std(struct file *file, void *priv, v4l2_std_id * tvnorms);
|
||||
extern int cx25821_vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *p);
|
||||
extern int cx25821_vidioc_s_std(struct file *file, void *priv, v4l2_std_id * tvnorms);
|
||||
extern int cx25821_enum_input(struct cx25821_dev *dev, struct v4l2_input *i);
|
||||
extern int vidioc_enum_input(struct file *file, void *priv,
|
||||
extern int cx25821_vidioc_enum_input(struct file *file, void *priv,
|
||||
struct v4l2_input *i);
|
||||
extern int vidioc_g_input(struct file *file, void *priv, unsigned int *i);
|
||||
extern int vidioc_s_input(struct file *file, void *priv, unsigned int i);
|
||||
extern int vidioc_g_ctrl(struct file *file, void *priv,
|
||||
extern int cx25821_vidioc_g_input(struct file *file, void *priv, unsigned int *i);
|
||||
extern int cx25821_vidioc_s_input(struct file *file, void *priv, unsigned int i);
|
||||
extern int cx25821_vidioc_g_ctrl(struct file *file, void *priv,
|
||||
struct v4l2_control *ctl);
|
||||
extern int vidioc_g_fmt_vid_cap(struct file *file, void *priv,
|
||||
extern int cx25821_vidioc_g_fmt_vid_cap(struct file *file, void *priv,
|
||||
struct v4l2_format *f);
|
||||
extern int vidioc_g_frequency(struct file *file, void *priv,
|
||||
extern int cx25821_vidioc_g_frequency(struct file *file, void *priv,
|
||||
struct v4l2_frequency *f);
|
||||
extern int cx25821_set_freq(struct cx25821_dev *dev, struct v4l2_frequency *f);
|
||||
extern int vidioc_s_frequency(struct file *file, void *priv,
|
||||
extern int cx25821_vidioc_s_frequency(struct file *file, void *priv,
|
||||
struct v4l2_frequency *f);
|
||||
extern int vidioc_g_register(struct file *file, void *fh,
|
||||
extern int cx25821_vidioc_g_register(struct file *file, void *fh,
|
||||
struct v4l2_dbg_register *reg);
|
||||
extern int vidioc_s_register(struct file *file, void *fh,
|
||||
extern int cx25821_vidioc_s_register(struct file *file, void *fh,
|
||||
struct v4l2_dbg_register *reg);
|
||||
extern int vidioc_g_tuner(struct file *file, void *priv, struct v4l2_tuner *t);
|
||||
extern int vidioc_s_tuner(struct file *file, void *priv, struct v4l2_tuner *t);
|
||||
extern int cx25821_vidioc_g_tuner(struct file *file, void *priv, struct v4l2_tuner *t);
|
||||
extern int cx25821_vidioc_s_tuner(struct file *file, void *priv, struct v4l2_tuner *t);
|
||||
|
||||
extern int is_valid_width(u32 width, v4l2_std_id tvnorm);
|
||||
extern int is_valid_height(u32 height, v4l2_std_id tvnorm);
|
||||
extern int cx25821_is_valid_width(u32 width, v4l2_std_id tvnorm);
|
||||
extern int cx25821_is_valid_height(u32 height, v4l2_std_id tvnorm);
|
||||
|
||||
extern int vidioc_g_priority(struct file *file, void *f, enum v4l2_priority *p);
|
||||
extern int vidioc_s_priority(struct file *file, void *f,
|
||||
extern int cx25821_vidioc_g_priority(struct file *file, void *f, enum v4l2_priority *p);
|
||||
extern int cx25821_vidioc_s_priority(struct file *file, void *f,
|
||||
enum v4l2_priority prio);
|
||||
|
||||
extern int vidioc_queryctrl(struct file *file, void *priv,
|
||||
extern int cx25821_vidioc_queryctrl(struct file *file, void *priv,
|
||||
struct v4l2_queryctrl *qctrl);
|
||||
extern int cx25821_set_control(struct cx25821_dev *dev,
|
||||
struct v4l2_control *ctrl, int chan_num);
|
||||
|
||||
extern int vidioc_cropcap(struct file *file, void *fh,
|
||||
extern int cx25821_vidioc_cropcap(struct file *file, void *fh,
|
||||
struct v4l2_cropcap *cropcap);
|
||||
extern int vidioc_s_crop(struct file *file, void *priv, struct v4l2_crop *crop);
|
||||
extern int vidioc_g_crop(struct file *file, void *priv, struct v4l2_crop *crop);
|
||||
extern int cx25821_vidioc_s_crop(struct file *file, void *priv, struct v4l2_crop *crop);
|
||||
extern int cx25821_vidioc_g_crop(struct file *file, void *priv, struct v4l2_crop *crop);
|
||||
|
||||
extern int vidioc_querystd(struct file *file, void *priv, v4l2_std_id * norm);
|
||||
extern int cx25821_vidioc_querystd(struct file *file, void *priv, v4l2_std_id * norm);
|
||||
#endif
|
||||
|
@ -86,10 +86,10 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
||||
}
|
||||
|
||||
static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
.buf_setup = buffer_setup,
|
||||
.buf_prepare = buffer_prepare,
|
||||
.buf_setup = cx25821_buffer_setup,
|
||||
.buf_prepare = cx25821_buffer_prepare,
|
||||
.buf_queue = buffer_queue,
|
||||
.buf_release = buffer_release,
|
||||
.buf_release = cx25821_buffer_release,
|
||||
};
|
||||
|
||||
static int video_open(struct file *file)
|
||||
@ -147,7 +147,7 @@ static ssize_t video_read(struct file *file, char __user * data, size_t count,
|
||||
|
||||
switch (fh->type) {
|
||||
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
|
||||
if (res_locked(fh->dev, RESOURCE_VIDEO0))
|
||||
if (cx25821_res_locked(fh->dev, RESOURCE_VIDEO0))
|
||||
return -EBUSY;
|
||||
|
||||
return videobuf_read_one(&fh->vidq, data, count, ppos,
|
||||
@ -165,7 +165,7 @@ static unsigned int video_poll(struct file *file,
|
||||
struct cx25821_fh *fh = file->private_data;
|
||||
struct cx25821_buffer *buf;
|
||||
|
||||
if (res_check(fh, RESOURCE_VIDEO0)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO0)) {
|
||||
/* streaming capture */
|
||||
if (list_empty(&fh->vidq.stream))
|
||||
return POLLERR;
|
||||
@ -207,13 +207,13 @@ static int video_release(struct file *file)
|
||||
cx_write(channel0->dma_ctl, 0); /* FIFO and RISC disable */
|
||||
|
||||
/* stop video capture */
|
||||
if (res_check(fh, RESOURCE_VIDEO0)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO0)) {
|
||||
videobuf_queue_cancel(&fh->vidq);
|
||||
res_free(dev, fh, RESOURCE_VIDEO0);
|
||||
cx25821_res_free(dev, fh, RESOURCE_VIDEO0);
|
||||
}
|
||||
|
||||
if (fh->vidq.read_buf) {
|
||||
buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
cx25821_buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
kfree(fh->vidq.read_buf);
|
||||
}
|
||||
|
||||
@ -239,7 +239,7 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO0)))) {
|
||||
if (unlikely(!cx25821_res_get(dev, fh, cx25821_get_resource(fh, RESOURCE_VIDEO0)))) {
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
@ -257,11 +257,11 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
if (i != fh->type)
|
||||
return -EINVAL;
|
||||
|
||||
res = get_resource(fh, RESOURCE_VIDEO0);
|
||||
res = cx25821_get_resource(fh, RESOURCE_VIDEO0);
|
||||
err = videobuf_streamoff(get_queue(fh));
|
||||
if (err < 0)
|
||||
return err;
|
||||
res_free(dev, fh, res);
|
||||
cx25821_res_free(dev, fh, res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -280,7 +280,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
}
|
||||
|
||||
dprintk(2, "%s()\n", __func__);
|
||||
err = vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
err = cx25821_vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
|
||||
if (0 != err)
|
||||
return err;
|
||||
@ -289,11 +289,11 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
fh->vidq.field = f->fmt.pix.field;
|
||||
|
||||
// check if width and height is valid based on set standard
|
||||
if (is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
fh->width = f->fmt.pix.width;
|
||||
}
|
||||
|
||||
if (is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
fh->height = f->fmt.pix.height;
|
||||
}
|
||||
|
||||
@ -378,50 +378,50 @@ static const struct v4l2_file_operations video_fops = {
|
||||
.release = video_release,
|
||||
.read = video_read,
|
||||
.poll = video_poll,
|
||||
.mmap = video_mmap,
|
||||
.mmap = cx25821_video_mmap,
|
||||
.ioctl = video_ioctl2,
|
||||
};
|
||||
|
||||
static const struct v4l2_ioctl_ops video_ioctl_ops = {
|
||||
.vidioc_querycap = vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap,
|
||||
.vidioc_querycap = cx25821_vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = cx25821_vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = cx25821_vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = cx25821_vidioc_try_fmt_vid_cap,
|
||||
.vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap,
|
||||
.vidioc_reqbufs = vidioc_reqbufs,
|
||||
.vidioc_querybuf = vidioc_querybuf,
|
||||
.vidioc_qbuf = vidioc_qbuf,
|
||||
.vidioc_reqbufs = cx25821_vidioc_reqbufs,
|
||||
.vidioc_querybuf = cx25821_vidioc_querybuf,
|
||||
.vidioc_qbuf = cx25821_vidioc_qbuf,
|
||||
.vidioc_dqbuf = vidioc_dqbuf,
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_s_std = vidioc_s_std,
|
||||
.vidioc_querystd = vidioc_querystd,
|
||||
.vidioc_s_std = cx25821_vidioc_s_std,
|
||||
.vidioc_querystd = cx25821_vidioc_querystd,
|
||||
#endif
|
||||
.vidioc_cropcap = vidioc_cropcap,
|
||||
.vidioc_s_crop = vidioc_s_crop,
|
||||
.vidioc_g_crop = vidioc_g_crop,
|
||||
.vidioc_enum_input = vidioc_enum_input,
|
||||
.vidioc_g_input = vidioc_g_input,
|
||||
.vidioc_s_input = vidioc_s_input,
|
||||
.vidioc_g_ctrl = vidioc_g_ctrl,
|
||||
.vidioc_cropcap = cx25821_vidioc_cropcap,
|
||||
.vidioc_s_crop = cx25821_vidioc_s_crop,
|
||||
.vidioc_g_crop = cx25821_vidioc_g_crop,
|
||||
.vidioc_enum_input = cx25821_vidioc_enum_input,
|
||||
.vidioc_g_input = cx25821_vidioc_g_input,
|
||||
.vidioc_s_input = cx25821_vidioc_s_input,
|
||||
.vidioc_g_ctrl = cx25821_vidioc_g_ctrl,
|
||||
.vidioc_s_ctrl = vidioc_s_ctrl,
|
||||
.vidioc_queryctrl = vidioc_queryctrl,
|
||||
.vidioc_queryctrl = cx25821_vidioc_queryctrl,
|
||||
.vidioc_streamon = vidioc_streamon,
|
||||
.vidioc_streamoff = vidioc_streamoff,
|
||||
.vidioc_log_status = vidioc_log_status,
|
||||
.vidioc_g_priority = vidioc_g_priority,
|
||||
.vidioc_s_priority = vidioc_s_priority,
|
||||
.vidioc_g_priority = cx25821_vidioc_g_priority,
|
||||
.vidioc_s_priority = cx25821_vidioc_s_priority,
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
.vidiocgmbuf = vidiocgmbuf,
|
||||
.vidiocgmbuf = cx25821_vidiocgmbuf,
|
||||
#endif
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_g_tuner = vidioc_g_tuner,
|
||||
.vidioc_s_tuner = vidioc_s_tuner,
|
||||
.vidioc_g_frequency = vidioc_g_frequency,
|
||||
.vidioc_s_frequency = vidioc_s_frequency,
|
||||
.vidioc_g_tuner = cx25821_vidioc_g_tuner,
|
||||
.vidioc_s_tuner = cx25821_vidioc_s_tuner,
|
||||
.vidioc_g_frequency = cx25821_vidioc_g_frequency,
|
||||
.vidioc_s_frequency = cx25821_vidioc_s_frequency,
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
.vidioc_g_register = vidioc_g_register,
|
||||
.vidioc_s_register = vidioc_s_register,
|
||||
.vidioc_g_register = cx25821_vidioc_g_register,
|
||||
.vidioc_s_register = cx25821_vidioc_s_register,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -86,10 +86,10 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
||||
}
|
||||
|
||||
static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
.buf_setup = buffer_setup,
|
||||
.buf_prepare = buffer_prepare,
|
||||
.buf_setup = cx25821_buffer_setup,
|
||||
.buf_prepare = cx25821_buffer_prepare,
|
||||
.buf_queue = buffer_queue,
|
||||
.buf_release = buffer_release,
|
||||
.buf_release = cx25821_buffer_release,
|
||||
};
|
||||
|
||||
static int video_open(struct file *file)
|
||||
@ -147,7 +147,7 @@ static ssize_t video_read(struct file *file, char __user * data, size_t count,
|
||||
|
||||
switch (fh->type) {
|
||||
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
|
||||
if (res_locked(fh->dev, RESOURCE_VIDEO1))
|
||||
if (cx25821_res_locked(fh->dev, RESOURCE_VIDEO1))
|
||||
return -EBUSY;
|
||||
|
||||
return videobuf_read_one(&fh->vidq, data, count, ppos,
|
||||
@ -165,7 +165,7 @@ static unsigned int video_poll(struct file *file,
|
||||
struct cx25821_fh *fh = file->private_data;
|
||||
struct cx25821_buffer *buf;
|
||||
|
||||
if (res_check(fh, RESOURCE_VIDEO1)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO1)) {
|
||||
/* streaming capture */
|
||||
if (list_empty(&fh->vidq.stream))
|
||||
return POLLERR;
|
||||
@ -207,13 +207,13 @@ static int video_release(struct file *file)
|
||||
cx_write(channel1->dma_ctl, 0); /* FIFO and RISC disable */
|
||||
|
||||
/* stop video capture */
|
||||
if (res_check(fh, RESOURCE_VIDEO1)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO1)) {
|
||||
videobuf_queue_cancel(&fh->vidq);
|
||||
res_free(dev, fh, RESOURCE_VIDEO1);
|
||||
cx25821_res_free(dev, fh, RESOURCE_VIDEO1);
|
||||
}
|
||||
|
||||
if (fh->vidq.read_buf) {
|
||||
buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
cx25821_buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
kfree(fh->vidq.read_buf);
|
||||
}
|
||||
|
||||
@ -239,7 +239,7 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO1)))) {
|
||||
if (unlikely(!cx25821_res_get(dev, fh, cx25821_get_resource(fh, RESOURCE_VIDEO1)))) {
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
@ -257,11 +257,11 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
if (i != fh->type)
|
||||
return -EINVAL;
|
||||
|
||||
res = get_resource(fh, RESOURCE_VIDEO1);
|
||||
res = cx25821_get_resource(fh, RESOURCE_VIDEO1);
|
||||
err = videobuf_streamoff(get_queue(fh));
|
||||
if (err < 0)
|
||||
return err;
|
||||
res_free(dev, fh, res);
|
||||
cx25821_res_free(dev, fh, res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -280,7 +280,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
}
|
||||
|
||||
dprintk(2, "%s()\n", __func__);
|
||||
err = vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
err = cx25821_vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
|
||||
if (0 != err)
|
||||
return err;
|
||||
@ -289,11 +289,11 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
fh->vidq.field = f->fmt.pix.field;
|
||||
|
||||
// check if width and height is valid based on set standard
|
||||
if (is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
fh->width = f->fmt.pix.width;
|
||||
}
|
||||
|
||||
if (is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
fh->height = f->fmt.pix.height;
|
||||
}
|
||||
|
||||
@ -378,50 +378,50 @@ static const struct v4l2_file_operations video_fops = {
|
||||
.release = video_release,
|
||||
.read = video_read,
|
||||
.poll = video_poll,
|
||||
.mmap = video_mmap,
|
||||
.mmap = cx25821_video_mmap,
|
||||
.ioctl = video_ioctl2,
|
||||
};
|
||||
|
||||
static const struct v4l2_ioctl_ops video_ioctl_ops = {
|
||||
.vidioc_querycap = vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap,
|
||||
.vidioc_querycap = cx25821_vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = cx25821_vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = cx25821_vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = cx25821_vidioc_try_fmt_vid_cap,
|
||||
.vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap,
|
||||
.vidioc_reqbufs = vidioc_reqbufs,
|
||||
.vidioc_querybuf = vidioc_querybuf,
|
||||
.vidioc_qbuf = vidioc_qbuf,
|
||||
.vidioc_reqbufs = cx25821_vidioc_reqbufs,
|
||||
.vidioc_querybuf = cx25821_vidioc_querybuf,
|
||||
.vidioc_qbuf = cx25821_vidioc_qbuf,
|
||||
.vidioc_dqbuf = vidioc_dqbuf,
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_s_std = vidioc_s_std,
|
||||
.vidioc_querystd = vidioc_querystd,
|
||||
.vidioc_s_std = cx25821_vidioc_s_std,
|
||||
.vidioc_querystd = cx25821_vidioc_querystd,
|
||||
#endif
|
||||
.vidioc_cropcap = vidioc_cropcap,
|
||||
.vidioc_s_crop = vidioc_s_crop,
|
||||
.vidioc_g_crop = vidioc_g_crop,
|
||||
.vidioc_enum_input = vidioc_enum_input,
|
||||
.vidioc_g_input = vidioc_g_input,
|
||||
.vidioc_s_input = vidioc_s_input,
|
||||
.vidioc_g_ctrl = vidioc_g_ctrl,
|
||||
.vidioc_cropcap = cx25821_vidioc_cropcap,
|
||||
.vidioc_s_crop = cx25821_vidioc_s_crop,
|
||||
.vidioc_g_crop = cx25821_vidioc_g_crop,
|
||||
.vidioc_enum_input = cx25821_vidioc_enum_input,
|
||||
.vidioc_g_input = cx25821_vidioc_g_input,
|
||||
.vidioc_s_input = cx25821_vidioc_s_input,
|
||||
.vidioc_g_ctrl = cx25821_vidioc_g_ctrl,
|
||||
.vidioc_s_ctrl = vidioc_s_ctrl,
|
||||
.vidioc_queryctrl = vidioc_queryctrl,
|
||||
.vidioc_queryctrl = cx25821_vidioc_queryctrl,
|
||||
.vidioc_streamon = vidioc_streamon,
|
||||
.vidioc_streamoff = vidioc_streamoff,
|
||||
.vidioc_log_status = vidioc_log_status,
|
||||
.vidioc_g_priority = vidioc_g_priority,
|
||||
.vidioc_s_priority = vidioc_s_priority,
|
||||
.vidioc_g_priority = cx25821_vidioc_g_priority,
|
||||
.vidioc_s_priority = cx25821_vidioc_s_priority,
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
.vidiocgmbuf = vidiocgmbuf,
|
||||
.vidiocgmbuf = cx25821_vidiocgmbuf,
|
||||
#endif
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_g_tuner = vidioc_g_tuner,
|
||||
.vidioc_s_tuner = vidioc_s_tuner,
|
||||
.vidioc_g_frequency = vidioc_g_frequency,
|
||||
.vidioc_s_frequency = vidioc_s_frequency,
|
||||
.vidioc_g_tuner = cx25821_vidioc_g_tuner,
|
||||
.vidioc_s_tuner = cx25821_vidioc_s_tuner,
|
||||
.vidioc_g_frequency = cx25821_vidioc_g_frequency,
|
||||
.vidioc_s_frequency = cx25821_vidioc_s_frequency,
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
.vidioc_g_register = vidioc_g_register,
|
||||
.vidioc_s_register = vidioc_s_register,
|
||||
.vidioc_g_register = cx25821_vidioc_g_register,
|
||||
.vidioc_s_register = cx25821_vidioc_s_register,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -86,10 +86,10 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
||||
}
|
||||
|
||||
static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
.buf_setup = buffer_setup,
|
||||
.buf_prepare = buffer_prepare,
|
||||
.buf_setup = cx25821_buffer_setup,
|
||||
.buf_prepare = cx25821_buffer_prepare,
|
||||
.buf_queue = buffer_queue,
|
||||
.buf_release = buffer_release,
|
||||
.buf_release = cx25821_buffer_release,
|
||||
};
|
||||
|
||||
static int video_open(struct file *file)
|
||||
@ -147,7 +147,7 @@ static ssize_t video_read(struct file *file, char __user * data, size_t count,
|
||||
|
||||
switch (fh->type) {
|
||||
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
|
||||
if (res_locked(fh->dev, RESOURCE_VIDEO2))
|
||||
if (cx25821_res_locked(fh->dev, RESOURCE_VIDEO2))
|
||||
return -EBUSY;
|
||||
|
||||
return videobuf_read_one(&fh->vidq, data, count, ppos,
|
||||
@ -165,7 +165,7 @@ static unsigned int video_poll(struct file *file,
|
||||
struct cx25821_fh *fh = file->private_data;
|
||||
struct cx25821_buffer *buf;
|
||||
|
||||
if (res_check(fh, RESOURCE_VIDEO2)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO2)) {
|
||||
/* streaming capture */
|
||||
if (list_empty(&fh->vidq.stream))
|
||||
return POLLERR;
|
||||
@ -207,13 +207,13 @@ static int video_release(struct file *file)
|
||||
cx_write(channel2->dma_ctl, 0); /* FIFO and RISC disable */
|
||||
|
||||
/* stop video capture */
|
||||
if (res_check(fh, RESOURCE_VIDEO2)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO2)) {
|
||||
videobuf_queue_cancel(&fh->vidq);
|
||||
res_free(dev, fh, RESOURCE_VIDEO2);
|
||||
cx25821_res_free(dev, fh, RESOURCE_VIDEO2);
|
||||
}
|
||||
|
||||
if (fh->vidq.read_buf) {
|
||||
buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
cx25821_buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
kfree(fh->vidq.read_buf);
|
||||
}
|
||||
|
||||
@ -239,7 +239,7 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO2)))) {
|
||||
if (unlikely(!cx25821_res_get(dev, fh, cx25821_get_resource(fh, RESOURCE_VIDEO2)))) {
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
@ -257,11 +257,11 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
if (i != fh->type)
|
||||
return -EINVAL;
|
||||
|
||||
res = get_resource(fh, RESOURCE_VIDEO2);
|
||||
res = cx25821_get_resource(fh, RESOURCE_VIDEO2);
|
||||
err = videobuf_streamoff(get_queue(fh));
|
||||
if (err < 0)
|
||||
return err;
|
||||
res_free(dev, fh, res);
|
||||
cx25821_res_free(dev, fh, res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -280,7 +280,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
}
|
||||
|
||||
dprintk(2, "%s()\n", __func__);
|
||||
err = vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
err = cx25821_vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
|
||||
if (0 != err)
|
||||
return err;
|
||||
@ -289,11 +289,11 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
fh->vidq.field = f->fmt.pix.field;
|
||||
|
||||
// check if width and height is valid based on set standard
|
||||
if (is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
fh->width = f->fmt.pix.width;
|
||||
}
|
||||
|
||||
if (is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
fh->height = f->fmt.pix.height;
|
||||
}
|
||||
|
||||
@ -380,50 +380,50 @@ static const struct v4l2_file_operations video_fops = {
|
||||
.release = video_release,
|
||||
.read = video_read,
|
||||
.poll = video_poll,
|
||||
.mmap = video_mmap,
|
||||
.mmap = cx25821_video_mmap,
|
||||
.ioctl = video_ioctl2,
|
||||
};
|
||||
|
||||
static const struct v4l2_ioctl_ops video_ioctl_ops = {
|
||||
.vidioc_querycap = vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap,
|
||||
.vidioc_querycap = cx25821_vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = cx25821_vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = cx25821_vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = cx25821_vidioc_try_fmt_vid_cap,
|
||||
.vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap,
|
||||
.vidioc_reqbufs = vidioc_reqbufs,
|
||||
.vidioc_querybuf = vidioc_querybuf,
|
||||
.vidioc_qbuf = vidioc_qbuf,
|
||||
.vidioc_reqbufs = cx25821_vidioc_reqbufs,
|
||||
.vidioc_querybuf = cx25821_vidioc_querybuf,
|
||||
.vidioc_qbuf = cx25821_vidioc_qbuf,
|
||||
.vidioc_dqbuf = vidioc_dqbuf,
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_s_std = vidioc_s_std,
|
||||
.vidioc_querystd = vidioc_querystd,
|
||||
.vidioc_s_std = cx25821_vidioc_s_std,
|
||||
.vidioc_querystd = cx25821_vidioc_querystd,
|
||||
#endif
|
||||
.vidioc_cropcap = vidioc_cropcap,
|
||||
.vidioc_s_crop = vidioc_s_crop,
|
||||
.vidioc_g_crop = vidioc_g_crop,
|
||||
.vidioc_enum_input = vidioc_enum_input,
|
||||
.vidioc_g_input = vidioc_g_input,
|
||||
.vidioc_s_input = vidioc_s_input,
|
||||
.vidioc_g_ctrl = vidioc_g_ctrl,
|
||||
.vidioc_cropcap = cx25821_vidioc_cropcap,
|
||||
.vidioc_s_crop = cx25821_vidioc_s_crop,
|
||||
.vidioc_g_crop = cx25821_vidioc_g_crop,
|
||||
.vidioc_enum_input = cx25821_vidioc_enum_input,
|
||||
.vidioc_g_input = cx25821_vidioc_g_input,
|
||||
.vidioc_s_input = cx25821_vidioc_s_input,
|
||||
.vidioc_g_ctrl = cx25821_vidioc_g_ctrl,
|
||||
.vidioc_s_ctrl = vidioc_s_ctrl,
|
||||
.vidioc_queryctrl = vidioc_queryctrl,
|
||||
.vidioc_queryctrl = cx25821_vidioc_queryctrl,
|
||||
.vidioc_streamon = vidioc_streamon,
|
||||
.vidioc_streamoff = vidioc_streamoff,
|
||||
.vidioc_log_status = vidioc_log_status,
|
||||
.vidioc_g_priority = vidioc_g_priority,
|
||||
.vidioc_s_priority = vidioc_s_priority,
|
||||
.vidioc_g_priority = cx25821_vidioc_g_priority,
|
||||
.vidioc_s_priority = cx25821_vidioc_s_priority,
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
.vidiocgmbuf = vidiocgmbuf,
|
||||
.vidiocgmbuf = cx25821_vidiocgmbuf,
|
||||
#endif
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_g_tuner = vidioc_g_tuner,
|
||||
.vidioc_s_tuner = vidioc_s_tuner,
|
||||
.vidioc_g_frequency = vidioc_g_frequency,
|
||||
.vidioc_s_frequency = vidioc_s_frequency,
|
||||
.vidioc_g_tuner = cx25821_vidioc_g_tuner,
|
||||
.vidioc_s_tuner = cx25821_vidioc_s_tuner,
|
||||
.vidioc_g_frequency = cx25821_vidioc_g_frequency,
|
||||
.vidioc_s_frequency = cx25821_vidioc_s_frequency,
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
.vidioc_g_register = vidioc_g_register,
|
||||
.vidioc_s_register = vidioc_s_register,
|
||||
.vidioc_g_register = cx25821_vidioc_g_register,
|
||||
.vidioc_s_register = cx25821_vidioc_s_register,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -86,10 +86,10 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
||||
}
|
||||
|
||||
static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
.buf_setup = buffer_setup,
|
||||
.buf_prepare = buffer_prepare,
|
||||
.buf_setup = cx25821_buffer_setup,
|
||||
.buf_prepare = cx25821_buffer_prepare,
|
||||
.buf_queue = buffer_queue,
|
||||
.buf_release = buffer_release,
|
||||
.buf_release = cx25821_buffer_release,
|
||||
};
|
||||
|
||||
static int video_open(struct file *file)
|
||||
@ -147,7 +147,7 @@ static ssize_t video_read(struct file *file, char __user * data, size_t count,
|
||||
|
||||
switch (fh->type) {
|
||||
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
|
||||
if (res_locked(fh->dev, RESOURCE_VIDEO3))
|
||||
if (cx25821_res_locked(fh->dev, RESOURCE_VIDEO3))
|
||||
return -EBUSY;
|
||||
|
||||
return videobuf_read_one(&fh->vidq, data, count, ppos,
|
||||
@ -165,7 +165,7 @@ static unsigned int video_poll(struct file *file,
|
||||
struct cx25821_fh *fh = file->private_data;
|
||||
struct cx25821_buffer *buf;
|
||||
|
||||
if (res_check(fh, RESOURCE_VIDEO3)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO3)) {
|
||||
/* streaming capture */
|
||||
if (list_empty(&fh->vidq.stream))
|
||||
return POLLERR;
|
||||
@ -207,13 +207,13 @@ static int video_release(struct file *file)
|
||||
cx_write(channel3->dma_ctl, 0); /* FIFO and RISC disable */
|
||||
|
||||
/* stop video capture */
|
||||
if (res_check(fh, RESOURCE_VIDEO3)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO3)) {
|
||||
videobuf_queue_cancel(&fh->vidq);
|
||||
res_free(dev, fh, RESOURCE_VIDEO3);
|
||||
cx25821_res_free(dev, fh, RESOURCE_VIDEO3);
|
||||
}
|
||||
|
||||
if (fh->vidq.read_buf) {
|
||||
buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
cx25821_buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
kfree(fh->vidq.read_buf);
|
||||
}
|
||||
|
||||
@ -239,7 +239,7 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO3)))) {
|
||||
if (unlikely(!cx25821_res_get(dev, fh, cx25821_get_resource(fh, RESOURCE_VIDEO3)))) {
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
@ -257,11 +257,11 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
if (i != fh->type)
|
||||
return -EINVAL;
|
||||
|
||||
res = get_resource(fh, RESOURCE_VIDEO3);
|
||||
res = cx25821_get_resource(fh, RESOURCE_VIDEO3);
|
||||
err = videobuf_streamoff(get_queue(fh));
|
||||
if (err < 0)
|
||||
return err;
|
||||
res_free(dev, fh, res);
|
||||
cx25821_res_free(dev, fh, res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -280,7 +280,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
}
|
||||
|
||||
dprintk(2, "%s()\n", __func__);
|
||||
err = vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
err = cx25821_vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
|
||||
if (0 != err)
|
||||
return err;
|
||||
@ -289,11 +289,11 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
fh->vidq.field = f->fmt.pix.field;
|
||||
|
||||
// check if width and height is valid based on set standard
|
||||
if (is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
fh->width = f->fmt.pix.width;
|
||||
}
|
||||
|
||||
if (is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
fh->height = f->fmt.pix.height;
|
||||
}
|
||||
|
||||
@ -379,50 +379,50 @@ static const struct v4l2_file_operations video_fops = {
|
||||
.release = video_release,
|
||||
.read = video_read,
|
||||
.poll = video_poll,
|
||||
.mmap = video_mmap,
|
||||
.mmap = cx25821_video_mmap,
|
||||
.ioctl = video_ioctl2,
|
||||
};
|
||||
|
||||
static const struct v4l2_ioctl_ops video_ioctl_ops = {
|
||||
.vidioc_querycap = vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap,
|
||||
.vidioc_querycap = cx25821_vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = cx25821_vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = cx25821_vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = cx25821_vidioc_try_fmt_vid_cap,
|
||||
.vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap,
|
||||
.vidioc_reqbufs = vidioc_reqbufs,
|
||||
.vidioc_querybuf = vidioc_querybuf,
|
||||
.vidioc_qbuf = vidioc_qbuf,
|
||||
.vidioc_reqbufs = cx25821_vidioc_reqbufs,
|
||||
.vidioc_querybuf = cx25821_vidioc_querybuf,
|
||||
.vidioc_qbuf = cx25821_vidioc_qbuf,
|
||||
.vidioc_dqbuf = vidioc_dqbuf,
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_s_std = vidioc_s_std,
|
||||
.vidioc_querystd = vidioc_querystd,
|
||||
.vidioc_s_std = cx25821_vidioc_s_std,
|
||||
.vidioc_querystd = cx25821_vidioc_querystd,
|
||||
#endif
|
||||
.vidioc_cropcap = vidioc_cropcap,
|
||||
.vidioc_s_crop = vidioc_s_crop,
|
||||
.vidioc_g_crop = vidioc_g_crop,
|
||||
.vidioc_enum_input = vidioc_enum_input,
|
||||
.vidioc_g_input = vidioc_g_input,
|
||||
.vidioc_s_input = vidioc_s_input,
|
||||
.vidioc_g_ctrl = vidioc_g_ctrl,
|
||||
.vidioc_cropcap = cx25821_vidioc_cropcap,
|
||||
.vidioc_s_crop = cx25821_vidioc_s_crop,
|
||||
.vidioc_g_crop = cx25821_vidioc_g_crop,
|
||||
.vidioc_enum_input = cx25821_vidioc_enum_input,
|
||||
.vidioc_g_input = cx25821_vidioc_g_input,
|
||||
.vidioc_s_input = cx25821_vidioc_s_input,
|
||||
.vidioc_g_ctrl = cx25821_vidioc_g_ctrl,
|
||||
.vidioc_s_ctrl = vidioc_s_ctrl,
|
||||
.vidioc_queryctrl = vidioc_queryctrl,
|
||||
.vidioc_queryctrl = cx25821_vidioc_queryctrl,
|
||||
.vidioc_streamon = vidioc_streamon,
|
||||
.vidioc_streamoff = vidioc_streamoff,
|
||||
.vidioc_log_status = vidioc_log_status,
|
||||
.vidioc_g_priority = vidioc_g_priority,
|
||||
.vidioc_s_priority = vidioc_s_priority,
|
||||
.vidioc_g_priority = cx25821_vidioc_g_priority,
|
||||
.vidioc_s_priority = cx25821_vidioc_s_priority,
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
.vidiocgmbuf = vidiocgmbuf,
|
||||
.vidiocgmbuf = cx25821_vidiocgmbuf,
|
||||
#endif
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_g_tuner = vidioc_g_tuner,
|
||||
.vidioc_s_tuner = vidioc_s_tuner,
|
||||
.vidioc_g_frequency = vidioc_g_frequency,
|
||||
.vidioc_s_frequency = vidioc_s_frequency,
|
||||
.vidioc_g_tuner = cx25821_vidioc_g_tuner,
|
||||
.vidioc_s_tuner = cx25821_vidioc_s_tuner,
|
||||
.vidioc_g_frequency = cx25821_vidioc_g_frequency,
|
||||
.vidioc_s_frequency = cx25821_vidioc_s_frequency,
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
.vidioc_g_register = vidioc_g_register,
|
||||
.vidioc_s_register = vidioc_s_register,
|
||||
.vidioc_g_register = cx25821_vidioc_g_register,
|
||||
.vidioc_s_register = cx25821_vidioc_s_register,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -86,10 +86,10 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
||||
}
|
||||
|
||||
static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
.buf_setup = buffer_setup,
|
||||
.buf_prepare = buffer_prepare,
|
||||
.buf_setup = cx25821_buffer_setup,
|
||||
.buf_prepare = cx25821_buffer_prepare,
|
||||
.buf_queue = buffer_queue,
|
||||
.buf_release = buffer_release,
|
||||
.buf_release = cx25821_buffer_release,
|
||||
};
|
||||
|
||||
static int video_open(struct file *file)
|
||||
@ -146,7 +146,7 @@ static ssize_t video_read(struct file *file, char __user * data, size_t count,
|
||||
|
||||
switch (fh->type) {
|
||||
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
|
||||
if (res_locked(fh->dev, RESOURCE_VIDEO4))
|
||||
if (cx25821_res_locked(fh->dev, RESOURCE_VIDEO4))
|
||||
return -EBUSY;
|
||||
|
||||
return videobuf_read_one(&fh->vidq, data, count, ppos,
|
||||
@ -164,7 +164,7 @@ static unsigned int video_poll(struct file *file,
|
||||
struct cx25821_fh *fh = file->private_data;
|
||||
struct cx25821_buffer *buf;
|
||||
|
||||
if (res_check(fh, RESOURCE_VIDEO4)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO4)) {
|
||||
/* streaming capture */
|
||||
if (list_empty(&fh->vidq.stream))
|
||||
return POLLERR;
|
||||
@ -206,13 +206,13 @@ static int video_release(struct file *file)
|
||||
cx_write(channel4->dma_ctl, 0); /* FIFO and RISC disable */
|
||||
|
||||
/* stop video capture */
|
||||
if (res_check(fh, RESOURCE_VIDEO4)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO4)) {
|
||||
videobuf_queue_cancel(&fh->vidq);
|
||||
res_free(dev, fh, RESOURCE_VIDEO4);
|
||||
cx25821_res_free(dev, fh, RESOURCE_VIDEO4);
|
||||
}
|
||||
|
||||
if (fh->vidq.read_buf) {
|
||||
buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
cx25821_buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
kfree(fh->vidq.read_buf);
|
||||
}
|
||||
|
||||
@ -238,7 +238,7 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO4)))) {
|
||||
if (unlikely(!cx25821_res_get(dev, fh, cx25821_get_resource(fh, RESOURCE_VIDEO4)))) {
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
@ -256,11 +256,11 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
if (i != fh->type)
|
||||
return -EINVAL;
|
||||
|
||||
res = get_resource(fh, RESOURCE_VIDEO4);
|
||||
res = cx25821_get_resource(fh, RESOURCE_VIDEO4);
|
||||
err = videobuf_streamoff(get_queue(fh));
|
||||
if (err < 0)
|
||||
return err;
|
||||
res_free(dev, fh, res);
|
||||
cx25821_res_free(dev, fh, res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -279,7 +279,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
return err;
|
||||
}
|
||||
dprintk(2, "%s()\n", __func__);
|
||||
err = vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
err = cx25821_vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
|
||||
if (0 != err)
|
||||
return err;
|
||||
@ -288,11 +288,11 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
fh->vidq.field = f->fmt.pix.field;
|
||||
|
||||
// check if width and height is valid based on set standard
|
||||
if (is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
fh->width = f->fmt.pix.width;
|
||||
}
|
||||
|
||||
if (is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
fh->height = f->fmt.pix.height;
|
||||
}
|
||||
|
||||
@ -378,50 +378,50 @@ static const struct v4l2_file_operations video_fops = {
|
||||
.release = video_release,
|
||||
.read = video_read,
|
||||
.poll = video_poll,
|
||||
.mmap = video_mmap,
|
||||
.mmap = cx25821_video_mmap,
|
||||
.ioctl = video_ioctl2,
|
||||
};
|
||||
|
||||
static const struct v4l2_ioctl_ops video_ioctl_ops = {
|
||||
.vidioc_querycap = vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap,
|
||||
.vidioc_querycap = cx25821_vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = cx25821_vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = cx25821_vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = cx25821_vidioc_try_fmt_vid_cap,
|
||||
.vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap,
|
||||
.vidioc_reqbufs = vidioc_reqbufs,
|
||||
.vidioc_querybuf = vidioc_querybuf,
|
||||
.vidioc_qbuf = vidioc_qbuf,
|
||||
.vidioc_reqbufs = cx25821_vidioc_reqbufs,
|
||||
.vidioc_querybuf = cx25821_vidioc_querybuf,
|
||||
.vidioc_qbuf = cx25821_vidioc_qbuf,
|
||||
.vidioc_dqbuf = vidioc_dqbuf,
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_s_std = vidioc_s_std,
|
||||
.vidioc_querystd = vidioc_querystd,
|
||||
.vidioc_s_std = cx25821_vidioc_s_std,
|
||||
.vidioc_querystd = cx25821_vidioc_querystd,
|
||||
#endif
|
||||
.vidioc_cropcap = vidioc_cropcap,
|
||||
.vidioc_s_crop = vidioc_s_crop,
|
||||
.vidioc_g_crop = vidioc_g_crop,
|
||||
.vidioc_enum_input = vidioc_enum_input,
|
||||
.vidioc_g_input = vidioc_g_input,
|
||||
.vidioc_s_input = vidioc_s_input,
|
||||
.vidioc_g_ctrl = vidioc_g_ctrl,
|
||||
.vidioc_cropcap = cx25821_vidioc_cropcap,
|
||||
.vidioc_s_crop = cx25821_vidioc_s_crop,
|
||||
.vidioc_g_crop = cx25821_vidioc_g_crop,
|
||||
.vidioc_enum_input = cx25821_vidioc_enum_input,
|
||||
.vidioc_g_input = cx25821_vidioc_g_input,
|
||||
.vidioc_s_input = cx25821_vidioc_s_input,
|
||||
.vidioc_g_ctrl = cx25821_vidioc_g_ctrl,
|
||||
.vidioc_s_ctrl = vidioc_s_ctrl,
|
||||
.vidioc_queryctrl = vidioc_queryctrl,
|
||||
.vidioc_queryctrl = cx25821_vidioc_queryctrl,
|
||||
.vidioc_streamon = vidioc_streamon,
|
||||
.vidioc_streamoff = vidioc_streamoff,
|
||||
.vidioc_log_status = vidioc_log_status,
|
||||
.vidioc_g_priority = vidioc_g_priority,
|
||||
.vidioc_s_priority = vidioc_s_priority,
|
||||
.vidioc_g_priority = cx25821_vidioc_g_priority,
|
||||
.vidioc_s_priority = cx25821_vidioc_s_priority,
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
.vidiocgmbuf = vidiocgmbuf,
|
||||
.vidiocgmbuf = cx25821_vidiocgmbuf,
|
||||
#endif
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_g_tuner = vidioc_g_tuner,
|
||||
.vidioc_s_tuner = vidioc_s_tuner,
|
||||
.vidioc_g_frequency = vidioc_g_frequency,
|
||||
.vidioc_s_frequency = vidioc_s_frequency,
|
||||
.vidioc_g_tuner = cx25821_vidioc_g_tuner,
|
||||
.vidioc_s_tuner = cx25821_vidioc_s_tuner,
|
||||
.vidioc_g_frequency = cx25821_vidioc_g_frequency,
|
||||
.vidioc_s_frequency = cx25821_vidioc_s_frequency,
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
.vidioc_g_register = vidioc_g_register,
|
||||
.vidioc_s_register = vidioc_s_register,
|
||||
.vidioc_g_register = cx25821_vidioc_g_register,
|
||||
.vidioc_s_register = cx25821_vidioc_s_register,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -86,10 +86,10 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
||||
}
|
||||
|
||||
static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
.buf_setup = buffer_setup,
|
||||
.buf_prepare = buffer_prepare,
|
||||
.buf_setup = cx25821_buffer_setup,
|
||||
.buf_prepare = cx25821_buffer_prepare,
|
||||
.buf_queue = buffer_queue,
|
||||
.buf_release = buffer_release,
|
||||
.buf_release = cx25821_buffer_release,
|
||||
};
|
||||
|
||||
static int video_open(struct file *file)
|
||||
@ -147,7 +147,7 @@ static ssize_t video_read(struct file *file, char __user * data, size_t count,
|
||||
|
||||
switch (fh->type) {
|
||||
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
|
||||
if (res_locked(fh->dev, RESOURCE_VIDEO5))
|
||||
if (cx25821_res_locked(fh->dev, RESOURCE_VIDEO5))
|
||||
return -EBUSY;
|
||||
|
||||
return videobuf_read_one(&fh->vidq, data, count, ppos,
|
||||
@ -165,7 +165,7 @@ static unsigned int video_poll(struct file *file,
|
||||
struct cx25821_fh *fh = file->private_data;
|
||||
struct cx25821_buffer *buf;
|
||||
|
||||
if (res_check(fh, RESOURCE_VIDEO5)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO5)) {
|
||||
/* streaming capture */
|
||||
if (list_empty(&fh->vidq.stream))
|
||||
return POLLERR;
|
||||
@ -207,13 +207,13 @@ static int video_release(struct file *file)
|
||||
cx_write(channel5->dma_ctl, 0); /* FIFO and RISC disable */
|
||||
|
||||
/* stop video capture */
|
||||
if (res_check(fh, RESOURCE_VIDEO5)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO5)) {
|
||||
videobuf_queue_cancel(&fh->vidq);
|
||||
res_free(dev, fh, RESOURCE_VIDEO5);
|
||||
cx25821_res_free(dev, fh, RESOURCE_VIDEO5);
|
||||
}
|
||||
|
||||
if (fh->vidq.read_buf) {
|
||||
buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
cx25821_buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
kfree(fh->vidq.read_buf);
|
||||
}
|
||||
|
||||
@ -239,7 +239,7 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO5)))) {
|
||||
if (unlikely(!cx25821_res_get(dev, fh, cx25821_get_resource(fh, RESOURCE_VIDEO5)))) {
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
@ -257,11 +257,11 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
if (i != fh->type)
|
||||
return -EINVAL;
|
||||
|
||||
res = get_resource(fh, RESOURCE_VIDEO5);
|
||||
res = cx25821_get_resource(fh, RESOURCE_VIDEO5);
|
||||
err = videobuf_streamoff(get_queue(fh));
|
||||
if (err < 0)
|
||||
return err;
|
||||
res_free(dev, fh, res);
|
||||
cx25821_res_free(dev, fh, res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -280,7 +280,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
}
|
||||
|
||||
dprintk(2, "%s()\n", __func__);
|
||||
err = vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
err = cx25821_vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
|
||||
if (0 != err)
|
||||
return err;
|
||||
@ -289,11 +289,11 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
fh->vidq.field = f->fmt.pix.field;
|
||||
|
||||
// check if width and height is valid based on set standard
|
||||
if (is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
fh->width = f->fmt.pix.width;
|
||||
}
|
||||
|
||||
if (is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
fh->height = f->fmt.pix.height;
|
||||
}
|
||||
|
||||
@ -378,50 +378,50 @@ static const struct v4l2_file_operations video_fops = {
|
||||
.release = video_release,
|
||||
.read = video_read,
|
||||
.poll = video_poll,
|
||||
.mmap = video_mmap,
|
||||
.mmap = cx25821_video_mmap,
|
||||
.ioctl = video_ioctl2,
|
||||
};
|
||||
|
||||
static const struct v4l2_ioctl_ops video_ioctl_ops = {
|
||||
.vidioc_querycap = vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap,
|
||||
.vidioc_querycap = cx25821_vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = cx25821_vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = cx25821_vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = cx25821_vidioc_try_fmt_vid_cap,
|
||||
.vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap,
|
||||
.vidioc_reqbufs = vidioc_reqbufs,
|
||||
.vidioc_querybuf = vidioc_querybuf,
|
||||
.vidioc_qbuf = vidioc_qbuf,
|
||||
.vidioc_reqbufs = cx25821_vidioc_reqbufs,
|
||||
.vidioc_querybuf = cx25821_vidioc_querybuf,
|
||||
.vidioc_qbuf = cx25821_vidioc_qbuf,
|
||||
.vidioc_dqbuf = vidioc_dqbuf,
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_s_std = vidioc_s_std,
|
||||
.vidioc_querystd = vidioc_querystd,
|
||||
.vidioc_s_std = cx25821_vidioc_s_std,
|
||||
.vidioc_querystd = cx25821_vidioc_querystd,
|
||||
#endif
|
||||
.vidioc_cropcap = vidioc_cropcap,
|
||||
.vidioc_s_crop = vidioc_s_crop,
|
||||
.vidioc_g_crop = vidioc_g_crop,
|
||||
.vidioc_enum_input = vidioc_enum_input,
|
||||
.vidioc_g_input = vidioc_g_input,
|
||||
.vidioc_s_input = vidioc_s_input,
|
||||
.vidioc_g_ctrl = vidioc_g_ctrl,
|
||||
.vidioc_cropcap = cx25821_vidioc_cropcap,
|
||||
.vidioc_s_crop = cx25821_vidioc_s_crop,
|
||||
.vidioc_g_crop = cx25821_vidioc_g_crop,
|
||||
.vidioc_enum_input = cx25821_vidioc_enum_input,
|
||||
.vidioc_g_input = cx25821_vidioc_g_input,
|
||||
.vidioc_s_input = cx25821_vidioc_s_input,
|
||||
.vidioc_g_ctrl = cx25821_vidioc_g_ctrl,
|
||||
.vidioc_s_ctrl = vidioc_s_ctrl,
|
||||
.vidioc_queryctrl = vidioc_queryctrl,
|
||||
.vidioc_queryctrl = cx25821_vidioc_queryctrl,
|
||||
.vidioc_streamon = vidioc_streamon,
|
||||
.vidioc_streamoff = vidioc_streamoff,
|
||||
.vidioc_log_status = vidioc_log_status,
|
||||
.vidioc_g_priority = vidioc_g_priority,
|
||||
.vidioc_s_priority = vidioc_s_priority,
|
||||
.vidioc_g_priority = cx25821_vidioc_g_priority,
|
||||
.vidioc_s_priority = cx25821_vidioc_s_priority,
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
.vidiocgmbuf = vidiocgmbuf,
|
||||
.vidiocgmbuf = cx25821_vidiocgmbuf,
|
||||
#endif
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_g_tuner = vidioc_g_tuner,
|
||||
.vidioc_s_tuner = vidioc_s_tuner,
|
||||
.vidioc_g_frequency = vidioc_g_frequency,
|
||||
.vidioc_s_frequency = vidioc_s_frequency,
|
||||
.vidioc_g_tuner = cx25821_vidioc_g_tuner,
|
||||
.vidioc_s_tuner = cx25821_vidioc_s_tuner,
|
||||
.vidioc_g_frequency = cx25821_vidioc_g_frequency,
|
||||
.vidioc_s_frequency = cx25821_vidioc_s_frequency,
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
.vidioc_g_register = vidioc_g_register,
|
||||
.vidioc_s_register = vidioc_s_register,
|
||||
.vidioc_g_register = cx25821_vidioc_g_register,
|
||||
.vidioc_s_register = cx25821_vidioc_s_register,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -86,10 +86,10 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
||||
}
|
||||
|
||||
static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
.buf_setup = buffer_setup,
|
||||
.buf_prepare = buffer_prepare,
|
||||
.buf_setup = cx25821_buffer_setup,
|
||||
.buf_prepare = cx25821_buffer_prepare,
|
||||
.buf_queue = buffer_queue,
|
||||
.buf_release = buffer_release,
|
||||
.buf_release = cx25821_buffer_release,
|
||||
};
|
||||
|
||||
static int video_open(struct file *file)
|
||||
@ -147,7 +147,7 @@ static ssize_t video_read(struct file *file, char __user * data, size_t count,
|
||||
|
||||
switch (fh->type) {
|
||||
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
|
||||
if (res_locked(fh->dev, RESOURCE_VIDEO6))
|
||||
if (cx25821_res_locked(fh->dev, RESOURCE_VIDEO6))
|
||||
return -EBUSY;
|
||||
|
||||
return videobuf_read_one(&fh->vidq, data, count, ppos,
|
||||
@ -165,7 +165,7 @@ static unsigned int video_poll(struct file *file,
|
||||
struct cx25821_fh *fh = file->private_data;
|
||||
struct cx25821_buffer *buf;
|
||||
|
||||
if (res_check(fh, RESOURCE_VIDEO6)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO6)) {
|
||||
/* streaming capture */
|
||||
if (list_empty(&fh->vidq.stream))
|
||||
return POLLERR;
|
||||
@ -207,12 +207,12 @@ static int video_release(struct file *file)
|
||||
cx_write(channel6->dma_ctl, 0); /* FIFO and RISC disable */
|
||||
|
||||
/* stop video capture */
|
||||
if (res_check(fh, RESOURCE_VIDEO6)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO6)) {
|
||||
videobuf_queue_cancel(&fh->vidq);
|
||||
res_free(dev, fh, RESOURCE_VIDEO6);
|
||||
cx25821_res_free(dev, fh, RESOURCE_VIDEO6);
|
||||
}
|
||||
if (fh->vidq.read_buf) {
|
||||
buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
cx25821_buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
kfree(fh->vidq.read_buf);
|
||||
}
|
||||
|
||||
@ -238,7 +238,7 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO6)))) {
|
||||
if (unlikely(!cx25821_res_get(dev, fh, cx25821_get_resource(fh, RESOURCE_VIDEO6)))) {
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
@ -256,11 +256,11 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
if (i != fh->type)
|
||||
return -EINVAL;
|
||||
|
||||
res = get_resource(fh, RESOURCE_VIDEO6);
|
||||
res = cx25821_get_resource(fh, RESOURCE_VIDEO6);
|
||||
err = videobuf_streamoff(get_queue(fh));
|
||||
if (err < 0)
|
||||
return err;
|
||||
res_free(dev, fh, res);
|
||||
cx25821_res_free(dev, fh, res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -279,7 +279,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
}
|
||||
|
||||
dprintk(2, "%s()\n", __func__);
|
||||
err = vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
err = cx25821_vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
|
||||
if (0 != err)
|
||||
return err;
|
||||
@ -288,11 +288,11 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
fh->vidq.field = f->fmt.pix.field;
|
||||
|
||||
// check if width and height is valid based on set standard
|
||||
if (is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
fh->width = f->fmt.pix.width;
|
||||
}
|
||||
|
||||
if (is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
fh->height = f->fmt.pix.height;
|
||||
}
|
||||
|
||||
@ -378,50 +378,50 @@ static const struct v4l2_file_operations video_fops = {
|
||||
.release = video_release,
|
||||
.read = video_read,
|
||||
.poll = video_poll,
|
||||
.mmap = video_mmap,
|
||||
.mmap = cx25821_video_mmap,
|
||||
.ioctl = video_ioctl2,
|
||||
};
|
||||
|
||||
static const struct v4l2_ioctl_ops video_ioctl_ops = {
|
||||
.vidioc_querycap = vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap,
|
||||
.vidioc_querycap = cx25821_vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = cx25821_vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = cx25821_vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = cx25821_vidioc_try_fmt_vid_cap,
|
||||
.vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap,
|
||||
.vidioc_reqbufs = vidioc_reqbufs,
|
||||
.vidioc_querybuf = vidioc_querybuf,
|
||||
.vidioc_qbuf = vidioc_qbuf,
|
||||
.vidioc_reqbufs = cx25821_vidioc_reqbufs,
|
||||
.vidioc_querybuf = cx25821_vidioc_querybuf,
|
||||
.vidioc_qbuf = cx25821_vidioc_qbuf,
|
||||
.vidioc_dqbuf = vidioc_dqbuf,
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_s_std = vidioc_s_std,
|
||||
.vidioc_querystd = vidioc_querystd,
|
||||
.vidioc_s_std = cx25821_vidioc_s_std,
|
||||
.vidioc_querystd = cx25821_vidioc_querystd,
|
||||
#endif
|
||||
.vidioc_cropcap = vidioc_cropcap,
|
||||
.vidioc_s_crop = vidioc_s_crop,
|
||||
.vidioc_g_crop = vidioc_g_crop,
|
||||
.vidioc_enum_input = vidioc_enum_input,
|
||||
.vidioc_g_input = vidioc_g_input,
|
||||
.vidioc_s_input = vidioc_s_input,
|
||||
.vidioc_g_ctrl = vidioc_g_ctrl,
|
||||
.vidioc_cropcap = cx25821_vidioc_cropcap,
|
||||
.vidioc_s_crop = cx25821_vidioc_s_crop,
|
||||
.vidioc_g_crop = cx25821_vidioc_g_crop,
|
||||
.vidioc_enum_input = cx25821_vidioc_enum_input,
|
||||
.vidioc_g_input = cx25821_vidioc_g_input,
|
||||
.vidioc_s_input = cx25821_vidioc_s_input,
|
||||
.vidioc_g_ctrl = cx25821_vidioc_g_ctrl,
|
||||
.vidioc_s_ctrl = vidioc_s_ctrl,
|
||||
.vidioc_queryctrl = vidioc_queryctrl,
|
||||
.vidioc_queryctrl = cx25821_vidioc_queryctrl,
|
||||
.vidioc_streamon = vidioc_streamon,
|
||||
.vidioc_streamoff = vidioc_streamoff,
|
||||
.vidioc_log_status = vidioc_log_status,
|
||||
.vidioc_g_priority = vidioc_g_priority,
|
||||
.vidioc_s_priority = vidioc_s_priority,
|
||||
.vidioc_g_priority = cx25821_vidioc_g_priority,
|
||||
.vidioc_s_priority = cx25821_vidioc_s_priority,
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
.vidiocgmbuf = vidiocgmbuf,
|
||||
.vidiocgmbuf = cx25821_vidiocgmbuf,
|
||||
#endif
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_g_tuner = vidioc_g_tuner,
|
||||
.vidioc_s_tuner = vidioc_s_tuner,
|
||||
.vidioc_g_frequency = vidioc_g_frequency,
|
||||
.vidioc_s_frequency = vidioc_s_frequency,
|
||||
.vidioc_g_tuner = cx25821_vidioc_g_tuner,
|
||||
.vidioc_s_tuner = cx25821_vidioc_s_tuner,
|
||||
.vidioc_g_frequency = cx25821_vidioc_g_frequency,
|
||||
.vidioc_s_frequency = cx25821_vidioc_s_frequency,
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
.vidioc_g_register = vidioc_g_register,
|
||||
.vidioc_s_register = vidioc_s_register,
|
||||
.vidioc_g_register = cx25821_vidioc_g_register,
|
||||
.vidioc_s_register = cx25821_vidioc_s_register,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -85,10 +85,10 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
||||
}
|
||||
|
||||
static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
.buf_setup = buffer_setup,
|
||||
.buf_prepare = buffer_prepare,
|
||||
.buf_setup = cx25821_buffer_setup,
|
||||
.buf_prepare = cx25821_buffer_prepare,
|
||||
.buf_queue = buffer_queue,
|
||||
.buf_release = buffer_release,
|
||||
.buf_release = cx25821_buffer_release,
|
||||
};
|
||||
|
||||
static int video_open(struct file *file)
|
||||
@ -146,7 +146,7 @@ static ssize_t video_read(struct file *file, char __user * data, size_t count,
|
||||
|
||||
switch (fh->type) {
|
||||
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
|
||||
if (res_locked(fh->dev, RESOURCE_VIDEO7))
|
||||
if (cx25821_res_locked(fh->dev, RESOURCE_VIDEO7))
|
||||
return -EBUSY;
|
||||
|
||||
return videobuf_read_one(&fh->vidq, data, count, ppos,
|
||||
@ -164,7 +164,7 @@ static unsigned int video_poll(struct file *file,
|
||||
struct cx25821_fh *fh = file->private_data;
|
||||
struct cx25821_buffer *buf;
|
||||
|
||||
if (res_check(fh, RESOURCE_VIDEO7)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO7)) {
|
||||
/* streaming capture */
|
||||
if (list_empty(&fh->vidq.stream))
|
||||
return POLLERR;
|
||||
@ -206,13 +206,13 @@ static int video_release(struct file *file)
|
||||
cx_write(channel7->dma_ctl, 0); /* FIFO and RISC disable */
|
||||
|
||||
/* stop video capture */
|
||||
if (res_check(fh, RESOURCE_VIDEO7)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO7)) {
|
||||
videobuf_queue_cancel(&fh->vidq);
|
||||
res_free(dev, fh, RESOURCE_VIDEO7);
|
||||
cx25821_res_free(dev, fh, RESOURCE_VIDEO7);
|
||||
}
|
||||
|
||||
if (fh->vidq.read_buf) {
|
||||
buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
cx25821_buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
kfree(fh->vidq.read_buf);
|
||||
}
|
||||
|
||||
@ -238,7 +238,7 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO7)))) {
|
||||
if (unlikely(!cx25821_res_get(dev, fh, cx25821_get_resource(fh, RESOURCE_VIDEO7)))) {
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
@ -256,11 +256,11 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
if (i != fh->type)
|
||||
return -EINVAL;
|
||||
|
||||
res = get_resource(fh, RESOURCE_VIDEO7);
|
||||
res = cx25821_get_resource(fh, RESOURCE_VIDEO7);
|
||||
err = videobuf_streamoff(get_queue(fh));
|
||||
if (err < 0)
|
||||
return err;
|
||||
res_free(dev, fh, res);
|
||||
cx25821_res_free(dev, fh, res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -279,7 +279,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
}
|
||||
|
||||
dprintk(2, "%s()\n", __func__);
|
||||
err = vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
err = cx25821_vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
|
||||
if (0 != err)
|
||||
return err;
|
||||
@ -288,11 +288,11 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
fh->vidq.field = f->fmt.pix.field;
|
||||
|
||||
// check if width and height is valid based on set standard
|
||||
if (is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_width(f->fmt.pix.width, dev->tvnorm)) {
|
||||
fh->width = f->fmt.pix.width;
|
||||
}
|
||||
|
||||
if (is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
if (cx25821_is_valid_height(f->fmt.pix.height, dev->tvnorm)) {
|
||||
fh->height = f->fmt.pix.height;
|
||||
}
|
||||
|
||||
@ -377,50 +377,50 @@ static const struct v4l2_file_operations video_fops = {
|
||||
.release = video_release,
|
||||
.read = video_read,
|
||||
.poll = video_poll,
|
||||
.mmap = video_mmap,
|
||||
.mmap = cx25821_video_mmap,
|
||||
.ioctl = video_ioctl2,
|
||||
};
|
||||
|
||||
static const struct v4l2_ioctl_ops video_ioctl_ops = {
|
||||
.vidioc_querycap = vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap,
|
||||
.vidioc_querycap = cx25821_vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = cx25821_vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = cx25821_vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = cx25821_vidioc_try_fmt_vid_cap,
|
||||
.vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap,
|
||||
.vidioc_reqbufs = vidioc_reqbufs,
|
||||
.vidioc_querybuf = vidioc_querybuf,
|
||||
.vidioc_qbuf = vidioc_qbuf,
|
||||
.vidioc_reqbufs = cx25821_vidioc_reqbufs,
|
||||
.vidioc_querybuf = cx25821_vidioc_querybuf,
|
||||
.vidioc_qbuf = cx25821_vidioc_qbuf,
|
||||
.vidioc_dqbuf = vidioc_dqbuf,
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_s_std = vidioc_s_std,
|
||||
.vidioc_querystd = vidioc_querystd,
|
||||
.vidioc_s_std = cx25821_vidioc_s_std,
|
||||
.vidioc_querystd = cx25821_vidioc_querystd,
|
||||
#endif
|
||||
.vidioc_cropcap = vidioc_cropcap,
|
||||
.vidioc_s_crop = vidioc_s_crop,
|
||||
.vidioc_g_crop = vidioc_g_crop,
|
||||
.vidioc_enum_input = vidioc_enum_input,
|
||||
.vidioc_g_input = vidioc_g_input,
|
||||
.vidioc_s_input = vidioc_s_input,
|
||||
.vidioc_g_ctrl = vidioc_g_ctrl,
|
||||
.vidioc_cropcap = cx25821_vidioc_cropcap,
|
||||
.vidioc_s_crop = cx25821_vidioc_s_crop,
|
||||
.vidioc_g_crop = cx25821_vidioc_g_crop,
|
||||
.vidioc_enum_input = cx25821_vidioc_enum_input,
|
||||
.vidioc_g_input = cx25821_vidioc_g_input,
|
||||
.vidioc_s_input = cx25821_vidioc_s_input,
|
||||
.vidioc_g_ctrl = cx25821_vidioc_g_ctrl,
|
||||
.vidioc_s_ctrl = vidioc_s_ctrl,
|
||||
.vidioc_queryctrl = vidioc_queryctrl,
|
||||
.vidioc_queryctrl = cx25821_vidioc_queryctrl,
|
||||
.vidioc_streamon = vidioc_streamon,
|
||||
.vidioc_streamoff = vidioc_streamoff,
|
||||
.vidioc_log_status = vidioc_log_status,
|
||||
.vidioc_g_priority = vidioc_g_priority,
|
||||
.vidioc_s_priority = vidioc_s_priority,
|
||||
.vidioc_g_priority = cx25821_vidioc_g_priority,
|
||||
.vidioc_s_priority = cx25821_vidioc_s_priority,
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
.vidiocgmbuf = vidiocgmbuf,
|
||||
.vidiocgmbuf = cx25821_vidiocgmbuf,
|
||||
#endif
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_g_tuner = vidioc_g_tuner,
|
||||
.vidioc_s_tuner = vidioc_s_tuner,
|
||||
.vidioc_g_frequency = vidioc_g_frequency,
|
||||
.vidioc_s_frequency = vidioc_s_frequency,
|
||||
.vidioc_g_tuner = cx25821_vidioc_g_tuner,
|
||||
.vidioc_s_tuner = cx25821_vidioc_s_tuner,
|
||||
.vidioc_g_frequency = cx25821_vidioc_g_frequency,
|
||||
.vidioc_s_frequency = cx25821_vidioc_s_frequency,
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
.vidioc_g_register = vidioc_g_register,
|
||||
.vidioc_s_register = vidioc_s_register,
|
||||
.vidioc_g_register = cx25821_vidioc_g_register,
|
||||
.vidioc_s_register = cx25821_vidioc_s_register,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -86,10 +86,10 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
||||
}
|
||||
|
||||
static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
.buf_setup = buffer_setup,
|
||||
.buf_prepare = buffer_prepare,
|
||||
.buf_setup = cx25821_buffer_setup,
|
||||
.buf_prepare = cx25821_buffer_prepare,
|
||||
.buf_queue = buffer_queue,
|
||||
.buf_release = buffer_release,
|
||||
.buf_release = cx25821_buffer_release,
|
||||
};
|
||||
|
||||
static int video_open(struct file *file)
|
||||
@ -145,7 +145,7 @@ static ssize_t video_read(struct file *file, char __user * data, size_t count,
|
||||
|
||||
switch (fh->type) {
|
||||
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
|
||||
if (res_locked(fh->dev, RESOURCE_VIDEO_IOCTL))
|
||||
if (cx25821_res_locked(fh->dev, RESOURCE_VIDEO_IOCTL))
|
||||
return -EBUSY;
|
||||
|
||||
return videobuf_read_one(&fh->vidq, data, count, ppos,
|
||||
@ -163,7 +163,7 @@ static unsigned int video_poll(struct file *file,
|
||||
struct cx25821_fh *fh = file->private_data;
|
||||
struct cx25821_buffer *buf;
|
||||
|
||||
if (res_check(fh, RESOURCE_VIDEO_IOCTL)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO_IOCTL)) {
|
||||
/* streaming capture */
|
||||
if (list_empty(&fh->vidq.stream))
|
||||
return POLLERR;
|
||||
@ -189,13 +189,13 @@ static int video_release(struct file *file)
|
||||
struct cx25821_dev *dev = fh->dev;
|
||||
|
||||
/* stop video capture */
|
||||
if (res_check(fh, RESOURCE_VIDEO_IOCTL)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO_IOCTL)) {
|
||||
videobuf_queue_cancel(&fh->vidq);
|
||||
res_free(dev, fh, RESOURCE_VIDEO_IOCTL);
|
||||
cx25821_res_free(dev, fh, RESOURCE_VIDEO_IOCTL);
|
||||
}
|
||||
|
||||
if (fh->vidq.read_buf) {
|
||||
buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
cx25821_buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
kfree(fh->vidq.read_buf);
|
||||
}
|
||||
|
||||
@ -222,7 +222,7 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO_IOCTL)))) {
|
||||
if (unlikely(!cx25821_res_get(dev, fh, cx25821_get_resource(fh, RESOURCE_VIDEO_IOCTL)))) {
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
@ -240,11 +240,11 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
if (i != fh->type)
|
||||
return -EINVAL;
|
||||
|
||||
res = get_resource(fh, RESOURCE_VIDEO_IOCTL);
|
||||
res = cx25821_get_resource(fh, RESOURCE_VIDEO_IOCTL);
|
||||
err = videobuf_streamoff(get_queue(fh));
|
||||
if (err < 0)
|
||||
return err;
|
||||
res_free(dev, fh, res);
|
||||
cx25821_res_free(dev, fh, res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -262,7 +262,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
}
|
||||
|
||||
dprintk(2, "%s()\n", __func__);
|
||||
err = vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
err = cx25821_vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
|
||||
if (0 != err)
|
||||
return err;
|
||||
@ -424,50 +424,50 @@ static const struct v4l2_file_operations video_fops = {
|
||||
.release = video_release,
|
||||
.read = video_read,
|
||||
.poll = video_poll,
|
||||
.mmap = video_mmap,
|
||||
.mmap = cx25821_video_mmap,
|
||||
.ioctl = video_ioctl_set,
|
||||
};
|
||||
|
||||
static const struct v4l2_ioctl_ops video_ioctl_ops = {
|
||||
.vidioc_querycap = vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap,
|
||||
.vidioc_querycap = cx25821_vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = cx25821_vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = cx25821_vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = cx25821_vidioc_try_fmt_vid_cap,
|
||||
.vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap,
|
||||
.vidioc_reqbufs = vidioc_reqbufs,
|
||||
.vidioc_querybuf = vidioc_querybuf,
|
||||
.vidioc_qbuf = vidioc_qbuf,
|
||||
.vidioc_reqbufs = cx25821_vidioc_reqbufs,
|
||||
.vidioc_querybuf = cx25821_vidioc_querybuf,
|
||||
.vidioc_qbuf = cx25821_vidioc_qbuf,
|
||||
.vidioc_dqbuf = vidioc_dqbuf,
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_s_std = vidioc_s_std,
|
||||
.vidioc_querystd = vidioc_querystd,
|
||||
.vidioc_s_std = cx25821_vidioc_s_std,
|
||||
.vidioc_querystd = cx25821_vidioc_querystd,
|
||||
#endif
|
||||
.vidioc_cropcap = vidioc_cropcap,
|
||||
.vidioc_s_crop = vidioc_s_crop,
|
||||
.vidioc_g_crop = vidioc_g_crop,
|
||||
.vidioc_enum_input = vidioc_enum_input,
|
||||
.vidioc_g_input = vidioc_g_input,
|
||||
.vidioc_s_input = vidioc_s_input,
|
||||
.vidioc_g_ctrl = vidioc_g_ctrl,
|
||||
.vidioc_cropcap = cx25821_vidioc_cropcap,
|
||||
.vidioc_s_crop = cx25821_vidioc_s_crop,
|
||||
.vidioc_g_crop = cx25821_vidioc_g_crop,
|
||||
.vidioc_enum_input = cx25821_vidioc_enum_input,
|
||||
.vidioc_g_input = cx25821_vidioc_g_input,
|
||||
.vidioc_s_input = cx25821_vidioc_s_input,
|
||||
.vidioc_g_ctrl = cx25821_vidioc_g_ctrl,
|
||||
.vidioc_s_ctrl = vidioc_s_ctrl,
|
||||
.vidioc_queryctrl = vidioc_queryctrl,
|
||||
.vidioc_queryctrl = cx25821_vidioc_queryctrl,
|
||||
.vidioc_streamon = vidioc_streamon,
|
||||
.vidioc_streamoff = vidioc_streamoff,
|
||||
.vidioc_log_status = vidioc_log_status,
|
||||
.vidioc_g_priority = vidioc_g_priority,
|
||||
.vidioc_s_priority = vidioc_s_priority,
|
||||
.vidioc_g_priority = cx25821_vidioc_g_priority,
|
||||
.vidioc_s_priority = cx25821_vidioc_s_priority,
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
.vidiocgmbuf = vidiocgmbuf,
|
||||
.vidiocgmbuf = cx25821_vidiocgmbuf,
|
||||
#endif
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_g_tuner = vidioc_g_tuner,
|
||||
.vidioc_s_tuner = vidioc_s_tuner,
|
||||
.vidioc_g_frequency = vidioc_g_frequency,
|
||||
.vidioc_s_frequency = vidioc_s_frequency,
|
||||
.vidioc_g_tuner = cx25821_vidioc_g_tuner,
|
||||
.vidioc_s_tuner = cx25821_vidioc_s_tuner,
|
||||
.vidioc_g_frequency = cx25821_vidioc_g_frequency,
|
||||
.vidioc_s_frequency = cx25821_vidioc_s_frequency,
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
.vidioc_g_register = vidioc_g_register,
|
||||
.vidioc_s_register = vidioc_s_register,
|
||||
.vidioc_g_register = cx25821_vidioc_g_register,
|
||||
.vidioc_s_register = cx25821_vidioc_s_register,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -86,10 +86,10 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
||||
}
|
||||
|
||||
static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
.buf_setup = buffer_setup,
|
||||
.buf_prepare = buffer_prepare,
|
||||
.buf_setup = cx25821_buffer_setup,
|
||||
.buf_prepare = cx25821_buffer_prepare,
|
||||
.buf_queue = buffer_queue,
|
||||
.buf_release = buffer_release,
|
||||
.buf_release = cx25821_buffer_release,
|
||||
};
|
||||
|
||||
static int video_open(struct file *file)
|
||||
@ -143,7 +143,7 @@ static ssize_t video_read(struct file *file, char __user * data, size_t count,
|
||||
|
||||
switch (fh->type) {
|
||||
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
|
||||
if (res_locked(fh->dev, RESOURCE_VIDEO10))
|
||||
if (cx25821_res_locked(fh->dev, RESOURCE_VIDEO10))
|
||||
return -EBUSY;
|
||||
|
||||
return videobuf_read_one(&fh->vidq, data, count, ppos,
|
||||
@ -161,7 +161,7 @@ static unsigned int video_poll(struct file *file,
|
||||
struct cx25821_fh *fh = file->private_data;
|
||||
struct cx25821_buffer *buf;
|
||||
|
||||
if (res_check(fh, RESOURCE_VIDEO10)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO10)) {
|
||||
/* streaming capture */
|
||||
if (list_empty(&fh->vidq.stream))
|
||||
return POLLERR;
|
||||
@ -189,13 +189,13 @@ static int video_release(struct file *file)
|
||||
//cx_write(channel10->dma_ctl, 0);
|
||||
|
||||
/* stop video capture */
|
||||
if (res_check(fh, RESOURCE_VIDEO10)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO10)) {
|
||||
videobuf_queue_cancel(&fh->vidq);
|
||||
res_free(dev, fh, RESOURCE_VIDEO10);
|
||||
cx25821_res_free(dev, fh, RESOURCE_VIDEO10);
|
||||
}
|
||||
|
||||
if (fh->vidq.read_buf) {
|
||||
buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
cx25821_buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
kfree(fh->vidq.read_buf);
|
||||
}
|
||||
|
||||
@ -222,7 +222,7 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO10)))) {
|
||||
if (unlikely(!cx25821_res_get(dev, fh, cx25821_get_resource(fh, RESOURCE_VIDEO10)))) {
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
@ -240,11 +240,11 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
if (i != fh->type)
|
||||
return -EINVAL;
|
||||
|
||||
res = get_resource(fh, RESOURCE_VIDEO10);
|
||||
res = cx25821_get_resource(fh, RESOURCE_VIDEO10);
|
||||
err = videobuf_streamoff(get_queue(fh));
|
||||
if (err < 0)
|
||||
return err;
|
||||
res_free(dev, fh, res);
|
||||
cx25821_res_free(dev, fh, res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -305,7 +305,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
}
|
||||
|
||||
dprintk(2, "%s()\n", __func__);
|
||||
err = vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
err = cx25821_vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
|
||||
if (0 != err)
|
||||
return err;
|
||||
@ -362,50 +362,50 @@ static const struct v4l2_file_operations video_fops = {
|
||||
.release = video_release,
|
||||
.read = video_read,
|
||||
.poll = video_poll,
|
||||
.mmap = video_mmap,
|
||||
.mmap = cx25821_video_mmap,
|
||||
.ioctl = video_ioctl_upstream10,
|
||||
};
|
||||
|
||||
static const struct v4l2_ioctl_ops video_ioctl_ops = {
|
||||
.vidioc_querycap = vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap,
|
||||
.vidioc_querycap = cx25821_vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = cx25821_vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = cx25821_vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = cx25821_vidioc_try_fmt_vid_cap,
|
||||
.vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap,
|
||||
.vidioc_reqbufs = vidioc_reqbufs,
|
||||
.vidioc_querybuf = vidioc_querybuf,
|
||||
.vidioc_qbuf = vidioc_qbuf,
|
||||
.vidioc_reqbufs = cx25821_vidioc_reqbufs,
|
||||
.vidioc_querybuf = cx25821_vidioc_querybuf,
|
||||
.vidioc_qbuf = cx25821_vidioc_qbuf,
|
||||
.vidioc_dqbuf = vidioc_dqbuf,
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_s_std = vidioc_s_std,
|
||||
.vidioc_querystd = vidioc_querystd,
|
||||
.vidioc_s_std = cx25821_vidioc_s_std,
|
||||
.vidioc_querystd = cx25821_vidioc_querystd,
|
||||
#endif
|
||||
.vidioc_cropcap = vidioc_cropcap,
|
||||
.vidioc_s_crop = vidioc_s_crop,
|
||||
.vidioc_g_crop = vidioc_g_crop,
|
||||
.vidioc_enum_input = vidioc_enum_input,
|
||||
.vidioc_g_input = vidioc_g_input,
|
||||
.vidioc_s_input = vidioc_s_input,
|
||||
.vidioc_g_ctrl = vidioc_g_ctrl,
|
||||
.vidioc_cropcap = cx25821_vidioc_cropcap,
|
||||
.vidioc_s_crop = cx25821_vidioc_s_crop,
|
||||
.vidioc_g_crop = cx25821_vidioc_g_crop,
|
||||
.vidioc_enum_input = cx25821_vidioc_enum_input,
|
||||
.vidioc_g_input = cx25821_vidioc_g_input,
|
||||
.vidioc_s_input = cx25821_vidioc_s_input,
|
||||
.vidioc_g_ctrl = cx25821_vidioc_g_ctrl,
|
||||
.vidioc_s_ctrl = vidioc_s_ctrl,
|
||||
.vidioc_queryctrl = vidioc_queryctrl,
|
||||
.vidioc_queryctrl = cx25821_vidioc_queryctrl,
|
||||
.vidioc_streamon = vidioc_streamon,
|
||||
.vidioc_streamoff = vidioc_streamoff,
|
||||
.vidioc_log_status = vidioc_log_status,
|
||||
.vidioc_g_priority = vidioc_g_priority,
|
||||
.vidioc_s_priority = vidioc_s_priority,
|
||||
.vidioc_g_priority = cx25821_vidioc_g_priority,
|
||||
.vidioc_s_priority = cx25821_vidioc_s_priority,
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
.vidiocgmbuf = vidiocgmbuf,
|
||||
.vidiocgmbuf = cx25821_vidiocgmbuf,
|
||||
#endif
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_g_tuner = vidioc_g_tuner,
|
||||
.vidioc_s_tuner = vidioc_s_tuner,
|
||||
.vidioc_g_frequency = vidioc_g_frequency,
|
||||
.vidioc_s_frequency = vidioc_s_frequency,
|
||||
.vidioc_g_tuner = cx25821_vidioc_g_tuner,
|
||||
.vidioc_s_tuner = cx25821_vidioc_s_tuner,
|
||||
.vidioc_g_frequency = cx25821_vidioc_g_frequency,
|
||||
.vidioc_s_frequency = cx25821_vidioc_s_frequency,
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
.vidioc_g_register = vidioc_g_register,
|
||||
.vidioc_s_register = vidioc_s_register,
|
||||
.vidioc_g_register = cx25821_vidioc_g_register,
|
||||
.vidioc_s_register = cx25821_vidioc_s_register,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
@ -86,10 +86,10 @@ static void buffer_queue(struct videobuf_queue *vq, struct videobuf_buffer *vb)
|
||||
}
|
||||
|
||||
static struct videobuf_queue_ops cx25821_video_qops = {
|
||||
.buf_setup = buffer_setup,
|
||||
.buf_prepare = buffer_prepare,
|
||||
.buf_setup = cx25821_buffer_setup,
|
||||
.buf_prepare = cx25821_buffer_prepare,
|
||||
.buf_queue = buffer_queue,
|
||||
.buf_release = buffer_release,
|
||||
.buf_release = cx25821_buffer_release,
|
||||
};
|
||||
|
||||
static int video_open(struct file *file)
|
||||
@ -143,7 +143,7 @@ static ssize_t video_read(struct file *file, char __user * data, size_t count,
|
||||
|
||||
switch (fh->type) {
|
||||
case V4L2_BUF_TYPE_VIDEO_CAPTURE:
|
||||
if (res_locked(fh->dev, RESOURCE_VIDEO9))
|
||||
if (cx25821_res_locked(fh->dev, RESOURCE_VIDEO9))
|
||||
return -EBUSY;
|
||||
|
||||
return videobuf_read_one(&fh->vidq, data, count, ppos,
|
||||
@ -161,7 +161,7 @@ static unsigned int video_poll(struct file *file,
|
||||
struct cx25821_fh *fh = file->private_data;
|
||||
struct cx25821_buffer *buf;
|
||||
|
||||
if (res_check(fh, RESOURCE_VIDEO9)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO9)) {
|
||||
/* streaming capture */
|
||||
if (list_empty(&fh->vidq.stream))
|
||||
return POLLERR;
|
||||
@ -189,13 +189,13 @@ static int video_release(struct file *file)
|
||||
//cx_write(channel9->dma_ctl, 0);
|
||||
|
||||
/* stop video capture */
|
||||
if (res_check(fh, RESOURCE_VIDEO9)) {
|
||||
if (cx25821_res_check(fh, RESOURCE_VIDEO9)) {
|
||||
videobuf_queue_cancel(&fh->vidq);
|
||||
res_free(dev, fh, RESOURCE_VIDEO9);
|
||||
cx25821_res_free(dev, fh, RESOURCE_VIDEO9);
|
||||
}
|
||||
|
||||
if (fh->vidq.read_buf) {
|
||||
buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
cx25821_buffer_release(&fh->vidq, fh->vidq.read_buf);
|
||||
kfree(fh->vidq.read_buf);
|
||||
}
|
||||
|
||||
@ -222,7 +222,7 @@ static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (unlikely(!res_get(dev, fh, get_resource(fh, RESOURCE_VIDEO9)))) {
|
||||
if (unlikely(!cx25821_res_get(dev, fh, cx25821_get_resource(fh, RESOURCE_VIDEO9)))) {
|
||||
return -EBUSY;
|
||||
}
|
||||
|
||||
@ -240,11 +240,11 @@ static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
|
||||
if (i != fh->type)
|
||||
return -EINVAL;
|
||||
|
||||
res = get_resource(fh, RESOURCE_VIDEO9);
|
||||
res = cx25821_get_resource(fh, RESOURCE_VIDEO9);
|
||||
err = videobuf_streamoff(get_queue(fh));
|
||||
if (err < 0)
|
||||
return err;
|
||||
res_free(dev, fh, res);
|
||||
cx25821_res_free(dev, fh, res);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -305,7 +305,7 @@ static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
|
||||
}
|
||||
|
||||
dprintk(2, "%s()\n", __func__);
|
||||
err = vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
err = cx25821_vidioc_try_fmt_vid_cap(file, priv, f);
|
||||
|
||||
if (0 != err)
|
||||
return err;
|
||||
@ -360,50 +360,50 @@ static const struct v4l2_file_operations video_fops = {
|
||||
.release = video_release,
|
||||
.read = video_read,
|
||||
.poll = video_poll,
|
||||
.mmap = video_mmap,
|
||||
.mmap = cx25821_video_mmap,
|
||||
.ioctl = video_ioctl_upstream9,
|
||||
};
|
||||
|
||||
static const struct v4l2_ioctl_ops video_ioctl_ops = {
|
||||
.vidioc_querycap = vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = vidioc_try_fmt_vid_cap,
|
||||
.vidioc_querycap = cx25821_vidioc_querycap,
|
||||
.vidioc_enum_fmt_vid_cap = cx25821_vidioc_enum_fmt_vid_cap,
|
||||
.vidioc_g_fmt_vid_cap = cx25821_vidioc_g_fmt_vid_cap,
|
||||
.vidioc_try_fmt_vid_cap = cx25821_vidioc_try_fmt_vid_cap,
|
||||
.vidioc_s_fmt_vid_cap = vidioc_s_fmt_vid_cap,
|
||||
.vidioc_reqbufs = vidioc_reqbufs,
|
||||
.vidioc_querybuf = vidioc_querybuf,
|
||||
.vidioc_qbuf = vidioc_qbuf,
|
||||
.vidioc_reqbufs = cx25821_vidioc_reqbufs,
|
||||
.vidioc_querybuf = cx25821_vidioc_querybuf,
|
||||
.vidioc_qbuf = cx25821_vidioc_qbuf,
|
||||
.vidioc_dqbuf = vidioc_dqbuf,
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_s_std = vidioc_s_std,
|
||||
.vidioc_querystd = vidioc_querystd,
|
||||
.vidioc_s_std = cx25821_vidioc_s_std,
|
||||
.vidioc_querystd = cx25821_vidioc_querystd,
|
||||
#endif
|
||||
.vidioc_cropcap = vidioc_cropcap,
|
||||
.vidioc_s_crop = vidioc_s_crop,
|
||||
.vidioc_g_crop = vidioc_g_crop,
|
||||
.vidioc_enum_input = vidioc_enum_input,
|
||||
.vidioc_g_input = vidioc_g_input,
|
||||
.vidioc_s_input = vidioc_s_input,
|
||||
.vidioc_g_ctrl = vidioc_g_ctrl,
|
||||
.vidioc_cropcap = cx25821_vidioc_cropcap,
|
||||
.vidioc_s_crop = cx25821_vidioc_s_crop,
|
||||
.vidioc_g_crop = cx25821_vidioc_g_crop,
|
||||
.vidioc_enum_input = cx25821_vidioc_enum_input,
|
||||
.vidioc_g_input = cx25821_vidioc_g_input,
|
||||
.vidioc_s_input = cx25821_vidioc_s_input,
|
||||
.vidioc_g_ctrl = cx25821_vidioc_g_ctrl,
|
||||
.vidioc_s_ctrl = vidioc_s_ctrl,
|
||||
.vidioc_queryctrl = vidioc_queryctrl,
|
||||
.vidioc_queryctrl = cx25821_vidioc_queryctrl,
|
||||
.vidioc_streamon = vidioc_streamon,
|
||||
.vidioc_streamoff = vidioc_streamoff,
|
||||
.vidioc_log_status = vidioc_log_status,
|
||||
.vidioc_g_priority = vidioc_g_priority,
|
||||
.vidioc_s_priority = vidioc_s_priority,
|
||||
.vidioc_g_priority = cx25821_vidioc_g_priority,
|
||||
.vidioc_s_priority = cx25821_vidioc_s_priority,
|
||||
#ifdef CONFIG_VIDEO_V4L1_COMPAT
|
||||
.vidiocgmbuf = vidiocgmbuf,
|
||||
.vidiocgmbuf = cx25821_vidiocgmbuf,
|
||||
#endif
|
||||
#ifdef TUNER_FLAG
|
||||
.vidioc_g_tuner = vidioc_g_tuner,
|
||||
.vidioc_s_tuner = vidioc_s_tuner,
|
||||
.vidioc_g_frequency = vidioc_g_frequency,
|
||||
.vidioc_s_frequency = vidioc_s_frequency,
|
||||
.vidioc_g_tuner = cx25821_vidioc_g_tuner,
|
||||
.vidioc_s_tuner = cx25821_vidioc_s_tuner,
|
||||
.vidioc_g_frequency = cx25821_vidioc_g_frequency,
|
||||
.vidioc_s_frequency = cx25821_vidioc_s_frequency,
|
||||
#endif
|
||||
#ifdef CONFIG_VIDEO_ADV_DEBUG
|
||||
.vidioc_g_register = vidioc_g_register,
|
||||
.vidioc_s_register = vidioc_s_register,
|
||||
.vidioc_g_register = cx25821_vidioc_g_register,
|
||||
.vidioc_s_register = cx25821_vidioc_s_register,
|
||||
#endif
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user