diff options
| author | Hans Verkuil <hans.verkuil@cisco.com> | 2013-12-14 06:28:23 -0500 |
|---|---|---|
| committer | Mauro Carvalho Chehab <m.chehab@samsung.com> | 2014-01-07 04:16:07 -0500 |
| commit | 9db0fb182ea8a42c5bfd322b169d65728721fd71 (patch) | |
| tree | 04fe9c9486e8dfb4227fe6e3951962fadd7f8620 | |
| parent | dc18d1bea679c6b6bfdc570469160aec5c1d3689 (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.c | 1 | ||||
| -rw-r--r-- | drivers/media/pci/saa7134/saa7134-vbi.c | 11 | ||||
| -rw-r--r-- | drivers/media/pci/saa7134/saa7134-video.c | 102 | ||||
| -rw-r--r-- | drivers/media/pci/saa7134/saa7134.h | 13 |
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, | |||
| 166 | static int | 165 | static int |
| 167 | buffer_setup(struct videobuf_queue *q, unsigned int *count, unsigned int *size) | 166 | buffer_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 | ||
| 182 | static void buffer_queue(struct videobuf_queue *q, struct videobuf_buffer *vb) | 180 | static 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, | |||
| 1082 | static int | 1081 | static int |
| 1083 | buffer_setup(struct videobuf_queue *q, unsigned int *count, unsigned int *size) | 1082 | buffer_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 | ||
| 1095 | static void buffer_queue(struct videobuf_queue *q, struct videobuf_buffer *vb) | 1093 | static 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 | ||
| 1103 | static void buffer_release(struct videobuf_queue *q, struct videobuf_buffer *vb) | 1101 | static 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; | ||
