hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/drivers/media/pci/saa7134/saa7134-empress.c
....@@ -1,16 +1,7 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 *
34 * (c) 2004 Gerd Knorr <kraxel@bytesex.org> [SuSE Labs]
4
- *
5
- * This program is free software; you can redistribute it and/or modify
6
- * it under the terms of the GNU General Public License as published by
7
- * the Free Software Foundation; either version 2 of the License, or
8
- * (at your option) any later version.
9
- *
10
- * This program is distributed in the hope that it will be useful,
11
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- * GNU General Public License for more details.
145 */
156
167 #include "saa7134.h"
....@@ -100,9 +91,7 @@
10091 if (f->index != 0)
10192 return -EINVAL;
10293
103
- strlcpy(f->description, "MPEG TS", sizeof(f->description));
10494 f->pixelformat = V4L2_PIX_FMT_MPEG;
105
- f->flags = V4L2_FMT_FLAG_COMPRESSED;
10695 return 0;
10796 }
10897
....@@ -265,9 +254,9 @@
265254 "%s empress (%s)", dev->name,
266255 saa7134_boards[dev->board].name);
267256 v4l2_ctrl_handler_init(hdl, 21);
268
- v4l2_ctrl_add_handler(hdl, &dev->ctrl_handler, empress_ctrl_filter);
257
+ v4l2_ctrl_add_handler(hdl, &dev->ctrl_handler, empress_ctrl_filter, false);
269258 if (dev->empress_sd)
270
- v4l2_ctrl_add_handler(hdl, dev->empress_sd->ctrl_handler, NULL);
259
+ v4l2_ctrl_add_handler(hdl, dev->empress_sd->ctrl_handler, NULL, true);
271260 if (hdl->error) {
272261 video_device_release(dev->empress_dev);
273262 return hdl->error;
....@@ -299,9 +288,13 @@
299288 return err;
300289 }
301290 dev->empress_dev->queue = q;
291
+ dev->empress_dev->device_caps = V4L2_CAP_READWRITE | V4L2_CAP_STREAMING |
292
+ V4L2_CAP_VIDEO_CAPTURE;
293
+ if (dev->tuner_type != TUNER_ABSENT && dev->tuner_type != UNSET)
294
+ dev->empress_dev->device_caps |= V4L2_CAP_TUNER;
302295
303296 video_set_drvdata(dev->empress_dev, dev);
304
- err = video_register_device(dev->empress_dev,VFL_TYPE_GRABBER,
297
+ err = video_register_device(dev->empress_dev,VFL_TYPE_VIDEO,
305298 empress_nr[dev->nr]);
306299 if (err < 0) {
307300 pr_info("%s: can't register video device\n",
....@@ -324,8 +317,7 @@
324317 if (NULL == dev->empress_dev)
325318 return 0;
326319 flush_work(&dev->empress_workqueue);
327
- video_unregister_device(dev->empress_dev);
328
- vb2_queue_release(&dev->empress_vbq);
320
+ vb2_video_unregister_device(dev->empress_dev);
329321 v4l2_ctrl_handler_free(&dev->empress_ctrl_handler);
330322 dev->empress_dev = NULL;
331323 return 0;