From 8fb12ce2ec9d569e1b3051f01cee13ff27e29466 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Thu, 20 Feb 2020 09:14:13 +0100 Subject: [PATCH] media: usbvision: deprecate driver The driver is deprecated and scheduled for removal by the end of 2020. The reason is that this driver is for old and obsolete hardware, and it produces a continuous stream of syzbot errors due to poor code. In order to prevent removal the following actions would have to be taken: - clean up the code - convert to the vb2 framework - fix the disconnect and free-on-last-user handling (i.e., add a release callback for struct v4l2_device and rework the code to use that correctly). Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab --- MAINTAINERS | 2 +- drivers/media/usb/Kconfig | 1 - drivers/media/usb/Makefile | 1 - drivers/staging/media/Kconfig | 4 ++++ drivers/staging/media/Makefile | 1 + .../{media/usb => staging/media}/usbvision/Kconfig | 7 ++++++- .../{media/usb => staging/media}/usbvision/Makefile | 0 drivers/staging/media/usbvision/TODO | 11 +++++++++++ .../usb => staging/media}/usbvision/usbvision-cards.c | 0 .../usb => staging/media}/usbvision/usbvision-cards.h | 0 .../usb => staging/media}/usbvision/usbvision-core.c | 0 .../usb => staging/media}/usbvision/usbvision-i2c.c | 0 .../usb => staging/media}/usbvision/usbvision-video.c | 0 .../usb => staging/media}/usbvision/usbvision.h | 0 14 files changed, 23 insertions(+), 4 deletions(-) rename drivers/{media/usb => staging/media}/usbvision/Kconfig (57%) rename drivers/{media/usb => staging/media}/usbvision/Makefile (100%) create mode 100644 drivers/staging/media/usbvision/TODO rename drivers/{media/usb => staging/media}/usbvision/usbvision-cards.c (100%) rename drivers/{media/usb => staging/media}/usbvision/usbvision-cards.h (100%) rename drivers/{media/usb => staging/media}/usbvision/usbvision-core.c (100%) rename drivers/{media/usb => staging/media}/usbvision/usbvision-i2c.c (100%) rename drivers/{media/usb => staging/media}/usbvision/usbvision-video.c (100%) rename drivers/{media/usb => staging/media}/usbvision/usbvision.h (100%) diff --git a/MAINTAINERS b/MAINTAINERS index 1af972944e4c..6f7ccf628e07 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -17454,7 +17454,7 @@ L: linux-media@vger.kernel.org T: git git://linuxtv.org/media_tree.git W: https://linuxtv.org S: Odd Fixes -F: drivers/media/usb/usbvision/ +F: drivers/staging/media/usbvision/ USB WEBCAM GADGET M: Laurent Pinchart diff --git a/drivers/media/usb/Kconfig b/drivers/media/usb/Kconfig index 03c2944f6273..e678d3d11467 100644 --- a/drivers/media/usb/Kconfig +++ b/drivers/media/usb/Kconfig @@ -25,7 +25,6 @@ if MEDIA_ANALOG_TV_SUPPORT comment "Analog TV USB devices" source "drivers/media/usb/pvrusb2/Kconfig" source "drivers/media/usb/hdpvr/Kconfig" -source "drivers/media/usb/usbvision/Kconfig" source "drivers/media/usb/stk1160/Kconfig" source "drivers/media/usb/go7007/Kconfig" endif diff --git a/drivers/media/usb/Makefile b/drivers/media/usb/Makefile index 21e46b10caa5..169aa07c97bd 100644 --- a/drivers/media/usb/Makefile +++ b/drivers/media/usb/Makefile @@ -17,7 +17,6 @@ obj-$(CONFIG_VIDEO_CPIA2) += cpia2/ obj-$(CONFIG_VIDEO_AU0828) += au0828/ obj-$(CONFIG_VIDEO_HDPVR) += hdpvr/ obj-$(CONFIG_VIDEO_PVRUSB2) += pvrusb2/ -obj-$(CONFIG_VIDEO_USBVISION) += usbvision/ obj-$(CONFIG_VIDEO_STK1160) += stk1160/ obj-$(CONFIG_VIDEO_CX231XX) += cx231xx/ obj-$(CONFIG_VIDEO_TM6000) += tm6000/ diff --git a/drivers/staging/media/Kconfig b/drivers/staging/media/Kconfig index c394abffea86..e59a846bc909 100644 --- a/drivers/staging/media/Kconfig +++ b/drivers/staging/media/Kconfig @@ -42,4 +42,8 @@ source "drivers/staging/media/phy-rockchip-dphy-rx0/Kconfig" source "drivers/staging/media/rkisp1/Kconfig" +if MEDIA_ANALOG_TV_SUPPORT +source "drivers/staging/media/usbvision/Kconfig" +endif + endif diff --git a/drivers/staging/media/Makefile b/drivers/staging/media/Makefile index ea9fce8014bb..23c682461b62 100644 --- a/drivers/staging/media/Makefile +++ b/drivers/staging/media/Makefile @@ -10,3 +10,4 @@ obj-$(CONFIG_VIDEO_IPU3_IMGU) += ipu3/ obj-$(CONFIG_SOC_CAMERA) += soc_camera/ obj-$(CONFIG_PHY_ROCKCHIP_DPHY_RX0) += phy-rockchip-dphy-rx0/ obj-$(CONFIG_VIDEO_ROCKCHIP_ISP1) += rkisp1/ +obj-$(CONFIG_VIDEO_USBVISION) += usbvision/ diff --git a/drivers/media/usb/usbvision/Kconfig b/drivers/staging/media/usbvision/Kconfig similarity index 57% rename from drivers/media/usb/usbvision/Kconfig rename to drivers/staging/media/usbvision/Kconfig index e1039fdfb0ea..7903f558494e 100644 --- a/drivers/media/usb/usbvision/Kconfig +++ b/drivers/staging/media/usbvision/Kconfig @@ -1,6 +1,6 @@ # SPDX-License-Identifier: GPL-2.0-only config VIDEO_USBVISION - tristate "USB video devices based on Nogatech NT1003/1004/1005" + tristate "USB video devices based on Nogatech NT1003/1004/1005 (Deprecated)" depends on I2C && VIDEO_V4L2 select VIDEO_TUNER select VIDEO_SAA711X if MEDIA_SUBDRV_AUTOSELECT @@ -9,5 +9,10 @@ config VIDEO_USBVISION NT1003/1004/1005 USB Bridges. This driver enables using those devices. + This driver is deprecated and scheduled for removal by the + end of 2020. See the TODO file in drivers/staging/media/usbvision + for a list of actions that have to be done in order to prevent + removal of this driver. + To compile this driver as a module, choose M here: the module will be called usbvision. diff --git a/drivers/media/usb/usbvision/Makefile b/drivers/staging/media/usbvision/Makefile similarity index 100% rename from drivers/media/usb/usbvision/Makefile rename to drivers/staging/media/usbvision/Makefile diff --git a/drivers/staging/media/usbvision/TODO b/drivers/staging/media/usbvision/TODO new file mode 100644 index 000000000000..e9fb4d125581 --- /dev/null +++ b/drivers/staging/media/usbvision/TODO @@ -0,0 +1,11 @@ +The driver is deprecated and scheduled for removal by the end +of 2020. + +In order to prevent removal the following actions would have to +be taken: + +- clean up the code +- convert to the vb2 framework +- fix the disconnect and free-on-last-user handling (i.e., add + a release callback for struct v4l2_device and rework the code + to use that correctly). diff --git a/drivers/media/usb/usbvision/usbvision-cards.c b/drivers/staging/media/usbvision/usbvision-cards.c similarity index 100% rename from drivers/media/usb/usbvision/usbvision-cards.c rename to drivers/staging/media/usbvision/usbvision-cards.c diff --git a/drivers/media/usb/usbvision/usbvision-cards.h b/drivers/staging/media/usbvision/usbvision-cards.h similarity index 100% rename from drivers/media/usb/usbvision/usbvision-cards.h rename to drivers/staging/media/usbvision/usbvision-cards.h diff --git a/drivers/media/usb/usbvision/usbvision-core.c b/drivers/staging/media/usbvision/usbvision-core.c similarity index 100% rename from drivers/media/usb/usbvision/usbvision-core.c rename to drivers/staging/media/usbvision/usbvision-core.c diff --git a/drivers/media/usb/usbvision/usbvision-i2c.c b/drivers/staging/media/usbvision/usbvision-i2c.c similarity index 100% rename from drivers/media/usb/usbvision/usbvision-i2c.c rename to drivers/staging/media/usbvision/usbvision-i2c.c diff --git a/drivers/media/usb/usbvision/usbvision-video.c b/drivers/staging/media/usbvision/usbvision-video.c similarity index 100% rename from drivers/media/usb/usbvision/usbvision-video.c rename to drivers/staging/media/usbvision/usbvision-video.c diff --git a/drivers/media/usb/usbvision/usbvision.h b/drivers/staging/media/usbvision/usbvision.h similarity index 100% rename from drivers/media/usb/usbvision/usbvision.h rename to drivers/staging/media/usbvision/usbvision.h -- 2.20.1