| .. | .. |
|---|
| 51 | 51 | .write = ivtv_v4l2_write, |
|---|
| 52 | 52 | .open = ivtv_v4l2_open, |
|---|
| 53 | 53 | .unlocked_ioctl = video_ioctl2, |
|---|
| 54 | +#ifdef CONFIG_COMPAT |
|---|
| 55 | + .compat_ioctl32 = video_ioctl2, /* for ivtv_default() */ |
|---|
| 56 | +#endif |
|---|
| 54 | 57 | .release = ivtv_v4l2_close, |
|---|
| 55 | 58 | .poll = ivtv_v4l2_enc_poll, |
|---|
| 56 | 59 | }; |
|---|
| .. | .. |
|---|
| 61 | 64 | .write = ivtv_v4l2_write, |
|---|
| 62 | 65 | .open = ivtv_v4l2_open, |
|---|
| 63 | 66 | .unlocked_ioctl = video_ioctl2, |
|---|
| 67 | +#ifdef CONFIG_COMPAT |
|---|
| 68 | + .compat_ioctl32 = video_ioctl2, /* for ivtv_default() */ |
|---|
| 69 | +#endif |
|---|
| 64 | 70 | .release = ivtv_v4l2_close, |
|---|
| 65 | 71 | .poll = ivtv_v4l2_dec_poll, |
|---|
| 66 | 72 | }; |
|---|
| .. | .. |
|---|
| 69 | 75 | .owner = THIS_MODULE, |
|---|
| 70 | 76 | .open = ivtv_v4l2_open, |
|---|
| 71 | 77 | .unlocked_ioctl = video_ioctl2, |
|---|
| 78 | +#ifdef CONFIG_COMPAT |
|---|
| 79 | + .compat_ioctl32 = video_ioctl2, /* for ivtv_default() */ |
|---|
| 80 | +#endif |
|---|
| 72 | 81 | .release = ivtv_v4l2_close, |
|---|
| 73 | 82 | .poll = ivtv_v4l2_enc_poll, |
|---|
| 74 | 83 | }; |
|---|
| .. | .. |
|---|
| 90 | 99 | } ivtv_stream_info[] = { |
|---|
| 91 | 100 | { /* IVTV_ENC_STREAM_TYPE_MPG */ |
|---|
| 92 | 101 | "encoder MPG", |
|---|
| 93 | | - VFL_TYPE_GRABBER, 0, |
|---|
| 102 | + VFL_TYPE_VIDEO, 0, |
|---|
| 94 | 103 | PCI_DMA_FROMDEVICE, 0, |
|---|
| 95 | 104 | V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_TUNER | |
|---|
| 96 | 105 | V4L2_CAP_AUDIO | V4L2_CAP_READWRITE, |
|---|
| .. | .. |
|---|
| 98 | 107 | }, |
|---|
| 99 | 108 | { /* IVTV_ENC_STREAM_TYPE_YUV */ |
|---|
| 100 | 109 | "encoder YUV", |
|---|
| 101 | | - VFL_TYPE_GRABBER, IVTV_V4L2_ENC_YUV_OFFSET, |
|---|
| 110 | + VFL_TYPE_VIDEO, IVTV_V4L2_ENC_YUV_OFFSET, |
|---|
| 102 | 111 | PCI_DMA_FROMDEVICE, 0, |
|---|
| 103 | 112 | V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_TUNER | |
|---|
| 104 | 113 | V4L2_CAP_AUDIO | V4L2_CAP_READWRITE, |
|---|
| .. | .. |
|---|
| 114 | 123 | }, |
|---|
| 115 | 124 | { /* IVTV_ENC_STREAM_TYPE_PCM */ |
|---|
| 116 | 125 | "encoder PCM", |
|---|
| 117 | | - VFL_TYPE_GRABBER, IVTV_V4L2_ENC_PCM_OFFSET, |
|---|
| 126 | + VFL_TYPE_VIDEO, IVTV_V4L2_ENC_PCM_OFFSET, |
|---|
| 118 | 127 | PCI_DMA_FROMDEVICE, 0, |
|---|
| 119 | 128 | V4L2_CAP_TUNER | V4L2_CAP_AUDIO | V4L2_CAP_READWRITE, |
|---|
| 120 | 129 | &ivtv_v4l2_enc_fops |
|---|
| .. | .. |
|---|
| 128 | 137 | }, |
|---|
| 129 | 138 | { /* IVTV_DEC_STREAM_TYPE_MPG */ |
|---|
| 130 | 139 | "decoder MPG", |
|---|
| 131 | | - VFL_TYPE_GRABBER, IVTV_V4L2_DEC_MPG_OFFSET, |
|---|
| 140 | + VFL_TYPE_VIDEO, IVTV_V4L2_DEC_MPG_OFFSET, |
|---|
| 132 | 141 | PCI_DMA_TODEVICE, 0, |
|---|
| 133 | | - V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_AUDIO | V4L2_CAP_READWRITE | |
|---|
| 134 | | - V4L2_CAP_VIDEO_OUTPUT_OVERLAY, |
|---|
| 142 | + V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_AUDIO | V4L2_CAP_READWRITE, |
|---|
| 135 | 143 | &ivtv_v4l2_dec_fops |
|---|
| 136 | 144 | }, |
|---|
| 137 | 145 | { /* IVTV_DEC_STREAM_TYPE_VBI */ |
|---|
| .. | .. |
|---|
| 150 | 158 | }, |
|---|
| 151 | 159 | { /* IVTV_DEC_STREAM_TYPE_YUV */ |
|---|
| 152 | 160 | "decoder YUV", |
|---|
| 153 | | - VFL_TYPE_GRABBER, IVTV_V4L2_DEC_YUV_OFFSET, |
|---|
| 161 | + VFL_TYPE_VIDEO, IVTV_V4L2_DEC_YUV_OFFSET, |
|---|
| 154 | 162 | PCI_DMA_TODEVICE, 0, |
|---|
| 155 | | - V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_AUDIO | V4L2_CAP_READWRITE | |
|---|
| 156 | | - V4L2_CAP_VIDEO_OUTPUT_OVERLAY, |
|---|
| 163 | + V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_AUDIO | V4L2_CAP_READWRITE, |
|---|
| 157 | 164 | &ivtv_v4l2_dec_fops |
|---|
| 158 | 165 | } |
|---|
| 159 | 166 | }; |
|---|
| .. | .. |
|---|
| 169 | 176 | s->itv = itv; |
|---|
| 170 | 177 | s->type = type; |
|---|
| 171 | 178 | s->name = ivtv_stream_info[type].name; |
|---|
| 172 | | - s->caps = ivtv_stream_info[type].v4l2_caps; |
|---|
| 179 | + s->vdev.device_caps = ivtv_stream_info[type].v4l2_caps; |
|---|
| 173 | 180 | |
|---|
| 174 | 181 | if (ivtv_stream_info[type].pio) |
|---|
| 175 | 182 | s->dma = PCI_DMA_NONE; |
|---|
| .. | .. |
|---|
| 292 | 299 | if (s_mpg->vdev.v4l2_dev) |
|---|
| 293 | 300 | num = s_mpg->vdev.num + ivtv_stream_info[type].num_offset; |
|---|
| 294 | 301 | } |
|---|
| 302 | + if (itv->osd_video_pbase && (type == IVTV_DEC_STREAM_TYPE_YUV || |
|---|
| 303 | + type == IVTV_DEC_STREAM_TYPE_MPG)) { |
|---|
| 304 | + s->vdev.device_caps |= V4L2_CAP_VIDEO_OUTPUT_OVERLAY; |
|---|
| 305 | + itv->v4l2_cap |= V4L2_CAP_VIDEO_OUTPUT_OVERLAY; |
|---|
| 306 | + } |
|---|
| 295 | 307 | video_set_drvdata(&s->vdev, s); |
|---|
| 296 | 308 | |
|---|
| 297 | 309 | /* Register device. First try the desired minor, then any free one. */ |
|---|
| .. | .. |
|---|
| 303 | 315 | name = video_device_node_name(&s->vdev); |
|---|
| 304 | 316 | |
|---|
| 305 | 317 | switch (vfl_type) { |
|---|
| 306 | | - case VFL_TYPE_GRABBER: |
|---|
| 318 | + case VFL_TYPE_VIDEO: |
|---|
| 307 | 319 | IVTV_INFO("Registered device %s for %s (%d kB)\n", |
|---|
| 308 | 320 | name, s->name, itv->options.kilobytes[type]); |
|---|
| 309 | 321 | break; |
|---|