Move av7110 driver to staging
Subsystems (2)
v2 cover Move av7110 driver to staging
This driver was written for a hardware manufactured by TI from a design made by Convergence. Such hardware supports only MPEG2, which doesn't fit most of the current DVB transmissions.
It stopped being manufactured more than a decade ago.
Also, recent checks identified that a frontend used by such driver was broken for sometime without nobody noticing it.
It means that it is time to retire it for good.
This series move both av7110 and sp8870 frontend drivers (which is used only by av7110) to staging, while keeping the remaining ttpci support upstream.
It also moves ttpci-eeprom to a common place, as it is used by both a PCI and an USB driver.
---
v2:
- Fix a typo at the TODO file;
- Add a note at TODO that cleanup patches won't be accepted;
- Changed the description of the second patch.
Mauro Carvalho Chehab (3):
media: move ttpci-eeprom to common
media: av7110: move driver to staging
media: sp8870: move it to staging
drivers/media/common/Kconfig | 4 +
drivers/media/common/Makefile | 1 +
.../{pci/ttpci => common}/ttpci-eeprom.c | 0
.../{pci/ttpci => common}/ttpci-eeprom.h | 0
drivers/media/dvb-frontends/Kconfig | 12 ---
drivers/media/dvb-frontends/Makefile | 1 -
drivers/media/pci/ttpci/Kconfig | 74 ---------------
drivers/media/pci/ttpci/Makefile | 11 +--
drivers/media/pci/ttpci/budget.h | 2 +-
drivers/media/usb/Kconfig | 5 -
drivers/media/usb/dvb-usb/Makefile | 2 +-
drivers/staging/media/Kconfig | 2 +
drivers/staging/media/Makefile | 1 +
drivers/staging/media/av7110/Kconfig | 94 +++++++++++++++++++
drivers/staging/media/av7110/Makefile | 22 +++++
drivers/staging/media/av7110/TODO | 3 +
.../ttpci => staging/media/av7110}/av7110.c | 0
.../ttpci => staging/media/av7110}/av7110.h | 0
.../media/av7110}/av7110_av.c | 0
.../media/av7110}/av7110_av.h | 0
.../media/av7110}/av7110_ca.c | 0
.../media/av7110}/av7110_ca.h | 0
.../media/av7110}/av7110_hw.c | 0
.../media/av7110}/av7110_hw.h | 0
.../media/av7110}/av7110_ipack.c | 0
.../media/av7110}/av7110_ipack.h | 0
.../media/av7110}/av7110_ir.c | 0
.../media/av7110}/av7110_v4l.c | 0
.../media/av7110}/budget-patch.c | 0
.../media/av7110}/dvb_filter.c | 0
.../media/av7110}/dvb_filter.h | 0
.../media/av7110}/sp8870.c | 0
.../media/av7110}/sp8870.h | 0
33 files changed, 130 insertions(+), 104 deletions(-)
rename drivers/media/{pci/ttpci => common}/ttpci-eeprom.c (100%)
rename drivers/media/{pci/ttpci => common}/ttpci-eeprom.h (100%)
create mode 100644 drivers/staging/media/av7110/Kconfig
create mode 100644 drivers/staging/media/av7110/Makefile
create mode 100644 drivers/staging/media/av7110/TODO
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110.h (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_av.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_av.h (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_ca.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_ca.h (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_hw.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_hw.h (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_ipack.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_ipack.h (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_ir.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_v4l.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/budget-patch.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/dvb_filter.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/dvb_filter.h (100%)
rename drivers/{media/dvb-frontends => staging/media/av7110}/sp8870.c (100%)
rename drivers/{media/dvb-frontends => staging/media/av7110}/sp8870.h (100%)Signature · 1 line
2.31.1
PATCH v2 1/3 media: move ttpci-eeprom to common
The ttpci-eeprom is actually an independent driver that doesn't depend on the stuff under drivers/media/pci/ttpci/.
Also, it is used by an USB driver (pctv452e).
So, move it to the common directory.
---
drivers/media/common/Kconfig | 4 ++++
drivers/media/common/Makefile | 1 +
drivers/media/{pci/ttpci => common}/ttpci-eeprom.c | 0
drivers/media/{pci/ttpci => common}/ttpci-eeprom.h | 0
drivers/media/pci/ttpci/Makefile | 2 +-
drivers/media/usb/Kconfig | 5 -----
drivers/media/usb/dvb-usb/Makefile | 2 +-
7 files changed, 7 insertions(+), 7 deletions(-)
rename drivers/media/{pci/ttpci => common}/ttpci-eeprom.c (100%)
rename drivers/media/{pci/ttpci => common}/ttpci-eeprom.h (100%)drivers/media/common/Kconfig +4 -0
@@ -13,6 +13,10 @@ config VIDEO_TVEEPROM tristate depends on I2C +config TTPCI_EEPROM + tristate + depends on I2C + config CYPRESS_FIRMWARE tristate depends on USB
drivers/media/common/Makefile +1 -0
@@ -3,3 +3,4 @@ obj-y += b2c2/ saa7146/ siano/ v4l2-tpg/ videobuf2/ obj-$(CONFIG_VIDEO_CX2341X) += cx2341x.o obj-$(CONFIG_VIDEO_TVEEPROM) += tveeprom.o obj-$(CONFIG_CYPRESS_FIRMWARE) += cypress_firmware.o +obj-$(CONFIG_TTPCI_EEPROM) += ttpci-eeprom.o
drivers/media/common/ttpci-eeprom.c renamed from drivers/media/pci/ttpci/ttpci-eeprom.c +0 -0
drivers/media/common/ttpci-eeprom.h renamed from drivers/media/pci/ttpci/ttpci-eeprom.h +0 -0
drivers/media/pci/ttpci/Makefile +1 -1
@@ -10,7 +10,6 @@ ifdef CONFIG_DVB_AV7110_IR dvb-ttpci-objs += av7110_ir.o endif -obj-$(CONFIG_TTPCI_EEPROM) += ttpci-eeprom.o obj-$(CONFIG_DVB_BUDGET_CORE) += budget-core.o obj-$(CONFIG_DVB_BUDGET) += budget.o obj-$(CONFIG_DVB_BUDGET_AV) += budget-av.o
@@ -20,3 +19,4 @@ obj-$(CONFIG_DVB_AV7110) += dvb-ttpci.o ccflags-y += -I $(srctree)/drivers/media/dvb-frontends/ ccflags-y += -I $(srctree)/drivers/media/tuners +ccflags-y += -I $(srctree)/drivers/media/common
drivers/media/usb/Kconfig +0 -5
@@ -1,10 +1,5 @@ # SPDX-License-Identifier: GPL-2.0-only -# This Kconfig option is also used by the legacy av7110 driver -config TTPCI_EEPROM - tristate - depends on I2C - if USB && MEDIA_SUPPORT menuconfig MEDIA_USB_SUPPORT
drivers/media/usb/dvb-usb/Makefile +1 -1
@@ -83,4 +83,4 @@ obj-$(CONFIG_DVB_USB_TECHNISAT_USB2) += dvb-usb-technisat-usb2.o ccflags-y += -I$(srctree)/drivers/media/dvb-frontends/ # due to tuner-xc3028 ccflags-y += -I$(srctree)/drivers/media/tuners -ccflags-y += -I$(srctree)/drivers/media/pci/ttpci +ccflags-y += -I$(srctree)/drivers/media/common
Signature · 1 line
2.31.1
PATCH v2 2/3 media: av7110: move driver to staging
In reply to Mauro Carvalho ChehabThis driver is really old, from devices that aren't manufactured anymore for more than a decade.
Also, the decoder supports only MPEG2, with is not compatible with several modern DVB streams.
It is also the only upstream driver relying on the DVB "full-featured" API.
Some changes at the frontend drivers seem to have broken it without anybody noticing.
Due to that, it sounds it is time to retire the driver for good.
---
drivers/media/pci/ttpci/Kconfig | 74 -------------------
drivers/media/pci/ttpci/Makefile | 9 ---
drivers/media/pci/ttpci/budget.h | 2 +-
drivers/staging/media/Kconfig | 2 +
drivers/staging/media/Makefile | 1 +
drivers/staging/media/av7110/Kconfig | 74 +++++++++++++++++++
drivers/staging/media/av7110/Makefile | 20 +++++
drivers/staging/media/av7110/TODO | 3 +
.../ttpci => staging/media/av7110}/av7110.c | 0
.../ttpci => staging/media/av7110}/av7110.h | 0
.../media/av7110}/av7110_av.c | 0
.../media/av7110}/av7110_av.h | 0
.../media/av7110}/av7110_ca.c | 0
.../media/av7110}/av7110_ca.h | 0
.../media/av7110}/av7110_hw.c | 0
.../media/av7110}/av7110_hw.h | 0
.../media/av7110}/av7110_ipack.c | 0
.../media/av7110}/av7110_ipack.h | 0
.../media/av7110}/av7110_ir.c | 0
.../media/av7110}/av7110_v4l.c | 0
.../media/av7110}/budget-patch.c | 0
.../media/av7110}/dvb_filter.c | 0
.../media/av7110}/dvb_filter.h | 0
23 files changed, 101 insertions(+), 84 deletions(-)
create mode 100644 drivers/staging/media/av7110/Kconfig
create mode 100644 drivers/staging/media/av7110/Makefile
create mode 100644 drivers/staging/media/av7110/TODO
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110.h (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_av.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_av.h (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_ca.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_ca.h (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_hw.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_hw.h (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_ipack.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_ipack.h (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_ir.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/av7110_v4l.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/budget-patch.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/dvb_filter.c (100%)
rename drivers/{media/pci/ttpci => staging/media/av7110}/dvb_filter.h (100%)drivers/media/pci/ttpci/Kconfig +0 -74
@@ -1,56 +1,4 @@ # SPDX-License-Identifier: GPL-2.0-only -config DVB_AV7110_IR - bool - depends on RC_CORE=y || RC_CORE = DVB_AV7110 - default DVB_AV7110 - -config DVB_AV7110 - tristate "AV7110 cards" - depends on DVB_CORE && PCI && I2C - select TTPCI_EEPROM - select VIDEO_SAA7146_VV - depends on VIDEO_DEV # dependencies of VIDEO_SAA7146_VV - select DVB_VES1820 if MEDIA_SUBDRV_AUTOSELECT - select DVB_VES1X93 if MEDIA_SUBDRV_AUTOSELECT - select DVB_STV0299 if MEDIA_SUBDRV_AUTOSELECT - select DVB_TDA8083 if MEDIA_SUBDRV_AUTOSELECT - select DVB_SP8870 if MEDIA_SUBDRV_AUTOSELECT - select DVB_STV0297 if MEDIA_SUBDRV_AUTOSELECT - select DVB_L64781 if MEDIA_SUBDRV_AUTOSELECT - select DVB_LNBP21 if MEDIA_SUBDRV_AUTOSELECT - help - Support for SAA7146 and AV7110 based DVB cards as produced - by Fujitsu-Siemens, Technotrend, Hauppauge and others. - - This driver only supports the fullfeatured cards with - onboard MPEG2 decoder. - - This driver needs an external firmware. Please use the script - "<kerneldir>/scripts/get_dvb_firmware av7110" to - download/extract it, and then copy it to /usr/lib/hotplug/firmware - or /lib/firmware (depending on configuration of firmware hotplug). - - Alternatively, you can download the file and use the kernel's - EXTRA_FIRMWARE configuration option to build it into your - kernel image by adding the filename to the EXTRA_FIRMWARE - configuration option string. - - Say Y if you own such a card and want to use it. - -config DVB_AV7110_OSD - bool "AV7110 OSD support" - depends on DVB_AV7110 - default y if DVB_AV7110=y || DVB_AV7110=m - help - The AV7110 firmware provides some code to generate an OnScreenDisplay - on the video output. This is kind of nonstandard and not guaranteed to - be maintained. - - Anyway, some popular DVB software like VDR uses this OSD to render - its menus, so say Y if you want to use this software. - - All other people say N. - config DVB_BUDGET_CORE tristate "SAA7146 DVB cards (aka Budget, Nova-PCI)" depends on DVB_CORE && PCI && I2C
@@ -136,25 +84,3 @@ config DVB_BUDGET_AV To compile this driver as a module, choose M here: the module will be called budget-av. - -config DVB_BUDGET_PATCH - tristate "AV7110 cards with Budget Patch" - depends on DVB_BUDGET_CORE && I2C - depends on DVB_AV7110 - select DVB_STV0299 if MEDIA_SUBDRV_AUTOSELECT - select DVB_VES1X93 if MEDIA_SUBDRV_AUTOSELECT - select DVB_TDA8083 if MEDIA_SUBDRV_AUTOSELECT - help - Support for Budget Patch (full TS) modification on - SAA7146+AV7110 based cards (DVB-S cards). This - driver doesn't use onboard MPEG2 decoder. The - card is driven in Budget-only mode. Card is - required to have loaded firmware to tune properly. - Firmware can be loaded by insertion and removal of - standard AV7110 driver prior to loading this - driver. - - Say Y if you own such a card and want to use it. - - To compile this driver as a module, choose M here: the - module will be called budget-patch.
drivers/media/pci/ttpci/Makefile +0 -9
@@ -1,21 +1,12 @@ # SPDX-License-Identifier: GPL-2.0 # # Makefile for the kernel SAA7146 FULL TS DVB device driver -# and the AV7110 DVB device driver # -dvb-ttpci-objs := av7110_hw.o av7110_v4l.o av7110_av.o av7110_ca.o av7110.o av7110_ipack.o dvb_filter.o - -ifdef CONFIG_DVB_AV7110_IR -dvb-ttpci-objs += av7110_ir.o -endif - obj-$(CONFIG_DVB_BUDGET_CORE) += budget-core.o obj-$(CONFIG_DVB_BUDGET) += budget.o obj-$(CONFIG_DVB_BUDGET_AV) += budget-av.o obj-$(CONFIG_DVB_BUDGET_CI) += budget-ci.o -obj-$(CONFIG_DVB_BUDGET_PATCH) += budget-patch.o -obj-$(CONFIG_DVB_AV7110) += dvb-ttpci.o ccflags-y += -I $(srctree)/drivers/media/dvb-frontends/ ccflags-y += -I $(srctree)/drivers/media/tuners
drivers/media/pci/ttpci/budget.h +1 -1
@@ -8,7 +8,6 @@#include <media/demux.h> #include <media/dvb_demux.h> #include <media/dmxdev.h> -#include "dvb_filter.h" #include <media/dvb_net.h> #include <linux/module.h>
@@ -28,6 +27,7 @@ extern int budget_debug; __func__, ##arg); \ } while (0) +#define TS_SIZE 188struct budget_info {char *name;
drivers/staging/media/Kconfig +2 -0
@@ -42,4 +42,6 @@ source "drivers/staging/media/tegra-video/Kconfig" source "drivers/staging/media/ipu3/Kconfig" +source "drivers/staging/media/av7110/Kconfig" + endif
drivers/staging/media/Makefile +1 -0
@@ -10,3 +10,4 @@ obj-$(CONFIG_TEGRA_VDE) += tegra-vde/ obj-$(CONFIG_VIDEO_HANTRO) += hantro/ obj-$(CONFIG_VIDEO_IPU3_IMGU) += ipu3/ obj-$(CONFIG_VIDEO_ZORAN) += zoran/ +obj-$(CONFIG_DVB_AV7110) += av7110/
drivers/staging/media/av7110/Kconfig new file +74 -0
74 lines not on this page · raw message
drivers/staging/media/av7110/Makefile new file +20 -0
@@ -0,0 +1,20 @@ +# SPDX-License-Identifier: GPL-2.0 +# +# Makefile for the AV7110 DVB device driver +# + +dvb-ttpci-objs := av7110_hw.o av7110_v4l.o av7110_av.o av7110_ca.o av7110.o \ + av7110_ipack.o dvb_filter.o + +ifdef CONFIG_DVB_AV7110_IR +dvb-ttpci-objs += av7110_ir.o +endif + +obj-$(CONFIG_DVB_BUDGET_PATCH) += budget-patch.o + +obj-$(CONFIG_DVB_AV7110) += dvb-ttpci.o + +ccflags-y += -I $(srctree)/drivers/media/dvb-frontends +ccflags-y += -I $(srctree)/drivers/media/tuners +ccflags-y += -I $(srctree)/drivers/media/pci/ttpci +ccflags-y += -I $(srctree)/drivers/media/common
drivers/staging/media/av7110/TODO new file +3 -0
@@ -0,0 +1,3 @@ +- This driver is too old and relies on a different API. + Drop it from Kernel on a couple of versions. +- Cleanup patches for the drivers here won't be accepted.
drivers/staging/media/av7110/av7110.c renamed from drivers/media/pci/ttpci/av7110.c +0 -0
drivers/staging/media/av7110/av7110.h renamed from drivers/media/pci/ttpci/av7110.h +0 -0
drivers/staging/media/av7110/av7110_av.c renamed from drivers/media/pci/ttpci/av7110_av.c +0 -0
drivers/staging/media/av7110/av7110_av.h renamed from drivers/media/pci/ttpci/av7110_av.h +0 -0
drivers/staging/media/av7110/av7110_ca.c renamed from drivers/media/pci/ttpci/av7110_ca.c +0 -0
drivers/staging/media/av7110/av7110_ca.h renamed from drivers/media/pci/ttpci/av7110_ca.h +0 -0
drivers/staging/media/av7110/av7110_hw.c renamed from drivers/media/pci/ttpci/av7110_hw.c +0 -0
drivers/staging/media/av7110/av7110_hw.h renamed from drivers/media/pci/ttpci/av7110_hw.h +0 -0
drivers/staging/media/av7110/av7110_ipack.c renamed from drivers/media/pci/ttpci/av7110_ipack.c +0 -0
drivers/staging/media/av7110/av7110_ipack.h renamed from drivers/media/pci/ttpci/av7110_ipack.h +0 -0
drivers/staging/media/av7110/av7110_ir.c renamed from drivers/media/pci/ttpci/av7110_ir.c +0 -0
drivers/staging/media/av7110/av7110_v4l.c renamed from drivers/media/pci/ttpci/av7110_v4l.c +0 -0
drivers/staging/media/av7110/budget-patch.c renamed from drivers/media/pci/ttpci/budget-patch.c +0 -0
drivers/staging/media/av7110/dvb_filter.c renamed from drivers/media/pci/ttpci/dvb_filter.c +0 -0
drivers/staging/media/av7110/dvb_filter.h renamed from drivers/media/pci/ttpci/dvb_filter.h +0 -0
Signature · 1 line
2.31.1
PATCH v2 3/3 media: sp8870: move it to staging
In reply to Mauro Carvalho ChehabThis driver is used only by av7110, which is preparing for its retirement. So, move this ancillary driver to stay together with av7110.
---
drivers/media/dvb-frontends/Kconfig | 12 -----------
drivers/media/dvb-frontends/Makefile | 1 -
drivers/staging/media/av7110/Kconfig | 20 +++++++++++++++++++
drivers/staging/media/av7110/Makefile | 2 ++
.../media/av7110}/sp8870.c | 0
.../media/av7110}/sp8870.h | 0
6 files changed, 22 insertions(+), 13 deletions(-)
rename drivers/{media/dvb-frontends => staging/media/av7110}/sp8870.c (100%)
rename drivers/{media/dvb-frontends => staging/media/av7110}/sp8870.h (100%)drivers/media/dvb-frontends/Kconfig +0 -12
@@ -323,18 +323,6 @@ config DVB_TDA10071 comment "DVB-T (terrestrial) frontends" depends on DVB_CORE -config DVB_SP8870 - tristate "Spase sp8870 based" - depends on DVB_CORE && I2C - default m if !MEDIA_SUBDRV_AUTOSELECT - help - A DVB-T tuner module. Say Y when you want to support this frontend. - - This driver needs external firmware. Please use the command - "<kerneldir>/scripts/get_dvb_firmware sp8870" to - download/extract it, and then copy it to /usr/lib/hotplug/firmware - or /lib/firmware (depending on configuration of firmware hotplug). - config DVB_SP887X tristate "Spase sp887x based" depends on DVB_CORE && I2C
drivers/media/dvb-frontends/Makefile +0 -1
@@ -20,7 +20,6 @@ obj-$(CONFIG_DVB_PLL) += dvb-pll.o obj-$(CONFIG_DVB_STV0299) += stv0299.o obj-$(CONFIG_DVB_STB0899) += stb0899.o obj-$(CONFIG_DVB_STB6100) += stb6100.o -obj-$(CONFIG_DVB_SP8870) += sp8870.o obj-$(CONFIG_DVB_CX22700) += cx22700.o obj-$(CONFIG_DVB_S5H1432) += s5h1432.o obj-$(CONFIG_DVB_CX24110) += cx24110.o
drivers/staging/media/av7110/Kconfig +20 -0
@@ -72,3 +72,23 @@ config DVB_BUDGET_PATCH To compile this driver as a module, choose M here: the module will be called budget-patch. + +if DVB_AV7110 + +# Frontend driver that it is used only by AV7110 driver +# While technically independent, it doesn't make sense to keep +# it if we drop support for AV7110, as no other driver will use it. + +config DVB_SP8870 + tristate "Spase sp8870 based" + depends on DVB_CORE && I2C + default m if !MEDIA_SUBDRV_AUTOSELECT + help + A DVB-T tuner module. Say Y when you want to support this frontend. + + This driver needs external firmware. Please use the command + "<kerneldir>/scripts/get_dvb_firmware sp8870" to + download/extract it, and then copy it to /usr/lib/hotplug/firmware + or /lib/firmware (depending on configuration of firmware hotplug). + +endif
drivers/staging/media/av7110/Makefile +2 -0
@@ -14,6 +14,8 @@ obj-$(CONFIG_DVB_BUDGET_PATCH) += budget-patch.o obj-$(CONFIG_DVB_AV7110) += dvb-ttpci.o +obj-$(CONFIG_DVB_SP8870) += sp8870.o + ccflags-y += -I $(srctree)/drivers/media/dvb-frontends ccflags-y += -I $(srctree)/drivers/media/tuners ccflags-y += -I $(srctree)/drivers/media/pci/ttpci
drivers/staging/media/av7110/sp8870.c renamed from drivers/media/dvb-frontends/sp8870.c +0 -0
drivers/staging/media/av7110/sp8870.h renamed from drivers/media/dvb-frontends/sp8870.h +0 -0
Signature · 1 line
2.31.1