.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
---|
1 | 2 | /* |
---|
2 | 3 | * TW5864 driver - video encoding functions |
---|
3 | 4 | * |
---|
4 | 5 | * Copyright (C) 2016 Bluecherry, LLC <maintainers@bluecherrydvr.com> |
---|
5 | | - * |
---|
6 | | - * This program is free software; you can redistribute it and/or modify |
---|
7 | | - * it under the terms of the GNU General Public License as published by |
---|
8 | | - * the Free Software Foundation; either version 2 of the License, or |
---|
9 | | - * (at your option) any later version. |
---|
10 | | - * |
---|
11 | | - * This program is distributed in the hope that it will be useful, |
---|
12 | | - * but WITHOUT ANY WARRANTY; without even the implied warranty of |
---|
13 | | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
---|
14 | | - * GNU General Public License for more details. |
---|
15 | 6 | */ |
---|
16 | 7 | |
---|
17 | 8 | #include <linux/module.h> |
---|
.. | .. |
---|
184 | 175 | static v4l2_std_id tw5864_get_v4l2_std(enum tw5864_vid_std std); |
---|
185 | 176 | static enum tw5864_vid_std tw5864_from_v4l2_std(v4l2_std_id v4l2_std); |
---|
186 | 177 | |
---|
187 | | -static void tw5864_handle_frame_task(unsigned long data); |
---|
| 178 | +static void tw5864_handle_frame_task(struct tasklet_struct *t); |
---|
188 | 179 | static void tw5864_handle_frame(struct tw5864_h264_frame *frame); |
---|
189 | 180 | static void tw5864_frame_interval_set(struct tw5864_input *input); |
---|
190 | 181 | |
---|
.. | .. |
---|
610 | 601 | { |
---|
611 | 602 | struct tw5864_input *input = video_drvdata(file); |
---|
612 | 603 | |
---|
613 | | - strcpy(cap->driver, "tw5864"); |
---|
| 604 | + strscpy(cap->driver, "tw5864", sizeof(cap->driver)); |
---|
614 | 605 | snprintf(cap->card, sizeof(cap->card), "TW5864 Encoder %d", |
---|
615 | 606 | input->nr); |
---|
616 | 607 | sprintf(cap->bus_info, "PCI:%s", pci_name(input->root->pci)); |
---|
.. | .. |
---|
1072 | 1063 | dev->irqmask |= TW5864_INTR_VLC_DONE | TW5864_INTR_TIMER; |
---|
1073 | 1064 | tw5864_irqmask_apply(dev); |
---|
1074 | 1065 | |
---|
1075 | | - tasklet_init(&dev->tasklet, tw5864_handle_frame_task, |
---|
1076 | | - (unsigned long)dev); |
---|
| 1066 | + tasklet_setup(&dev->tasklet, tw5864_handle_frame_task); |
---|
1077 | 1067 | |
---|
1078 | 1068 | for (i = 0; i < TW5864_INPUTS; i++) { |
---|
1079 | 1069 | dev->inputs[i].root = dev; |
---|
.. | .. |
---|
1171 | 1161 | input->gop = GOP_SIZE; |
---|
1172 | 1162 | input->frame_interval = 1; |
---|
1173 | 1163 | |
---|
1174 | | - ret = video_register_device(&input->vdev, VFL_TYPE_GRABBER, video_nr); |
---|
| 1164 | + ret = video_register_device(&input->vdev, VFL_TYPE_VIDEO, video_nr); |
---|
1175 | 1165 | if (ret) |
---|
1176 | 1166 | goto free_v4l2_hdl; |
---|
1177 | 1167 | |
---|
.. | .. |
---|
1193 | 1183 | |
---|
1194 | 1184 | free_v4l2_hdl: |
---|
1195 | 1185 | v4l2_ctrl_handler_free(hdl); |
---|
1196 | | - vb2_queue_release(&input->vidq); |
---|
1197 | 1186 | free_mutex: |
---|
1198 | 1187 | mutex_destroy(&input->lock); |
---|
1199 | 1188 | |
---|
.. | .. |
---|
1202 | 1191 | |
---|
1203 | 1192 | static void tw5864_video_input_fini(struct tw5864_input *dev) |
---|
1204 | 1193 | { |
---|
1205 | | - video_unregister_device(&dev->vdev); |
---|
| 1194 | + vb2_video_unregister_device(&dev->vdev); |
---|
1206 | 1195 | v4l2_ctrl_handler_free(&dev->hdl); |
---|
1207 | | - vb2_queue_release(&dev->vidq); |
---|
1208 | 1196 | } |
---|
1209 | 1197 | |
---|
1210 | 1198 | void tw5864_video_fini(struct tw5864_dev *dev) |
---|
.. | .. |
---|
1328 | 1316 | return detected; |
---|
1329 | 1317 | } |
---|
1330 | 1318 | |
---|
1331 | | -static void tw5864_handle_frame_task(unsigned long data) |
---|
| 1319 | +static void tw5864_handle_frame_task(struct tasklet_struct *t) |
---|
1332 | 1320 | { |
---|
1333 | | - struct tw5864_dev *dev = (struct tw5864_dev *)data; |
---|
| 1321 | + struct tw5864_dev *dev = from_tasklet(dev, t, tasklet); |
---|
1334 | 1322 | unsigned long flags; |
---|
1335 | 1323 | int batch_size = H264_BUF_CNT; |
---|
1336 | 1324 | |
---|