.. | .. |
---|
600 | 600 | { |
---|
601 | 601 | struct usbtv *dev = video_drvdata(file); |
---|
602 | 602 | |
---|
603 | | - strlcpy(cap->driver, "usbtv", sizeof(cap->driver)); |
---|
604 | | - strlcpy(cap->card, "usbtv", sizeof(cap->card)); |
---|
| 603 | + strscpy(cap->driver, "usbtv", sizeof(cap->driver)); |
---|
| 604 | + strscpy(cap->card, "usbtv", sizeof(cap->card)); |
---|
605 | 605 | usb_make_path(dev->udev, cap->bus_info, sizeof(cap->bus_info)); |
---|
606 | | - cap->device_caps = V4L2_CAP_VIDEO_CAPTURE; |
---|
607 | | - cap->device_caps |= V4L2_CAP_READWRITE | V4L2_CAP_STREAMING; |
---|
608 | | - cap->capabilities = cap->device_caps | V4L2_CAP_DEVICE_CAPS; |
---|
609 | 606 | return 0; |
---|
610 | 607 | } |
---|
611 | 608 | |
---|
.. | .. |
---|
616 | 613 | |
---|
617 | 614 | switch (i->index) { |
---|
618 | 615 | case USBTV_COMPOSITE_INPUT: |
---|
619 | | - strlcpy(i->name, "Composite", sizeof(i->name)); |
---|
| 616 | + strscpy(i->name, "Composite", sizeof(i->name)); |
---|
620 | 617 | break; |
---|
621 | 618 | case USBTV_SVIDEO_INPUT: |
---|
622 | | - strlcpy(i->name, "S-Video", sizeof(i->name)); |
---|
| 619 | + strscpy(i->name, "S-Video", sizeof(i->name)); |
---|
623 | 620 | break; |
---|
624 | 621 | default: |
---|
625 | 622 | return -EINVAL; |
---|
.. | .. |
---|
636 | 633 | if (f->index > 0) |
---|
637 | 634 | return -EINVAL; |
---|
638 | 635 | |
---|
639 | | - strlcpy(f->description, "16 bpp YUY2, 4:2:2, packed", |
---|
640 | | - sizeof(f->description)); |
---|
641 | 636 | f->pixelformat = V4L2_PIX_FMT_YUYV; |
---|
642 | 637 | return 0; |
---|
643 | 638 | } |
---|
.. | .. |
---|
877 | 872 | |
---|
878 | 873 | v4l2_device_unregister(&usbtv->v4l2_dev); |
---|
879 | 874 | v4l2_ctrl_handler_free(&usbtv->ctrl); |
---|
880 | | - vb2_queue_release(&usbtv->vb2q); |
---|
881 | 875 | kfree(usbtv); |
---|
882 | 876 | } |
---|
883 | 877 | |
---|
.. | .. |
---|
935 | 929 | } |
---|
936 | 930 | |
---|
937 | 931 | /* Video structure */ |
---|
938 | | - strlcpy(usbtv->vdev.name, "usbtv", sizeof(usbtv->vdev.name)); |
---|
| 932 | + strscpy(usbtv->vdev.name, "usbtv", sizeof(usbtv->vdev.name)); |
---|
939 | 933 | usbtv->vdev.v4l2_dev = &usbtv->v4l2_dev; |
---|
940 | 934 | usbtv->vdev.release = video_device_release_empty; |
---|
941 | 935 | usbtv->vdev.fops = &usbtv_fops; |
---|
.. | .. |
---|
943 | 937 | usbtv->vdev.tvnorms = USBTV_TV_STD; |
---|
944 | 938 | usbtv->vdev.queue = &usbtv->vb2q; |
---|
945 | 939 | usbtv->vdev.lock = &usbtv->v4l2_lock; |
---|
| 940 | + usbtv->vdev.device_caps = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_READWRITE | |
---|
| 941 | + V4L2_CAP_STREAMING; |
---|
946 | 942 | video_set_drvdata(&usbtv->vdev, usbtv); |
---|
947 | | - ret = video_register_device(&usbtv->vdev, VFL_TYPE_GRABBER, -1); |
---|
| 943 | + ret = video_register_device(&usbtv->vdev, VFL_TYPE_VIDEO, -1); |
---|
948 | 944 | if (ret < 0) { |
---|
949 | 945 | dev_warn(usbtv->dev, "Could not register video device\n"); |
---|
950 | 946 | goto vdev_fail; |
---|
.. | .. |
---|
957 | 953 | v4l2_fail: |
---|
958 | 954 | ctrl_fail: |
---|
959 | 955 | v4l2_ctrl_handler_free(&usbtv->ctrl); |
---|
960 | | - vb2_queue_release(&usbtv->vb2q); |
---|
961 | 956 | |
---|
962 | 957 | return ret; |
---|
963 | 958 | } |
---|
.. | .. |
---|
968 | 963 | mutex_lock(&usbtv->v4l2_lock); |
---|
969 | 964 | |
---|
970 | 965 | usbtv_stop(usbtv); |
---|
971 | | - video_unregister_device(&usbtv->vdev); |
---|
| 966 | + vb2_video_unregister_device(&usbtv->vdev); |
---|
972 | 967 | v4l2_device_disconnect(&usbtv->v4l2_dev); |
---|
973 | 968 | |
---|
974 | 969 | mutex_unlock(&usbtv->v4l2_lock); |
---|