Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

media: media/test-drivers: use vb2_video_unregister_device()

Use vb2_video_unregister_device() to automatically stop streaming
at unregister time.

This avoids the use of vb2_queue_release() which should not be
called by drivers that set vdev->queue.

Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>

authored by

Hans Verkuil and committed by
Mauro Carvalho Chehab
bda24f43 24b5836d

+18 -21
+2 -5
drivers/media/test-drivers/vimc/vimc-capture.c
··· 351 351 struct vimc_cap_device *vcap = 352 352 container_of(ved, struct vimc_cap_device, ved); 353 353 354 - vb2_queue_release(&vcap->queue); 355 - video_unregister_device(&vcap->vdev); 354 + vb2_video_unregister_device(&vcap->vdev); 356 355 } 357 356 358 357 static void *vimc_cap_process_frame(struct vimc_ent_device *ved, ··· 476 477 if (ret) { 477 478 dev_err(vimc->mdev.dev, "%s: video register failed (err=%d)\n", 478 479 vcap->vdev.name, ret); 479 - goto err_release_queue; 480 + goto err_clean_m_ent; 480 481 } 481 482 482 483 return &vcap->ved; 483 484 484 - err_release_queue: 485 - vb2_queue_release(q); 486 485 err_clean_m_ent: 487 486 media_entity_cleanup(&vcap->vdev.entity); 488 487 err_free_vcap:
+16 -16
drivers/media/test-drivers/vivid/vivid-core.c
··· 1827 1827 return 0; 1828 1828 1829 1829 unreg_dev: 1830 - video_unregister_device(&dev->touch_cap_dev); 1831 - video_unregister_device(&dev->meta_out_dev); 1832 - video_unregister_device(&dev->meta_cap_dev); 1830 + vb2_video_unregister_device(&dev->touch_cap_dev); 1831 + vb2_video_unregister_device(&dev->meta_out_dev); 1832 + vb2_video_unregister_device(&dev->meta_cap_dev); 1833 1833 video_unregister_device(&dev->radio_tx_dev); 1834 1834 video_unregister_device(&dev->radio_rx_dev); 1835 - video_unregister_device(&dev->sdr_cap_dev); 1836 - video_unregister_device(&dev->vbi_out_dev); 1837 - video_unregister_device(&dev->vbi_cap_dev); 1838 - video_unregister_device(&dev->vid_out_dev); 1839 - video_unregister_device(&dev->vid_cap_dev); 1835 + vb2_video_unregister_device(&dev->sdr_cap_dev); 1836 + vb2_video_unregister_device(&dev->vbi_out_dev); 1837 + vb2_video_unregister_device(&dev->vbi_cap_dev); 1838 + vb2_video_unregister_device(&dev->vid_out_dev); 1839 + vb2_video_unregister_device(&dev->vid_cap_dev); 1840 1840 cec_unregister_adapter(dev->cec_rx_adap); 1841 1841 for (i = 0; i < MAX_OUTPUTS; i++) 1842 1842 cec_unregister_adapter(dev->cec_tx_adap[i]); ··· 1907 1907 if (dev->has_vid_cap) { 1908 1908 v4l2_info(&dev->v4l2_dev, "unregistering %s\n", 1909 1909 video_device_node_name(&dev->vid_cap_dev)); 1910 - video_unregister_device(&dev->vid_cap_dev); 1910 + vb2_video_unregister_device(&dev->vid_cap_dev); 1911 1911 } 1912 1912 if (dev->has_vid_out) { 1913 1913 v4l2_info(&dev->v4l2_dev, "unregistering %s\n", 1914 1914 video_device_node_name(&dev->vid_out_dev)); 1915 - video_unregister_device(&dev->vid_out_dev); 1915 + vb2_video_unregister_device(&dev->vid_out_dev); 1916 1916 } 1917 1917 if (dev->has_vbi_cap) { 1918 1918 v4l2_info(&dev->v4l2_dev, "unregistering %s\n", 1919 1919 video_device_node_name(&dev->vbi_cap_dev)); 1920 - video_unregister_device(&dev->vbi_cap_dev); 1920 + vb2_video_unregister_device(&dev->vbi_cap_dev); 1921 1921 } 1922 1922 if (dev->has_vbi_out) { 1923 1923 v4l2_info(&dev->v4l2_dev, "unregistering %s\n", 1924 1924 video_device_node_name(&dev->vbi_out_dev)); 1925 - video_unregister_device(&dev->vbi_out_dev); 1925 + vb2_video_unregister_device(&dev->vbi_out_dev); 1926 1926 } 1927 1927 if (dev->has_sdr_cap) { 1928 1928 v4l2_info(&dev->v4l2_dev, "unregistering %s\n", 1929 1929 video_device_node_name(&dev->sdr_cap_dev)); 1930 - video_unregister_device(&dev->sdr_cap_dev); 1930 + vb2_video_unregister_device(&dev->sdr_cap_dev); 1931 1931 } 1932 1932 if (dev->has_radio_rx) { 1933 1933 v4l2_info(&dev->v4l2_dev, "unregistering %s\n", ··· 1948 1948 if (dev->has_meta_cap) { 1949 1949 v4l2_info(&dev->v4l2_dev, "unregistering %s\n", 1950 1950 video_device_node_name(&dev->meta_cap_dev)); 1951 - video_unregister_device(&dev->meta_cap_dev); 1951 + vb2_video_unregister_device(&dev->meta_cap_dev); 1952 1952 } 1953 1953 if (dev->has_meta_out) { 1954 1954 v4l2_info(&dev->v4l2_dev, "unregistering %s\n", 1955 1955 video_device_node_name(&dev->meta_out_dev)); 1956 - video_unregister_device(&dev->meta_out_dev); 1956 + vb2_video_unregister_device(&dev->meta_out_dev); 1957 1957 } 1958 1958 if (dev->has_touch_cap) { 1959 1959 v4l2_info(&dev->v4l2_dev, "unregistering %s\n", 1960 1960 video_device_node_name(&dev->touch_cap_dev)); 1961 - video_unregister_device(&dev->touch_cap_dev); 1961 + vb2_video_unregister_device(&dev->touch_cap_dev); 1962 1962 } 1963 1963 cec_unregister_adapter(dev->cec_rx_adap); 1964 1964 for (j = 0; j < MAX_OUTPUTS; j++)