aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Verkuil <hans.verkuil@cisco.com>2013-12-14 06:28:23 -0500
committerMauro Carvalho Chehab <m.chehab@samsung.com>2014-01-07 04:16:07 -0500
commit9db0fb182ea8a42c5bfd322b169d65728721fd71 (patch)
tree04fe9c9486e8dfb4227fe6e3951962fadd7f8620
parentdc18d1bea679c6b6bfdc570469160aec5c1d3689 (diff)
[media] saa7134: move the queue data from saa7134_fh to saa7134_dev
These fields are global, not per-filehandle. Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com> Signed-off-by: Mauro Carvalho Chehab <m.chehab@samsung.com>
-rw-r--r--drivers/media/pci/saa7134/saa7134-core.c1
-rw-r--r--drivers/media/pci/saa7134/saa7134-vbi.c11
-rw-r--r--drivers/media/pci/saa7134/saa7134-video.c102
-rw-r--r--drivers/media/pci/saa7134/saa7134.h13
4 files changed, 63 insertions, 64 deletions
diff --git a/drivers/media/pci/saa7134/saa7134-core.c b/drivers/media/pci/saa7134/saa7134-core.c
index 27d7ee709c58..f442405568d8 100644
--- a/drivers/media/pci/saa7134/saa7134-core.c
+++ b/drivers/media/pci/saa7134/saa7134-core.c
@@ -751,6 +751,7 @@ static int saa7134_hwfini(struct saa7134_dev *dev)
751 saa7134_input_fini(dev); 751 saa7134_input_fini(dev);
752 saa7134_vbi_fini(dev); 752 saa7134_vbi_fini(dev);
753 saa7134_tvaudio_fini(dev); 753 saa7134_tvaudio_fini(dev);
754 saa7134_video_fini(dev);
754 return 0; 755 return 0;
755} 756}
756 757
diff --git a/drivers/media/pci/saa7134/saa7134-vbi.c b/drivers/media/pci/saa7134/saa7134-vbi.c
index e9aa94b807f1..d4da18d049f3 100644
--- a/drivers/media/pci/saa7134/saa7134-vbi.c
+++ b/drivers/media/pci/saa7134/saa7134-vbi.c
@@ -117,8 +117,7 @@ static int buffer_prepare(struct videobuf_queue *q,
117 struct videobuf_buffer *vb, 117 struct videobuf_buffer *vb,
118 enum v4l2_field field) 118 enum v4l2_field field)
119{ 119{
120 struct saa7134_fh *fh = q->priv_data; 120 struct saa7134_dev *dev = q->priv_data;
121 struct saa7134_dev *dev = fh->dev;
122 struct saa7134_buf *buf = container_of(vb,struct saa7134_buf,vb); 121 struct saa7134_buf *buf = container_of(vb,struct saa7134_buf,vb);
123 struct saa7134_tvnorm *norm = dev->tvnorm; 122 struct saa7134_tvnorm *norm = dev->tvnorm;
124 unsigned int lines, llength, size; 123 unsigned int lines, llength, size;
@@ -141,7 +140,7 @@ static int buffer_prepare(struct videobuf_queue *q,
141 buf->vb.width = llength; 140 buf->vb.width = llength;
142 buf->vb.height = lines; 141 buf->vb.height = lines;
143 buf->vb.size = size; 142 buf->vb.size = size;
144 buf->pt = &fh->pt_vbi; 143 buf->pt = &dev->pt_vbi;
145 144
146 err = videobuf_iolock(q,&buf->vb,NULL); 145 err = videobuf_iolock(q,&buf->vb,NULL);
147 if (err) 146 if (err)
@@ -166,8 +165,7 @@ static int buffer_prepare(struct videobuf_queue *q,
166static int 165static int
167buffer_setup(struct videobuf_queue *q, unsigned int *count, unsigned int *size) 166buffer_setup(struct videobuf_queue *q, unsigned int *count, unsigned int *size)
168{ 167{
169 struct saa7134_fh *fh = q->priv_data; 168 struct saa7134_dev *dev = q->priv_data;
170 struct saa7134_dev *dev = fh->dev;
171 int llength,lines; 169 int llength,lines;
172 170
173 lines = dev->tvnorm->vbi_v_stop_0 - dev->tvnorm->vbi_v_start_0 +1; 171 lines = dev->tvnorm->vbi_v_stop_0 - dev->tvnorm->vbi_v_start_0 +1;
@@ -181,8 +179,7 @@ buffer_setup(struct videobuf_queue *q, unsigned int *count, unsigned int *size)
181 179
182static void buffer_queue(struct videobuf_queue *q, struct videobuf_buffer *vb) 180static void buffer_queue(struct videobuf_queue *q, struct videobuf_buffer *vb)
183{ 181{
184 struct saa7134_fh *fh = q->priv_data; 182 struct saa7134_dev *dev = q->priv_data;
185 struct saa7134_dev *dev = fh->dev;
186 struct saa7134_buf *buf = container_of(vb,struct saa7134_buf,vb); 183 struct saa7134_buf *buf = container_of(vb,struct saa7134_buf,vb);
187 184
188 saa7134_buffer_queue(dev,&dev->vbi_q,buf); 185 saa7134_buffer_queue(dev,&dev->vbi_q,buf);
diff --git a/drivers/media/pci/saa7134/saa7134-video.c b/drivers/media/pci/saa7134/saa7134-video.c
index fb60da85bc2c..8f73058f901e 100644
--- a/drivers/media/pci/saa7134/saa7134-video.c
+++ b/drivers/media/pci/saa7134/saa7134-video.c
@@ -1018,8 +1018,7 @@ static int buffer_prepare(struct videobuf_queue *q,
1018 struct videobuf_buffer *vb, 1018 struct videobuf_buffer *vb,
1019 enum v4l2_field field) 1019 enum v4l2_field field)
1020{ 1020{
1021 struct saa7134_fh *fh = q->priv_data; 1021 struct saa7134_dev *dev = q->priv_data;
1022 struct saa7134_dev *dev = fh->dev;
1023 struct saa7134_buf *buf = container_of(vb,struct saa7134_buf,vb); 1022 struct saa7134_buf *buf = container_of(vb,struct saa7134_buf,vb);
1024 unsigned int size; 1023 unsigned int size;
1025 int err; 1024 int err;
@@ -1057,7 +1056,7 @@ static int buffer_prepare(struct videobuf_queue *q,
1057 buf->vb.size = size; 1056 buf->vb.size = size;
1058 buf->vb.field = field; 1057 buf->vb.field = field;
1059 buf->fmt = dev->fmt; 1058 buf->fmt = dev->fmt;
1060 buf->pt = &fh->pt_cap; 1059 buf->pt = &dev->pt_cap;
1061 dev->video_q.curr = NULL; 1060 dev->video_q.curr = NULL;
1062 1061
1063 err = videobuf_iolock(q,&buf->vb,&dev->ovbuf); 1062 err = videobuf_iolock(q,&buf->vb,&dev->ovbuf);
@@ -1082,8 +1081,7 @@ static int buffer_prepare(struct videobuf_queue *q,
1082static int 1081static int
1083buffer_setup(struct videobuf_queue *q, unsigned int *count, unsigned int *size) 1082buffer_setup(struct videobuf_queue *q, unsigned int *count, unsigned int *size)
1084{ 1083{
1085 struct saa7134_fh *fh = q->priv_data; 1084 struct saa7134_dev *dev = q->priv_data;
1086 struct saa7134_dev *dev = fh->dev;
1087 1085
1088 *size = dev->fmt->depth * dev->width * dev->height >> 3; 1086 *size = dev->fmt->depth * dev->width * dev->height >> 3;
1089 if (0 == *count) 1087 if (0 == *count)
@@ -1094,10 +1092,10 @@ buffer_setup(struct videobuf_queue *q, unsigned int *count, unsigned int *size)
1094 1092
1095static void buffer_queue(struct videobuf_queue *q, struct videobuf_buffer *vb) 1093static void buffer_queue(struct videobuf_queue *q, struct videobuf_buffer *vb)
1096{ 1094{
1097 struct saa7134_fh *fh = q->priv_data; 1095 struct saa7134_dev *dev = q->priv_data;
1098 struct saa7134_buf *buf = container_of(vb,struct saa7134_buf,vb); 1096 struct saa7134_buf *buf = container_of(vb,struct saa7134_buf,vb);
1099 1097
1100 saa7134_buffer_queue(fh->dev,&fh->dev->video_q,buf); 1098 saa7134_buffer_queue(dev, &dev->video_q, buf);
1101} 1099}
1102 1100
1103static void buffer_release(struct videobuf_queue *q, struct videobuf_buffer *vb) 1101static void buffer_release(struct videobuf_queue *q, struct videobuf_buffer *vb)
@@ -1293,14 +1291,15 @@ static struct videobuf_queue *saa7134_queue(struct file *file)
1293{ 1291{
1294 struct video_device *vdev = video_devdata(file); 1292 struct video_device *vdev = video_devdata(file);
1295 struct saa7134_fh *fh = file->private_data; 1293 struct saa7134_fh *fh = file->private_data;
1294 struct saa7134_dev *dev = fh->dev;
1296 struct videobuf_queue *q = NULL; 1295 struct videobuf_queue *q = NULL;
1297 1296
1298 switch (vdev->vfl_type) { 1297 switch (vdev->vfl_type) {
1299 case VFL_TYPE_GRABBER: 1298 case VFL_TYPE_GRABBER:
1300 q = &fh->cap; 1299 q = &dev->cap;
1301 break; 1300 break;
1302 case VFL_TYPE_VBI: 1301 case VFL_TYPE_VBI:
1303 q = &fh->vbi; 1302 q = &dev->vbi;
1304 break; 1303 break;
1305 default: 1304 default:
1306 BUG(); 1305 BUG();
@@ -1337,21 +1336,6 @@ static int video_open(struct file *file)
1337 file->private_data = fh; 1336 file->private_data = fh;
1338 fh->dev = dev; 1337 fh->dev = dev;
1339 1338
1340 videobuf_queue_sg_init(&fh->cap, &video_qops,
1341 &dev->pci->dev, &dev->slock,
1342 V4L2_BUF_TYPE_VIDEO_CAPTURE,
1343 V4L2_FIELD_INTERLACED,
1344 sizeof(struct saa7134_buf),
1345 fh, NULL);
1346 videobuf_queue_sg_init(&fh->vbi, &saa7134_vbi_qops,
1347 &dev->pci->dev, &dev->slock,
1348 V4L2_BUF_TYPE_VBI_CAPTURE,
1349 V4L2_FIELD_SEQ_TB,
1350 sizeof(struct saa7134_buf),
1351 fh, NULL);
1352 saa7134_pgtable_alloc(dev->pci,&fh->pt_cap);
1353 saa7134_pgtable_alloc(dev->pci,&fh->pt_vbi);
1354
1355 if (vdev->vfl_type == VFL_TYPE_RADIO) { 1339 if (vdev->vfl_type == VFL_TYPE_RADIO) {
1356 /* switch to radio mode */ 1340 /* switch to radio mode */
1357 saa7134_tvaudio_setinput(dev,&card(dev).radio); 1341 saa7134_tvaudio_setinput(dev,&card(dev).radio);
@@ -1396,28 +1380,30 @@ video_poll(struct file *file, struct poll_table_struct *wait)
1396{ 1380{
1397 struct video_device *vdev = video_devdata(file); 1381 struct video_device *vdev = video_devdata(file);
1398 struct saa7134_fh *fh = file->private_data; 1382 struct saa7134_fh *fh = file->private_data;
1383 struct saa7134_dev *dev = fh->dev;
1399 struct videobuf_buffer *buf = NULL;