From f41ef23e351990f54687b953cc8ccc3b1a641bc3 Mon Sep 17 00:00:00 2001 From: Dirk Neukirchen Date: Sun, 14 Mar 2021 16:00:43 +0100 Subject: [PATCH 01/10] WIP vdr: update Signed-off-by: Dirk Neukirchen --- vdr/Makefile | 17 +- vdr/patches/01-musl-compat.patch | 101 ----- vdr/patches/02-libjpeg-compat.patch | 32 -- .../03-strip-lcars-and-sttng-skins.patch | 31 -- ...ompilation-with-iconv-and-intl-stubs.patch | 13 - vdr/patches/10-fix-plugins-pkg-config.patch | 22 - .../50-Implement-H.265-frame-parser.patch | 141 ------- vdr/patches/51-caid_buffer-v3.patch | 146 ------- ...-Fix_TS_buffer_thread_high_CPU_usage.patch | 11 - vdr/patches/53-mutex-deadlock-v4.patch | 87 ---- vdr/patches/54-toomanypids.patch | 20 - .../55-Device_power_saving_feature.patch | 393 ------------------ 12 files changed, 10 insertions(+), 1004 deletions(-) delete mode 100644 vdr/patches/01-musl-compat.patch delete mode 100644 vdr/patches/02-libjpeg-compat.patch delete mode 100644 vdr/patches/03-strip-lcars-and-sttng-skins.patch delete mode 100644 vdr/patches/04-fix-compilation-with-iconv-and-intl-stubs.patch delete mode 100644 vdr/patches/10-fix-plugins-pkg-config.patch delete mode 100644 vdr/patches/50-Implement-H.265-frame-parser.patch delete mode 100644 vdr/patches/51-caid_buffer-v3.patch delete mode 100644 vdr/patches/52-Fix_TS_buffer_thread_high_CPU_usage.patch delete mode 100644 vdr/patches/53-mutex-deadlock-v4.patch delete mode 100644 vdr/patches/54-toomanypids.patch delete mode 100644 vdr/patches/55-Device_power_saving_feature.patch diff --git a/vdr/Makefile b/vdr/Makefile index 6393f4e79..bc87cfa7a 100644 --- a/vdr/Makefile +++ b/vdr/Makefile @@ -7,14 +7,14 @@ # include $(TOPDIR)/rules.mk -PKG_NAME := vdr -PKG_VERSION := 2.2.0 -PKG_RELEASE := 3 +PKG_NAME:=vdr +PKG_VERSION:=2.4.6 +PKG_RELEASE:=1 -PKG_SOURCE := vdr-$(PKG_VERSION).tar.bz2 -PKG_SOURCE_URL := ftp://ftp.tvdr.de/vdr +PKG_SOURCE:=vdr-$(PKG_VERSION).tar.bz2 +PKG_SOURCE_URL:=ftp://ftp.tvdr.de/vdr +PKG_HASH:=c8993babf2a878a0fba84558de1e35f042c3c66f7c1ec569eea00a3af1014e4b #PKG_SOURCE_URL := ftp://ftp.tvdr.de/vdr/Developer -PKG_HASH := 7c259e1ed1f39d93d23df1d5d0f85dd2a1fa9ec1dadff79e5833e2ff3ebf6c4e PKG_LICENSE := GPL-2.0 PKG_LICENSE_FILE := COPYING @@ -24,13 +24,14 @@ PKG_MAINTAINER := Tomasz Maciej Nowak PKG_INSTALL := 1 include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/nls.mk define Package/vdr SECTION := multimedia CATEGORY := Multimedia TITLE := Video Disk Recorder URL := http://www.tvdr.de - DEPENDS := +fontconfig +libcap +libfreetype +libjpeg +librt +libstdcpp +dejavu-fonts-ttf-DejaVuSans + DEPENDS := +fontconfig +libcap +libfreetype +libjpeg +librt +libstdcpp +dejavu-fonts-ttf-DejaVuSans $(ICONV_DEPENDS) $(INTL_DEPENDS) endef define Package/vdr/description @@ -67,6 +68,8 @@ define Build/Configure $(PKG_BUILD_DIR)/PLUGINS/src/svdrpdemo) endef +TARGET_CFLAGS += -std=gnu++98 -Wl,-liconv -Wl,-lintl + MAKE_FLAGS += \ PREFIX="/usr" \ VIDEODIR="/mnt/video" \ diff --git a/vdr/patches/01-musl-compat.patch b/vdr/patches/01-musl-compat.patch deleted file mode 100644 index 75458612a..000000000 --- a/vdr/patches/01-musl-compat.patch +++ /dev/null @@ -1,101 +0,0 @@ ---- a/i18n.h -+++ b/i18n.h -@@ -46,7 +46,7 @@ const cStringList *I18nLanguages(void); - ///< have an actual locale installed. The rest are just dummy entries - ///< to allow having three letter language codes for other languages - ///< that have no actual locale on this system. --const char *I18nTranslate(const char *s, const char *Plugin = NULL) __attribute_format_arg__(1); -+const char *I18nTranslate(const char *s, const char *Plugin = NULL) __attribute__((__format_arg__ (1))); - ///< Translates the given string (with optional Plugin context) into - ///< the current language. If no translation is available, the original - ///< string will be returned. ---- a/osd.c -+++ b/osd.c -@@ -12,7 +12,7 @@ - #include - #include - #include --#include -+#include - #include "device.h" - #include "tools.h" - ---- a/thread.c -+++ b/thread.c -@@ -143,7 +143,9 @@ cRwLock::cRwLock(bool PreferWriter) - { - pthread_rwlockattr_t attr; - pthread_rwlockattr_init(&attr); -+#ifdef __GLIBC__ - pthread_rwlockattr_setkind_np(&attr, PreferWriter ? PTHREAD_RWLOCK_PREFER_WRITER_NP : PTHREAD_RWLOCK_PREFER_READER_NP); -+#endif - pthread_rwlock_init(&rwlock, &attr); - } - -@@ -179,7 +181,8 @@ cMutex::cMutex(void) - locked = 0; - pthread_mutexattr_t attr; - pthread_mutexattr_init(&attr); -- pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK_NP); -+ // use PTHREAD_MUTEX_ERRORCHECK for portability -+ pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK); - pthread_mutex_init(&mutex, &attr); - } - ---- a/tools.c -+++ b/tools.c -@@ -618,7 +618,7 @@ char *ReadLink(const char *FileName) - { - if (!FileName) - return NULL; -- char *TargetName = canonicalize_file_name(FileName); -+ char *TargetName = realpath(FileName, NULL); - if (!TargetName) { - if (errno == ENOENT) // file doesn't exist - TargetName = strdup(FileName); ---- a/tools.h -+++ b/tools.h -@@ -27,6 +27,16 @@ - #include - #include - -+#ifndef ACCESSPERMS -+# define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */ -+#endif -+#ifndef ALLPERMS -+# define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)/* 07777 */ -+#endif -+#ifndef DEFFILEMODE -+# define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)/* 0666*/ -+#endif -+ - typedef unsigned char uchar; - - extern int SysLogLevel; -@@ -605,7 +615,7 @@ public: - data[i] = T(0); - size = 0; - } -- void Sort(__compar_fn_t Compare) -+ void Sort(int (*Compare)(const void *, const void *)) - { - qsort(data, size, sizeof(T), Compare); - } ---- a/vdr.c -+++ b/vdr.c -@@ -657,9 +657,12 @@ int main(int argc, char *argv[]) - } - else if (Terminal) { - // Claim new controlling terminal -- stdin = freopen(Terminal, "r", stdin); -- stdout = freopen(Terminal, "w", stdout); -- stderr = freopen(Terminal, "w", stderr); -+ if (!freopen(Terminal, "r", stdin) -+ || !freopen(Terminal, "w", stdout) -+ || !freopen(Terminal, "w", stderr)) { -+ fprintf(stderr, "vdr: can't open terminal %s\n", Terminal); -+ return 2; -+ } - HasStdin = true; - tcgetattr(STDIN_FILENO, &savedTm); - } diff --git a/vdr/patches/02-libjpeg-compat.patch b/vdr/patches/02-libjpeg-compat.patch deleted file mode 100644 index 72cdb2324..000000000 --- a/vdr/patches/02-libjpeg-compat.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- a/tools.c -+++ b/tools.c -@@ -1221,15 +1221,15 @@ static boolean JpegCompressEmptyOutputBu - } - else { - esyslog("ERROR: out of memory"); -- return false; -+ return FALSE; - } - if (jcd->mem) { - cinfo->dest->next_output_byte = jcd->mem + Used; - cinfo->dest->free_in_buffer = jcd->size - Used; -- return true; -+ return TRUE; - } - } -- return false; -+ return FALSE; - } - - static void JpegCompressTermDestination(j_compress_ptr cinfo) -@@ -1274,8 +1274,8 @@ uchar *RgbToJpeg(uchar *Mem, int Width, - cinfo.in_color_space = JCS_RGB; - - jpeg_set_defaults(&cinfo); -- jpeg_set_quality(&cinfo, Quality, true); -- jpeg_start_compress(&cinfo, true); -+ jpeg_set_quality(&cinfo, Quality, TRUE); -+ jpeg_start_compress(&cinfo, TRUE); - - int rs = Width * 3; - JSAMPROW rp[Height]; diff --git a/vdr/patches/03-strip-lcars-and-sttng-skins.patch b/vdr/patches/03-strip-lcars-and-sttng-skins.patch deleted file mode 100644 index 4c10aad44..000000000 --- a/vdr/patches/03-strip-lcars-and-sttng-skins.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- a/Makefile -+++ b/Makefile -@@ -71,7 +71,7 @@ OBJS = args.o audio.o channels.o ci.o co - dvbplayer.o dvbspu.o dvbsubtitle.o eit.o eitscan.o epg.o filter.o font.o i18n.o interface.o keys.o\ - lirc.o menu.o menuitems.o nit.o osdbase.o osd.o pat.o player.o plugin.o positioner.o\ - receiver.o recorder.o recording.o remote.o remux.o ringbuffer.o sdt.o sections.o shutdown.o\ -- skinclassic.o skinlcars.o skins.o skinsttng.o sourceparams.o sources.o spu.o status.o svdrp.o themes.o thread.o\ -+ skinclassic.o skins.o sourceparams.o sources.o spu.o status.o svdrp.o themes.o thread.o\ - timers.o tools.o transfer.o vdr.o videodir.o - - DEFINES += $(CDEFINES) ---- a/vdr.c -+++ b/vdr.c -@@ -60,8 +60,6 @@ - #include "recording.h" - #include "shutdown.h" - #include "skinclassic.h" --#include "skinlcars.h" --#include "skinsttng.h" - #include "sourceparams.h" - #include "sources.h" - #include "status.h" -@@ -832,8 +830,6 @@ int main(int argc, char *argv[]) - - // Default skins: - -- new cSkinLCARS; -- new cSkinSTTNG; - new cSkinClassic; - Skins.SetCurrent(Setup.OSDSkin); - cThemes::Load(Skins.Current()->Name(), Setup.OSDTheme, Skins.Current()->Theme()); diff --git a/vdr/patches/04-fix-compilation-with-iconv-and-intl-stubs.patch b/vdr/patches/04-fix-compilation-with-iconv-and-intl-stubs.patch deleted file mode 100644 index 9333bf1d2..000000000 --- a/vdr/patches/04-fix-compilation-with-iconv-and-intl-stubs.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- a/i18n.c -+++ b/i18n.c -@@ -96,8 +96,10 @@ static const char *SkipContext(const cha - static void SetEnvLanguage(const char *Locale) - { - setenv("LANGUAGE", Locale, 1); -+#if defined(HAS_NL_MSG_CAT_CNTR) - extern int _nl_msg_cat_cntr; - ++_nl_msg_cat_cntr; -+#endif - } - - void I18nInitialize(const char *LocaleDir) diff --git a/vdr/patches/10-fix-plugins-pkg-config.patch b/vdr/patches/10-fix-plugins-pkg-config.patch deleted file mode 100644 index 52b3d3021..000000000 --- a/vdr/patches/10-fix-plugins-pkg-config.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/PLUGINS/src/epgtableid0/Makefile -+++ b/PLUGINS/src/epgtableid0/Makefile -@@ -16,7 +16,7 @@ VERSION = $(shell grep 'static const cha - ### The directory environment: - - # Use package data if installed...otherwise assume we're under the VDR source directory: --PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config --variable=$(1) vdr)) -+PKGCFG = $(if $(VDRDIR),$(shell pkg-config.real --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config.real --variable=$(1) vdr)) - LIBDIR = $(call PKGCFG,libdir) - PLGCFG = $(call PKGCFG,plgcfg) - # ---- a/PLUGINS/src/skincurses/Makefile -+++ b/PLUGINS/src/skincurses/Makefile -@@ -16,7 +16,7 @@ VERSION = $(shell grep 'static const cha - ### The directory environment: - - # Use package data if installed...otherwise assume we're under the VDR source directory: --PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config --variable=$(1) vdr)) -+PKGCFG = $(if $(VDRDIR),$(shell pkg-config.real --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config.real --variable=$(1) vdr)) - LIBDIR = $(call PKGCFG,libdir) - LOCDIR = $(call PKGCFG,locdir) - PLGCFG = $(call PKGCFG,plgcfg) diff --git a/vdr/patches/50-Implement-H.265-frame-parser.patch b/vdr/patches/50-Implement-H.265-frame-parser.patch deleted file mode 100644 index 6967a8f3d..000000000 --- a/vdr/patches/50-Implement-H.265-frame-parser.patch +++ /dev/null @@ -1,141 +0,0 @@ -From ce4d2a08e6448b7bfab68b89a12a156ed3294a63 Mon Sep 17 00:00:00 2001 -From: Thomas Reufer -Date: Mon, 28 Mar 2016 19:47:14 +0200 -Subject: [PATCH] Implement H.265 frame parser - ---- - pat.c | 1 + - remux.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- - 2 files changed, 82 insertions(+), 3 deletions(-) - ---- a/pat.c -+++ b/pat.c -@@ -436,6 +436,7 @@ void cPatFilter::Process(u_short Pid, u_ - case 1: // STREAMTYPE_11172_VIDEO - case 2: // STREAMTYPE_13818_VIDEO - case 0x1B: // H.264 -+ case 0x24: // H.265 - Vpid = esPid; - Ppid = pmt.getPCRPid(); - Vtype = stream.getStreamType(); ---- a/remux.c -+++ b/remux.c -@@ -708,6 +708,7 @@ void cPatPmtParser::ParsePmt(const uchar - case 0x01: // STREAMTYPE_11172_VIDEO - case 0x02: // STREAMTYPE_13818_VIDEO - case 0x1B: // H.264 -+ case 0x24: // H.265 - vpid = stream.getPid(); - vtype = stream.getStreamType(); - ppid = Pmt.getPCRPid(); -@@ -1204,16 +1205,16 @@ private: - nutSequenceParameterSet = 7, - nutAccessUnitDelimiter = 9, - }; -- cTsPayload tsPayload; - uchar byte; // holds the current byte value in case of bitwise access - int bit; // the bit index into the current byte (-1 if we're not in bit reading mode) - int zeroBytes; // the number of consecutive zero bytes (to detect 0x000003) -- uint32_t scanner; - // Identifiers written in '_' notation as in "ITU-T H.264": - bool separate_colour_plane_flag; - int log2_max_frame_num; - bool frame_mbs_only_flag; -- // -+protected: -+ cTsPayload tsPayload; -+ uint32_t scanner; - bool gotAccessUnitDelimiter; - bool gotSequenceParameterSet; - uchar GetByte(bool Raw = false); -@@ -1430,6 +1431,81 @@ void cH264Parser::ParseSliceHeader(void) - } - } - -+// --- cH265Parser ----------------------------------------------------------- -+ -+class cH265Parser : public cH264Parser { -+private: -+ enum eNalUnitType { -+ nutSliceSegmentTrailingN = 0, -+ nutSliceSegmentTrailingR = 1, -+ nutSliceSegmentTSAN = 2, -+ nutSliceSegmentTSAR = 3, -+ nutSliceSegmentSTSAN = 4, -+ nutSliceSegmentSTSAR = 5, -+ nutSliceSegmentRADLN = 6, -+ nutSliceSegmentRADLR = 7, -+ nutSliceSegmentRASLN = 8, -+ nutSliceSegmentRASLR = 9, -+ nutSliceSegmentBLAWLP = 16, -+ nutSliceSegmentBLAWRADL = 17, -+ nutSliceSegmentBLANLP = 18, -+ nutSliceSegmentIDRWRADL = 19, -+ nutSliceSegmentIDRNLP = 20, -+ nutSliceSegmentCRANUT = 21, -+ nutVideoParameterSet = 32, -+ nutSequenceParameterSet = 33, -+ nutPictureParameterSet = 34, -+ nutAccessUnitDelimiter = 35, -+ nutEndOfSequence = 36, -+ nutEndOfBitstream = 37, -+ nutFillerData = 38, -+ nutPrefixSEI = 39, -+ nutSuffixSEI = 40, -+ nutNonVCLRes0 = 41, -+ nutNonVCLRes3 = 44, -+ nutUnspecified0 = 48, -+ nutUnspecified7 = 55, -+ }; -+public: -+ cH265Parser(void); -+ virtual int Parse(const uchar *Data, int Length, int Pid); -+ }; -+ -+cH265Parser::cH265Parser(void) : -+ cH264Parser() -+{ -+} -+ -+int cH265Parser::Parse(const uchar *Data, int Length, int Pid) -+{ -+ newFrame = independentFrame = false; -+ tsPayload.Setup(const_cast(Data), Length, Pid); -+ if (TsPayloadStart(Data)) { -+ tsPayload.SkipPesHeader(); -+ scanner = EMPTY_SCANNER; -+ } -+ for (;;) { -+ scanner = (scanner << 8) | GetByte(true); -+ if ((scanner & 0xFFFFFF00) == 0x00000100) { // NAL unit start -+ uchar NalUnitType = (scanner >> 1) & 0x3F; -+ GetByte(); // nuh_layer_id + nuh_temporal_id_plus1 -+ if (NalUnitType <= nutSliceSegmentRASLR || (NalUnitType >= nutSliceSegmentBLAWLP && NalUnitType <= nutSliceSegmentCRANUT)) { -+ if (NalUnitType == nutSliceSegmentIDRWRADL || NalUnitType == nutSliceSegmentIDRNLP || NalUnitType == nutSliceSegmentCRANUT) -+ independentFrame = true; -+ if (GetBit()) { // first_slice_segment_in_pic_flag -+ newFrame = true; -+ tsPayload.Statistics(); -+ } -+ break; -+ } -+ } -+ if (tsPayload.AtPayloadStart() // stop at any new payload start to have the buffer refilled if necessary -+ || tsPayload.Eof()) // or if we're out of data -+ break; -+ } -+ return tsPayload.Used(); -+} -+ - // --- cFrameDetector -------------------------------------------------------- - - cFrameDetector::cFrameDetector(int Pid, int Type) -@@ -1463,6 +1539,8 @@ void cFrameDetector::SetPid(int Pid, int - parser = new cMpeg2Parser; - else if (type == 0x1B) - parser = new cH264Parser; -+ else if (type == 0x24) -+ parser = new cH265Parser; - else if (type == 0x04 || type == 0x06) // MPEG audio or AC3 audio - parser = new cAudioParser; - else if (type != 0) diff --git a/vdr/patches/51-caid_buffer-v3.patch b/vdr/patches/51-caid_buffer-v3.patch deleted file mode 100644 index 2c61bcc90..000000000 --- a/vdr/patches/51-caid_buffer-v3.patch +++ /dev/null @@ -1,146 +0,0 @@ -Description: dynamically resize buffer for caids -Forwarded: yes -Author: Lars Hanisch - ---- a/ci.c -+++ b/ci.c -@@ -25,6 +25,8 @@ - #include "skins.h" - #include "tools.h" - -+#define CAID_BUFSIZE 1024 -+ - // Set these to 'true' for debug output: - static bool DumpTPDUDataTransfer = false; - static bool DebugProtocol = false; -@@ -763,9 +765,12 @@ private: - int transponder; - int programNumber; - int caSystemIds[MAXCASYSTEMIDS + 1]; // list is zero terminated! -+ uint8_t *caDescriptors; -+ int caBufSize; - void AddCaDescriptors(int Length, const uint8_t *Data); - public: - cCiCaPmt(uint8_t CmdId, int Source, int Transponder, int ProgramNumber, const int *CaSystemIds); -+ ~cCiCaPmt(void); - uint8_t CmdId(void) { return cmdId; } - void SetListManagement(uint8_t ListManagement); - uint8_t ListManagement(void) { return capmt[0]; } -@@ -784,8 +789,15 @@ cCiCaPmt::cCiCaPmt(uint8_t CmdId, int So - caSystemIds[i] = CaSystemIds[i]; - } - caSystemIds[i] = 0; -- uint8_t caDescriptors[512]; -- int caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, sizeof(caDescriptors), caDescriptors, 0); -+ caBufSize = CAID_BUFSIZE; -+ caDescriptors = new uint8_t[caBufSize]; -+ int caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, caBufSize, caDescriptors, 0); -+ if (caDescriptorsLength < 0) { -+ delete [] caDescriptors; -+ caBufSize = -caDescriptorsLength + 8; -+ caDescriptors = new uint8_t[caBufSize]; -+ caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, caBufSize, caDescriptors, 0); -+ } - length = 0; - capmt[length++] = CPLM_ONLY; - capmt[length++] = (ProgramNumber >> 8) & 0xFF; -@@ -797,6 +809,11 @@ cCiCaPmt::cCiCaPmt(uint8_t CmdId, int So - AddCaDescriptors(caDescriptorsLength, caDescriptors); - } - -+cCiCaPmt::~cCiCaPmt(void) -+{ -+ delete [] caDescriptors; -+} -+ - void cCiCaPmt::SetListManagement(uint8_t ListManagement) - { - capmt[0] = ListManagement; -@@ -805,21 +822,34 @@ void cCiCaPmt::SetListManagement(uint8_t - void cCiCaPmt::AddPid(int Pid, uint8_t StreamType) - { - if (Pid) { -- uint8_t caDescriptors[512]; -- int caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, sizeof(caDescriptors), caDescriptors, Pid); -- //XXX buffer overflow check??? -- capmt[length++] = StreamType; -- capmt[length++] = (Pid >> 8) & 0xFF; -- capmt[length++] = Pid & 0xFF; -- esInfoLengthPos = length; -- capmt[length++] = 0x00; // ES_info_length H (at ES level) -- capmt[length++] = 0x00; // ES_info_length L -- AddCaDescriptors(caDescriptorsLength, caDescriptors); -+ int caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, caBufSize, caDescriptors, Pid); -+ if (caDescriptorsLength < 0) { -+ delete [] caDescriptors; -+ caBufSize = -caDescriptorsLength + 8; -+ caDescriptors = new uint8_t[caBufSize]; -+ caDescriptorsLength = GetCaDescriptors(source, transponder, programNumber, caSystemIds, caBufSize, caDescriptors, Pid); -+ } -+ if (length + 5 < int(sizeof(capmt))) { -+ capmt[length++] = StreamType; -+ capmt[length++] = (Pid >> 8) & 0xFF; -+ capmt[length++] = Pid & 0xFF; -+ esInfoLengthPos = length; -+ capmt[length++] = 0x00; // ES_info_length H (at ES level) -+ capmt[length++] = 0x00; // ES_info_length L -+ AddCaDescriptors(caDescriptorsLength, caDescriptors); -+ } -+ else -+ esyslog("ERROR: buffer overflow in CA descriptor"); - } - } - - void cCiCaPmt::AddCaDescriptors(int Length, const uint8_t *Data) - { -+ if (Length < 0) { -+ dsyslog("DEBUG: calling AddCaDescriptors with Length %d", Length); -+ return; -+ } -+ - if (esInfoLengthPos) { - if (length + Length < int(sizeof(capmt))) { - if (Length || cmdId == CPCI_QUERY) { ---- a/pat.c -+++ b/pat.c -@@ -165,21 +165,25 @@ int cCaDescriptors::GetCaDescriptors(con - return 0; - if (BufSize > 0 && Data) { - int length = 0; -+ bool tooSmall = false; - for (cCaDescriptor *d = caDescriptors.First(); d; d = caDescriptors.Next(d)) { - if (EsPid < 0 || d->EsPid() == EsPid) { - const int *caids = CaSystemIds; - do { - if (*caids == 0xFFFF || d->CaSystem() == *caids) { -- if (length + d->Length() <= BufSize) { -+ if (length + d->Length() <= BufSize) - memcpy(Data + length, d->Data(), d->Length()); -- length += d->Length(); -- } - else -- return -1; -+ tooSmall = true; -+ length += d->Length(); - } - } while (*++caids); - } - } -+ if (tooSmall) { -+ dsyslog("DEBUG: buffer for ca-descriptors too small (%d, needed %d)", BufSize, length); -+ return -length; -+ } - return length; - } - return -1; ---- a/pat.h -+++ b/pat.h -@@ -45,7 +45,7 @@ int GetCaDescriptors(int Source, int Tra - ///< are copied that match one of the given CA system IDs (or all of them, if CaSystemIds - ///< is 0xFFFF). - ///< Returns the number of bytes copied into Data (0 if no CA descriptors are -- ///< available), or -1 if BufSize was too small to hold all CA descriptors. -+ ///< available), or -(NeededBufSize) if BufSize was too small to hold all CA descriptors. - - int GetCaPids(int Source, int Transponder, int ServiceId, const int *CaSystemIds, int BufSize, int *Pids); - ///< Gets all CA pids for a given channel. diff --git a/vdr/patches/52-Fix_TS_buffer_thread_high_CPU_usage.patch b/vdr/patches/52-Fix_TS_buffer_thread_high_CPU_usage.patch deleted file mode 100644 index 484a36d72..000000000 --- a/vdr/patches/52-Fix_TS_buffer_thread_high_CPU_usage.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/device.c -+++ b/device.c -@@ -1768,6 +1768,8 @@ void cTSBuffer::Action(void) - break; - } - } -+ else -+ cCondWait::SleepMs(10); - } - } - } diff --git a/vdr/patches/53-mutex-deadlock-v4.patch b/vdr/patches/53-mutex-deadlock-v4.patch deleted file mode 100644 index 7901a3837..000000000 --- a/vdr/patches/53-mutex-deadlock-v4.patch +++ /dev/null @@ -1,87 +0,0 @@ ---- a/device.c -+++ b/device.c -@@ -1602,7 +1602,8 @@ void cDevice::Action(void) - } - } - // Distribute the packet to all attached receivers: -- Lock(); -+ { -+ cMutexLock MutexLock(&mutexReceiver); - for (int i = 0; i < MAXRECEIVERS; i++) { - if (receiver[i] && receiver[i]->WantsPid(Pid)) { - if (DetachReceivers && cs && (!cs->IsActivating() || receiver[i]->Priority() >= LIVEPRIORITY)) { -@@ -1616,7 +1617,7 @@ void cDevice::Action(void) - ChannelCamRelations.SetDecrypt(receiver[i]->ChannelID(), CamSlotNumber); - } - } -- Unlock(); -+ } - } - } - else -@@ -1655,6 +1656,8 @@ bool cDevice::AttachReceiver(cReceiver * - return false; - } - #endif -+ bool breakout = false; -+ { - cMutexLock MutexLock(&mutexReceiver); - for (int i = 0; i < MAXRECEIVERS; i++) { - if (!receiver[i]) { -@@ -1670,16 +1673,23 @@ bool cDevice::AttachReceiver(cReceiver * - Receiver->device = this; - receiver[i] = Receiver; - Unlock(); -- if (camSlot && Receiver->priority > MINPRIORITY) { // priority check to avoid an infinite loop with the CAM slot's caPidReceiver -- camSlot->StartDecrypting(); -- startScrambleDetection = time(NULL); -- } -- Start(); -- return true; -+ breakout = true; -+ break; // leave mutexReceiver-block asap - } - } -- esyslog("ERROR: no free receiver slot!"); -- return false; -+ } -+ if (breakout) { -+ if (camSlot && Receiver->priority > MINPRIORITY) { // priority check to avoid an infinite loop with the CAM slot's caPidReceiver -+ camSlot->StartDecrypting(); -+ startScrambleDetection = time(NULL); -+ } -+ Start(); // has to be outside of mutexReceiver-block -+ return true; -+ } -+ else { -+ esyslog("ERROR: no free receiver slot!"); -+ return false; -+ } - } - - void cDevice::Detach(cReceiver *Receiver) -@@ -1687,6 +1697,7 @@ void cDevice::Detach(cReceiver *Receiver - if (!Receiver || Receiver->device != this) - return; - bool receiversLeft = false; -+ { - cMutexLock MutexLock(&mutexReceiver); - for (int i = 0; i < MAXRECEIVERS; i++) { - if (receiver[i] == Receiver) { -@@ -1701,6 +1712,7 @@ void cDevice::Detach(cReceiver *Receiver - else if (receiver[i]) - receiversLeft = true; - } -+ } // leave mutexReceiver-block asap - if (camSlot) { - if (Receiver->priority > MINPRIORITY) { // priority check to avoid an infinite loop with the CAM slot's caPidReceiver - camSlot->StartDecrypting(); -@@ -1709,7 +1721,7 @@ void cDevice::Detach(cReceiver *Receiver - } - } - if (!receiversLeft) -- Cancel(-1); -+ Cancel(-1); // has to be outside of mutexReceiver-block - } - - void cDevice::DetachAll(int Pid) diff --git a/vdr/patches/54-toomanypids.patch b/vdr/patches/54-toomanypids.patch deleted file mode 100644 index a23f8d42d..000000000 --- a/vdr/patches/54-toomanypids.patch +++ /dev/null @@ -1,20 +0,0 @@ -Description: Don't add same pid multiple times -Origin: http://www.vdr-portal.de/board17-developer/board97-vdr-core/p1252658-zu-viele-pids/#post1252658 -Forwarded: yes -Author: Zabrimus @ vdr-portal - ---- a/receiver.c -+++ b/receiver.c -@@ -37,8 +37,10 @@ void cReceiver::SetPriority(int Priority - bool cReceiver::AddPid(int Pid) - { - if (Pid) { -- if (numPids < MAXRECEIVEPIDS) -- pids[numPids++] = Pid; -+ if (numPids < MAXRECEIVEPIDS) { -+ if (!WantsPid(Pid)) -+ pids[numPids++] = Pid; -+ } - else { - dsyslog("too many PIDs in cReceiver (Pid = %d)", Pid); - return false; diff --git a/vdr/patches/55-Device_power_saving_feature.patch b/vdr/patches/55-Device_power_saving_feature.patch deleted file mode 100644 index a5d6fcd22..000000000 --- a/vdr/patches/55-Device_power_saving_feature.patch +++ /dev/null @@ -1,393 +0,0 @@ ---- a/config.c -+++ b/config.c -@@ -395,6 +395,9 @@ cSetup::cSetup(void) - PositionerSpeed = 15; - PositionerSwing = 650; - PositionerLastLon = 0; -+ PowerdownEnabled = 0; -+ PowerdownTimeoutM = 15; -+ PowerdownWakeupH = 4; - SetSystemTime = 0; - TimeSource = 0; - TimeTransponder = 0; -@@ -617,6 +620,9 @@ bool cSetup::Parse(const char *Name, con - else if (!strcasecmp(Name, "PositionerSpeed")) PositionerSpeed = atoi(Value); - else if (!strcasecmp(Name, "PositionerSwing")) PositionerSwing = atoi(Value); - else if (!strcasecmp(Name, "PositionerLastLon")) PositionerLastLon = atoi(Value); -+ else if (!strcasecmp(Name, "PowerdownEnabled")) PowerdownEnabled = atoi(Value); -+ else if (!strcasecmp(Name, "PowerdownTimeoutM")) PowerdownTimeoutM = atoi(Value); -+ else if (!strcasecmp(Name, "PowerdownWakeupH")) PowerdownWakeupH = atoi(Value); - else if (!strcasecmp(Name, "SetSystemTime")) SetSystemTime = atoi(Value); - else if (!strcasecmp(Name, "TimeSource")) TimeSource = cSource::FromString(Value); - else if (!strcasecmp(Name, "TimeTransponder")) TimeTransponder = atoi(Value); -@@ -743,6 +749,9 @@ bool cSetup::Save(void) - Store("PositionerSpeed", PositionerSpeed); - Store("PositionerSwing", PositionerSwing); - Store("PositionerLastLon", PositionerLastLon); -+ Store("PowerdownEnabled", PowerdownEnabled); -+ Store("PowerdownTimeoutM", PowerdownTimeoutM); -+ Store("PowerdownWakeupH", PowerdownWakeupH); - Store("SetSystemTime", SetSystemTime); - Store("TimeSource", cSource::ToString(TimeSource)); - Store("TimeTransponder", TimeTransponder); ---- a/config.h -+++ b/config.h -@@ -273,6 +273,9 @@ public: - int PositionerSpeed; - int PositionerSwing; - int PositionerLastLon; -+ int PowerdownEnabled; -+ int PowerdownTimeoutM; -+ int PowerdownWakeupH; - int SetSystemTime; - int TimeSource; - int TimeTransponder; ---- a/device.c -+++ b/device.c -@@ -104,6 +104,9 @@ cDevice::cDevice(void) - dvbSubtitleConverter = NULL; - autoSelectPreferredSubtitleLanguage = true; - -+ idleTimerExpires = time(NULL) + Setup.PowerdownTimeoutM * 60; -+ wakeupTimerExpires = 0; -+ - for (int i = 0; i < MAXRECEIVERS; i++) - receiver[i] = NULL; - -@@ -744,6 +747,11 @@ bool cDevice::SwitchChannel(int Directio - return result; - } - -+// While switching to a channel, the device will be kept powered up -+// for at least this number of seconds before a receiver is attached. -+// Must be less than cEITScanner::ScanTimeout. -+#define CHANNEL_SWITCH_POWERUP_TIMEOUT 10 -+ - eSetChannelResult cDevice::SetChannel(const cChannel *Channel, bool LiveView) - { - cStatus::MsgChannelSwitch(this, 0, LiveView); -@@ -778,6 +786,8 @@ eSetChannelResult cDevice::SetChannel(co - } - else { - Channels.Lock(false); -+ // Power up the device -+ PowerUp(CHANNEL_SWITCH_POWERUP_TIMEOUT); - // Stop section handling: - if (sectionHandler) { - sectionHandler->SetStatus(false); -@@ -843,8 +853,11 @@ int cDevice::Occupied(void) const - - void cDevice::SetOccupied(int Seconds) - { -- if (Seconds >= 0) -+ if (Seconds >= 0) { - occupiedTimeout = time(NULL) + min(Seconds, MAXOCCUPIEDTIMEOUT); -+ // avoid short power-down/power-up cycles -+ SetIdleTimer(true, Seconds + 30); -+ } - } - - bool cDevice::SetChannelDevice(const cChannel *Channel, bool LiveView) -@@ -1684,6 +1697,7 @@ bool cDevice::AttachReceiver(cReceiver * - startScrambleDetection = time(NULL); - } - Start(); // has to be outside of mutexReceiver-block -+ SetIdleTimer(false); - return true; - } - else { -@@ -1720,8 +1734,10 @@ void cDevice::Detach(cReceiver *Receiver - camSlot->Assign(NULL); - } - } -- if (!receiversLeft) -+ if (!receiversLeft) { - Cancel(-1); // has to be outside of mutexReceiver-block -+ SetIdleTimer(true); -+ } - } - - void cDevice::DetachAll(int Pid) -@@ -1743,6 +1759,82 @@ void cDevice::DetachAllReceivers(void) - Detach(receiver[i]); - } - -+void cDevice::CheckIdle(void) -+{ -+ if (!SupportsPowerDown() || !Setup.PowerdownEnabled) -+ return; -+ cMutexLock MutexLock(&mutexPowerSaving); -+ if (idleTimerExpires != 0 && time(NULL) > idleTimerExpires) { -+ // idle, powered up -+ dsyslog("power saving: device %d idle timer expired", CardIndex() + 1); -+ SetIdleTimer(false); -+ if (Setup.PowerdownWakeupH != 0) -+ wakeupTimerExpires = time(NULL) + Setup.PowerdownWakeupH * 3600; -+ else -+ dsyslog("power saving: waking up is disabled"); -+ if (!IsPoweredDown()) { -+ dsyslog("power saving: powering device %d down", CardIndex() + 1); -+ if (sectionHandler) { -+ sectionHandler->SetStatus(false); -+ sectionHandler->SetChannel(NULL); -+ } -+ PowerDown(true); -+ } -+ } -+ if (wakeupTimerExpires != 0 && time(NULL) > wakeupTimerExpires) { -+ // idle, powered down -+ dsyslog("power saving: device %d wakeup timer expired", CardIndex() + 1); -+ SetIdleTimer(true); -+ if (IsPoweredDown()) { -+ dsyslog("power saving: waking up device %d", CardIndex() + 1); -+ PowerDown(false); -+ } -+ } -+} -+ -+void cDevice::SetIdleTimer(bool On, int ExtraTimeoutS) -+{ -+ if (!SupportsPowerDown()) -+ return; -+ cMutexLock MutexLock(&mutexPowerSaving); -+ if (On) { -+ int Tout = Setup.PowerdownTimeoutM * 60; -+ time_t Now = time(NULL); -+ if (ExtraTimeoutS > 0) { -+ if (idleTimerExpires >= Now + ExtraTimeoutS) -+ return; -+ Tout = ExtraTimeoutS; -+ } -+ idleTimerExpires = Now + Tout; -+ if (Setup.PowerdownEnabled) -+ dsyslog("power saving: set device %d idle timer to %d sec", CardIndex() + 1, Tout); -+ } -+ else { -+ idleTimerExpires = 0; -+ if (Setup.PowerdownEnabled) -+ dsyslog("power saving: disable device %d idle timer", CardIndex() + 1); -+ } -+ wakeupTimerExpires = 0; -+} -+ -+bool cDevice::PoweredDown(void) -+{ -+ if (SupportsPowerDown() && Setup.PowerdownEnabled) { -+ cMutexLock MutexLock(&mutexPowerSaving); -+ return IsPoweredDown(); -+ } -+ else -+ return false; -+} -+ -+void cDevice::PowerUp(int ExtraTimeoutS) -+{ -+ cMutexLock MutexLock(&mutexPowerSaving); -+ SetIdleTimer(true, ExtraTimeoutS); -+ if (SupportsPowerDown() && IsPoweredDown()) -+ PowerDown(false); -+} -+ - // --- cTSBuffer ------------------------------------------------------------- - - cTSBuffer::cTSBuffer(int File, int Size, int CardIndex) ---- a/device.h -+++ b/device.h -@@ -821,6 +821,35 @@ public: - ///< Detaches all receivers from this device for this pid. - virtual void DetachAllReceivers(void); - ///< Detaches all receivers from this device. -+ -+// Power saving facilities -+ -+private: -+ cMutex mutexPowerSaving; -+ time_t idleTimerExpires, wakeupTimerExpires; -+ void PowerUp(int ExtraTimeoutS); -+ ///< If the device is powered down, powers it up and keeps it -+ ///< powered up for at least ExtraTimeoutS seconds (see -+ ///< cDevice::SetIdleTimer()). -+public: -+ void CheckIdle(void); -+ ///< Should be called periodically in the main loop. -+ bool PoweredDown(void); -+ ///< Returns true if the device is powered down "logically", that is, -+ ///< idle tasks like EPG scanning are disabled. -+ void SetIdleTimer(bool On, int ExtraTimeoutS = 0); -+ ///< Starts/disables the idle timer. This timer must be started when -+ ///< a device gets idle and must be disabled when it is receiving. -+ ///< If ExtraTimeoutS is greater than zero and On is true, a new timer -+ ///< won't be set, but the device will be kept powered up for at least -+ ///< ExtraTimeoutS seconds. -+protected: -+ virtual bool IsPoweredDown(void) {return false;} -+ ///< Returns true if the device is powered down "physically". -+ virtual void PowerDown(bool On) {}; -+ ///< Actually powers the device down/up. -+ virtual bool SupportsPowerDown() {return false;} -+ ///< Returns true if a derived device supports power saving. - }; - - /// Derived cDevice classes that can receive channels will have to provide ---- a/dvbdevice.c -+++ b/dvbdevice.c -@@ -348,6 +348,8 @@ public: - const cPositioner *Positioner(void) const { return positioner; } - int GetSignalStrength(void) const; - int GetSignalQuality(void) const; -+ bool IsPoweredDown(void) {return fd_frontend < 0;} -+ void PowerDown(bool On); - }; - - cMutex cDvbTuner::bondMutex; -@@ -544,6 +546,8 @@ void cDvbTuner::ClearEventQueue(void) co - - bool cDvbTuner::GetFrontendStatus(fe_status_t &Status) const - { -+ if (fd_frontend < 0) -+ return false; - ClearEventQueue(); - while (1) { - if (ioctl(fd_frontend, FE_READ_STATUS, &Status) != -1) -@@ -559,6 +563,8 @@ bool cDvbTuner::GetFrontendStatus(fe_sta - - int cDvbTuner::GetSignalStrength(void) const - { -+ if (fd_frontend < 0) -+ return -1; - ClearEventQueue(); - uint16_t Signal; - while (1) { -@@ -1001,6 +1007,26 @@ void cDvbTuner::Action(void) - } - } - -+void cDvbTuner::PowerDown(bool On) -+{ -+ cMutexLock MutexLock(&mutex); -+ if (On && fd_frontend >= 0) { -+ isyslog("dvb tuner: power-down - closing frontend %d/%d", adapter, frontend); -+ tunerStatus = tsIdle; -+ close(fd_frontend); -+ fd_frontend = -1; -+ } -+ if (!On && fd_frontend < 0) { -+ cString Filename = cString::sprintf("%s/%s%d/%s%d", -+ DEV_DVB_BASE, DEV_DVB_ADAPTER, adapter, DEV_DVB_FRONTEND, frontend); -+ isyslog("dvb tuner: power-up - opening frontend %d/%d", adapter, frontend); -+ fd_frontend = open(Filename, O_RDWR | O_NONBLOCK); -+ if (fd_frontend < 0) -+ esyslog("ERROR: can't open DVB device frontend %d/%d", adapter, frontend); -+ tunerStatus = tsIdle; -+ } -+} -+ - // --- cDvbSourceParam ------------------------------------------------------- - - class cDvbSourceParam : public cSourceParam { -@@ -1711,6 +1737,19 @@ void cDvbDevice::DetachAllReceivers(void - needsDetachBondedReceivers = false; - } - -+bool cDvbDevice::IsPoweredDown(void) -+{ -+ if (dvbTuner) -+ return dvbTuner->IsPoweredDown(); -+ return false; -+} -+ -+void cDvbDevice::PowerDown(bool On) -+{ -+ if (dvbTuner) -+ dvbTuner->PowerDown(On); -+} -+ - // --- cDvbDeviceProbe ------------------------------------------------------- - - cList DvbDeviceProbes; ---- a/dvbdevice.h -+++ b/dvbdevice.h -@@ -289,6 +289,13 @@ protected: - virtual void CloseDvr(void); - virtual bool GetTSPacket(uchar *&Data); - virtual void DetachAllReceivers(void); -+ -+// Power saving facilities -+ -+protected: -+ virtual bool IsPoweredDown(void); -+ virtual void PowerDown(bool On); -+ virtual bool SupportsPowerDown() {return true;} - }; - - // A plugin that implements a DVB device derived from cDvbDevice needs to create ---- a/eitscan.c -+++ b/eitscan.c -@@ -142,7 +142,8 @@ void cEITScanner::Process(void) - bool AnyDeviceSwitched = false; - for (int i = 0; i < cDevice::NumDevices(); i++) { - cDevice *Device = cDevice::GetDevice(i); -- if (Device && Device->ProvidesEIT()) { -+ if (Device && Device->ProvidesEIT() -+ && (!Device->PoweredDown() || lastActivity == 0)) { // powered up or forced scan - for (cScanData *ScanData = scanList->First(); ScanData; ScanData = scanList->Next(ScanData)) { - const cChannel *Channel = ScanData->GetChannel(); - if (Channel) { -@@ -159,6 +160,10 @@ void cEITScanner::Process(void) - } - } - //dsyslog("EIT scan: device %d source %-8s tp %5d", Device->DeviceNumber() + 1, *cSource::ToString(Channel->Source()), Channel->Transponder()); -+ if (lastActivity == 0) -+ // forced scan - set idle timer for each channel switch; -+ // this prevents powering down while scanning a transponder -+ Device->SetIdleTimer(true, ScanTimeout + 5); - Device->SwitchChannel(Channel, false); - scanList->Del(ScanData); - AnyDeviceSwitched = true; ---- a/menu.c -+++ b/menu.c -@@ -3464,6 +3464,12 @@ void cMenuSetupLNB::Setup(void) - Add(new cMenuEditIntxItem(tr("Setup.LNB$Positioner speed (degrees/s)"), &data.PositionerSpeed, 1, 1800, 10)); - } - -+ Add(new cMenuEditBoolItem(tr("Setup.LNB$Enable power saving"), &data.PowerdownEnabled)); -+ if (data.PowerdownEnabled) { -+ Add(new cMenuEditIntItem(tr("Setup.LNB$Power down an idle device after (min)"), &data.PowerdownTimeoutM)); -+ Add(new cMenuEditIntItem(tr("Setup.LNB$Wake up from power-down after (h)"), &data.PowerdownWakeupH)); -+ } -+ - SetCurrent(Get(current)); - Display(); - } -@@ -3472,6 +3478,7 @@ eOSState cMenuSetupLNB::ProcessKey(eKeys - { - int oldDiSEqC = data.DiSEqC; - int oldUsePositioner = data.UsePositioner; -+ int oldPowerdownEnabled = data.PowerdownEnabled; - bool DeviceBondingsChanged = false; - if (Key == kOk) { - cString NewDeviceBondings = satCableNumbers.ToString(); -@@ -3480,7 +3487,7 @@ eOSState cMenuSetupLNB::ProcessKey(eKeys - } - eOSState state = cMenuSetupBase::ProcessKey(Key); - -- if (Key != kNone && (data.DiSEqC != oldDiSEqC || data.UsePositioner != oldUsePositioner)) -+ if (Key != kNone && (data.DiSEqC != oldDiSEqC || data.UsePositioner != oldUsePositioner || data.PowerdownEnabled != oldPowerdownEnabled)) - Setup(); - else if (DeviceBondingsChanged) - cDvbDevice::BondDevices(data.DeviceBondings); ---- a/vdr.c -+++ b/vdr.c -@@ -1443,6 +1443,12 @@ int main(int argc, char *argv[]) - - ReportEpgBugFixStats(); - -+ for (int i = 0; i < cDevice::NumDevices(); i++) { -+ cDevice *d = cDevice::GetDevice(i); -+ if (d) -+ d->CheckIdle(); -+ } -+ - // Main thread hooks of plugins: - PluginManager.MainThreadHook(); - } From ec76226b675e17bdda06279c73fe720eec328a77 Mon Sep 17 00:00:00 2001 From: Dirk Neukirchen Date: Sun, 14 Mar 2021 16:01:58 +0100 Subject: [PATCH 02/10] WIP : fix vdr-control Signed-off-by: Dirk Neukirchen --- vdr-control/Makefile | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/vdr-control/Makefile b/vdr-control/Makefile index 5bdbd3902..9debe2916 100644 --- a/vdr-control/Makefile +++ b/vdr-control/Makefile @@ -13,6 +13,7 @@ PKG_RELEASE := 1 PKG_BUILD_DIR := $(BUILD_DIR)/control-$(PKG_VERSION) PKG_SOURCE := $(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL := http://www.u32.de/download +PKG_HASH := 652e4f01d2bfbb7f070e8796a2dae1af21dc681d5f5375f0c41c023e9d058a77 PKG_LICENSE := GPL-2.0 PKG_LICENSE_FILE := COPYING @@ -25,14 +26,19 @@ define Package/vdr-control SECTION := multimedia CATEGORY := Multimedia TITLE := VDR telnet control plugin - DEPENDS := vdr + DEPENDS := vdr @BROKEN URL := https://www.u32.de/vdr.html#control endef + + define Package/vdr-control/description Control VDR with telnet. endef +# vdr-control for 1.6.0 - does it work with 2.4.6 ? +#TARGET_CFLAGS +=-std=c++98 + MAKE_FLAGS += \ VDRDIR=$(STAGING_DIR)/usr/include/vdr \ LIBDIR=$(PKG_BUILD_DIR) From 47f619ba611c72ff76b77fc22f72a7cd06b8ad35 Mon Sep 17 00:00:00 2001 From: Dirk Neukirchen Date: Sun, 14 Mar 2021 16:02:26 +0100 Subject: [PATCH 03/10] WIP: fix vdr-dummydevice Signed-off-by: Dirk Neukirchen --- vdr-dummydevice/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/vdr-dummydevice/Makefile b/vdr-dummydevice/Makefile index 0724456fd..2cba6a878 100644 --- a/vdr-dummydevice/Makefile +++ b/vdr-dummydevice/Makefile @@ -21,6 +21,7 @@ PKG_LICENSE_FILE := COPYING PKG_MAINTAINER := Tomasz Maciej Nowak include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/nls.mk define Package/vdr-dummydevice SECTION := multimedia From 0b4c29468db5e4b90fbf6ebeb5a5083558af3b7a Mon Sep 17 00:00:00 2001 From: Dirk Neukirchen Date: Sun, 14 Mar 2021 16:02:50 +0100 Subject: [PATCH 04/10] WIP: fix vdr-dvbapi Signed-off-by: Dirk Neukirchen --- vdr-dvbapi/Makefile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/vdr-dvbapi/Makefile b/vdr-dvbapi/Makefile index 7796cac0e..6b89be7bb 100644 --- a/vdr-dvbapi/Makefile +++ b/vdr-dvbapi/Makefile @@ -7,12 +7,12 @@ include $(TOPDIR)/rules.mk PKG_NAME := vdr-dvbapi -PKG_VERSION := 2.2.4 -PKG_RELEASE := 2 +PKG_VERSION := 2.2.5 +PKG_RELEASE := 1 PKG_SOURCE_PROTO := git PKG_SOURCE_URL := https://github.com/manio/vdr-plugin-dvbapi.git -PKG_SOURCE_VERSION := d7c75875430dfdee84b04a87ad15cca0410df40b +PKG_SOURCE_VERSION := cd1f00caa271c02641a13c541afaa9b3c0d695c1 PKG_LICENSE := GPL-2.0 PKG_LICENSE_FILE := COPYING @@ -20,6 +20,7 @@ PKG_LICENSE_FILE := COPYING PKG_MAINTAINER := Tomasz Maciej Nowak include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/nls.mk define Package/vdr-dvbapi SECTION := multimedia From 2737a663bbd65a05386fe9b9b15ad5ff77054324 Mon Sep 17 00:00:00 2001 From: Dirk Neukirchen Date: Sun, 14 Mar 2021 16:03:12 +0100 Subject: [PATCH 05/10] WIP: fix vdr-satip Signed-off-by: Dirk Neukirchen --- vdr-satip/Makefile | 16 +++++++++++++--- vdr-satip/patches/01-pkg-config.patch | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/vdr-satip/Makefile b/vdr-satip/Makefile index fd53473e3..3840a540c 100644 --- a/vdr-satip/Makefile +++ b/vdr-satip/Makefile @@ -7,12 +7,13 @@ include $(TOPDIR)/rules.mk PKG_NAME := vdr-satip -PKG_RELEASE := 2 +PKG_RELEASE := 1 PKG_SOURCE_PROTO := git PKG_SOURCE_URL := https://github.com/rofafor/vdr-plugin-satip.git -PKG_SOURCE_VERSION := 28cc3cae63b48810350c98b4e3c0b580b6a153f3 -PKG_VERSION := 2.2.5-$(shell printf '%.8s' $(PKG_SOURCE_VERSION)) +PKG_MIRROR_HASH := a076c0d26a42cdd19666168f945d4fac477051cbe6dc0a1383eb2f76dd6de6f5 +PKG_SOURCE_VERSION := 299296bbb1a7274e7c67abee64a6edc24bf965bc +PKG_VERSION := 2.4.0 PKG_LICENSE := GPL-2.0 PKG_LICENSE_FILE := COPYING @@ -20,6 +21,7 @@ PKG_LICENSE_FILE := COPYING PKG_MAINTAINER := Tomasz Maciej Nowak include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/nls.mk define Package/vdr-satip SECTION := multimedia @@ -33,6 +35,14 @@ define Package/vdr-satip/description VDR satip frontend device plugin. endef +TARGET_CXXFLAGS+= -std=gnu++98 + +# rework because dep of w-scan-cpp +#define Build/InstallDev +# $(INSTALL_DIR) $(1)/usr/include/vdr/PLUGIN/satip +# $(CP) $(PKG_BUILD_DIR)/satip.h $(1)/usr/include/vdr/PLUGIN/satip/ +#endef + define Package/vdr-satip/install $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR=$(1) install-lib install-conf diff --git a/vdr-satip/patches/01-pkg-config.patch b/vdr-satip/patches/01-pkg-config.patch index 1585c6880..7804b6be1 100644 --- a/vdr-satip/patches/01-pkg-config.patch +++ b/vdr-satip/patches/01-pkg-config.patch @@ -5,7 +5,7 @@ # Use package data if installed...otherwise assume we're under the VDR source directory: -PKGCFG = $(if $(VDRDIR),$(shell pkg-config --variable=$(1) $(VDRDIR)/vdr.pc),$(shell PKG_CONFIG_PATH="$$PKG_CONFIG_PATH:../../.." pkg-config --variable=$(1) vdr)) -+PKGCFG = $(shell pkg-config.real --variable=$(1) $(STAGING_DIR)/usr/lib/pkgconfig/vdr.pc) ++PKGCFG = $(shell $(STAGING_DIR_HOST)/bin/pkg-config --variable=$(1) $(STAGING_DIR)/usr/lib/pkgconfig/vdr.pc) LIBDIR = $(call PKGCFG,libdir) LOCDIR = $(call PKGCFG,locdir) PLGCFG = $(call PKGCFG,plgcfg) From 4e34608ed5034bec6210c67336f60b33004e1e1d Mon Sep 17 00:00:00 2001 From: Dirk Neukirchen Date: Sun, 14 Mar 2021 16:03:33 +0100 Subject: [PATCH 06/10] WIP: fix vdr-streamdev Signed-off-by: Dirk Neukirchen --- vdr-streamdev/Makefile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/vdr-streamdev/Makefile b/vdr-streamdev/Makefile index 5cc442265..0813a8d92 100644 --- a/vdr-streamdev/Makefile +++ b/vdr-streamdev/Makefile @@ -7,13 +7,13 @@ include $(TOPDIR)/rules.mk PKG_NAME := vdr-streamdev -PKG_RELEASE := 2 +PKG_RELEASE := 1 PKG_SOURCE_PROTO := git #PKG_SOURCE_URL := https://projects.vdr-developer.org/git/vdr-plugin-streamdev.git #PKG_SOURCE_VERSION := e2a9b979d3fb92967c7a6a8221e674eb7e55c813 PKG_SOURCE_URL := https://github.com/ciminus/vdr-plugin-streamdev.git -PKG_SOURCE_VERSION := acb1473661ef88d1283e64aa41d6cf0794a8c4d3 +PKG_SOURCE_VERSION := 5cb384ccd636870811bb5e7e227890dbdfc04ad5 PKG_VERSION := 0.6.1-$(shell printf '%.8s' $(PKG_SOURCE_VERSION)) PKG_LICENSE := GPL-2.0 @@ -22,6 +22,7 @@ PKG_LICENSE_FILE := COPYING PKG_MAINTAINER := Tomasz Maciej Nowak include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/nls.mk define Package/vdr-streamdev-client SECTION := multimedia From 70f964a4a7561e8cc45fffdd10374585e4bbf72b Mon Sep 17 00:00:00 2001 From: Dirk Neukirchen Date: Sun, 14 Mar 2021 16:03:52 +0100 Subject: [PATCH 07/10] WIP: fix vdr-vdrmanager Signed-off-by: Dirk Neukirchen --- vdr-vdrmanager/Makefile | 28 +++++++++++++++++----- vdr-vdrmanager/patches/01-pkg-config.patch | 4 ++-- 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/vdr-vdrmanager/Makefile b/vdr-vdrmanager/Makefile index 0e242cd80..19679a43d 100644 --- a/vdr-vdrmanager/Makefile +++ b/vdr-vdrmanager/Makefile @@ -7,18 +7,23 @@ include $(TOPDIR)/rules.mk PKG_NAME := vdr-vdrmanager -PKG_VERSION := 0.14 -PKG_RELEASE := 2 +PKG_SOURCE_DATE:=2019-10-10 +PKG_RELEASE := 1 -PKG_SOURCE := $(PKG_NAME)-$(PKG_VERSION).tgz -PKG_SOURCE_URL := https://projects.vdr-developer.org/attachments/download/1971 +PKG_SOURCE_PROTO:=git +PKG_SOURCE_URL:=https://projects.vdr-developer.org/git/vdr-manager.git +PKG_MIRROR_HASH:=ccdbaed5a69b09ed5afbedbd3c5d8858aea42bad86609352702e6009e06467fd +PKG_SOURCE_VERSION:=3a8b944ee18ae2db7e60bce1fb600d2b0ce6428c PKG_LICENSE := GPL-2.0 PKG_LICENSE_FILE := COPYING PKG_MAINTAINER := Tomasz Maciej Nowak +#PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_SOURCE_DATE)-3a8b944e/vdr-vdrmanager + include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/nls.mk define Package/vdr-vdrmanager SECTION := multimedia @@ -33,10 +38,21 @@ define Package/vdr-vdrmanager/description So you can browse the EPG, manage timers and wakeup your VDR from anywhere. endef -define Package/vdr-vdrmanager/install - $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR=$(1) install-lib +MAKE_PATH:=vdr-vdrmanager + +#define Build/Install +# $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR=$(1) install-lib +#endef +#define Build/Compile +# $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR=$(1) install +#endef + +define Package/vdr-vdrmanager/install $(INSTALL_DIR) $(1)/etc/vdr/conf.d + $(INSTALL_DIR) $(1)/usr/lib + $(CP) $(PKG_BUILD_DIR)/vdr-vdrmanager/libvdr-vdrmanager.so $(1)/usr/lib/ +# add .so.apiversion ? echo [vdrmanager] > $(1)/etc/vdr/conf.d/80-vdrmanager.conf endef diff --git a/vdr-vdrmanager/patches/01-pkg-config.patch b/vdr-vdrmanager/patches/01-pkg-config.patch index f607d8a10..17dae3a5d 100644 --- a/vdr-vdrmanager/patches/01-pkg-config.patch +++ b/vdr-vdrmanager/patches/01-pkg-config.patch @@ -1,5 +1,5 @@ ---- a/Makefile -+++ b/Makefile +--- a/vdr-vdrmanager/Makefile ++++ b/vdr-vdrmanager/Makefile @@ -16,7 +16,7 @@ VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).cpp | awk '{ p ### The directory environment: From 642576d1630749cc69fa3074b74352932f29a0ea Mon Sep 17 00:00:00 2001 From: Dirk Neukirchen Date: Sun, 14 Mar 2021 16:04:15 +0100 Subject: [PATCH 08/10] WIP: fix vdr-vnsiserver Signed-off-by: Dirk Neukirchen --- vdr-vnsiserver/Makefile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/vdr-vnsiserver/Makefile b/vdr-vnsiserver/Makefile index 0bb007c27..e44fbe7b9 100644 --- a/vdr-vnsiserver/Makefile +++ b/vdr-vnsiserver/Makefile @@ -7,12 +7,13 @@ include $(TOPDIR)/rules.mk PKG_NAME := vdr-vnsiserver -PKG_RELEASE := 2 +PKG_RELEASE := 1 PKG_SOURCE_PROTO := git PKG_SOURCE_URL := https://github.com/FernetMenta/vdr-plugin-vnsiserver.git -PKG_SOURCE_VERSION := 1fd5aeee87e0cd27ba6b7860d86efc57c2863fcb -PKG_VERSION := 1.5.2-$(shell printf '%.8s' $(PKG_SOURCE_VERSION)) +PKG_MIRROR_HASH := 52f975bc4e4b65aa95f6f43aeef0bd808bb44935ba0a0075bf4c5d6b4ae90a10 +PKG_SOURCE_VERSION := 49003f036609ee2a0b8d819979c063d8f8d348c8 +PKG_VERSION := 1.8.0 PKG_LICENSE := GPL-2.0 PKG_LICENSE_FILE := COPYING @@ -20,6 +21,7 @@ PKG_LICENSE_FILE := COPYING PKG_MAINTAINER := Tomasz Maciej Nowak include $(INCLUDE_DIR)/package.mk +include $(INCLUDE_DIR)/nls.mk define Package/vdr-vnsiserver SECTION := multimedia From 7d98f13b9859c6aa0c8ed04d51af6beda2de722f Mon Sep 17 00:00:00 2001 From: Dirk Neukirchen Date: Sun, 14 Mar 2021 16:04:45 +0100 Subject: [PATCH 09/10] WIP: fix dvb-apps Signed-off-by: Dirk Neukirchen --- dvb-apps/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/dvb-apps/Makefile b/dvb-apps/Makefile index aa18bbe81..ad7f4da70 100644 --- a/dvb-apps/Makefile +++ b/dvb-apps/Makefile @@ -13,6 +13,7 @@ PKG_RELEASE := 1 PKG_SOURCE := $(PKG_VERSION).tar.bz2 PKG_SOURCE_URL := https://www.linuxtv.org/hg/dvb-apps/archive/ +PKG_HASH := 6b3fc666d8f19046a05e96dbc548d24bd342f5333f8e68bf1f2b7ba2f7d30673 PKG_SOURCE_VERSION := 3d43b280298c PKG_LICENSE := GPL-2.0 LGPL-2.1 From ea706638f42f1b7e3291c6382f2e1737e84e48d5 Mon Sep 17 00:00:00 2001 From: Dirk Neukirchen Date: Sun, 14 Mar 2021 16:05:20 +0100 Subject: [PATCH 10/10] WIP: remove v4l-dvb use package/kernel/modules/dvb.mk Signed-off-by: Dirk Neukirchen --- v4l-dvb/Makefile | 85 -- v4l-dvb/common.mk | 218 ---- v4l-dvb/core.mk | 72 -- v4l-dvb/devices.mk | 80 -- .../linux/drivers/media/vtunerc/COMMITERS | 1 - .../files/linux/drivers/media/vtunerc/HISTORY | 10 - .../files/linux/drivers/media/vtunerc/Kconfig | 14 - .../linux/drivers/media/vtunerc/Makefile | 10 - .../files/linux/drivers/media/vtunerc/README | 66 - .../files/linux/drivers/media/vtunerc/TODO | 4 - .../linux/drivers/media/vtunerc/vtuner.h | 114 -- .../drivers/media/vtunerc/vtunerc_ctrldev.c | 451 ------- .../drivers/media/vtunerc/vtunerc_main.c | 427 ------- .../drivers/media/vtunerc/vtunerc_priv.h | 120 -- .../drivers/media/vtunerc/vtunerc_proxyfe.c | 530 -------- v4l-dvb/frontends.mk | 950 --------------- v4l-dvb/origin/Config.in | 23 - v4l-dvb/origin/linuxtv.mk | 13 - v4l-dvb/origin/selected.mk | 6 - v4l-dvb/origin/tbsdtv.mk | 13 - v4l-dvb/other.mk | 21 - ...at-code-for-pm_runtime_get_if_in_use.patch | 34 - .../099-disable-sybols-and-drivers.patch | 15 - .../100-add-vtunerc-build.patch | 31 - ...at-code-for-pm_runtime_get_if_in_use.patch | 34 - .../099-disable-sybols-and-drivers.patch | 15 - .../100-add-vtunerc-build.patch | 31 - .../patches-tbsdtv/101-fix-unreachable.patch | 31 - v4l-dvb/pci.mk | 431 ------- v4l-dvb/tuners.mk | 328 ----- v4l-dvb/usb.mk | 1061 ----------------- 31 files changed, 5239 deletions(-) delete mode 100644 v4l-dvb/Makefile delete mode 100644 v4l-dvb/common.mk delete mode 100644 v4l-dvb/core.mk delete mode 100644 v4l-dvb/devices.mk delete mode 100644 v4l-dvb/files/linux/drivers/media/vtunerc/COMMITERS delete mode 100644 v4l-dvb/files/linux/drivers/media/vtunerc/HISTORY delete mode 100644 v4l-dvb/files/linux/drivers/media/vtunerc/Kconfig delete mode 100644 v4l-dvb/files/linux/drivers/media/vtunerc/Makefile delete mode 100644 v4l-dvb/files/linux/drivers/media/vtunerc/README delete mode 100644 v4l-dvb/files/linux/drivers/media/vtunerc/TODO delete mode 100644 v4l-dvb/files/linux/drivers/media/vtunerc/vtuner.h delete mode 100644 v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_ctrldev.c delete mode 100644 v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_main.c delete mode 100644 v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_priv.h delete mode 100644 v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_proxyfe.c delete mode 100644 v4l-dvb/frontends.mk delete mode 100644 v4l-dvb/origin/Config.in delete mode 100644 v4l-dvb/origin/linuxtv.mk delete mode 100644 v4l-dvb/origin/selected.mk delete mode 100644 v4l-dvb/origin/tbsdtv.mk delete mode 100644 v4l-dvb/other.mk delete mode 100644 v4l-dvb/patches-linuxtv/001-Revert-build-Add-compat-code-for-pm_runtime_get_if_in_use.patch delete mode 100644 v4l-dvb/patches-linuxtv/099-disable-sybols-and-drivers.patch delete mode 100644 v4l-dvb/patches-linuxtv/100-add-vtunerc-build.patch delete mode 100644 v4l-dvb/patches-tbsdtv/001-Revert-build-Add-compat-code-for-pm_runtime_get_if_in_use.patch delete mode 100644 v4l-dvb/patches-tbsdtv/099-disable-sybols-and-drivers.patch delete mode 100644 v4l-dvb/patches-tbsdtv/100-add-vtunerc-build.patch delete mode 100644 v4l-dvb/patches-tbsdtv/101-fix-unreachable.patch delete mode 100644 v4l-dvb/pci.mk delete mode 100644 v4l-dvb/tuners.mk delete mode 100644 v4l-dvb/usb.mk diff --git a/v4l-dvb/Makefile b/v4l-dvb/Makefile deleted file mode 100644 index d6abb45b0..000000000 --- a/v4l-dvb/Makefile +++ /dev/null @@ -1,85 +0,0 @@ -# -# Copyright (C) 2011 OpenWrt.org -# Copyright (C) 2017-2018 Tomasz Maciej Nowak -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# -include $(TOPDIR)/rules.mk -include $(INCLUDE_DIR)/kernel.mk - -include ./origin/selected.mk - -PKG_RELEASE := 1 - -PKG_LICENSE := GPL-2.0 -PKG_MAINTAINER := Tomasz Maciej Nowak - -PKG_BUILD_PARALLEL := 1 -PKG_INSTALL := 1 - -SCAN_DEPS = *.mk - -include $(INCLUDE_DIR)/package.mk - -MAKE_VARS += \ - TOPDIR="" \ - KDIR=$(LINUX_DIR) \ - DIR=$(LINUX_DIR) \ - SRCDIR=$(LINUX_DIR) - -define Build/Prepare - $(call Build/Prepare/Default) - - (if [ -s $(DL_DIR)/$(V4L_SOURCE_FILE) ]; \ - then $(CP) $(DL_DIR)/$(V4L_SOURCE_FILE) $(PKG_BUILD_DIR)/linux/linux-media.tar.bz2; \ - else if [ -d $(DL_DIR)/$(V4L_REPO_NAME) ]; \ - then (cd $(DL_DIR)/$(V4L_REPO_NAME); git checkout HEAD; git pull); \ - else git clone --single-branch $(V4L_SOURCE_URL) $(DL_DIR)/$(V4L_REPO_NAME); \ - fi; \ - cd $(DL_DIR)/$(V4L_REPO_NAME); git checkout $(V4L_SOURCE_VERSION); \ - cd $(PKG_BUILD_DIR)/linux; make tar DIR=$(DL_DIR)/$(V4L_REPO_NAME); \ - $(CP) linux-media.tar.bz2 $(DL_DIR)/$(V4L_SOURCE_FILE); \ - fi;) - - $(MAKE) -C $(PKG_BUILD_DIR) untar - $(CP) ./files/* $(PKG_BUILD_DIR)/ -endef - -define Build/Configure - $(call Build/Compile/Default,allyesconfig) -endef - -define Build/InstallDev - $(INSTALL_DIR) $(1)/usr/include/v4l-dvb - $(CP) $(PKG_BUILD_DIR)/linux/include/* $(1)/usr/include/v4l-dvb/ -endef - -define Build/Install - touch $(PKG_BUILD_DIR)/.built -endef - -DVB_MENU := DVB Drivers - -define KernelPackage/media - TITLE := V4L/DVB Drivers - URL := http://www.linuxtv.org - HIDDEN := y - V4L_KCONFIG := \ - CONFIG_MEDIA_SUPPORT=m \ - CONFIG_VIDEO_KERNEL_VERSION=y - FILES := $(PKG_BUILD_DIR)/v4l/media.ko - AUTOLOAD := $(call AutoProbe,media) - DEPENDS := @PCI_SUPPORT||USB_SUPPORT -endef -define KernelPackage/media/config - source "$(SOURCE)/origin/Config.in" -endef - -define KernelPackage/media/description - Live development version of V4L and DVB driver -endef - -$(eval $(call KernelPackage,media)) - -include $(sort $(wildcard ./*.mk)) diff --git a/v4l-dvb/common.mk b/v4l-dvb/common.mk deleted file mode 100644 index 3afc4d10d..000000000 --- a/v4l-dvb/common.mk +++ /dev/null @@ -1,218 +0,0 @@ -define KernelPackage/b2c2-flexcop - SUBMENU := $(DVB_MENU) - TITLE := B2C2 Flexcop receiver chip - V4L_KCONFIG := CONFIG_DVB_B2C2_FLEXCOP - FILES := $(PKG_BUILD_DIR)/v4l/b2c2-flexcop.ko - AUTOLOAD := $(call AutoProbe,b2c2-flexcop) - DEPENDS := +kmod-dvb-core +kmod-dvb-cx24113 +kmod-dvb-cx24123 +kmod-dvb-s5h1420 -endef - -define KernelPackage/b2c2-flexcop/description - B2C2 FlexcopII/II(b)/III digital TV receiver chip. -endef - -$(eval $(call KernelPackage,b2c2-flexcop)) - - -define KernelPackage/cx2341x - SUBMENU := $(DVB_MENU) - TITLE := cx23415/6/8 driver - V4L_KCONFIG := CONFIG_DVB_CX2341X - FILES := $(PKG_BUILD_DIR)/v4l/cx2341x.ko - AUTOLOAD := $(call AutoProbe,cx2341x) - DEPENDS := +kmod-v4l2-core -endef - -define KernelPackage/cx2341x/description - Common routines for Conexant cx23415/6/8 drivers. -endef - -$(eval $(call KernelPackage,cx2341x)) - - -define KernelPackage/cypress-firmware - SUBMENU := $(DVB_MENU) - TITLE := Cypress firmware helper routines - V4L_KCONFIG := CONFIG_CYPRESS_FIRMWARE - FILES := $(PKG_BUILD_DIR)/v4l/cypress_firmware.ko - AUTOLOAD := $(call AutoProbe,cypress-firmware) - DEPENDS := +kmod-usb-core -endef - -define KernelPackage/cypress-firmware/description - Helper module for Cypress firmware download. -endef - -$(eval $(call KernelPackage,cypress-firmware)) - - -define KernelPackage/saa7146 - SUBMENU := $(DVB_MENU) - TITLE := NXP/Philips SAA7146 - V4L_KCONFIG := CONFIG_VIDEO_SAA7146 - FILES := $(PKG_BUILD_DIR)/v4l/saa7146.ko - AUTOLOAD := $(call AutoProbe,saa7146) - DEPENDS := @PCI_SUPPORT -endef - -define KernelPackage/saa7146/description - NXP/Philips SAA7146 multimedia bridge to PCI bus. -endef - -$(eval $(call KernelPackage,saa7146)) - - -define KernelPackage/saa7146-vv - SUBMENU := $(DVB_MENU) - TITLE := video4linux driver for SAA7146-based hardware - V4L_KCONFIG := CONFIG_VIDEO_SAA7146_VV - FILES := $(PKG_BUILD_DIR)/v4l/saa7146_vv.ko - AUTOLOAD := $(call AutoProbe,saa7146_vv) - DEPENDS := +kmod-saa7146 +kmod-v4l2-core +kmod-videobuf -endef - -$(eval $(call KernelPackage,saa7146-vv)) - - -define KernelPackage/smsmdtv - SUBMENU := $(DVB_MENU) - TITLE := Siano Mobile Silicon Digital TV device - V4L_KCONFIG := CONFIG_SMS_SIANO_MDTV - FILES := $(PKG_BUILD_DIR)/v4l/smsmdtv.ko - AUTOLOAD := $(call AutoProbe,smsmdtv) - DEPENDS := +kmod-dvb-core +kmod-rc-core -endef - -$(eval $(call KernelPackage,smsmdtv)) - - -define KernelPackage/ttpci-eeprom - SUBMENU := $(DVB_MENU) - TITLE := TechnoTrend eeprom helper - V4L_KCONFIG := CONFIG_TTPCI_EEPROM - FILES := $(PKG_BUILD_DIR)/v4l/ttpci-eeprom.ko - AUTOLOAD := $(call AutoProbe,ttpci-eeprom) - DEPENDS := +kmod-i2c-core -endef - -define KernelPackage/ttpci-eeprom/description - Decode dvb_net MAC address from EEPROM of PCI DVB cards made by Siemens, Technotrend, Hauppauge. -endef - -$(eval $(call KernelPackage,ttpci-eeprom)) - - -define KernelPackage/tveeprom - SUBMENU := $(DVB_MENU) - TITLE := TV card eeprom decoder - V4L_KCONFIG := CONFIG_VIDEO_TVEEPROM - FILES := $(PKG_BUILD_DIR)/v4l/tveeprom.ko - AUTOLOAD := $(call AutoProbe,tveeprom) - DEPENDS := +kmod-i2c-core -endef - -define KernelPackage/tveeprom/description - Eeprom decoder for tvcard configuration eeproms. -endef - -$(eval $(call KernelPackage,tveeprom)) - - -define KernelPackage/videobuf2-common - SUBMENU := $(DVB_MENU) - TITLE := videobuf2 common lib - V4L_KCONFIG := CONFIG_VIDEOBUF2_CORE - FILES := $(PKG_BUILD_DIR)/v4l/videobuf2-common.ko - AUTOLOAD := $(call AutoProbe,videobuf2-common) - DEPENDS := +kmod-dma-buf +kmod-videodev - CONFLICTS := kmod-video-videobuf2 -endef - -$(eval $(call KernelPackage,videobuf2-common)) - - -define KernelPackage/videobuf2-dma-sg - SUBMENU := $(DVB_MENU) - TITLE := videobuf2 dma-sg lib - V4L_KCONFIG := CONFIG_VIDEOBUF2_DMA_SG - FILES := $(PKG_BUILD_DIR)/v4l/videobuf2-dma-sg.ko - AUTOLOAD := $(call AutoProbe,videobuf2-dma-sg) - DEPENDS := +kmod-videobuf2-memops - CONFLICTS := kmod-video-videobuf2 -endef - -$(eval $(call KernelPackage,videobuf2-dma-sg)) - - -define KernelPackage/videobuf2-dvb - SUBMENU := $(DVB_MENU) - TITLE := videobuf2 dvb lib - V4L_KCONFIG := CONFIG_VIDEOBUF2_DVB - FILES := $(PKG_BUILD_DIR)/v4l/videobuf2-dvb.ko - AUTOLOAD := $(call AutoProbe,videobuf2-dvb) - DEPENDS := +kmod-dvb-core - CONFLICTS := kmod-video-videobuf2 -endef - -$(eval $(call KernelPackage,videobuf2-dvb)) - - -define KernelPackage/videobuf2-memops - SUBMENU := $(DVB_MENU) - TITLE := videobuf2 memops lib - V4L_KCONFIG := CONFIG_VIDEOBUF2_MEMOPS - FILES := $(PKG_BUILD_DIR)/v4l/videobuf2-memops.ko - AUTOLOAD := $(call AutoProbe,videobuf2-memops) - DEPENDS := +kmod-videobuf2-common - CONFLICTS := kmod-video-videobuf2 -endef - -$(eval $(call KernelPackage,videobuf2-memops)) - - -define KernelPackage/videobuf2-v4l2 - SUBMENU := $(DVB_MENU) - TITLE := videobuf2 v4l2 lib - V4L_KCONFIG := CONFIG_VIDEOBUF2_V4L2 - FILES := $(PKG_BUILD_DIR)/v4l/videobuf2-v4l2.ko - AUTOLOAD := $(call AutoProbe,videobuf2-v4l2) - DEPENDS := +kmod-videobuf2-common - CONFLICTS := kmod-video-videobuf2 -endef - -$(eval $(call KernelPackage,videobuf2-v4l2)) - - -define KernelPackage/videobuf2-vmalloc - SUBMENU := $(DVB_MENU) - TITLE := videobuf2 vmalloc lib - V4L_KCONFIG := CONFIG_VIDEOBUF2_VMALLOC - FILES := $(PKG_BUILD_DIR)/v4l/videobuf2-vmalloc.ko - AUTOLOAD := $(call AutoProbe,videobuf2-vmalloc) - DEPENDS := +kmod-videobuf2-memops - CONFLICTS := kmod-video-videobuf2 -endef - -$(eval $(call KernelPackage,videobuf2-vmalloc)) - - -define KernelPackage/videobuf - SUBMENU := $(DVB_MENU) - TITLE := videobuf lib - V4L_KCONFIG := \ - CONFIG_VIDEOBUF_DMA_SG \ - CONFIG_VIDEOBUF_GEN \ - CONFIG_VIDEOBUF_VMALLOC - FILES := \ - $(PKG_BUILD_DIR)/v4l/videobuf-core.ko \ - $(PKG_BUILD_DIR)/v4l/videobuf-dma-sg.ko \ - $(PKG_BUILD_DIR)/v4l/videobuf-vmalloc.ko - AUTOLOAD := $(call AutoProbe,videobuf-core videobuf-vmalloc) - CONFLICTS := kmod-video-videobuf2 -endef - -define KernelPackage/videobuf/description - Helper module to manage video4linux buffers. -endef - -$(eval $(call KernelPackage,videobuf)) diff --git a/v4l-dvb/core.mk b/v4l-dvb/core.mk deleted file mode 100644 index 533900af0..000000000 --- a/v4l-dvb/core.mk +++ /dev/null @@ -1,72 +0,0 @@ -define KernelPackage/dvb-core - SUBMENU := $(DVB_MENU) - TITLE := DVB core support - V4L_KCONFIG := \ - CONFIG_DVB_CORE \ - CONFIG_DVB_DEMUX_SECTION_LOSS_LOG=n \ - CONFIG_DVB_DYNAMIC_MINORS=n \ - CONFIG_DVB_MAX_ADAPTERS=16 \ - CONFIG_DVB_NET=y \ - CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y - FILES := $(PKG_BUILD_DIR)/v4l/dvb-core.ko - AUTOLOAD := $(call AutoProbe,dvb-core) - DEPENDS += +kmod-media +kmod-videobuf2-vmalloc -endef - -define KernelPackage/dvb-core/description - Kernel modules for DVB support. -endef - -$(eval $(call KernelPackage,dvb-core)) - - -define KernelPackage/rc-core - SUBMENU := $(DVB_MENU) - TITLE := Remote Controller support - V4L_KCONFIG := \ - CONFIG_MEDIA_RC_SUPPORT=y \ - CONFIG_RC_CORE - FILES := $(PKG_BUILD_DIR)/v4l/rc-core.ko - AUTOLOAD := $(call AutoProbe,rc-core) - DEPENDS := +kmod-media +kmod-input-core -endef - -define KernelPackage/rc-core/description - Enable support for Remote Controllers on Linux. This is - needed in order to support several video capture adapters, - standalone IR receivers/transmitters, and RF receivers. - - Enable this option if you have a video capture board even - if you don't need IR, as otherwise, you may not be able to - compile the driver for your adapter. -endef - -$(eval $(call KernelPackage,rc-core)) - - -define KernelPackage/v4l2-core - SUBMENU := $(DVB_MENU) - TITLE := Misc helper functions for v4l2 device drivers - V4L_KCONFIG := \ - CONFIG_MEDIA_SUPPORT \ - CONFIG_VIDEO_V4L2=y - FILES := $(PKG_BUILD_DIR)/v4l/v4l2-common.ko - AUTOLOAD := $(call AutoProbe,v4l2-common videodev) - DEPENDS := +kmod-videodev - CONFLICTS := kmod-video-core -endef - -$(eval $(call KernelPackage,v4l2-core)) - - -define KernelPackage/videodev - SUBMENU := $(DVB_MENU) - TITLE := Device registrar for Video4Linux drivers v2 - V4L_KCONFIG := CONFIG_VIDEO_DEV=y - FILES := $(PKG_BUILD_DIR)/v4l/videodev.ko - AUTOLOAD := $(call AutoProbe,videodev) - DEPENDS := +kmod-i2c-core +kmod-media - CONFLICTS := kmod-video-core -endef - -$(eval $(call KernelPackage,videodev)) diff --git a/v4l-dvb/devices.mk b/v4l-dvb/devices.mk deleted file mode 100644 index c37123efe..000000000 --- a/v4l-dvb/devices.mk +++ /dev/null @@ -1,80 +0,0 @@ -define Package/generic-as102 - SECTION := dvb-devices - CATEGORY := DVB devices - SUBMENU := Terrestrial (DVB-T/T2) - TITLE := Abilis 102 based - DEPENDS := +as102-firmware +kmod-dvb-as102 +kmod-dvb-as102-fe -endef - -define Package/generic-as102/description - Supported: - ADB-100T NBox DVB-T USB dongle. -endef - -define Package/generic-as102/install - $(INSTALL_DIR) $(1)/etc -endef - -$(eval $(call BuildPackage,generic-as102)) - - -define Package/generic-dib0700 - SECTION := dvb-devices - CATEGORY := DVB devices - SUBMENU := Terrestrial (DVB-T/T2) - TITLE := Dibcom 0700 based - DEPENDS := +dib0700-firmware +kmod-dvb-dib0070 +kmod-dvb-dib0090 +kmod-dvb-dib3000mc +kmod-dvb-dib7000m +kmod-dvb-dib7000p +kmod-dvb-usb-dib0700 -endef - -define Package/generic-dib0700/description - Supported: - Medion CTX1921 (V2.1.2) USB DVB-T dongle. -endef - -define Package/generic-dib0700/install - $(INSTALL_DIR) $(1)/etc -endef - -$(eval $(call BuildPackage,generic-dib0700)) - - -define Package/generic-it9135 - SECTION := dvb-devices - CATEGORY := DVB devices - SUBMENU := Terrestrial (DVB-T/T2) - TITLE := ITE 9135 based - DEPENDS := +it9135-firmware +kmod-dvb-af9033 +kmod-dvb-usb-af9035 +kmod-media-tuner-it913x -endef - -define Package/generic-it9135/description - Supported: - HDTV USB DVB-T dongle, - WandTV DVB-T digital terrestrial TV stick (EzTV869 1.0). -endef - -define Package/generic-it9135/install - $(INSTALL_DIR) $(1)/etc -endef - -$(eval $(call BuildPackage,generic-it9135)) - - -define Package/tt-ct-4650-ci - SECTION := dvb-devices - CATEGORY := DVB devices - SUBMENU := Multistandard - TITLE := TechnoTrend Connect CT2-4650 CI - DEPENDS := +si2158-firmware +si2168-firmware +kmod-media-tuner-si2157 +kmod-dvb-si2168 +kmod-dvb-sp2 +kmod-dvb-ts2020 +kmod-dvb-usb-dvbsky -endef - -define Package/tt-ct-4650-ci/description - Supported: - TechnoTrend Connect CT2-4650 CI v1, - TechnoTrend Connect CT2-4650 CI v1.1. -endef - -define Package/tt-ct-4650-ci/install - $(INSTALL_DIR) $(1)/etc -endef - -$(eval $(call BuildPackage,tt-ct-4650-ci)) diff --git a/v4l-dvb/files/linux/drivers/media/vtunerc/COMMITERS b/v4l-dvb/files/linux/drivers/media/vtunerc/COMMITERS deleted file mode 100644 index a00b18dd2..000000000 --- a/v4l-dvb/files/linux/drivers/media/vtunerc/COMMITERS +++ /dev/null @@ -1 +0,0 @@ -Honza Petrous (jpetrous@smartimp.cz) diff --git a/v4l-dvb/files/linux/drivers/media/vtunerc/HISTORY b/v4l-dvb/files/linux/drivers/media/vtunerc/HISTORY deleted file mode 100644 index 0b9062683..000000000 --- a/v4l-dvb/files/linux/drivers/media/vtunerc/HISTORY +++ /dev/null @@ -1,10 +0,0 @@ -r0: 2011-06-23 -Initial version publiced on linux-media on 19th July 2011 (slightly modified by removing backward compatibility) - -r2: 2011-06-28 -Added DVB-C support. Thanks to Gerald - -r3: 2011-06-30 -v1.1 - write() is now reading only whole TS packets. Added module parameter 'tscheck=1' to enable TS data checking - -Latest history can be found in source repository diff --git a/v4l-dvb/files/linux/drivers/media/vtunerc/Kconfig b/v4l-dvb/files/linux/drivers/media/vtunerc/Kconfig deleted file mode 100644 index 80ec80e0d..000000000 --- a/v4l-dvb/files/linux/drivers/media/vtunerc/Kconfig +++ /dev/null @@ -1,14 +0,0 @@ -config DVB_VTUNERC - tristate "Virtual DVB adapters support" - depends on DVB_CORE - ---help--- - Support for virtual DVB adapter. - - Choose Y here if you want to access DVB device residing on other - computers using vtuner protocol. To compile this driver as a module, - choose M here: the module will be called vtunerc. - - To connect remote DVB device, you also need to install the user space - vtunerc command which can be found in the Dreamtuner package, available - from http://code.google.com/p/dreamtuner/. - diff --git a/v4l-dvb/files/linux/drivers/media/vtunerc/Makefile b/v4l-dvb/files/linux/drivers/media/vtunerc/Makefile deleted file mode 100644 index a22e92590..000000000 --- a/v4l-dvb/files/linux/drivers/media/vtunerc/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -# -# Makefile for the vtunerc device driver -# - -vtunerc-objs = vtunerc_main.o vtunerc_ctrldev.o vtunerc_proxyfe.o - -obj-$(CONFIG_DVB_VTUNERC) += vtunerc.o - -ccflags-y += -Idrivers/media/vtunerc -ccflags-y += -DVTUNERC_MAX_ADAPTERS=16 diff --git a/v4l-dvb/files/linux/drivers/media/vtunerc/README b/v4l-dvb/files/linux/drivers/media/vtunerc/README deleted file mode 100644 index ca4960612..000000000 --- a/v4l-dvb/files/linux/drivers/media/vtunerc/README +++ /dev/null @@ -1,66 +0,0 @@ -vtunerc linux kernel driver is part of virtualized DVB -adapter project named "vtuner". - -Please read more information on project home page: -http://code.google.com/p/vtuner/ - -Because of very forbiddingly reaction of some -DVB developers on driver review the driver stays outside -of kernel source code. - -Developers are doing theirs best to stay in sync -with kernel DVB changes every time when some -of that occurs. - -Of course, any patches or other help are highly welcome. - -Honza - - - - ---- old notices follow --- - -// only few comments, yet ;) - -Driver needs companion userspace applications from http://code.google.com/p/dreamtuner/ - -Devices permissions: - - Driver is registering the following devices: - - DVB: - - /dev/dvb/adapterX/demux0 - /dev/dvb/adapterX/dvr0 - /dev/dvb/adapterX/frontend0 [registered later] - - controlling: - - /dev/vtunerX - - where X is ordered by driver installation. - - All devices get default device permissions, what usually - can't be exactly what we need (like 660 root/root). - - There is no simple way of changing permissions of - created files from driver. - - The only right(tm) way is using some upper layer - subsystem. What means, int time of writing such notes, - writing udev rules. - - This rule works: - - KERNEL=="vtunerc*", MODE="0666" - - put it in /etc/udev/rules.d/10-local.rules (in Gentoo) - - ... - ... - ... - - How to write udev rule: http://hackaday.com/2009/09/18/how-to-write-udev-rules/ - - Bug on Fedora: http://www.linuxquestions.org/questions/fedora-35/permissions-on-dvb-card-432770/ diff --git a/v4l-dvb/files/linux/drivers/media/vtunerc/TODO b/v4l-dvb/files/linux/drivers/media/vtunerc/TODO deleted file mode 100644 index e25add0fd..000000000 --- a/v4l-dvb/files/linux/drivers/media/vtunerc/TODO +++ /dev/null @@ -1,4 +0,0 @@ -unsorted: - -* cleaning /dev/vtunerc API -* better statistics & debugging diff --git a/v4l-dvb/files/linux/drivers/media/vtunerc/vtuner.h b/v4l-dvb/files/linux/drivers/media/vtunerc/vtuner.h deleted file mode 100644 index 72dac63ee..000000000 --- a/v4l-dvb/files/linux/drivers/media/vtunerc/vtuner.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - * vtunerc: /dev/vtunerc API - * - * Copyright (C) 2010-11 Honza Petrous - * [based on dreamtuner userland code by Roland Mieslinger] - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation version 2. - * - * This program is distributed WITHOUT ANY WARRANTY of any - * kind, whether express or implied; without even the implied warranty - * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#ifndef _VTUNER_H_ -#define _VTUNER_H_ - -#include -#include -#include - -#define VT_NULL 0x00 -#define VT_S 0x01 -#define VT_C 0x02 -#define VT_T 0x04 -#define VT_S2 0x08 - -#define MSG_SET_FRONTEND 1 -#define MSG_GET_FRONTEND 2 -#define MSG_READ_STATUS 3 -#define MSG_READ_BER 4 -#define MSG_READ_SIGNAL_STRENGTH 5 -#define MSG_READ_SNR 6 -#define MSG_READ_UCBLOCKS 7 -#define MSG_SET_TONE 8 -#define MSG_SET_VOLTAGE 9 -#define MSG_ENABLE_HIGH_VOLTAGE 10 -#define MSG_SEND_DISEQC_MSG 11 -#define MSG_SEND_DISEQC_BURST 13 -#define MSG_PIDLIST 14 -#define MSG_TYPE_CHANGED 15 -#define MSG_SET_PROPERTY 16 -#define MSG_GET_PROPERTY 17 - -#define MSG_NULL 1024 -#define MSG_DISCOVER 1025 -#define MSG_UPDATE 1026 - -struct diseqc_master_cmd { - u8 msg[6]; - u8 msg_len; -}; - -struct vtuner_message { - s32 type; - union { - struct { - u32 frequency; - u8 inversion; - union { - struct { - u32 symbol_rate; - u32 fec_inner; - } qpsk; - struct { - u32 symbol_rate; - u32 fec_inner; - u32 modulation; - } qam; - struct { - u32 bandwidth; - u32 code_rate_HP; - u32 code_rate_LP; - u32 constellation; - u32 transmission_mode; - u32 guard_interval; - u32 hierarchy_information; - } ofdm; - struct { - u32 modulation; - } vsb; - } u; - } fe_params; - struct dtv_property prop; - u32 status; - u32 ber; - u16 ss; - u16 snr; - u32 ucb; - u8 tone; - u8 voltage; - struct diseqc_master_cmd diseqc_master_cmd; - u8 burst; - u16 pidlist[30]; - u8 pad[72]; - u32 type_changed; - } body; -}; - -#define VTUNER_MAJOR 226 - -/*#define PVR_FLUSH_BUFFER _IO(VTUNER_MAJOR, 0)*/ -#define VTUNER_GET_MESSAGE _IOR(VTUNER_MAJOR, 1, struct vtuner_message *) -#define VTUNER_SET_RESPONSE _IOW(VTUNER_MAJOR, 2, struct vtuner_message *) -#define VTUNER_SET_NAME _IOW(VTUNER_MAJOR, 3, char *) -#define VTUNER_SET_TYPE _IOW(VTUNER_MAJOR, 4, char *) -#define VTUNER_SET_FE_INFO _IOW(VTUNER_MAJOR, 6, struct dvb_frontend_info *) -#define VTUNER_SET_NUM_MODES _IOW(VTUNER_MAJOR, 7, int) -#define VTUNER_SET_MODES _IOW(VTUNER_MAJOR, 8, char *) - -#endif - diff --git a/v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_ctrldev.c b/v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_ctrldev.c deleted file mode 100644 index a88d515c0..000000000 --- a/v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_ctrldev.c +++ /dev/null @@ -1,451 +0,0 @@ -/* - * vtunerc: /dev/vtunerc device - * - * Copyright (C) 2010-11 Honza Petrous - * [Created 2010-03-23] - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation version 2. - * - * This program is distributed WITHOUT ANY WARRANTY of any - * kind, whether express or implied; without even the implied warranty - * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include -#include -#include -#include -#include - -#include -#include - -#include "vtunerc_priv.h" - -#define VTUNERC_CTRLDEV_MAJOR 266 -#define VTUNERC_CTRLDEV_NAME "vtunerc" - -#define VTUNER_MSG_LEN (sizeof(struct vtuner_message)) - -static ssize_t vtunerc_ctrldev_write(struct file *filp, const char *buff, - size_t len, loff_t *off) -{ - struct vtunerc_ctx *ctx = filp->private_data; - struct dvb_demux *demux = &ctx->demux; - int tailsize = len % 188; - - if (ctx->closing) - return -EINTR; - - if (len < 188) { - printk(KERN_ERR "vtunerc%d: Data are shorter then TS packet size (188B)\n", - ctx->idx); - return -EINVAL; - } - - len -= tailsize; - - // new buffer need to be allocated ? - if ((ctx->kernel_buf == NULL) || (len > ctx->kernel_buf_size)) { - // free old buffer - if (ctx->kernel_buf) { - kfree(ctx->kernel_buf); - ctx->kernel_buf = NULL; - ctx->kernel_buf_size = 0; - } - // allocate a bigger buffer - ctx->kernel_buf = kmalloc(len, GFP_KERNEL); - if (!ctx->kernel_buf) { - printk(KERN_ERR "vtunerc%d: unable to allocate buffer of %Zu bytes\n", ctx->idx, len); - return -ENOMEM; - } - ctx->kernel_buf_size = len; - printk(KERN_INFO "vtunerc%d: allocated buffer of %Zu bytes\n", ctx->idx, len); - } - - if (down_interruptible(&ctx->tswrite_sem)) { - return -ERESTARTSYS; - } - - if (copy_from_user(ctx->kernel_buf, buff, len)) { - printk(KERN_ERR "vtunerc%d: userdata passing error\n", - ctx->idx); - up(&ctx->tswrite_sem); - return -EINVAL; - } - - if (ctx->config->tscheck) { - int i; - - for (i = 0; i < len; i += 188) - if (ctx->kernel_buf[i] != 0x47) { /* start of TS packet */ - printk(KERN_ERR "vtunerc%d: Data not start on packet boundary: index=%d data=%02x %02x %02x %02x %02x ...\n", - ctx->idx, i / 188, ctx->kernel_buf[i], ctx->kernel_buf[i + 1], - ctx->kernel_buf[i + 2], ctx->kernel_buf[i + 3], ctx->kernel_buf[i + 4]); - up(&ctx->tswrite_sem); - return -EINVAL; - } - } - - ctx->stat_wr_data += len; - dvb_dmx_swfilter_packets(demux, ctx->kernel_buf, len / 188); - - up(&ctx->tswrite_sem); - -#ifdef CONFIG_PROC_FS - /* TODO: analyze injected data for statistics */ -#endif - - return len; -} - -static ssize_t vtunerc_ctrldev_read(struct file *filp, char __user *buff, - size_t len, loff_t *off) -{ - struct vtunerc_ctx *ctx = filp->private_data; - - ctx->stat_rd_data += len; - - /* read op is not using in current vtuner protocol */ - return 0 ; -} - -static int vtunerc_ctrldev_open(struct inode *inode, struct file *filp) -{ - struct vtunerc_ctx *ctx; - int minor; - - minor = MINOR(inode->i_rdev); - ctx = filp->private_data = vtunerc_get_ctx(minor); - if (ctx == NULL) - return -ENOMEM; - - ctx->stat_ctrl_sess++; - - /*FIXME: clear pidtab */ - - ctx->fd_opened++; - ctx->closing = 0; - - return 0; -} - -static int vtunerc_ctrldev_close(struct inode *inode, struct file *filp) -{ - struct vtunerc_ctx *ctx = filp->private_data; - int minor; - struct vtuner_message fakemsg; - - dprintk(ctx, "closing (fd_opened=%d)\n", ctx->fd_opened); - - ctx->fd_opened--; - ctx->closing = 1; - - minor = MINOR(inode->i_rdev); - - /* set FAKE response, to allow finish any waiters - in vtunerc_ctrldev_xchange_message() */ - ctx->ctrldev_response.type = 0; - dprintk(ctx, "faked response\n"); - wake_up_interruptible(&ctx->ctrldev_wait_response_wq); - - /* clear pidtab */ - dprintk(ctx, "sending pidtab cleared ...\n"); - if (down_interruptible(&ctx->xchange_sem)) - return -ERESTARTSYS; - memset(&fakemsg, 0, sizeof(fakemsg)); - vtunerc_ctrldev_xchange_message(ctx, &fakemsg, 0); - up(&ctx->xchange_sem); - dprintk(ctx, "pidtab clearing done\n"); - - return 0; -} - -static long vtunerc_ctrldev_ioctl(struct file *file, unsigned int cmd, - unsigned long arg) -{ - struct vtunerc_ctx *ctx = file->private_data; - int len, i, vtype, ret = 0; - - if (ctx->closing) - return -EINTR; - - if (down_interruptible(&ctx->ioctl_sem)) - return -ERESTARTSYS; - - switch (cmd) { - case VTUNER_SET_NAME: - dprintk(ctx, "msg VTUNER_SET_NAME\n"); - len = strlen((char *)arg) + 1; - ctx->name = kmalloc(len, GFP_KERNEL); - if (ctx->name == NULL) { - printk(KERN_ERR "vtunerc%d: no memory\n", ctx->idx); - ret = -ENOMEM; - break; - } - if (copy_from_user(ctx->name, (char *)arg, len)) { - kfree(ctx->name); - ret = -EFAULT; - break; - } - break; - - case VTUNER_SET_MODES: - dprintk(ctx, "msg VTUNER_SET_MODES\n"); - for (i = 0; i < ctx->num_modes; i++) - ctx->ctypes[i] = &(((char *)(arg))[i*32]); - if (ctx->num_modes != 1) { - printk(KERN_ERR "vtunerc%d: currently supported only num_modes = 1!\n", - ctx->idx); - ret = -EINVAL; - break; - } - /* follow into old code for compatibility */ - - case VTUNER_SET_TYPE: - dprintk(ctx, "msg VTUNER_SET_TYPE\n"); - if (strcasecmp((char *)arg, "DVB-S") == 0) { - vtype = VT_S; - printk(KERN_NOTICE "vtunerc%d: setting DVB-S tuner vtype\n", - ctx->idx); - } else - if (strcasecmp((char *)arg, "DVB-S2") == 0) { - vtype = VT_S2; - printk(KERN_NOTICE "vtunerc%d: setting DVB-S2 tuner vtype\n", - ctx->idx); - } else - if (strcasecmp((char *)arg, "DVB-T") == 0) { - vtype = VT_T; - printk(KERN_NOTICE "vtunerc%d: setting DVB-T tuner vtype\n", - ctx->idx); - } else - if (strcasecmp((char *)arg, "DVB-C") == 0) { - vtype = VT_C; - printk(KERN_NOTICE "vtunerc%d: setting DVB-C tuner vtype\n", - ctx->idx); - } else { - printk(KERN_ERR "vtunerc%d: unregognized tuner vtype '%s'\n", - ctx->idx, (char *)arg); - ret = -ENODEV; - break; - } - - if ((vtunerc_frontend_init(ctx, vtype))) { - ctx->vtype = 0; - printk(KERN_ERR "vtunerc%d: failed to initialize tuner's internals\n", - ctx->idx); - ret = -ENODEV; - break; - } - - break; - - - case VTUNER_SET_FE_INFO: - dprintk(ctx, "msg VTUNER_SET_FE_INFO\n"); - len = sizeof(struct dvb_frontend_info); - ctx->feinfo = kmalloc(len, GFP_KERNEL); - if (ctx->feinfo == NULL) { - printk(KERN_ERR "vtunerc%d: no mem\n", ctx->idx); - ret = -ENOMEM; - break; - } - if (copy_from_user(ctx->feinfo, (char *)arg, len)) { - kfree(ctx->feinfo); - ret = -EFAULT; - break; - } - break; - - case VTUNER_GET_MESSAGE: - dprintk(ctx, "msg VTUNER_GET_MESSAGE\n"); - if (wait_event_interruptible(ctx->ctrldev_wait_request_wq, - ctx->ctrldev_request.type != -1)) { - ret = -ERESTARTSYS; - break; - } - - BUG_ON(ctx->ctrldev_request.type == -1); - - if (copy_to_user((char *)arg, &ctx->ctrldev_request, - VTUNER_MSG_LEN)) { - ret = -EFAULT; - break; - } - - ctx->ctrldev_request.type = -1; - - if (ctx->noresponse) - up(&ctx->xchange_sem); - - break; - - case VTUNER_SET_RESPONSE: - dprintk(ctx, "msg VTUNER_SET_RESPONSE\n"); - if (copy_from_user(&ctx->ctrldev_response, (char *)arg, - VTUNER_MSG_LEN)) { - ret = -EFAULT; - } - wake_up_interruptible(&ctx->ctrldev_wait_response_wq); - - break; - - case VTUNER_SET_NUM_MODES: - dprintk(ctx, "msg VTUNER_SET_NUM_MODES (faked)\n"); - ctx->num_modes = (int) arg; - break; - - default: - printk(KERN_ERR "vtunerc%d: unknown IOCTL 0x%x\n", ctx->idx, cmd); - ret = -ENOTTY; /* Linus: the only correct one return value for unsupported ioctl */ - - break; - } - up(&ctx->ioctl_sem); - - return ret; -} - -static unsigned int vtunerc_ctrldev_poll(struct file *filp, poll_table *wait) -{ - struct vtunerc_ctx *ctx = filp->private_data; - unsigned int mask = 0; - - if (ctx->closing) - return -EINTR; - - poll_wait(filp, &ctx->ctrldev_wait_request_wq, wait); - - if (ctx->ctrldev_request.type > -1) { - mask = POLLPRI; - } - - return mask; -} - -/* ------------------------------------------------ */ - -static const struct file_operations vtunerc_ctrldev_fops = { - .owner = THIS_MODULE, - .unlocked_ioctl = vtunerc_ctrldev_ioctl, - .write = vtunerc_ctrldev_write, - .read = vtunerc_ctrldev_read, - .poll = (void *) vtunerc_ctrldev_poll, - .open = vtunerc_ctrldev_open, - .release = vtunerc_ctrldev_close -}; - -static struct class *pclass; -static struct cdev cdev; -static dev_t chdev; - -int vtunerc_register_ctrldev(struct vtunerc_ctx *ctx) -{ - int idx; - - chdev = MKDEV(VTUNERC_CTRLDEV_MAJOR, 0); - - if (register_chrdev_region(chdev, ctx->config->devices, VTUNERC_CTRLDEV_NAME)) { - printk(KERN_ERR "vtunerc%d: unable to get major %d\n", - ctx->idx, VTUNERC_CTRLDEV_MAJOR); - return -EINVAL; - } - - cdev_init(&cdev, &vtunerc_ctrldev_fops); - - cdev.owner = THIS_MODULE; - cdev.ops = &vtunerc_ctrldev_fops; - - if (cdev_add(&cdev, chdev, ctx->config->devices) < 0) - printk(KERN_WARNING "vtunerc%d: unable to create dev\n", - ctx->idx); - - pclass = class_create(THIS_MODULE, "vtuner"); - if (IS_ERR(pclass)) { - printk(KERN_ERR "vtunerc%d: unable to register major %d\n", - ctx->idx, VTUNERC_CTRLDEV_MAJOR); - return PTR_ERR(pclass); - } - - for (idx = 0; idx < ctx->config->devices; idx++) { - struct device *clsdev; - - clsdev = device_create(pclass, NULL, - MKDEV(VTUNERC_CTRLDEV_MAJOR, idx), - /*ctx*/ NULL, "vtunerc%d", idx); - - printk(KERN_NOTICE "vtunerc: registered /dev/vtunerc%d\n", - idx); - } - - return 0; -} - -void vtunerc_unregister_ctrldev(struct vtunerc_config *config) -{ - int idx; - - printk(KERN_NOTICE "vtunerc: unregistering\n"); - - unregister_chrdev_region(chdev, config->devices); - - for (idx = 0; idx < config->devices; idx++) - device_destroy(pclass, MKDEV(VTUNERC_CTRLDEV_MAJOR, idx)); - - cdev_del(&cdev); - - class_destroy(pclass); -} - - -int vtunerc_ctrldev_xchange_message(struct vtunerc_ctx *ctx, - struct vtuner_message *msg, int wait4response) -{ - dprintk(ctx, "XCH_MSG: %d: entered\n", msg->type); - if (down_interruptible(&ctx->xchange_sem)) - return -ERESTARTSYS; - - if (ctx->fd_opened < 1) { - //dprintk(ctx, "XCH_MSG: %d: no fd\n", msg->type); - up(&ctx->xchange_sem); - return 0; - } - dprintk(ctx, "XCH_MSG: %d: continue\n", msg->type); - -#if 0 - BUG_ON(ctx->ctrldev_request.type != -1); -#else - if(ctx->ctrldev_request.type != -1) - printk(KERN_WARNING "vtunerc%d: orphan request detected, type %d\n", ctx->idx, ctx->ctrldev_request.type); - -#endif - - memcpy(&ctx->ctrldev_request, msg, sizeof(struct vtuner_message)); - ctx->ctrldev_response.type = -1; - ctx->noresponse = !wait4response; - wake_up_interruptible(&ctx->ctrldev_wait_request_wq); - - if (!wait4response) - return 0; - - if (wait_event_interruptible(ctx->ctrldev_wait_response_wq, - ctx->ctrldev_response.type != -1)) { - dprintk(ctx, "XCH_MSG: %d: wait_event interrupted\n", msg->type); - ctx->ctrldev_request.type = -1; - up(&ctx->xchange_sem); - return -ERESTARTSYS; - } - - BUG_ON(ctx->ctrldev_response.type == -1); - - dprintk(ctx, "XCH_MSG: %d -> %d (DONE)\n", msg->type, ctx->ctrldev_response.type); - memcpy(msg, &ctx->ctrldev_response, sizeof(struct vtuner_message)); - ctx->ctrldev_response.type = -1; - - up(&ctx->xchange_sem); - - return 0; -} diff --git a/v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_main.c b/v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_main.c deleted file mode 100644 index 2b8c57ab1..000000000 --- a/v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_main.c +++ /dev/null @@ -1,427 +0,0 @@ -/* - * vtunerc: Virtual adapter driver - * - * Copyright (C) 2010-12 Honza Petrous - * [Created 2010-03-23] - * Sponsored by Smartimp s.r.o. for its NessieDVB.com box - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation version 2. - * - * This program is distributed WITHOUT ANY WARRANTY of any - * kind, whether express or implied; without even the implied warranty - * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include /* Specifically, a module */ -#include /* We're doing kernel work */ -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "vtunerc_priv.h" - -#define VTUNERC_MODULE_VERSION "1.4" - -DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr); - -#define DRIVER_NAME "vTuner proxy" - -#define VTUNERC_PROC_FILENAME "vtunerc%i" - -#ifndef VTUNERC_MAX_ADAPTERS -#define VTUNERC_MAX_ADAPTERS 4 -#endif - -static struct vtunerc_ctx *vtunerc_tbl[VTUNERC_MAX_ADAPTERS] = { NULL }; - -/* module params */ -static struct vtunerc_config config = { - .devices = 1, - .tscheck = 0, - .debug = 0 -}; - -static int pidtab_find_index(unsigned short *pidtab, int pid) -{ - int i = 0; - - while (i < MAX_PIDTAB_LEN) { - if (pidtab[i] == pid) - return i; - i++; - } - - return -1; -} - -static int pidtab_add_pid(unsigned short *pidtab, int pid) -{ - int i; - - /* TODO: speed-up hint: add pid sorted */ - - for (i = 0; i < MAX_PIDTAB_LEN; i++) - if (pidtab[i] == PID_UNKNOWN) { - pidtab[i] = pid; - return 0; - } - - return -1; -} - -static int pidtab_del_pid(unsigned short *pidtab, int pid) -{ - int i; - - /* TODO: speed-up hint: delete sorted */ - - for (i = 0; i < MAX_PIDTAB_LEN; i++) - if (pidtab[i] == pid) { - pidtab[i] = PID_UNKNOWN; - /* TODO: move rest */ - return 0; - } - - return -1; -} - -static void pidtab_copy_to_msg(struct vtunerc_ctx *ctx, - struct vtuner_message *msg) -{ - int i; - - for (i = 0; i < MAX_PIDTAB_LEN ; i++) - msg->body.pidlist[i] = ctx->pidtab[i]; /*TODO: optimize it*/ - /* msg->body.pidlist[MAX_PIDTAB_LEN - 1] = 0; */ -} - -static int vtunerc_start_feed(struct dvb_demux_feed *feed) -{ - struct dvb_demux *demux = feed->demux; - struct vtunerc_ctx *ctx = demux->priv; - struct vtuner_message msg; - - switch (feed->type) { - case DMX_TYPE_TS: - break; - case DMX_TYPE_SEC: - break; - default: - printk(KERN_ERR "vtunerc%d: feed type %d is not supported\n", - ctx->idx, feed->type); - return -EINVAL; - } - - if (feed->pid >= 0x2000 ) { - printk(KERN_ERR "vtunerc%d: full mux not supported\n",ctx->idx); - return -EINVAL; - } - - /* organize PID list table */ - if (pidtab_find_index(ctx->pidtab, feed->pid) < 0) { - pidtab_add_pid(ctx->pidtab, feed->pid); - - pidtab_copy_to_msg(ctx, &msg); - - msg.type = MSG_PIDLIST; - vtunerc_ctrldev_xchange_message(ctx, &msg, 0); - } - - return 0; -} - -static int vtunerc_stop_feed(struct dvb_demux_feed *feed) -{ - struct dvb_demux *demux = feed->demux; - struct vtunerc_ctx *ctx = demux->priv; - struct vtuner_message msg; - - /* organize PID list table */ - - if (pidtab_find_index(ctx->pidtab, feed->pid) > -1) { - pidtab_del_pid(ctx->pidtab, feed->pid); - - pidtab_copy_to_msg(ctx, &msg); - - msg.type = MSG_PIDLIST; - vtunerc_ctrldev_xchange_message(ctx, &msg, 0); - } - - return 0; -} - -/* ----------------------------------------------------------- */ - - -#ifdef CONFIG_PROC_FS - -static char *get_fe_name(struct dvb_frontend_info *feinfo) -{ - return (feinfo && feinfo->name) ? feinfo->name : "(not set)"; -} - -static int vtunerc_read_proc(struct seq_file *seq, void *v) -{ - int i, pcnt = 0; - struct vtunerc_ctx *ctx = (struct vtunerc_ctx *)seq->private; - seq_printf(seq, "[ vtunerc driver, version " - VTUNERC_MODULE_VERSION " ]\n"); - seq_printf(seq, " sessions: %u\n", ctx->stat_ctrl_sess); - seq_printf(seq, " TS data : %u\n", ctx->stat_wr_data); - seq_printf(seq, " PID tab :"); - for (i = 0; i < MAX_PIDTAB_LEN; i++) - if (ctx->pidtab[i] != PID_UNKNOWN) { - seq_printf(seq, " %x", ctx->pidtab[i]); - pcnt++; - } - seq_printf(seq, " (len=%d)\n", pcnt); - seq_printf(seq, " FE type : %s\n", get_fe_name(ctx->feinfo)); - seq_printf(seq, " msg xchg: %d/%d\n", ctx->ctrldev_request.type, ctx->ctrldev_response.type); - return 0; -} - -static int vtunerc_proc_open(struct inode *inode, struct file *file) -{ - int ret; - struct vtunerc_ctx *ctx = PDE_DATA(inode); - - if (!try_module_get(THIS_MODULE)) - return -ENODEV; - ret = single_open(file, vtunerc_read_proc, ctx); - if (ret) - module_put(THIS_MODULE); - return ret; -} - -static int vtuner_proc_release(struct inode *inode, struct file *file) -{ - int ret = single_release(inode, file); - module_put(THIS_MODULE); - return ret; -} - -static const struct file_operations vtunerc_read_proc_fops = { - .open = vtunerc_proc_open, - .read = seq_read, - .llseek = seq_lseek, - .release = vtuner_proc_release, - }; - -#endif - -static char *my_strdup(const char *s) -{ - char *rv = kmalloc(strlen(s)+1, GFP_KERNEL); - if (rv) - strcpy(rv, s); - return rv; -} - -struct vtunerc_ctx *vtunerc_get_ctx(int minor) -{ - if (minor >= VTUNERC_MAX_ADAPTERS) - return NULL; - - return vtunerc_tbl[minor]; -} - -static int __init vtunerc_init(void) -{ - struct vtunerc_ctx *ctx = NULL; - struct dvb_demux *dvbdemux; - struct dmx_demux *dmx; - int ret = -EINVAL, i, idx; - - printk(KERN_INFO "virtual DVB adapter driver, version " - VTUNERC_MODULE_VERSION - ", (c) 2010-12 Honza Petrous, SmartImp.cz\n"); - - request_module("dvb-core"); /* FIXME: dunno which way it should work :-/ */ - - for (idx = 0; idx < config.devices; idx++) { - ctx = kzalloc(sizeof(struct vtunerc_ctx), GFP_KERNEL); - if (!ctx) { - while(idx) - kfree(vtunerc_tbl[--idx]); - return -ENOMEM; - } - - vtunerc_tbl[idx] = ctx; - - ctx->idx = idx; - ctx->config = &config; - ctx->ctrldev_request.type = -1; - ctx->ctrldev_response.type = -1; - init_waitqueue_head(&ctx->ctrldev_wait_request_wq); - init_waitqueue_head(&ctx->ctrldev_wait_response_wq); - - // buffer - ctx->kernel_buf = NULL; - ctx->kernel_buf_size = 0; - - /* dvb */ - - /* create new adapter */ - ret = dvb_register_adapter(&ctx->dvb_adapter, DRIVER_NAME, - THIS_MODULE, NULL, adapter_nr); - if (ret < 0) - goto err_kfree; - - ctx->dvb_adapter.priv = ctx; - - memset(&ctx->demux, 0, sizeof(ctx->demux)); - dvbdemux = &ctx->demux; - dvbdemux->priv = ctx; - dvbdemux->filternum = MAX_PIDTAB_LEN; - dvbdemux->feednum = MAX_PIDTAB_LEN; - dvbdemux->start_feed = vtunerc_start_feed; - dvbdemux->stop_feed = vtunerc_stop_feed; - dvbdemux->dmx.capabilities = 0; - ret = dvb_dmx_init(dvbdemux); - if (ret < 0) - goto err_dvb_unregister_adapter; - - dmx = &dvbdemux->dmx; - - ctx->hw_frontend.source = DMX_FRONTEND_0; - ctx->mem_frontend.source = DMX_MEMORY_FE; - ctx->dmxdev.filternum = MAX_PIDTAB_LEN; - ctx->dmxdev.demux = dmx; - - ret = dvb_dmxdev_init(&ctx->dmxdev, &ctx->dvb_adapter); - if (ret < 0) - goto err_dvb_dmx_release; - - ret = dmx->add_frontend(dmx, &ctx->hw_frontend); - if (ret < 0) - goto err_dvb_dmxdev_release; - - ret = dmx->add_frontend(dmx, &ctx->mem_frontend); - if (ret < 0) - goto err_remove_hw_frontend; - - ret = dmx->connect_frontend(dmx, &ctx->hw_frontend); - if (ret < 0) - goto err_remove_mem_frontend; - - sema_init(&ctx->xchange_sem, 1); - sema_init(&ctx->ioctl_sem, 1); - sema_init(&ctx->tswrite_sem, 1); - - /* init pid table */ - for (i = 0; i < MAX_PIDTAB_LEN; i++) - ctx->pidtab[i] = PID_UNKNOWN; - -#ifdef CONFIG_PROC_FS - { - char procfilename[64]; - - sprintf(procfilename, VTUNERC_PROC_FILENAME, - ctx->idx); - ctx->procname = my_strdup(procfilename); - if (proc_create_data(ctx->procname, 0, NULL, - &vtunerc_read_proc_fops, - ctx) == 0) - printk(KERN_WARNING - "vtunerc%d: Unable to register '%s' proc file\n", - ctx->idx, ctx->procname); - } -#endif - } - - vtunerc_register_ctrldev(ctx); - -out: - return ret; - - dmx->disconnect_frontend(dmx); -err_remove_mem_frontend: - dmx->remove_frontend(dmx, &ctx->mem_frontend); -err_remove_hw_frontend: - dmx->remove_frontend(dmx, &ctx->hw_frontend); -err_dvb_dmxdev_release: - dvb_dmxdev_release(&ctx->dmxdev); -err_dvb_dmx_release: - dvb_dmx_release(dvbdemux); -err_dvb_unregister_adapter: - dvb_unregister_adapter(&ctx->dvb_adapter); -err_kfree: - kfree(ctx); - goto out; -} - -static void __exit vtunerc_exit(void) -{ - struct dvb_demux *dvbdemux; - struct dmx_demux *dmx; - int idx; - - vtunerc_unregister_ctrldev(&config); - - for (idx = 0; idx < config.devices; idx++) { - struct vtunerc_ctx *ctx = vtunerc_tbl[idx]; - if(!ctx) - continue; - vtunerc_tbl[idx] = NULL; -#ifdef CONFIG_PROC_FS - remove_proc_entry(ctx->procname, NULL); - kfree(ctx->procname); -#endif - - vtunerc_frontend_clear(ctx); - - dvbdemux = &ctx->demux; - dmx = &dvbdemux->dmx; - - dmx->disconnect_frontend(dmx); - dmx->remove_frontend(dmx, &ctx->mem_frontend); - dmx->remove_frontend(dmx, &ctx->hw_frontend); - dvb_dmxdev_release(&ctx->dmxdev); - dvb_dmx_release(dvbdemux); - dvb_unregister_adapter(&ctx->dvb_adapter); - - // free allocated buffer - if(ctx->kernel_buf != NULL) { - kfree(ctx->kernel_buf); - printk(KERN_INFO "vtunerc%d: deallocated buffer of %Zu bytes\n", idx, ctx->kernel_buf_size); - ctx->kernel_buf = NULL; - ctx->kernel_buf_size = 0; - - } - - kfree(ctx); - } - - printk(KERN_NOTICE "vtunerc: unloaded successfully\n"); -} - -module_init(vtunerc_init); -module_exit(vtunerc_exit); - -MODULE_AUTHOR("Honza Petrous"); -MODULE_DESCRIPTION("virtual DVB device"); -MODULE_LICENSE("GPL"); -MODULE_VERSION(VTUNERC_MODULE_VERSION); - -module_param_named(devices, config.devices, int, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP); -MODULE_PARM_DESC(devices, "Number of virtual adapters (default is 1)"); - -module_param_named(tscheck, config.tscheck, int, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP); -MODULE_PARM_DESC(tscheck, "Check TS packet validity (default is 0)"); - -module_param_named(debug, config.debug, int, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP); -MODULE_PARM_DESC(debug, "Enable debug messages (default is 0)"); - diff --git a/v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_priv.h b/v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_priv.h deleted file mode 100644 index ee13dd164..000000000 --- a/v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_priv.h +++ /dev/null @@ -1,120 +0,0 @@ -/* - * vtunerc: Internal defines - * - * Copyright (C) 2010-11 Honza Petrous - * [Created 2010-03-23] - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation version 2. - * - * This program is distributed WITHOUT ANY WARRANTY of any - * kind, whether express or implied; without even the implied warranty - * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#ifndef _VTUNERC_PRIV_H -#define _VTUNERC_PRIV_H - -#include /* Specifically, a module */ -#include /* We're doing kernel work */ -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "vtuner.h" - -#define MAX_PIDTAB_LEN 30 - -#define PID_UNKNOWN 0x0FFFF - -#define MAX_NUM_VTUNER_MODES 3 - -struct vtunerc_config { - - int debug; - int tscheck; - int devices; -}; - -struct vtunerc_ctx { - - /* DVB api */ - struct dmx_frontend hw_frontend; - struct dmx_frontend mem_frontend; - struct dmxdev dmxdev; - struct dmxdev dmxdev1; - struct dmxdev dmxdev2; - struct dvb_adapter dvb_adapter; - struct dvb_demux demux; - struct dvb_frontend *fe; - struct dvb_net dvbnet; - struct dvb_device *ca; - - /* internals */ - int idx; - char *name; - u8 vtype; - struct dvb_frontend_info *feinfo; - struct vtunerc_config *config; - - unsigned short pidtab[MAX_PIDTAB_LEN]; - - struct semaphore xchange_sem; - struct semaphore ioctl_sem; - struct semaphore tswrite_sem; - int fd_opened; - int closing; - - char *procname; - - char *kernel_buf; - ssize_t kernel_buf_size; - - /* ctrldev */ - char trail[188]; - unsigned int trailsize; - int noresponse; - int num_modes; - char *ctypes[MAX_NUM_VTUNER_MODES]; - struct vtuner_message ctrldev_request; - struct vtuner_message ctrldev_response; - wait_queue_head_t ctrldev_wait_request_wq; - wait_queue_head_t ctrldev_wait_response_wq; - - /* proc statistics */ - unsigned int stat_wr_data; - unsigned int stat_rd_data; - unsigned int stat_ctrl_sess; - unsigned short pidstat[MAX_PIDTAB_LEN]; -}; - -int vtunerc_register_ctrldev(struct vtunerc_ctx *ctx); -void vtunerc_unregister_ctrldev(struct vtunerc_config *config); -struct vtunerc_ctx *vtunerc_get_ctx(int minor); -int /*__devinit*/ vtunerc_frontend_init(struct vtunerc_ctx *ctx, int vtype); -int /*__devinit*/ vtunerc_frontend_clear(struct vtunerc_ctx *ctx); -int vtunerc_ctrldev_xchange_message(struct vtunerc_ctx *ctx, - struct vtuner_message *msg, - int wait4response); -#define dprintk(ctx, fmt, arg...) do { \ -if (ctx->config && (ctx->config->debug)) \ - printk(KERN_DEBUG "vtunerc%d: " fmt, ctx->idx, ##arg); \ -} while (0) - -/* backward compatibility stuff */ -#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0) -static inline void *PDE_DATA(const struct inode *inode) -{ - return PROC_I(inode)->pde->data; -} -#endif - -#endif diff --git a/v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_proxyfe.c b/v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_proxyfe.c deleted file mode 100644 index 53bec939d..000000000 --- a/v4l-dvb/files/linux/drivers/media/vtunerc/vtunerc_proxyfe.c +++ /dev/null @@ -1,530 +0,0 @@ -/* - * vtunerc: Driver for Proxy Frontend - * - * Copyright (C) 2010-12 Honza Petrous - * [Inspired on proxy frontend by Emard ] - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation version 2. - * - * This program is distributed WITHOUT ANY WARRANTY of any - * kind, whether express or implied; without even the implied warranty - * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - */ - -#include -#include -#include -#include - -#include - -#include "vtunerc_priv.h" - -#if (DVB_API_VERSION << 8 | DVB_API_VERSION_MINOR) < 0x0505 -#error ======================================================================== -#error Version 5.5 or newer of DVB API is required (see at linux/dvb/version.h) -#error You can find it in kernel version >= 3.3.0 -#error ======================================================================== -#endif - -struct dvb_proxyfe_state { - struct dvb_frontend frontend; - struct vtunerc_ctx *ctx; -}; - - -static int dvb_proxyfe_read_status(struct dvb_frontend *fe, enum fe_status *status) -{ - struct dvb_proxyfe_state *state = fe->demodulator_priv; - struct vtunerc_ctx *ctx = state->ctx; - struct vtuner_message msg; - - msg.type = MSG_READ_STATUS; - vtunerc_ctrldev_xchange_message(ctx, &msg, 1); - - *status = msg.body.status; - - return 0; -} - -static int dvb_proxyfe_read_ber(struct dvb_frontend *fe, u32 *ber) -{ - struct dvb_proxyfe_state *state = fe->demodulator_priv; - struct vtunerc_ctx *ctx = state->ctx; - struct vtuner_message msg; - - msg.type = MSG_READ_BER; - vtunerc_ctrldev_xchange_message(ctx, &msg, 1); - - *ber = msg.body.ber; - - return 0; -} - -static int dvb_proxyfe_read_signal_strength(struct dvb_frontend *fe, - u16 *strength) -{ - struct dvb_proxyfe_state *state = fe->demodulator_priv; - struct vtunerc_ctx *ctx = state->ctx; - struct vtuner_message msg; - - msg.type = MSG_READ_SIGNAL_STRENGTH; - vtunerc_ctrldev_xchange_message(ctx, &msg, 1); - - *strength = msg.body.ss; - - return 0; -} - -static int dvb_proxyfe_read_snr(struct dvb_frontend *fe, u16 *snr) -{ - struct dvb_proxyfe_state *state = fe->demodulator_priv; - struct vtunerc_ctx *ctx = state->ctx; - struct vtuner_message msg; - - msg.type = MSG_READ_SNR; - vtunerc_ctrldev_xchange_message(ctx, &msg, 1); - - *snr = msg.body.snr; - - return 0; -} - -static int dvb_proxyfe_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks) -{ - struct dvb_proxyfe_state *state = fe->demodulator_priv; - struct vtunerc_ctx *ctx = state->ctx; - struct vtuner_message msg; - - msg.type = MSG_READ_UCBLOCKS; - vtunerc_ctrldev_xchange_message(ctx, &msg, 1); - - *ucblocks = msg.body.ucb; - - return 0; -} - -static int dvb_proxyfe_get_frontend(struct dvb_frontend *fe, - struct dtv_frontend_properties *c) -{ - struct dvb_proxyfe_state *state = fe->demodulator_priv; - struct vtunerc_ctx *ctx = state->ctx; - struct vtuner_message msg; - - msg.type = MSG_GET_FRONTEND; - vtunerc_ctrldev_xchange_message(ctx, &msg, 1); - - switch (ctx->vtype) { - case VT_S: - case VT_S2: - /*FIXME*/ - { - c->symbol_rate = msg.body.fe_params.u.qpsk.symbol_rate; - c->fec_inner = msg.body.fe_params.u.qpsk.fec_inner; - } - break; - case VT_T: - { - c->bandwidth_hz = msg.body.fe_params.u.ofdm.bandwidth; - c->code_rate_HP = msg.body.fe_params.u.ofdm.code_rate_HP; - c->code_rate_LP = msg.body.fe_params.u.ofdm.code_rate_LP; - c->modulation = msg.body.fe_params.u.ofdm.constellation; - c->transmission_mode = msg.body.fe_params.u.ofdm.transmission_mode; - c->guard_interval = msg.body.fe_params.u.ofdm.guard_interval; - c->hierarchy = msg.body.fe_params.u.ofdm.hierarchy_information; - } - break; - case VT_C: - /* FIXME: untested */ - { - c->symbol_rate = msg.body.fe_params.u.qam.symbol_rate; - c->fec_inner = msg.body.fe_params.u.qam.fec_inner; - c->modulation = msg.body.fe_params.u.qam.modulation; - } - break; - default: - printk(KERN_ERR "vtunerc%d: unregognized tuner vtype = %d\n", ctx->idx, - ctx->vtype); - return -EINVAL; - } - c->frequency = msg.body.fe_params.frequency; - c->inversion = msg.body.fe_params.inversion; - return 0; -} - -static int dvb_proxyfe_set_frontend(struct dvb_frontend *fe) -{ - struct dtv_frontend_properties *c = &fe->dtv_property_cache; - struct dvb_proxyfe_state *state = fe->demodulator_priv; - struct vtunerc_ctx *ctx = state->ctx; - struct vtuner_message msg; - - memset(&msg, 0, sizeof(msg)); - msg.body.fe_params.frequency = c->frequency; - msg.body.fe_params.inversion = c->inversion; - - switch (ctx->vtype) { - case VT_S: - case VT_S2: - msg.body.fe_params.u.qpsk.symbol_rate = c->symbol_rate; - msg.body.fe_params.u.qpsk.fec_inner = c->fec_inner; - - if (ctx->vtype == VT_S2 && c->delivery_system == SYS_DVBS2) { - /* DELIVERY SYSTEM: S2 delsys in use */ - msg.body.fe_params.u.qpsk.fec_inner |= 32; - - /* MODULATION */ - if (c->modulation == PSK_8) - /* signal PSK_8 modulation used */ - msg.body.fe_params.u.qpsk.fec_inner |= 64; - - /* ROLLOFF */ - switch (c->rolloff) { - case ROLLOFF_20: - msg.body.fe_params.inversion |= 0x08; - break; - case ROLLOFF_25: - msg.body.fe_params.inversion |= 0x04; - break; - case ROLLOFF_35: - default: - break; - } - - /* PILOT */ - switch (c->pilot) { - case PILOT_ON: - msg.body.fe_params.inversion |= 0x10; - break; - case PILOT_AUTO: - msg.body.fe_params.inversion |= 0x20; - break; - case PILOT_OFF: - default: - break; - } - } - break; - case VT_T: - msg.body.fe_params.u.ofdm.bandwidth = c->bandwidth_hz; - msg.body.fe_params.u.ofdm.code_rate_HP = c->code_rate_HP; - msg.body.fe_params.u.ofdm.code_rate_LP = c->code_rate_LP; - msg.body.fe_params.u.ofdm.constellation = c->modulation; - msg.body.fe_params.u.ofdm.transmission_mode = c->transmission_mode; - msg.body.fe_params.u.ofdm.guard_interval = c->guard_interval; - msg.body.fe_params.u.ofdm.hierarchy_information = c->hierarchy; - break; - case VT_C: - msg.body.fe_params.u.qam.symbol_rate = c->symbol_rate; - msg.body.fe_params.u.qam.fec_inner = c->fec_inner; - msg.body.fe_params.u.qam.modulation = c->modulation; - break; - default: - printk(KERN_ERR "vtunerc%d: unregognized tuner vtype = %d\n", - ctx->idx, ctx->vtype); - return -EINVAL; - } - - msg.type = MSG_SET_FRONTEND; - vtunerc_ctrldev_xchange_message(ctx, &msg, 1); - - return 0; -} - -static enum dvbfe_algo dvb_proxyfe_get_frontend_algo(struct dvb_frontend *fe) -{ - return DVBFE_ALGO_SW; -} - -static int dvb_proxyfe_sleep(struct dvb_frontend *fe) -{ - return 0; -} - -static int dvb_proxyfe_init(struct dvb_frontend *fe) -{ - return 0; -} - -static int dvb_proxyfe_set_tone(struct dvb_frontend *fe, enum fe_sec_tone_mode tone) -{ - struct dvb_proxyfe_state *state = fe->demodulator_priv; - struct vtunerc_ctx *ctx = state->ctx; - struct vtuner_message msg; - - msg.body.tone = tone; - msg.type = MSG_SET_TONE; - vtunerc_ctrldev_xchange_message(ctx, &msg, 1); - - return 0; -} - -static int dvb_proxyfe_set_voltage(struct dvb_frontend *fe, enum fe_sec_voltage voltage) -{ - struct dvb_proxyfe_state *state = fe->demodulator_priv; - struct vtunerc_ctx *ctx = state->ctx; - struct vtuner_message msg; - - msg.body.voltage = voltage; - msg.type = MSG_SET_VOLTAGE; - vtunerc_ctrldev_xchange_message(ctx, &msg, 1); - - return 0; -} - -static int dvb_proxyfe_send_diseqc_msg(struct dvb_frontend *fe, struct dvb_diseqc_master_cmd *cmd) -{ - struct dvb_proxyfe_state *state = fe->demodulator_priv; - struct vtunerc_ctx *ctx = state->ctx; - struct vtuner_message msg; - - memcpy(&msg.body.diseqc_master_cmd, cmd, sizeof(struct dvb_diseqc_master_cmd)); - msg.type = MSG_SEND_DISEQC_MSG; - vtunerc_ctrldev_xchange_message(ctx, &msg, 1); - - return 0; -} - -static int dvb_proxyfe_send_diseqc_burst(struct dvb_frontend *fe, enum fe_sec_mini_cmd burst) -{ - struct dvb_proxyfe_state *state = fe->demodulator_priv; - struct vtunerc_ctx *ctx = state->ctx; - struct vtuner_message msg; - - msg.body.burst = burst; - msg.type = MSG_SEND_DISEQC_BURST; - vtunerc_ctrldev_xchange_message(ctx, &msg, 1); - - return 0; -} - -static void dvb_proxyfe_release(struct dvb_frontend *fe) -{ - struct dvb_proxyfe_state *state = fe->demodulator_priv; - - kfree(state); -} - -static struct dvb_frontend_ops dvb_proxyfe_ofdm_ops; - -static struct dvb_frontend *dvb_proxyfe_ofdm_attach(struct vtunerc_ctx *ctx) -{ - struct dvb_frontend *fe = ctx->fe; - - if (!fe) { - struct dvb_proxyfe_state *state = NULL; - - /* allocate memory for the internal state */ - state = kmalloc(sizeof(struct dvb_proxyfe_state), GFP_KERNEL); - if (state == NULL) { - return NULL; - } - - fe = &state->frontend; - fe->demodulator_priv = state; - state->ctx = ctx; - } - - memcpy(&fe->ops, &dvb_proxyfe_ofdm_ops, sizeof(struct dvb_frontend_ops)); - - return fe; -} - -static struct dvb_frontend_ops dvb_proxyfe_qpsk_ops; - -static struct dvb_frontend *dvb_proxyfe_qpsk_attach(struct vtunerc_ctx *ctx, int can_2g_modulation) -{ - struct dvb_frontend *fe = ctx->fe; - - if (!fe) { - struct dvb_proxyfe_state *state = NULL; - - /* allocate memory for the internal state */ - state = kmalloc(sizeof(struct dvb_proxyfe_state), GFP_KERNEL); - if (state == NULL) { - return NULL; - } - - fe = &state->frontend; - fe->demodulator_priv = state; - state->ctx = ctx; - } - - memcpy(&fe->ops, &dvb_proxyfe_qpsk_ops, sizeof(struct dvb_frontend_ops)); - if (can_2g_modulation) { - fe->ops.info.caps |= FE_CAN_2G_MODULATION; - fe->ops.delsys[1] = SYS_DVBS2; - strcpy(fe->ops.info.name, "vTuner proxyFE DVB-S2"); - } - - return fe; -} - -static struct dvb_frontend_ops dvb_proxyfe_qam_ops; - -static struct dvb_frontend *dvb_proxyfe_qam_attach(struct vtunerc_ctx *ctx) -{ - struct dvb_frontend *fe = ctx->fe; - - if (!fe) { - struct dvb_proxyfe_state *state = NULL; - - /* allocate memory for the internal state */ - state = kmalloc(sizeof(struct dvb_proxyfe_state), GFP_KERNEL); - if (state == NULL) { - return NULL; - } - - fe = &state->frontend; - fe->demodulator_priv = state; - state->ctx = ctx; - } - - memcpy(&fe->ops, &dvb_proxyfe_qam_ops, sizeof(struct dvb_frontend_ops)); - - return fe; -} - -static struct dvb_frontend_ops dvb_proxyfe_ofdm_ops = { - .delsys = { SYS_DVBT }, - .info = { - .name = "vTuner proxyFE DVB-T", - .frequency_min_hz = 51 * MHz, - .frequency_max_hz = 863250 * kHz, - .frequency_stepsize_hz = 62500, - .caps = FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | - FE_CAN_FEC_4_5 | FE_CAN_FEC_5_6 | FE_CAN_FEC_6_7 | - FE_CAN_FEC_7_8 | FE_CAN_FEC_8_9 | FE_CAN_FEC_AUTO | - FE_CAN_QAM_16 | FE_CAN_QAM_64 | FE_CAN_QAM_AUTO | - FE_CAN_TRANSMISSION_MODE_AUTO | - FE_CAN_GUARD_INTERVAL_AUTO | - FE_CAN_HIERARCHY_AUTO, - }, - - .release = dvb_proxyfe_release, - - .init = dvb_proxyfe_init, - .sleep = dvb_proxyfe_sleep, - - .set_frontend = dvb_proxyfe_set_frontend, - .get_frontend = dvb_proxyfe_get_frontend, - - .read_status = dvb_proxyfe_read_status, - .read_ber = dvb_proxyfe_read_ber, - .read_signal_strength = dvb_proxyfe_read_signal_strength, - .read_snr = dvb_proxyfe_read_snr, - .read_ucblocks = dvb_proxyfe_read_ucblocks, -}; - -static struct dvb_frontend_ops dvb_proxyfe_qam_ops = { - .delsys = { SYS_DVBC_ANNEX_A }, - .info = { - .name = "vTuner proxyFE DVB-C", - .frequency_stepsize_hz = 62500, - .frequency_min_hz = 51 * MHz, - .frequency_max_hz = 858 * MHz, - .symbol_rate_min = (57840000/2)/64, /* SACLK/64 == (XIN/2)/64 */ - .symbol_rate_max = (57840000/2)/4, /* SACLK/4 */ - .caps = FE_CAN_QAM_16 | FE_CAN_QAM_32 | FE_CAN_QAM_64 | - FE_CAN_QAM_128 | FE_CAN_QAM_256 | - FE_CAN_FEC_AUTO | FE_CAN_INVERSION_AUTO - }, - - .release = dvb_proxyfe_release, - - .init = dvb_proxyfe_init, - .sleep = dvb_proxyfe_sleep, - - .set_frontend = dvb_proxyfe_set_frontend, - .get_frontend = dvb_proxyfe_get_frontend, - - .read_status = dvb_proxyfe_read_status, - .read_ber = dvb_proxyfe_read_ber, - .read_signal_strength = dvb_proxyfe_read_signal_strength, - .read_snr = dvb_proxyfe_read_snr, - .read_ucblocks = dvb_proxyfe_read_ucblocks, -}; - -static struct dvb_frontend_ops dvb_proxyfe_qpsk_ops = { - .delsys = { SYS_DVBS }, - .info = { - .name = "vTuner proxyFE DVB-S", - .frequency_min_hz = 950 * MHz, - .frequency_max_hz = 2150 * MHz, - .frequency_stepsize_hz = 250 * kHz, /* kHz for QPSK frontends */ - .frequency_tolerance_hz = 29500 * kHz, - .symbol_rate_min = 1000000, - .symbol_rate_max = 45000000, - .caps = FE_CAN_INVERSION_AUTO | FE_CAN_FEC_1_2 | - FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 | FE_CAN_FEC_4_5 | - FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_8_9 | - FE_CAN_QPSK | FE_CAN_RECOVER - }, - - .release = dvb_proxyfe_release, - - .init = dvb_proxyfe_init, - .sleep = dvb_proxyfe_sleep, - - .get_frontend = dvb_proxyfe_get_frontend, - .get_frontend_algo = dvb_proxyfe_get_frontend_algo, - .set_frontend = dvb_proxyfe_set_frontend, - - .read_status = dvb_proxyfe_read_status, - .read_ber = dvb_proxyfe_read_ber, - .read_signal_strength = dvb_proxyfe_read_signal_strength, - .read_snr = dvb_proxyfe_read_snr, - .read_ucblocks = dvb_proxyfe_read_ucblocks, - - .set_voltage = dvb_proxyfe_set_voltage, - .set_tone = dvb_proxyfe_set_tone, - - .diseqc_send_master_cmd = dvb_proxyfe_send_diseqc_msg, - .diseqc_send_burst = dvb_proxyfe_send_diseqc_burst, - -}; - -int /*__devinit*/ vtunerc_frontend_init(struct vtunerc_ctx *ctx, int vtype) -{ - int ret = 0; - - if (ctx->fe && vtype == ctx->vtype) { - printk(KERN_NOTICE "vtunerc%d: frontend already initialized as type=%d\n", - ctx->idx, ctx->vtype); - return 0; - } - - switch (vtype) { - case VT_S: - ctx->fe = dvb_proxyfe_qpsk_attach(ctx, 0); - break; - case VT_S2: - ctx->fe = dvb_proxyfe_qpsk_attach(ctx, 1); - break; - case VT_T: - ctx->fe = dvb_proxyfe_ofdm_attach(ctx); - break; - case VT_C: - ctx->fe = dvb_proxyfe_qam_attach(ctx); - break; - default: - printk(KERN_ERR "vtunerc%d: unregognized tuner vtype = %d\n", - ctx->idx, ctx->vtype); - return -EINVAL; - } - - if(ctx->vtype == VT_NULL) // means: was frontend not registered yet? - ret = dvb_register_frontend(&ctx->dvb_adapter, ctx->fe); - - ctx->vtype = vtype; - - return ret; -} - -int /*__devinit*/ vtunerc_frontend_clear(struct vtunerc_ctx *ctx) -{ - return ctx->fe ? dvb_unregister_frontend(ctx->fe) : 0; -} diff --git a/v4l-dvb/frontends.mk b/v4l-dvb/frontends.mk deleted file mode 100644 index 1bd7f8f9a..000000000 --- a/v4l-dvb/frontends.mk +++ /dev/null @@ -1,950 +0,0 @@ -define DvbFrontend - SUBMENU := $(DVB_MENU) - V4L_KCONFIG := $2 - DEPENDS := +kmod-i2c-core - FILES := $(PKG_BUILD_DIR)/v4l/$1.ko - AUTOLOAD := $(call AutoProbe,$1) -endef - - -define KernelPackage/dvb-a8293 - TITLE := Allegro A8293 - $(call DvbFrontend,a8293,CONFIG_DVB_A8293) -endef -$(eval $(call KernelPackage,dvb-a8293)) - - -define KernelPackage/dvb-af9013 - TITLE := Afatech AF9013 - $(call DvbFrontend,af9013,CONFIG_DVB_AF9013) - DEPENDS += @LINUX_4_7 -endef -$(eval $(call KernelPackage,dvb-af9013)) - - -define KernelPackage/dvb-af9033 - TITLE := Afatech AF9033 - $(call DvbFrontend,af9033,CONFIG_DVB_AF9033) - DEPENDS += +kmod-dvb-core +kmod-regmap -endef -$(eval $(call KernelPackage,dvb-af9033)) - - -define KernelPackage/dvb-as102-fe - TITLE := Abilis AS102 FE - $(call DvbFrontend,as102_fe,CONFIG_DVB_AS102_FE) -endef -$(eval $(call KernelPackage,dvb-as102-fe)) - - -define KernelPackage/dvb-ascot2e - TITLE := Sony Ascot2E - $(call DvbFrontend,ascot2e,CONFIG_DVB_ASCOT2E) -endef -$(eval $(call KernelPackage,dvb-ascot2e)) - - -define KernelPackage/dvb-atbm8830 - TITLE := AltoBeam ATBM8830/8831 - $(call DvbFrontend,atbm8830,CONFIG_DVB_ATBM8830) -endef -$(eval $(call KernelPackage,dvb-atbm8830)) - - -define KernelPackage/dvb-au8522-common - TITLE := Auvitek AU8522 - $(call DvbFrontend,au8522_common,CONFIG_DVB_AU8522) -endef -$(eval $(call KernelPackage,dvb-au8522-common)) - - -define KernelPackage/dvb-au8522-decoder - SUBMENU := $(DVB_MENU) - TITLE := Auvitek AU8522 ATV - V4L_KCONFIG := CONFIG_DVB_AU8522_DTV - DEPENDS := +kmod-dvb-au8522-common +kmod-v4l2-core - FILES := $(PKG_BUILD_DIR)/v4l/au8522_decoder.ko - AUTOLOAD := $(call AutoProbe,au8522_decoder) -endef -$(eval $(call KernelPackage,dvb-au8522-decoder)) - - -define KernelPackage/dvb-au8522-dig - SUBMENU := $(DVB_MENU) - TITLE := Auvitek AU8522 DTV - V4L_KCONFIG := CONFIG_DVB_AU8522_DTV - DEPENDS := +kmod-dvb-au8522-common - FILES := $(PKG_BUILD_DIR)/v4l/au8522_dig.ko - AUTOLOAD := $(call AutoProbe,au8522_dig) -endef -$(eval $(call KernelPackage,dvb-au8522-dig)) - - -define KernelPackage/dvb-avl6882 - TITLE := Availink AVL6882 - $(call DvbFrontend,avl6882,CONFIG_DVB_AVL6882) - DEPENDS += @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,dvb-avl6882)) - - -define KernelPackage/dvb-bcm3510 - TITLE := Broadcom BCM3510 - $(call DvbFrontend,bcm3510,CONFIG_DVB_BCM3510) -endef -$(eval $(call KernelPackage,dvb-bcm3510)) - - -define KernelPackage/dvb-cx22700 - TITLE := Conexant CX22700 - $(call DvbFrontend,cx22700,CONFIG_DVB_CX22700) -endef -$(eval $(call KernelPackage,dvb-cx22700)) - - -define KernelPackage/dvb-cx22702 - TITLE := Conexant CX22702 - $(call DvbFrontend,cx22702,CONFIG_DVB_CX22702) -endef -$(eval $(call KernelPackage,dvb-cx22702)) - - -define KernelPackage/dvb-cx24110 - TITLE := Conexant CX24110 - $(call DvbFrontend,cx24110,CONFIG_DVB_CX24110) -endef -$(eval $(call KernelPackage,dvb-cx24110)) - - -define KernelPackage/dvb-cx24113 - TITLE := Conexant CX24113 - $(call DvbFrontend,cx24113,CONFIG_DVB_CX24113) -endef -$(eval $(call KernelPackage,dvb-cx24113)) - - -define KernelPackage/dvb-cx24116 - TITLE := Conexant CX24116 - $(call DvbFrontend,cx24116,CONFIG_DVB_CX24116) -endef -$(eval $(call KernelPackage,dvb-cx24116)) - - -define KernelPackage/dvb-cx24117 - TITLE := Conexant CX24117 - $(call DvbFrontend,cx24117,CONFIG_DVB_CX24117) -endef -$(eval $(call KernelPackage,dvb-cx24117)) - - -define KernelPackage/dvb-cx24120 - TITLE := Conexant CX24120 - $(call DvbFrontend,cx24120,CONFIG_DVB_CX24120) -endef -$(eval $(call KernelPackage,dvb-cx24120)) - - -define KernelPackage/dvb-cx24123 - TITLE := Conexant CX24123 - $(call DvbFrontend,cx24123,CONFIG_DVB_CX24123) -endef -$(eval $(call KernelPackage,dvb-cx24123)) - - -define KernelPackage/dvb-cxd2099 - TITLE := Sony CXD2099AR - $(call DvbFrontend,cxd2099,CONFIG_DVB_CXD2099) - DEPENDS += +kmod-regmap -endef -$(eval $(call KernelPackage,dvb-cxd2099)) - - -define KernelPackage/dvb-cxd2820r - TITLE := Sony CXD2820R - $(call DvbFrontend,cxd2820r,CONFIG_DVB_CXD2820R) - DEPENDS += +kmod-dvb-core +kmod-regmap -endef -$(eval $(call KernelPackage,dvb-cxd2820r)) - - -define KernelPackage/dvb-cxd2841er - TITLE := Sony CXD2841ER - $(call DvbFrontend,cxd2841er,CONFIG_DVB_CXD2841ER) - DEPENDS += +kmod-dvb-core -endef -$(eval $(call KernelPackage,dvb-cxd2841er)) - - -define KernelPackage/dvb-cxd2880 - TITLE := Sony CXD2880 - $(call DvbFrontend,cxd2880,CONFIG_DVB_CXD2880) - DEPENDS += +kmod-dvb-core -endef -$(eval $(call KernelPackage,dvb-cxd2880)) - - -define KernelPackage/dvb-dib0070 - TITLE := DiBcom DiB0070 - $(call DvbFrontend,dib0070,CONFIG_DVB_TUNER_DIB0070) -endef -$(eval $(call KernelPackage,dvb-dib0070)) - - -define KernelPackage/dvb-dib0090 - TITLE := DiBcom DiB0090 - $(call DvbFrontend,dib0090,CONFIG_DVB_TUNER_DIB0090) -endef -$(eval $(call KernelPackage,dvb-dib0090)) - - -define KernelPackage/dvb-dib3000mb - TITLE := DiBcom 3000M-B - $(call DvbFrontend,dib3000mb,CONFIG_DVB_DIB3000MB) -endef -$(eval $(call KernelPackage,dvb-dib3000mb)) - - -define KernelPackage/dvb-dib3000mc - TITLE := DiBcom 3000P/M-C - $(call DvbFrontend,dib3000mc,CONFIG_DVB_DIB3000MC) - DEPENDS += +kmod-dvb-dibx000-common -endef -$(eval $(call KernelPackage,dvb-dib3000mc)) - - -define KernelPackage/dvb-dib7000m - TITLE := DiBcom 7000MA/MB/PA/PB/MC - $(call DvbFrontend,dib7000m,CONFIG_DVB_DIB7000M) - DEPENDS += +kmod-dvb-dibx000-common -endef -$(eval $(call KernelPackage,dvb-dib7000m)) - - -define KernelPackage/dvb-dib7000p - TITLE := DiBcom 7000PC - $(call DvbFrontend,dib7000p,CONFIG_DVB_DIB7000P) - DEPENDS += +kmod-dvb-core +kmod-dvb-dibx000-common -endef -$(eval $(call KernelPackage,dvb-dib7000p)) - - -define KernelPackage/dvb-dib8000 - TITLE := DiBcom 8000MB/MC - $(call DvbFrontend,dib8000,CONFIG_DVB_DIB8000) - DEPENDS += +kmod-dvb-core +kmod-dvb-dibx000-common -endef -$(eval $(call KernelPackage,dvb-dib8000)) - - -define KernelPackage/dvb-dib9000 - TITLE := DiBcom 9000 - $(call DvbFrontend,dib9000,CONFIG_DVB_DIB9000) - DEPENDS += +kmod-dvb-core +kmod-dvb-dibx000-common -endef -$(eval $(call KernelPackage,dvb-dib9000)) - - -define KernelPackage/dvb-dibx000-common - SUBMENU := $(DVB_MENU) - TITLE := Common library for DiBX000 drivers - FILES := $(PKG_BUILD_DIR)/v4l/dibx000_common.ko - AUTOLOAD := $(call AutoProbe,dibx000_common) - DEPENDS := +kmod-i2c-core -endef -$(eval $(call KernelPackage,dvb-dibx000-common)) - - -define KernelPackage/dvb-drx39xyj - TITLE := Micronas DRX-J - $(call DvbFrontend,drx39xyj,CONFIG_DVB_DRX39XYJ) -endef -$(eval $(call KernelPackage,dvb-drx39xyj)) - - -define KernelPackage/dvb-drxd - TITLE := Micronas DRXD - $(call DvbFrontend,drxd,CONFIG_DVB_DRXD) -endef -$(eval $(call KernelPackage,dvb-drxd)) - - -define KernelPackage/dvb-drxk - TITLE := Micronas DRXK - $(call DvbFrontend,drxk,CONFIG_DVB_DRXK) - DEPENDS += +kmod-dvb-core -endef -$(eval $(call KernelPackage,dvb-drxk)) - - -define KernelPackage/dvb-ds3000 - TITLE := Montage Tehnology DS3000 - $(call DvbFrontend,ds3000,CONFIG_DVB_DS3000) -endef -$(eval $(call KernelPackage,dvb-ds3000)) - - -define KernelPackage/dvb-ec100 - TITLE := E3C EC100 - $(call DvbFrontend,ec100,CONFIG_DVB_EC100) -endef -$(eval $(call KernelPackage,dvb-ec100)) - - -define KernelPackage/dvb-gp8psk-fe - TITLE := Frontend Driver for Genpix DVB-S - $(call DvbFrontend,gp8psk-fe,CONFIG_DVB_GP8PSK_FE) -endef -$(eval $(call KernelPackage,dvb-gp8psk-fe)) - - -define KernelPackage/dvb-gx1503 - TITLE := National Chip GX1503b - $(call DvbFrontend,gx1503,CONFIG_DVB_GX1503) - DEPENDS += +kmod-i2c-mux +kmod-regmap @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,dvb-gx1503)) - - -define KernelPackage/dvb-helene - TITLE := Sony HELENE (CXD2858ER) - $(call DvbFrontend,helene,CONFIG_DVB_HELENE) -endef -$(eval $(call KernelPackage,dvb-helene)) - - -define KernelPackage/dvb-horus3a - TITLE := Sony Horus3A - $(call DvbFrontend,horus3a,CONFIG_DVB_HORUS3A) -endef -$(eval $(call KernelPackage,dvb-horus3a)) - - -define KernelPackage/dvb-isl6405 - TITLE := Intersil ISL6405 - $(call DvbFrontend,isl6405,CONFIG_DVB_ISL6405) -endef -$(eval $(call KernelPackage,dvb-isl6405)) - - -define KernelPackage/dvb-isl6421 - TITLE := Intersil ISL6421 - $(call DvbFrontend,isl6421,CONFIG_DVB_ISL6421) -endef -$(eval $(call KernelPackage,dvb-isl6421)) - - -define KernelPackage/dvb-isl6422 - TITLE := Intersil ISL6422[B] - $(call DvbFrontend,isl6422,CONFIG_DVB_ISL6422) - DEPENDS += @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,dvb-isl6422)) - - -define KernelPackage/dvb-isl6423 - TITLE := Intersil ISL6423 - $(call DvbFrontend,isl6423,CONFIG_DVB_ISL6423) -endef -$(eval $(call KernelPackage,dvb-isl6423)) - - -define KernelPackage/dvb-itd1000 - TITLE := Integrant ITD1000 - $(call DvbFrontend,itd1000,CONFIG_DVB_ITD1000) -endef -$(eval $(call KernelPackage,dvb-itd1000)) - - -define KernelPackage/dvb-ix2505v - TITLE := Sharp IX2505V - $(call DvbFrontend,ix2505v,CONFIG_DVB_IX2505V) -endef -$(eval $(call KernelPackage,dvb-ix2505v)) - - -define KernelPackage/dvb-l64781 - TITLE := LSI L64781 - $(call DvbFrontend,l64781,CONFIG_DVB_L64781) -endef -$(eval $(call KernelPackage,dvb-l64781)) - - -define KernelPackage/dvb-lg2160 - TITLE := LG Electronics LG216x - $(call DvbFrontend,lg2160,CONFIG_DVB_LG2160) -endef -$(eval $(call KernelPackage,dvb-lg2160)) - - -define KernelPackage/dvb-lgs8gl5 - TITLE := Legend Silicon LGS-8GL5 - $(call DvbFrontend,lgs8gl5,CONFIG_DVB_LGS8GL5) -endef -$(eval $(call KernelPackage,dvb-lgs8gl5)) - - -define KernelPackage/dvb-lgs8gxx - TITLE := Legend Silicon LGS8913/LGS8GL5/LGS8GXX - $(call DvbFrontend,lgs8gxx,CONFIG_DVB_LGS8GXX) -endef -$(eval $(call KernelPackage,dvb-lgs8gxx)) - - -define KernelPackage/dvb-lgdt3305 - TITLE := LG Electronics LGDT3304/LGDT3305 - $(call DvbFrontend,lgdt3305,CONFIG_DVB_LGDT3305) - DEPENDS += +kmod-dvb-core -endef -$(eval $(call KernelPackage,dvb-lgdt3305)) - - -define KernelPackage/dvb-lgdt3306a - TITLE := LG Electronics LGDT3306A - $(call DvbFrontend,lgdt3306a,CONFIG_DVB_LGDT3306A) - DEPENDS += +kmod-i2c-mux -endef -$(eval $(call KernelPackage,dvb-lgdt3306a)) - - -define KernelPackage/dvb-lgdt330x - TITLE := LG Electronics LGDT3302/LGDT3303 - $(call DvbFrontend,lgdt330x,CONFIG_DVB_LGDT330X) - DEPENDS += +kmod-dvb-core -endef -$(eval $(call KernelPackage,dvb-lgdt330x)) - - -define KernelPackage/dvb-lnbh25 - TITLE := STMicroelectronics LNBH25 - $(call DvbFrontend,lnbh25,CONFIG_DVB_LNBH25) -endef -$(eval $(call KernelPackage,dvb-lnbh25)) - - -define KernelPackage/dvb-lnbp21 - TITLE := STMicroelectronics LNBP21/LNBH24 - $(call DvbFrontend,lnbp21,CONFIG_DVB_LNBP21) -endef -$(eval $(call KernelPackage,dvb-lnbp21)) - - -define KernelPackage/dvb-lnbp22 - TITLE := STMicroelectronics LNBP22 - $(call DvbFrontend,lnbp22,CONFIG_DVB_LNBP22) -endef -$(eval $(call KernelPackage,dvb-lnbp22)) - - -define KernelPackage/dvb-m88ds3103 - TITLE := Montage Technology M88DS3103 - $(call DvbFrontend,m88ds3103,CONFIG_DVB_M88DS3103) - DEPENDS += +kmod-dvb-core +kmod-i2c-mux +kmod-regmap -endef -$(eval $(call KernelPackage,dvb-m88ds3103)) - - -define KernelPackage/dvb-m88rs2000 - TITLE := Montage Technology M88RS2000 - $(call DvbFrontend,m88rs2000,CONFIG_DVB_M88RS2000) -endef -$(eval $(call KernelPackage,dvb-m88rs2000)) - - -define KernelPackage/dvb-mb86a16 - TITLE := Fujitsu MB86A16 - $(call DvbFrontend,mb86a16,CONFIG_DVB_MB86A16) -endef -$(eval $(call KernelPackage,dvb-mb86a16)) - - -define KernelPackage/dvb-mb86a20s - TITLE := Fujitsu MB86A20S - $(call DvbFrontend,mb86a20s,CONFIG_DVB_MB86A20S) -endef -$(eval $(call KernelPackage,dvb-mb86a20s)) - - -define KernelPackage/dvb-mn88436 - TITLE := Panasonic MN88436 - $(call DvbFrontend,mn88436,CONFIG_DVB_MN88436) - DEPENDS += +kmod-regmap @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,dvb-mn88436)) - - -define KernelPackage/dvb-mn88443x - TITLE := Panasonic/Socionext MN88443x - $(call DvbFrontend,mn88443x,CONFIG_DVB_MN88443X) - DEPENDS += @LINUX_4_9 +kmod-dvb-core +kmod-regmap -endef -$(eval $(call KernelPackage,dvb-mn88443x)) - - -define KernelPackage/dvb-mn88472 - TITLE := Panasonic MN88472 - $(call DvbFrontend,mn88472,CONFIG_DVB_MN88472) - DEPENDS += +kmod-dvb-core +kmod-regmap -endef -$(eval $(call KernelPackage,dvb-mn88472)) - - -define KernelPackage/dvb-mn88473 - TITLE := Panasonic MN88473 - $(call DvbFrontend,mn88473,CONFIG_DVB_MN88473) - DEPENDS += +kmod-dvb-core +kmod-regmap -endef -$(eval $(call KernelPackage,dvb-mn88473)) - - -define KernelPackage/dvb-mt312 - TITLE := Zarlink VP310/MT312/ZL10313 - $(call DvbFrontend,mt312,CONFIG_DVB_MT312) -endef -$(eval $(call KernelPackage,dvb-mt312)) - - -define KernelPackage/dvb-mt352 - TITLE := Zarlink MT352 - $(call DvbFrontend,mt352,CONFIG_DVB_MT352) -endef -$(eval $(call KernelPackage,dvb-mt352)) - - -define KernelPackage/dvb-mtv23x - TITLE := RAONTECH mtv23x - $(call DvbFrontend,mtv23x,CONFIG_DVB_MTV23X) - DEPENDS += +kmod-regmap @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,dvb-mtv23x)) - - -define KernelPackage/dvb-mxl58x - TITLE := MaxLinear MxL58x - $(call DvbFrontend,mxl58x,CONFIG_DVB_MXL58X) - DEPENDS += @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,dvb-mxl58x)) - - -define KernelPackage/dvb-mxl5xx - TITLE := MaxLinear MxL5xx - $(call DvbFrontend,mxl5xx,CONFIG_DVB_MXL5XX) -endef -$(eval $(call KernelPackage,dvb-mxl5xx)) - - -define KernelPackage/dvb-nxt200x - TITLE := NxtWave Communications NXT2002/NXT2004 - $(call DvbFrontend,nxt200x,CONFIG_DVB_NXT200X) -endef -$(eval $(call KernelPackage,dvb-nxt200x)) - - -define KernelPackage/dvb-nxt6000 - TITLE := NxtWave Communications NXT6000 - $(call DvbFrontend,nxt6000,CONFIG_DVB_NXT6000) -endef -$(eval $(call KernelPackage,dvb-nxt6000)) - - -define KernelPackage/dvb-or51132 - TITLE := Oren OR51132 - $(call DvbFrontend,or51132,CONFIG_DVB_OR51132) - DEPENDS += +kmod-dvb-core -endef -$(eval $(call KernelPackage,dvb-or51132)) - - -define KernelPackage/dvb-or51211 - TITLE := Oren OR51211 - $(call DvbFrontend,or51211,CONFIG_DVB_OR51211) - DEPENDS += +kmod-dvb-core -endef -$(eval $(call KernelPackage,dvb-or51211)) - - -define KernelPackage/dvb-pll - TITLE := Generic I2C PLL based tuners - $(call DvbFrontend,dvb-pll,CONFIG_DVB_PLL) -endef -$(eval $(call KernelPackage,dvb-pll)) - - -define KernelPackage/dvb-rtl2830 - TITLE := Realtek RTL2830 - $(call DvbFrontend,rtl2830,CONFIG_DVB_RTL2830) - DEPENDS += +kmod-dvb-core +kmod-i2c-mux +kmod-regmap -endef -$(eval $(call KernelPackage,dvb-rtl2830)) - - -define KernelPackage/dvb-rtl2832 - TITLE := Realtek RTL2832 - $(call DvbFrontend,rtl2832,CONFIG_DVB_RTL2832) - DEPENDS += +kmod-dvb-core +kmod-i2c-mux +kmod-regmap -endef -$(eval $(call KernelPackage,dvb-rtl2832)) - - -define KernelPackage/dvb-rtl2832-sdr - TITLE := Realtek RTL2832 SDR - $(call DvbFrontend,rtl2832_sdr,CONFIG_DVB_RTL2832_SDR) - DEPENDS += +kmod-regmap +kmod-usb-core +kmod-videobuf2-v4l2 +kmod-videobuf2-vmalloc -endef -$(eval $(call KernelPackage,dvb-rtl2832-sdr)) - - -define KernelPackage/dvb-s5h1409 - TITLE := Samsung S5H1409 - $(call DvbFrontend,s5h1409,CONFIG_DVB_S5H1409) -endef -$(eval $(call KernelPackage,dvb-s5h1409)) - - -define KernelPackage/dvb-s5h1411 - TITLE := Samsung S5H1411 - $(call DvbFrontend,s5h1411,CONFIG_DVB_S5H1411) -endef -$(eval $(call KernelPackage,dvb-s5h1411)) - - -define KernelPackage/dvb-s5h1420 - TITLE := Samsung S5H1420 - $(call DvbFrontend,s5h1420,CONFIG_DVB_S5H1420) -endef -$(eval $(call KernelPackage,dvb-s5h1420)) - - -define KernelPackage/dvb-s5h1432 - TITLE := Samsung S5H1432 - $(call DvbFrontend,s5h1432,CONFIG_DVB_S5H1432) -endef -$(eval $(call KernelPackage,dvb-s5h1432)) - - -define KernelPackage/dvb-s921 - TITLE := Sharp S921 - $(call DvbFrontend,s921,CONFIG_DVB_S921) -endef -$(eval $(call KernelPackage,dvb-s921)) - - -define KernelPackage/dvb-si2165 - TITLE := Silicon Labs Si2165 - $(call DvbFrontend,si2165,CONFIG_DVB_SI2165) - DEPENDS += +kmod-dvb-core +kmod-regmap -endef -$(eval $(call KernelPackage,dvb-si2165)) - - -define KernelPackage/dvb-si2168 - TITLE := Silicon Labs Si2168 - $(call DvbFrontend,si2168,CONFIG_DVB_SI2168) - DEPENDS += +kmod-i2c-mux -endef -$(eval $(call KernelPackage,dvb-si2168)) - - -define KernelPackage/dvb-si2183 - TITLE := Silicon Labs Si2183 - $(call DvbFrontend,si2183,CONFIG_DVB_SI2183) - DEPENDS += +kmod-i2c-mux @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,dvb-si2183)) - - -define KernelPackage/dvb-si21xx - TITLE := Silicon Labs Si21XX - $(call DvbFrontend,si21xx,CONFIG_DVB_SI21XX) -endef -$(eval $(call KernelPackage,dvb-si21xx)) - - -define KernelPackage/dvb-sp2 - TITLE := CIMaX SP2/SP2HF - $(call DvbFrontend,sp2,CONFIG_DVB_SP2) - DEPENDS += +kmod-dvb-core -endef -$(eval $(call KernelPackage,dvb-sp2)) - - -define KernelPackage/dvb-sp8870 - TITLE := Spase sp8870 - $(call DvbFrontend,sp8870,CONFIG_DVB_SP8870) -endef -$(eval $(call KernelPackage,dvb-sp8870)) - - -define KernelPackage/dvb-sp887x - TITLE := Spase sp887x - $(call DvbFrontend,sp887x,CONFIG_DVB_SP887X) -endef -$(eval $(call KernelPackage,dvb-sp887x)) - - -define KernelPackage/dvb-stb0899 - TITLE := STMicroelectronics STB0899 - $(call DvbFrontend,stb0899,CONFIG_DVB_STB0899) -endef -$(eval $(call KernelPackage,dvb-stb0899)) - - -define KernelPackage/dvb-stb6000 - TITLE := STMicroelectronics STB6000 - $(call DvbFrontend,stb6000,CONFIG_DVB_STB6000) -endef -$(eval $(call KernelPackage,dvb-stb6000)) - - -define KernelPackage/dvb-stb6100 - TITLE := STMicroelectronics STB6100 - $(call DvbFrontend,stb6100,CONFIG_DVB_STB6100) -endef -$(eval $(call KernelPackage,dvb-stb6100)) - - -define KernelPackage/dvb-stv0288 - TITLE := STMicroelectronics STV0288 - $(call DvbFrontend,stv0288,CONFIG_DVB_STV0288) -endef -$(eval $(call KernelPackage,dvb-stv0288)) - - -define KernelPackage/dvb-stv0297 - TITLE := STMicroelectronics STV0297 - $(call DvbFrontend,stv0297,CONFIG_DVB_STV0297) -endef -$(eval $(call KernelPackage,dvb-stv0297)) - - -define KernelPackage/dvb-stv0299 - TITLE := STMicroelectronics STV0299 - $(call DvbFrontend,stv0299,CONFIG_DVB_STV0299) - DEPENDS += +kmod-dvb-core -endef -$(eval $(call KernelPackage,dvb-stv0299)) - - -define KernelPackage/dvb-stv0367 - TITLE := STMicroelectronics STV0367 - $(call DvbFrontend,stv0367,CONFIG_DVB_STV0367) - DEPENDS += +kmod-dvb-core -endef -$(eval $(call KernelPackage,dvb-stv0367)) - - -define KernelPackage/dvb-stv0900 - TITLE := STMicroelectronics STV0900 - $(call DvbFrontend,stv0900,CONFIG_DVB_STV0900) -endef -$(eval $(call KernelPackage,dvb-stv0900)) - - -define KernelPackage/dvb-stv090x - TITLE := STMicroelectronics STV0900/STV0903(A/B) - $(call DvbFrontend,stv090x,CONFIG_DVB_STV090x) -endef -$(eval $(call KernelPackage,dvb-stv090x)) - - -define KernelPackage/dvb-stv0910 - TITLE := STMicroelectronics STV0910 - $(call DvbFrontend,stv0910,CONFIG_DVB_STV0910) -endef -$(eval $(call KernelPackage,dvb-stv0910)) - - -define KernelPackage/dvb-stv091x - TITLE := STMicroelectronics STV091x - $(call DvbFrontend,stv091x,CONFIG_DVB_STV091X) - DEPENDS += @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,dvb-stv091x)) - - -define KernelPackage/dvb-stv6110 - TITLE := STMicroelectronics STV6110 - $(call DvbFrontend,stv6110,CONFIG_DVB_STV6110) -endef -$(eval $(call KernelPackage,dvb-stv6110)) - - -define KernelPackage/dvb-stv6110x - TITLE := STMicroelectronics STV6110/(A) - $(call DvbFrontend,stv6110x,CONFIG_DVB_STV6110x) -endef -$(eval $(call KernelPackage,dvb-stv6110x)) - - -define KernelPackage/dvb-stv6111 - TITLE := STMicroelectronics STV6111 - $(call DvbFrontend,stv6111,CONFIG_DVB_STV6111) -endef -$(eval $(call KernelPackage,dvb-stv6111)) - - -define KernelPackage/dvb-tas2101 - TITLE := Tmax TAS2101 - $(call DvbFrontend,tas2101,CONFIG_DVB_TAS2101) - DEPENDS += +kmod-i2c-mux @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,dvb-tas2101)) - - -define KernelPackage/dvb-tas2971 - TITLE := Tmax TAS2971 - $(call DvbFrontend,tas2971,CONFIG_DVB_TAS2971) - DEPENDS += +kmod-i2c-mux @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,dvb-tas2971)) - - -define KernelPackage/dvb-tbs-priv - TITLE := TBS private virtual demodulator - $(call DvbFrontend,tbs_priv,CONFIG_DVB_TBSPRIV) - DEPENDS += @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,dvb-tbs-priv)) - - -define KernelPackage/dvb-tc90522 - TITLE := Toshiba TC90522 - $(call DvbFrontend,tc90522,CONFIG_DVB_TC90522) - DEPENDS += +kmod-dvb-core -endef -$(eval $(call KernelPackage,dvb-tc90522)) - - -define KernelPackage/dvb-tda10021 - TITLE := Philips TDA10021 - $(call DvbFrontend,tda10021,CONFIG_DVB_TDA10021) -endef -$(eval $(call KernelPackage,dvb-tda10021)) - - -define KernelPackage/dvb-tda10023 - TITLE := Philips TDA10023 - $(call DvbFrontend,tda10023,CONFIG_DVB_TDA10023) -endef -$(eval $(call KernelPackage,dvb-tda10023)) - - -define KernelPackage/dvb-tda10048 - TITLE := Philips TDA10048HN - $(call DvbFrontend,tda10048,CONFIG_DVB_TDA10048) -endef -$(eval $(call KernelPackage,dvb-tda10048)) - - -define KernelPackage/dvb-tda1004x - TITLE := Philips TDA10045H/TDA10046H - $(call DvbFrontend,tda1004x,CONFIG_DVB_TDA1004X) -endef -$(eval $(call KernelPackage,dvb-tda1004x)) - - -define KernelPackage/dvb-tda10071 - TITLE := NXP TDA10071 - $(call DvbFrontend,tda10071,CONFIG_DVB_TDA10071) - DEPENDS += +kmod-regmap -endef -$(eval $(call KernelPackage,dvb-tda10071)) - - -define KernelPackage/dvb-tda10086 - TITLE := Philips TDA10086 - $(call DvbFrontend,tda10086,CONFIG_DVB_TDA10086) -endef -$(eval $(call KernelPackage,dvb-tda10086)) - - -define KernelPackage/dvb-tda18271c2dd - TITLE := NXP TDA18271C2 - $(call DvbFrontend,tda18271c2dd,CONFIG_DVB_TDA18271C2DD) -endef -$(eval $(call KernelPackage,dvb-tda18271c2dd)) - - -define KernelPackage/dvb-tda665x - TITLE := Philips TDA6650/TDA6651 - $(call DvbFrontend,tda665x,CONFIG_DVB_TDA665x) -endef -$(eval $(call KernelPackage,dvb-tda665x)) - - -define KernelPackage/dvb-tda8083 - TITLE := Philips TDA8083 - $(call DvbFrontend,tda8083,CONFIG_DVB_TDA8083) -endef -$(eval $(call KernelPackage,dvb-tda8083)) - - -define KernelPackage/dvb-tda8261 - TITLE := Philips TDA8261 - $(call DvbFrontend,tda8261,CONFIG_DVB_TDA8261) -endef -$(eval $(call KernelPackage,dvb-tda8261)) - - -define KernelPackage/dvb-tda826x - TITLE := Philips TDA826X - $(call DvbFrontend,tda826x,CONFIG_DVB_TDA826X) -endef -$(eval $(call KernelPackage,dvb-tda826x)) - - -define KernelPackage/dvb-ts2020 - TITLE := Montage Tehnology TS2020 - $(call DvbFrontend,ts2020,CONFIG_DVB_TS2020) - DEPENDS += +kmod-regmap -endef -$(eval $(call KernelPackage,dvb-ts2020)) - - -define KernelPackage/dvb-tua6100 - TITLE := Infineon TUA6100 - $(call DvbFrontend,tua6100,CONFIG_DVB_TUA6100) -endef -$(eval $(call KernelPackage,dvb-tua6100)) - - -define KernelPackage/dvb-ves1820 - TITLE := VLSI VES1820 - $(call DvbFrontend,ves1820,CONFIG_DVB_VES1820) -endef -$(eval $(call KernelPackage,dvb-ves1820)) - - -define KernelPackage/dvb-ves1x93 - TITLE := VLSI VES1893/VES1993 - $(call DvbFrontend,ves1x93,CONFIG_DVB_VES1X93) -endef -$(eval $(call KernelPackage,dvb-ves1x93)) - - -define KernelPackage/dvb-zd1301-demod - TITLE := ZyDAS ZD1301 - $(call DvbFrontend,zd1301_demod,CONFIG_DVB_ZD1301_DEMOD) -endef -$(eval $(call KernelPackage,dvb-zd1301-demod)) - - -define KernelPackage/dvb-zl10036 - TITLE := Zarlink ZL10036 - $(call DvbFrontend,zl10036,CONFIG_DVB_ZL10036) -endef -$(eval $(call KernelPackage,dvb-zl10036)) - - -define KernelPackage/dvb-zl10039 - TITLE := Zarlink ZL10039 - $(call DvbFrontend,zl10039,CONFIG_DVB_ZL10039) -endef -$(eval $(call KernelPackage,dvb-zl10039)) - - -define KernelPackage/dvb-zl10353 - TITLE := Zarlink ZL10353 - $(call DvbFrontend,zl10353,CONFIG_DVB_ZL10353) -endef -$(eval $(call KernelPackage,dvb-zl10353)) diff --git a/v4l-dvb/origin/Config.in b/v4l-dvb/origin/Config.in deleted file mode 100644 index 4b5e19a96..000000000 --- a/v4l-dvb/origin/Config.in +++ /dev/null @@ -1,23 +0,0 @@ -choice - depends on PACKAGE_kmod-media - prompt "Used DVB (media) tree" - default V4L_SRC_TBSDTV - - config V4L_SRC_TBSDTV - bool "TBS" - help - TBS Technologies is a company which specializes in developing, manufacturing and marketing of - digital TV tuner cards for PC. They maintain a fork of LinuxTV repo for their open source drivers. - You want to use this if you have a device from TBS. - - Repo: https://github.com/tbsdtv/linux_media - - config V4L_SRC_LINUXTV - bool "LinuxTV" - help - The LinuxTV community develops and maintains the Linux Kernel Media Subsystems. - Use this if you are unsure. - - Repo: https://git.linuxtv.org/media_tree.git/ - -endchoice diff --git a/v4l-dvb/origin/linuxtv.mk b/v4l-dvb/origin/linuxtv.mk deleted file mode 100644 index ec6888efc..000000000 --- a/v4l-dvb/origin/linuxtv.mk +++ /dev/null @@ -1,13 +0,0 @@ -PKG_NAME := v4l-dvb-linuxtv - -PKG_SOURCE_PROTO := git -PKG_SOURCE_URL := git://linuxtv.org/media_build.git -PKG_SOURCE_VERSION := 0c8bb27f3aaa682b9548b656f77505c3d1f11e71 -PKG_SOURCE_DATE := 2018-10-19 - -V4L_SOURCE_URL := git://linuxtv.org/media_tree.git -V4L_SOURCE_VERSION := 3b796aa60af087f5fec75aee9b17f2130f2b9adc -V4L_REPO_NAME := linux-media-linuxtv -V4L_SOURCE_FILE := $(V4L_REPO_NAME)-$(PKG_SOURCE_DATE)-$(shell printf '%.8s' $(V4L_SOURCE_VERSION)).tar.bz2 - -PATCH_DIR := patches-linuxtv diff --git a/v4l-dvb/origin/selected.mk b/v4l-dvb/origin/selected.mk deleted file mode 100644 index 67f855979..000000000 --- a/v4l-dvb/origin/selected.mk +++ /dev/null @@ -1,6 +0,0 @@ -ifeq ($(CONFIG_V4L_SRC_TBSDTV),y) -include ./origin/tbsdtv.mk -endif -ifeq ($(CONFIG_V4L_SRC_LINUXTV),y) -include ./origin/linuxtv.mk -endif diff --git a/v4l-dvb/origin/tbsdtv.mk b/v4l-dvb/origin/tbsdtv.mk deleted file mode 100644 index 3e6db457e..000000000 --- a/v4l-dvb/origin/tbsdtv.mk +++ /dev/null @@ -1,13 +0,0 @@ -PKG_NAME := v4l-dvb-tbsdtv - -PKG_SOURCE_PROTO := git -PKG_SOURCE_URL := https://github.com/tbsdtv/media_build.git -PKG_SOURCE_VERSION := 4735369fca22122cbc4dffd16c36026747563b0b -PKG_SOURCE_DATE := 2018-10-16 - -V4L_SOURCE_URL := https://github.com/tbsdtv/linux_media.git -V4L_SOURCE_VERSION := 23087976705d594febef88e9160c3eb76abb2d48 -V4L_REPO_NAME := linux-media-tbsdtv -V4L_SOURCE_FILE := $(V4L_REPO_NAME)-$(PKG_SOURCE_DATE)-$(shell printf '%.8s' $(V4L_SOURCE_VERSION)).tar.bz2 - -PATCH_DIR := patches-tbsdtv diff --git a/v4l-dvb/other.mk b/v4l-dvb/other.mk deleted file mode 100644 index 158d0d300..000000000 --- a/v4l-dvb/other.mk +++ /dev/null @@ -1,21 +0,0 @@ -define KernelPackage/firedtv - SUBMENU := $(DVB_MENU) - TITLE := FireDTV and FloppyDTV - V4L_KCONFIG := CONFIG_DVB_FIREDTV - FILES := $(PKG_BUILD_DIR)/v4l/firedtv.ko - AUTOLOAD := $(call AutoProbe,firedtv) - DEPENDS := +kmod-dvb-core +kmod-firewire -endef - -$(eval $(call KernelPackage,firedtv)) - - -define KernelPackage/vtunerc - SUBMENU := $(DVB_MENU) - TITLE := Virtual DVB adapter - V4L_KCONFIG := CONFIG_DVB_VTUNERC - FILES := $(PKG_BUILD_DIR)/v4l/vtunerc.ko - DEPENDS := +kmod-dvb-core -endef - -$(eval $(call KernelPackage,vtunerc)) diff --git a/v4l-dvb/patches-linuxtv/001-Revert-build-Add-compat-code-for-pm_runtime_get_if_in_use.patch b/v4l-dvb/patches-linuxtv/001-Revert-build-Add-compat-code-for-pm_runtime_get_if_in_use.patch deleted file mode 100644 index f9a7a38c6..000000000 --- a/v4l-dvb/patches-linuxtv/001-Revert-build-Add-compat-code-for-pm_runtime_get_if_in_use.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- a/v4l/compat.h -+++ b/v4l/compat.h -@@ -2153,21 +2153,6 @@ static inline void *skb_put_data(struct - } - #endif - --#ifdef NEED_PM_RUNTIME_GET --static inline int pm_runtime_get_if_in_use(struct device *dev) --{ -- unsigned long flags; -- int retval; -- -- spin_lock_irqsave(&dev->power.lock, flags); -- retval = dev->power.disable_depth > 0 ? -EINVAL : -- dev->power.runtime_status == RPM_ACTIVE -- && atomic_inc_not_zero(&dev->power.usage_count); -- spin_unlock_irqrestore(&dev->power.lock, flags); -- return retval; --} --#endif -- - #ifdef NEED_KEY_APPSELECT - #define KEY_APPSELECT 0x244 /* AL Select Task/Application */ - #endif ---- a/v4l/scripts/make_config_compat.pl -+++ b/v4l/scripts/make_config_compat.pl -@@ -700,7 +700,6 @@ sub check_other_dependencies() - check_files_for_func("to_of_node", "NEED_TO_OF_NODE", "include/linux/of.h"); - check_files_for_func("is_of_node", "NEED_IS_OF_NODE", "include/linux/of.h"); - check_files_for_func("skb_put_data", "NEED_SKB_PUT_DATA", "include/linux/skbuff.h"); -- check_files_for_func("pm_runtime_get_if_in_use", "NEED_PM_RUNTIME_GET", "include/linux/pm_runtime.h"); - check_files_for_func("KEY_APPSELECT", "NEED_KEY_APPSELECT", "include/uapi/linux/input-event-codes.h"); - check_files_for_func("PCI_DEVICE_SUB", "NEED_PCI_DEVICE_SUB", "include/linux/pci.h"); - check_files_for_func("annotate_reachable", "NEED_ANNOTATE_REACHABLE", "include/linux/compiler.h"); diff --git a/v4l-dvb/patches-linuxtv/099-disable-sybols-and-drivers.patch b/v4l-dvb/patches-linuxtv/099-disable-sybols-and-drivers.patch deleted file mode 100644 index 6607bef11..000000000 --- a/v4l-dvb/patches-linuxtv/099-disable-sybols-and-drivers.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/v4l/scripts/make_kconfig.pl -+++ b/v4l/scripts/make_kconfig.pl -@@ -628,6 +628,12 @@ - # These options should default to off - disable_config('DVB_AV7110_FIRMWARE'); - disable_config('DVB_CINERGYT2_TUNING'); -+disable_config('MEDIA_ANALOG_TV_SUPPORT'); -+disable_config('MEDIA_CAMERA_SUPPORT'); -+disable_config('MEDIA_CEC_SUPPORT'); -+disable_config('MEDIA_RADIO_SUPPORT'); -+disable_config('CEC_CORE'); -+disable_config('VIDEO_TW9910'); - disable_config('VIDEO_HELPER_CHIPS_AUTO'); - disable_config('VIDEO_FIXED_MINOR_RANGES'); - disable_config('STAGING') if (!$enable_staging); diff --git a/v4l-dvb/patches-linuxtv/100-add-vtunerc-build.patch b/v4l-dvb/patches-linuxtv/100-add-vtunerc-build.patch deleted file mode 100644 index 3ed96442a..000000000 --- a/v4l-dvb/patches-linuxtv/100-add-vtunerc-build.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- /dev/null -+++ b/backports/add_vtunerc_build.patch -@@ -0,0 +1,18 @@ -+--- a/drivers/media/Kconfig -++++ b/drivers/media/Kconfig -+@@ -240,3 +240,5 @@ source "drivers/media/tuners/Kconfig" -+ source "drivers/media/dvb-frontends/Kconfig" -+ -+ endif # MEDIA_SUPPORT -++ -++source "drivers/media/vtunerc/Kconfig" -+--- a/drivers/media/Makefile -++++ b/drivers/media/Makefile -+@@ -31,6 +31,6 @@ obj-$(CONFIG_CEC_CORE) += cec/ -+ # Finally, merge the drivers that require the core -+ # -+ -+-obj-y += common/ platform/ pci/ usb/ mmc/ firewire/ spi/ -++obj-y += common/ platform/ pci/ usb/ mmc/ firewire/ spi/ vtunerc/ -+ obj-$(CONFIG_VIDEO_DEV) += radio/ -+ ---- a/backports/backports.txt -+++ b/backports/backports.txt -@@ -22,6 +22,7 @@ - # All supported versions need those patches - [9.255.255] - add api_version.patch -+add add_vtunerc_build.patch - add pr_fmt.patch - add debug.patch - add drx39xxj.patch diff --git a/v4l-dvb/patches-tbsdtv/001-Revert-build-Add-compat-code-for-pm_runtime_get_if_in_use.patch b/v4l-dvb/patches-tbsdtv/001-Revert-build-Add-compat-code-for-pm_runtime_get_if_in_use.patch deleted file mode 100644 index f9a7a38c6..000000000 --- a/v4l-dvb/patches-tbsdtv/001-Revert-build-Add-compat-code-for-pm_runtime_get_if_in_use.patch +++ /dev/null @@ -1,34 +0,0 @@ ---- a/v4l/compat.h -+++ b/v4l/compat.h -@@ -2153,21 +2153,6 @@ static inline void *skb_put_data(struct - } - #endif - --#ifdef NEED_PM_RUNTIME_GET --static inline int pm_runtime_get_if_in_use(struct device *dev) --{ -- unsigned long flags; -- int retval; -- -- spin_lock_irqsave(&dev->power.lock, flags); -- retval = dev->power.disable_depth > 0 ? -EINVAL : -- dev->power.runtime_status == RPM_ACTIVE -- && atomic_inc_not_zero(&dev->power.usage_count); -- spin_unlock_irqrestore(&dev->power.lock, flags); -- return retval; --} --#endif -- - #ifdef NEED_KEY_APPSELECT - #define KEY_APPSELECT 0x244 /* AL Select Task/Application */ - #endif ---- a/v4l/scripts/make_config_compat.pl -+++ b/v4l/scripts/make_config_compat.pl -@@ -700,7 +700,6 @@ sub check_other_dependencies() - check_files_for_func("to_of_node", "NEED_TO_OF_NODE", "include/linux/of.h"); - check_files_for_func("is_of_node", "NEED_IS_OF_NODE", "include/linux/of.h"); - check_files_for_func("skb_put_data", "NEED_SKB_PUT_DATA", "include/linux/skbuff.h"); -- check_files_for_func("pm_runtime_get_if_in_use", "NEED_PM_RUNTIME_GET", "include/linux/pm_runtime.h"); - check_files_for_func("KEY_APPSELECT", "NEED_KEY_APPSELECT", "include/uapi/linux/input-event-codes.h"); - check_files_for_func("PCI_DEVICE_SUB", "NEED_PCI_DEVICE_SUB", "include/linux/pci.h"); - check_files_for_func("annotate_reachable", "NEED_ANNOTATE_REACHABLE", "include/linux/compiler.h"); diff --git a/v4l-dvb/patches-tbsdtv/099-disable-sybols-and-drivers.patch b/v4l-dvb/patches-tbsdtv/099-disable-sybols-and-drivers.patch deleted file mode 100644 index 7a6aa8fbc..000000000 --- a/v4l-dvb/patches-tbsdtv/099-disable-sybols-and-drivers.patch +++ /dev/null @@ -1,15 +0,0 @@ ---- a/v4l/scripts/make_kconfig.pl -+++ b/v4l/scripts/make_kconfig.pl -@@ -636,6 +636,12 @@ $config{'COMPILE_TEST'} = 0; - $intopt { "DVB_MAX_ADAPTERS" } = 64; - disable_config('DVB_DEMUX_SECTION_LOSS_LOG'); - disable_config('DVB_SAA716X_FF'); -+disable_config('MEDIA_ANALOG_TV_SUPPORT'); -+disable_config('MEDIA_CAMERA_SUPPORT'); -+disable_config('MEDIA_CEC_SUPPORT'); -+disable_config('MEDIA_RADIO_SUPPORT'); -+disable_config('CEC_CORE'); -+disable_config('VIDEO_TW9910'); - - # Check dependencies - my %newconfig = checkdeps(); diff --git a/v4l-dvb/patches-tbsdtv/100-add-vtunerc-build.patch b/v4l-dvb/patches-tbsdtv/100-add-vtunerc-build.patch deleted file mode 100644 index 3ed96442a..000000000 --- a/v4l-dvb/patches-tbsdtv/100-add-vtunerc-build.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- /dev/null -+++ b/backports/add_vtunerc_build.patch -@@ -0,0 +1,18 @@ -+--- a/drivers/media/Kconfig -++++ b/drivers/media/Kconfig -+@@ -240,3 +240,5 @@ source "drivers/media/tuners/Kconfig" -+ source "drivers/media/dvb-frontends/Kconfig" -+ -+ endif # MEDIA_SUPPORT -++ -++source "drivers/media/vtunerc/Kconfig" -+--- a/drivers/media/Makefile -++++ b/drivers/media/Makefile -+@@ -31,6 +31,6 @@ obj-$(CONFIG_CEC_CORE) += cec/ -+ # Finally, merge the drivers that require the core -+ # -+ -+-obj-y += common/ platform/ pci/ usb/ mmc/ firewire/ spi/ -++obj-y += common/ platform/ pci/ usb/ mmc/ firewire/ spi/ vtunerc/ -+ obj-$(CONFIG_VIDEO_DEV) += radio/ -+ ---- a/backports/backports.txt -+++ b/backports/backports.txt -@@ -22,6 +22,7 @@ - # All supported versions need those patches - [9.255.255] - add api_version.patch -+add add_vtunerc_build.patch - add pr_fmt.patch - add debug.patch - add drx39xxj.patch diff --git a/v4l-dvb/patches-tbsdtv/101-fix-unreachable.patch b/v4l-dvb/patches-tbsdtv/101-fix-unreachable.patch deleted file mode 100644 index 9323dd663..000000000 --- a/v4l-dvb/patches-tbsdtv/101-fix-unreachable.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- a/backports/backports.txt -+++ b/backports/backports.txt -@@ -27,6 +27,7 @@ add pr_fmt.patch - add debug.patch - add drx39xxj.patch - add noretpoline.patch -+add fix_unreachable.patch - - [4.17.255] - add v4.17_proc_create_single.patch ---- /dev/null -+++ b/backports/fix_unreachable.patch -@@ -0,0 +1,18 @@ -+diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h -+index 4d54cd4..3b00158 100644 -+--- a/include/linux/compiler-gcc.h -++++ b/include/linux/compiler-gcc.h -+@@ -225,12 +225,7 @@ -+ * this in the preprocessor, but we can live with this because they're -+ * unreleased. Really, we need to have autoconf for the kernel. -+ */ -+-#define unreachable() \ -+- do { \ -+- annotate_unreachable(); \ -+- barrier_before_unreachable(); \ -+- __builtin_unreachable(); \ -+- } while (0) -++#define unreachable() __builtin_unreachable() -+ -+ /* Mark a function definition as prohibited from being cloned. */ -+ #define __noclone __attribute__((__noclone__, __optimize__("no-tracer"))) diff --git a/v4l-dvb/pci.mk b/v4l-dvb/pci.mk deleted file mode 100644 index 5c1e0e72b..000000000 --- a/v4l-dvb/pci.mk +++ /dev/null @@ -1,431 +0,0 @@ -define AddDepends/dvb-pci - SUBMENU := $(DVB_MENU) - DEPENDS := @PCI_SUPPORT +kmod-dvb-core +kmod-i2c-core $1 -endef - - -define KernelPackage/b2c2-flexcop-pci - TITLE := Technisat/B2C2 Air/Sky/Cable2PC PCI - V4L_KCONFIG := CONFIG_DVB_B2C2_FLEXCOP_PCI - FILES := $(PKG_BUILD_DIR)/v4l/b2c2-flexcop-pci.ko - AUTOLOAD := $(call AutoProbe,b2c2-flexcop-pci) - $(call AddDepends/dvb-pci,+kmod-b2c2-flexcop) -endef - -define KernelPackage/b2c2-flexcop-pci/description - Support for the Air/Sky/CableStar2 PCI card (DVB/ATSC) by Technisat/B2C2. -endef - -$(eval $(call KernelPackage,b2c2-flexcop-pci)) - -define KernelPackage/budget - TITLE := Budget SAA7146 PCI DVB cards - V4L_KCONFIG := CONFIG_DVB_BUDGET - FILES := $(PKG_BUILD_DIR)/v4l/budget.ko - AUTOLOAD := $(call AutoProbe,budget) - $(call AddDepends/dvb-pci,+kmod-budget-core) -endef - -define KernelPackage/budget/description - Support for simple SAA7146 based DVB cards (so called Budget- - or Nova-PCI cards) without onboard MPEG2 decoder, and without - analog inputs or an onboard Common Interface connector. -endef - -$(eval $(call KernelPackage,budget)) - - -define KernelPackage/budget-av - TITLE := Budget cards with analog video inputs - V4L_KCONFIG := CONFIG_DVB_BUDGET_AV - FILES := $(PKG_BUILD_DIR)/v4l/budget-av.ko - AUTOLOAD := $(call AutoProbe,budget-av) - $(call AddDepends/dvb-pci,+kmod-budget-core +kmod-saa7146-vv) -endef - -define KernelPackage/budget-av/description - Support for simple SAA7146 based DVB cards - (so called Budget- or Nova-PCI cards) without onboard - MPEG2 decoder, but with one or more analog video inputs. -endef - -$(eval $(call KernelPackage,budget-av)) - - -define KernelPackage/budget-ci - TITLE := Budget SAA7146 PCI DVB cards with CI slot - V4L_KCONFIG := CONFIG_DVB_BUDGET_CI - FILES := $(PKG_BUILD_DIR)/v4l/budget-ci.ko - AUTOLOAD := $(call AutoProbe,budget-ci) - $(call AddDepends/dvb-pci,+kmod-budget-core +kmod-rc-core) -endef - -define KernelPackage/budget-ci/description - Support for simple SAA7146 based DVB cards - (so called Budget- or Nova-PCI cards) without onboard - MPEG2 decoder, but with onboard Common Interface connector. -endef - -$(eval $(call KernelPackage,budget-ci)) - - -define KernelPackage/budget-core - TITLE := SAA7146 DVB cards (aka Budget, Nova-PCI) - V4L_KCONFIG := CONFIG_DVB_BUDGET_CORE - FILES := $(PKG_BUILD_DIR)/v4l/budget-core.ko - AUTOLOAD := $(call AutoProbe,budget-core) - $(call AddDepends/dvb-pci,+kmod-saa7146 +kmod-ttpci-eeprom) -endef - -define KernelPackage/budget-core/description - Support for simple SAA7146 based DVB cards - (so called Budget- or Nova-PCI cards) without onboard - MPEG2 decoder. -endef - -$(eval $(call KernelPackage,budget-core)) - - -define KernelPackage/budget-patch - TITLE := AV7110 cards with Budget Patch - V4L_KCONFIG := CONFIG_DVB_BUDGET_PATCH - FILES := $(PKG_BUILD_DIR)/v4l/budget-patch.ko - AUTOLOAD := $(call AutoProbe,budget-patch) - $(call AddDepends/dvb-pci,+kmod-budget-core +kmod-dvb-ttpci) -endef - -define KernelPackage/budget-patch/description - 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. -endef - -$(eval $(call KernelPackage,budget-patch)) - - -define KernelPackage/cx18 - TITLE := Conexant cx23418 MPEG encoder support - V4L_KCONFIG := CONFIG_VIDEO_CX18 - FILES := $(PKG_BUILD_DIR)/v4l/cx18.ko - AUTOLOAD := $(call AutoProbe,cx18) - $(call AddDepends/dvb-pci,+kmod-cx2341x +kmod-i2c-algo-bit +kmod-tveeprom +kmod-videobuf) -endef - -define KernelPackage/cx18/description - This is a video4linux driver for Conexant cx23418 based - PCI combo video recorder devices. - This is used in devices such as the Hauppauge HVR-1600 cards. -endef - -$(eval $(call KernelPackage,cx18)) - - -define KernelPackage/cx23885 - TITLE := Conexant cx23885 (2388x successor) support - V4L_KCONFIG := CONFIG_VIDEO_CX23885 CONFIG_MEDIA_ALTERA_CI - FILES := \ - $(PKG_BUILD_DIR)/v4l/cx23885.ko \ - $(PKG_BUILD_DIR)/v4l/altera-ci.ko \ - $(PKG_BUILD_DIR)/v4l/altera-stapl.ko - AUTOLOAD := $(call AutoProbe,cx23885 altera-ci altera-stapl) - $(call AddDepends/dvb-pci,+kmod-cx2341x +kmod-dvb-m88ds3103 +kmod-media-tuner-tda18271 +kmod-rc-core +kmod-sound-core +kmod-tveeprom +kmod-videobuf2-dma-sg +kmod-videobuf2-dvb +kmod-videobuf2-v4l2) -endef - -define KernelPackage/cx23885/description - This is a video4linux driver for Conexant 23885 based TV cards. -endef - -$(eval $(call KernelPackage,cx23885)) - - -define KernelPackage/cx25821 - TITLE := Conexant cx25821 support - V4L_KCONFIG := CONFIG_VIDEO_CX25821 - FILES := $(PKG_BUILD_DIR)/v4l/cx25821.ko - AUTOLOAD := $(call AutoProbe,cx25821) - $(call AddDepends/dvb-pci,+kmod-videobuf2-dma-sg +kmod-videobuf2-v4l2) -endef - -define KernelPackage/cx25821/description - This is a video4linux driver for Conexant 25821 based TV cards. -endef - -$(eval $(call KernelPackage,cx25821)) - - -define KernelPackage/cx88-dvb - TITLE := Conexant 2388x (bt878 successor) support - V4L_KCONFIG := \ - CONFIG_VIDEO_CX88 \ - CONFIG_VIDEO_CX88_DVB \ - CONFIG_VIDEO_CX88_ENABLE_VP3054 \ - CONFIG_VIDEO_CX88_VP3054 - FILES := \ - $(PKG_BUILD_DIR)/v4l/cx88xx.ko \ - $(PKG_BUILD_DIR)/v4l/cx8800.ko \ - $(PKG_BUILD_DIR)/v4l/cx8802.ko \ - $(PKG_BUILD_DIR)/v4l/cx88-dvb.ko \ - $(PKG_BUILD_DIR)/v4l/cx88-vp3054-i2c.ko - AUTOLOAD := $(call AutoProbe,cx88-dvb) - $(call AddDepends/dvb-pci,+kmod-dvb-tas2101 +kmod-i2c-algo-bit +kmod-rc-core +kmod-tveeprom +kmod-v4l2-core +kmod-videobuf2-dma-sg +kmod-videobuf2-dvb +kmod-videobuf2-v4l2) -endef - -define KernelPackage/cx88-dvb/description - This adds support for DVB/ATSC cards based on the Conexant 2388x chip. -endef - -$(eval $(call KernelPackage,cx88-dvb)) - - -define KernelPackage/ddbridge - TITLE := Digital Devices bridge support - V4L_KCONFIG := CONFIG_DVB_DDBRIDGE CONFIG_DVB_DDBRIDGE_MSIENABLE - FILES := $(PKG_BUILD_DIR)/v4l/ddbridge.ko - AUTOLOAD := $(call AutoProbe,ddbridge) - $(call AddDepends/dvb-pci) -endef - -define KernelPackage/ddbridge/description - Support for cards with the Digital Devices PCI express bridge: - - Octopus PCIe Bridge - - Octopus mini PCIe Bridge - - Octopus LE - - DuoFlex S2 Octopus - - DuoFlex CT Octopus - - cineS2(v6) - - CineCTv6 and DuoFlex CT (STV0367-based) - - CineCTv7 and DuoFlex CT2/C2T2/C2T2I (Sony CXD28xx-based) - - MaxA8 series - - CineS2 V7/V7A and DuoFlex S2 V4 (ST STV0910-based) - - Max S4/8 -endef - -$(eval $(call KernelPackage,ddbridge)) - - -define KernelPackage/dvb-ttpci - TITLE := AV7110 cards - V4L_KCONFIG := CONFIG_DVB_AV7110 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-ttpci.ko - AUTOLOAD := $(call AutoProbe,dvb-ttpci) - $(call AddDepends/dvb-pci,+kmod-input-core +kmod-saa7146-vv +kmod-ttpci-eeprom) -endef - -define KernelPackage/dvb-ttpci/description - 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. -endef - -$(eval $(call KernelPackage,dvb-ttpci)) - - -define KernelPackage/mantis - TITLE := Mantis/Hopper PCI bridge based devices - V4L_KCONFIG := CONFIG_MANTIS_CORE CONFIG_DVB_MANTIS CONFIG_DVB_HOPPER - FILES := \ - $(PKG_BUILD_DIR)/v4l/mantis_core.ko \ - $(PKG_BUILD_DIR)/v4l/mantis.ko \ - $(PKG_BUILD_DIR)/v4l/hopper.ko - AUTOLOAD := $(call AutoProbe,mantis hopper) - $(call AddDepends/dvb-pci,+kmod-rc-core) -endef - -define KernelPackage/mantis/description - Support for PCI cards based on the Mantis and Hopper PCi bridge. -endef - -$(eval $(call KernelPackage,mantis)) - - -define KernelPackage/netup-unidvb - TITLE := NetUP Universal DVB card support - V4L_KCONFIG := CONFIG_DVB_NETUP_UNIDVB - FILES := $(PKG_BUILD_DIR)/v4l/netup-unidvb.ko - AUTOLOAD := $(call AutoProbe,netup-unidvb) - $(call AddDepends/dvb-pci,+kmod-videobuf2-dvb +kmod-videobuf2-v4l2) -endef - -define KernelPackage/netup-unidvb/description - Support for NetUP PCI express Universal DVB card. - Card can receive two independent streams in following standards: - DVB-S/S2, T/T2, C/C2 - Two CI slots available for CAM modules. -endef - -$(eval $(call KernelPackage,netup-unidvb)) - - -define KernelPackage/ngene - TITLE := Micronas nGene bridge - V4L_KCONFIG := CONFIG_DVB_NGENE - FILES := $(PKG_BUILD_DIR)/v4l/ngene.ko - AUTOLOAD := $(call AutoProbe,ngene) - $(call AddDepends/dvb-pci) -endef - -define KernelPackage/ngene/description - Support for Micronas PCI express cards with nGene bridge. -endef - -$(eval $(call KernelPackage,ngene)) - - -define KernelPackage/pluto2 - TITLE := Pluto2 cards - V4L_KCONFIG := CONFIG_DVB_PLUTO2 - FILES := $(PKG_BUILD_DIR)/v4l/pluto2.ko - AUTOLOAD := $(call AutoProbe,pluto2) - $(call AddDepends/dvb-pci,+kmod-dvb-tda1004x +kmod-i2c-algo-bit) -endef - -define KernelPackage/pluto2/description - Support for PCI cards based on the Pluto2 FPGA like the Satelco - Easywatch Mobile Terrestrial DVB-T Receiver. -endef - -$(eval $(call KernelPackage,pluto2)) - - -define KernelPackage/saa7134-dvb - TITLE := DVB/ATSC Support for Philips SAA7134 based TV cards - V4L_KCONFIG := CONFIG_VIDEO_SAA7134 CONFIG_VIDEO_SAA7134_DVB - FILES := $(PKG_BUILD_DIR)/v4l/saa7134.ko $(PKG_BUILD_DIR)/v4l/saa7134-dvb.ko - AUTOLOAD := $(call AutoProbe,saa7134-dvb) - $(call AddDepends/dvb-pci,+kmod-rc-core +kmod-tveeprom +kmod-v4l2-core +kmod-videobuf2-dma-sg +kmod-videobuf2-dvb +kmod-videobuf2-v4l2) -endef - -define KernelPackage/saa7134-dvb/description - This is a video4linux driver for Philips SAA713x based TV cards. -endef - -$(eval $(call KernelPackage,saa7134-dvb)) - - -define KernelPackage/saa7164 - TITLE := NXP SAA7164 support - V4L_KCONFIG := CONFIG_VIDEO_SAA7164 - FILES := $(PKG_BUILD_DIR)/v4l/saa7164.ko - AUTOLOAD := $(call AutoProbe,saa7164) - $(call AddDepends/dvb-pci,+kmod-tveeprom +kmod-v4l2-core) -endef - -define KernelPackage/saa7164/description - This is a video4linux driver for NXP SAA7164 based TV cards. -endef - -$(eval $(call KernelPackage,saa7164)) - - -define KernelPackage/saa716x-core - TITLE := SAA7160/1/2 PCI Express bridge based devices - V4L_KCONFIG := CONFIG_SAA716X_SUPPORT CONFIG_SAA716X_CORE - FILES := $(PKG_BUILD_DIR)/v4l/saa716x_core.ko - AUTOLOAD := $(call AutoProbe,saa716x_core) - $(call AddDepends/dvb-pci) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/saa716x-core/description - This is a video4linux driver for NXP SAA7160/1/2 based TV cards. -endef - -$(eval $(call KernelPackage,saa716x-core)) - - -define KernelPackage/saa716x-hybrid - SUBMENU := $(DVB_MENU) - TITLE := SAA7160/1/2 based Hybrid PCIe cards (DVB + Analog) - V4L_KCONFIG := CONFIG_DVB_SAA716X_HYBRID - FILES := $(PKG_BUILD_DIR)/v4l/saa716x_hybrid.ko - AUTOLOAD := $(call AutoProbe,saa716x_hybrid) - DEPENDS := +kmod-saa716x-core @V4L_SRC_TBSDTV -endef - -define KernelPackage/saa716x-hybrid/description - Support for the SAA7160/1/2 based Hybrid PCIe DVB cards - Currently supported devices are: - * Avermedia H-788 (DVB-T) - * Avermedia HC-82 (DVB-T) - * NXP Reference (Atlantis) (DVB-T x2) - * NXP Reference (Nemo) (DVB-T) - * Twinhan/Azurewave VP-6090 (DVB-S x2, DVB-T x2) -endef - -$(eval $(call KernelPackage,saa716x-hybrid)) - - -define KernelPackage/saa716x-tbs-dvb - SUBMENU := $(DVB_MENU) - TITLE := SAA7160/1/2 based Budget PCIe cards (DVB only) - V4L_KCONFIG := CONFIG_DVB_SAA716X - FILES := $(PKG_BUILD_DIR)/v4l/saa716x_tbs-dvb.ko - AUTOLOAD := $(call AutoProbe,saa716x_tbs-dvb) - DEPENDS := +kmod-dvb-cx24117 +kmod-dvb-tas2101 +kmod-i2c-algo-bit +kmod-saa716x-core @V4L_SRC_TBSDTV -endef - -define KernelPackage/saa716x-tbs-dvb/description - Support for the SAA7160/1/2 based Budget PCIe DVB cards - Currently supported devices are: - * KNC1 Dual S2 (DVB-S, DVB-S/S2) - * Twinhan/Azurewave VP-1028 (DVB-S) - * Twinhan/Azurewave VP-3071 (DVB-T x2) - * Twinhan/Azurewave VP-6002 (DVB-S) -endef - -$(eval $(call KernelPackage,saa716x-tbs-dvb)) - - -define KernelPackage/smipcie - TITLE := SMI PCIe DVBSky cards - V4L_KCONFIG := CONFIG_DVB_SMIPCIE - FILES := $(PKG_BUILD_DIR)/v4l/smipcie.ko - AUTOLOAD := $(call AutoProbe,smipcie) - $(call AddDepends/dvb-pci,+kmod-i2c-algo-bit +kmod-rc-core) -endef - -define KernelPackage/smipcie/description - Support for cards with SMI PCIe bridge: - - DVBSky S950 V3 - - DVBSky S952 V3 - - DVBSky T9580 V3 -endef - -$(eval $(call KernelPackage,smipcie)) - - -define KernelPackage/tbs-pcie-dvb - TITLE := TBS PCIe DVB cards - V4L_KCONFIG := CONFIG_TBS_PCIE_DVB - FILES := $(PKG_BUILD_DIR)/v4l/tbs_pcie-dvb.ko - AUTOLOAD := $(call AutoProbe,tbs_pcie-dvb) - $(call AddDepends/dvb-pci,+kmod-sound-core +kmod-videobuf2-dma-sg +kmod-videobuf2-v4l2) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/tbs-pcie-dvb/description - Support for TBS PCIe DVB cards. -endef - -$(eval $(call KernelPackage,tbs-pcie-dvb)) - - -define KernelPackage/tbsecp3 - TITLE := TBS ECP3 FPGA based cards - V4L_KCONFIG := CONFIG_DVB_TBSECP3 - FILES := $(PKG_BUILD_DIR)/v4l/tbsecp3.ko - AUTOLOAD := $(call AutoProbe,tbsecp3) - $(call AddDepends/dvb-pci,+kmod-dvb-tas2101) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/tbsecp3/description - Support for cards with TBS ECP3 FPGA based PCIe bridge. -endef - -$(eval $(call KernelPackage,tbsecp3)) diff --git a/v4l-dvb/tuners.mk b/v4l-dvb/tuners.mk deleted file mode 100644 index 58396ec8e..000000000 --- a/v4l-dvb/tuners.mk +++ /dev/null @@ -1,328 +0,0 @@ -TUNER_MENU:=Media tuners - -define MediaTuner - SUBMENU := $(TUNER_MENU) - V4L_KCONFIG := \ - CONFIG_MEDIA_SUPPORT=m \ - CONFIG_MEDIA_DIGITAL_TV_SUPPORT=m \ - $2 - DEPENDS := +kmod-i2c-core - FILES := $(PKG_BUILD_DIR)/v4l/$1.ko - AUTOLOAD := $(call AutoProbe,$1) -endef - - -define KernelPackage/media-tuner-av201x - TITLE := Airoha Technology AV201x - $(call MediaTuner,av201x,CONFIG_MEDIA_TUNER_AV201X) - DEPENDS += @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,media-tuner-av201x)) - - -define KernelPackage/media-tuner-e4000 - TITLE := Elonics E4000 - $(call MediaTuner,e4000,CONFIG_MEDIA_TUNER_E4000) - DEPENDS += +kmod-regmap +kmod-v4l2-core -endef -$(eval $(call KernelPackage,media-tuner-e4000)) - - -define KernelPackage/media-tuner-fc0011 - TITLE := Fitipower FC0011 - $(call MediaTuner,fc0011,CONFIG_MEDIA_TUNER_FC0011) -endef -$(eval $(call KernelPackage,media-tuner-fc0011)) - - -define KernelPackage/media-tuner-fc0012 - TITLE := Fitipower FC0012 - $(call MediaTuner,fc0012,CONFIG_MEDIA_TUNER_FC0012) -endef -$(eval $(call KernelPackage,media-tuner-fc0012)) - - -define KernelPackage/media-tuner-fc0013 - TITLE := Fitipower FC0013 - $(call MediaTuner,fc0013,CONFIG_MEDIA_TUNER_FC0013) -endef -$(eval $(call KernelPackage,media-tuner-fc0013)) - - -define KernelPackage/media-tuner-fc2580 - TITLE := FCI FC2580 - $(call MediaTuner,fc2580,CONFIG_MEDIA_TUNER_FC2580) - DEPENDS += +kmod-regmap +kmod-v4l2-core -endef -$(eval $(call KernelPackage,media-tuner-fc2580)) - - -define KernelPackage/media-tuner-it913x - TITLE := ITE Tech IT913x - $(call MediaTuner,it913x,CONFIG_MEDIA_TUNER_IT913X) - DEPENDS += +kmod-regmap -endef -$(eval $(call KernelPackage,media-tuner-it913x)) - - -define KernelPackage/media-tuner-m88rs6000t - TITLE := Montage M88RS6000 - $(call MediaTuner,m88rs6000t,MEDIA_TUNER_M88RS6000T) - DEPENDS += +kmod-regmap -endef -$(eval $(call KernelPackage,media-tuner-m88rs6000t)) - - -define KernelPackage/media-tuner-max2165 - TITLE := Maxim MAX2165 - $(call MediaTuner,max2165,CONFIG_MEDIA_TUNER_MAX2165) -endef -$(eval $(call KernelPackage,media-tuner-max2165)) - - -define KernelPackage/media-tuner-mc44s803 - TITLE := Freescale MC44S803 - $(call MediaTuner,mc44s803,CONFIG_MEDIA_TUNER_MC44S803) -endef -$(eval $(call KernelPackage,media-tuner-mc44s803)) - - -define KernelPackage/media-tuner-msi001 - TITLE := Mirics MSi001 - $(call MediaTuner,msi001,CONFIG_MEDIA_TUNER_MSI001) - DEPENDS += +kmod-v4l2-core -endef -$(eval $(call KernelPackage,media-tuner-msi001)) - - -define KernelPackage/media-tuner-mt2060 - TITLE := Microtune MT2060 - $(call MediaTuner,mt2060,CONFIG_MEDIA_TUNER_MT2060) -endef -$(eval $(call KernelPackage,media-tuner-mt2060)) - - -define KernelPackage/media-tuner-mt2063 - TITLE := Microtune MT2063 - $(call MediaTuner,mt2063,CONFIG_MEDIA_TUNER_MT2063) -endef -$(eval $(call KernelPackage,media-tuner-mt2063)) - - -define KernelPackage/media-tuner-mt20xx - TITLE := Microtune 2032/2050 - $(call MediaTuner,mt20xx,CONFIG_MEDIA_TUNER_MT20XX) -endef -$(eval $(call KernelPackage,media-tuner-mt20xx)) - - -define KernelPackage/media-tuner-mt2131 - TITLE := Microtune MT2131 - $(call MediaTuner,mt2131,CONFIG_MEDIA_TUNER_MT2131) -endef -$(eval $(call KernelPackage,media-tuner-mt2131)) - - -define KernelPackage/media-tuner-mt2266 - TITLE := Microtune MT2266 - $(call MediaTuner,mt2266,CONFIG_MEDIA_TUNER_MT2266) -endef -$(eval $(call KernelPackage,media-tuner-mt2266)) - - -define KernelPackage/media-tuner-mxl301rf - TITLE := MaxLinear MxL301RF - $(call MediaTuner,mxl301rf,CONFIG_MEDIA_TUNER_MXL301RF) -endef -$(eval $(call KernelPackage,media-tuner-mxl301rf)) - - -define KernelPackage/media-tuner-mxl603 - TITLE := MaxLinear MxL603 - $(call MediaTuner,mxl603,CONFIG_MEDIA_TUNER_MXL603) - DEPENDS += @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,media-tuner-mxl603)) - - -define KernelPackage/media-tuner-mxl5005s - TITLE := MaxLinear MxL5005S - $(call MediaTuner,mxl5005s,CONFIG_MEDIA_TUNER_MXL5005S) -endef -$(eval $(call KernelPackage,media-tuner-mxl5005s)) - - -define KernelPackage/media-tuner-mxl5007t - TITLE := MaxLinear MxL5007T - $(call MediaTuner,mxl5007t,CONFIG_MEDIA_TUNER_MXL5007T) -endef -$(eval $(call KernelPackage,media-tuner-mxl5007t)) - - -define KernelPackage/media-tuner-qm1d1b0004 - TITLE := Sharp QM1D1B0004 - $(call MediaTuner,qm1d1b0004,CONFIG_MEDIA_TUNER_QM1D1B0004) -endef -$(eval $(call KernelPackage,media-tuner-qm1d1b0004)) - - -define KernelPackage/media-tuner-qm1d1c0042 - TITLE := Sharp QM1D1C0042 - $(call MediaTuner,qm1d1c0042,CONFIG_MEDIA_TUNER_QM1D1C0042) -endef -$(eval $(call KernelPackage,media-tuner-qm1d1c0042)) - - -define KernelPackage/media-tuner-qt1010 - TITLE := Quantek QT1010 - $(call MediaTuner,qt1010,CONFIG_MEDIA_TUNER_QT1010) -endef -$(eval $(call KernelPackage,media-tuner-qt1010)) - - -define KernelPackage/media-tuner-r820t - TITLE := Rafael Micro R820T - $(call MediaTuner,r820t,CONFIG_MEDIA_TUNER_R820T) -endef -$(eval $(call KernelPackage,media-tuner-r820t)) - - -define KernelPackage/media-tuner-r848 - TITLE := Rafael Micro R848 - $(call MediaTuner,r848,CONFIG_MEDIA_TUNER_R848) - DEPENDS += @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,media-tuner-r848)) - - -define KernelPackage/media-tuner-si2157 - TITLE := Silicon Labs Si2157 - $(call MediaTuner,si2157,CONFIG_MEDIA_TUNER_SI2157) - DEPENDS += +kmod-media +kmod-regmap -endef -$(eval $(call KernelPackage,media-tuner-si2157)) - - -define KernelPackage/media-tuner-simple - SUBMENU := $(TUNER_MENU) - TITLE := Simple tuner support - V4L_KCONFIG := \ - CONFIG_MEDIA_SUPPORT=m \ - CONFIG_MEDIA_TUNER_SIMPLE - DEPENDS := +kmod-i2c-core - FILES := \ - $(PKG_BUILD_DIR)/v4l/tuner-simple.ko \ - $(PKG_BUILD_DIR)/v4l/tuner-types.ko - AUTOLOAD := $(call AutoProbe,tuner-simple tuner-types) -endef -$(eval $(call KernelPackage,media-tuner-simple)) - - -define KernelPackage/media-tuner-stv6120 - TITLE := STMicroelectronics STV6120 - $(call MediaTuner,stv6120,CONFIG_MEDIA_TUNER_STV6120) - DEPENDS += @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,media-tuner-stv6120)) - - -define KernelPackage/media-tuner-tda18212 - TITLE := NXP TDA18212 - $(call MediaTuner,tda18212,CONFIG_MEDIA_TUNER_TDA18212) - DEPENDS += +kmod-regmap -endef -$(eval $(call KernelPackage,media-tuner-tda18212)) - - -define KernelPackage/media-tuner-tda18218 - TITLE := NXP TDA18218 - $(call MediaTuner,tda18218,CONFIG_MEDIA_TUNER_TDA18218) -endef -$(eval $(call KernelPackage,media-tuner-tda18218)) - - -define KernelPackage/media-tuner-tda18250 - TITLE := NXP TDA18250 - $(call MediaTuner,tda18250,CONFIG_MEDIA_TUNER_TDA18250) - DEPENDS += +kmod-regmap -endef -$(eval $(call KernelPackage,media-tuner-tda18250)) - - -define KernelPackage/media-tuner-tda18271 - TITLE := NXP TDA18271 - $(call MediaTuner,tda18271,CONFIG_MEDIA_TUNER_TDA18271) -endef -$(eval $(call KernelPackage,media-tuner-tda18271)) - - -define KernelPackage/media-tuner-tda18273 - TITLE := NXP TDA18273 - $(call MediaTuner,tda18273,CONFIG_MEDIA_TUNER_TDA18273) - DEPENDS += @V4L_SRC_TBSDTV -endef -$(eval $(call KernelPackage,media-tuner-tda18273)) - - -define KernelPackage/media-tuner-tda827x - TITLE := Philips TDA827X - $(call MediaTuner,tda827x,CONFIG_MEDIA_TUNER_TDA827X) -endef -$(eval $(call KernelPackage,media-tuner-tda827x)) - - -define KernelPackage/media-tuner-tda8290 - TITLE := Philips TDA 8290/8295 + 8275(a)/18271 - $(call MediaTuner,tda8290,CONFIG_MEDIA_TUNER_TDA8290) -endef -$(eval $(call KernelPackage,media-tuner-tda8290)) - - -define KernelPackage/media-tuner-tda9887 - TITLE := Philips TDA 9885/6/7 - $(call MediaTuner,tda9887,CONFIG_MEDIA_TUNER_TDA9887) -endef -$(eval $(call KernelPackage,media-tuner-tda9887)) - - -define KernelPackage/media-tuner-tea5761 - TITLE := Philips TEA5761 - $(call MediaTuner,tea5761,CONFIG_MEDIA_TUNER_TEA5761) -endef -$(eval $(call KernelPackage,media-tuner-tea5761)) - - -define KernelPackage/media-tuner-tea5767 - TITLE := Philips TEA5767 - $(call MediaTuner,tea5767,CONFIG_MEDIA_TUNER_TEA5767) -endef -$(eval $(call KernelPackage,media-tuner-tea5767)) - - -define KernelPackage/media-tuner-tua9001 - TITLE := Infineon TUA 9001 - $(call MediaTuner,tua9001,CONFIG_MEDIA_TUNER_TUA9001) - DEPENDS += +kmod-regmap -endef -$(eval $(call KernelPackage,media-tuner-tua9001)) - - -define KernelPackage/media-tuner-xc2028 - TITLE := XCeive xc2028/xc3028 - $(call MediaTuner,tuner-xc2028,CONFIG_MEDIA_TUNER_XC2028) -endef -$(eval $(call KernelPackage,media-tuner-xc2028)) - - -define KernelPackage/media-tuner-xc4000 - TITLE := Xceive XC4000 - $(call MediaTuner,xc4000,CONFIG_MEDIA_TUNER_XC4000) -endef -$(eval $(call KernelPackage,media-tuner-xc4000)) - - -define KernelPackage/media-tuner-xc5000 - TITLE := Xceive XC5000 - $(call MediaTuner,xc5000,CONFIG_MEDIA_TUNER_XC5000) -endef -$(eval $(call KernelPackage,media-tuner-xc5000)) diff --git a/v4l-dvb/usb.mk b/v4l-dvb/usb.mk deleted file mode 100644 index 263093cbf..000000000 --- a/v4l-dvb/usb.mk +++ /dev/null @@ -1,1061 +0,0 @@ -define KernelPackage/dvb-usb - SUBMENU := $(DVB_MENU) - TITLE := Support for various USB DVB devices - V4L_KCONFIG := \ - CONFIG_DVB_USB \ - CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y \ - CONFIG_MEDIA_USB_SUPPORT=y - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb.ko - AUTOLOAD := $(call AutoProbe,dvb-usb) - DEPENDS := +kmod-dvb-core +kmod-i2c-core +kmod-rc-core +kmod-usb-core -endef - -define KernelPackage/dvb-usb/description - By enabling this you will be able to choose the various supported - USB1.1 and USB2.0 DVB devices. - - Almost every USB device needs a firmware. - - For a complete list of supported USB devices see the LinuxTV DVB Wiki: - -endef - -$(eval $(call KernelPackage,dvb-usb)) - -define AddDepends/dvb-usb - SUBMENU := $(DVB_MENU) - DEPENDS += +kmod-dvb-usb $1 -endef - - -define KernelPackage/dvb-usb-v2 - SUBMENU := $(DVB_MENU) - TITLE := Support for various USB DVB devices v2 - V4L_KCONFIG := CONFIG_DVB_USB_V2 - FILES := $(PKG_BUILD_DIR)/v4l/dvb_usb_v2.ko - AUTOLOAD := $(call AutoProbe,dvb_usb_v2) - DEPENDS := +kmod-dvb-core +kmod-i2c-core +kmod-rc-core +kmod-usb-core -endef - -define KernelPackage/dvb-usb-v2/description - By enabling this you will be able to choose the various supported - USB1.1 and USB2.0 DVB devices. - - Almost every USB device needs a firmware. - - For a complete list of supported USB devices see the LinuxTV DVB Wiki: - -endef - -$(eval $(call KernelPackage,dvb-usb-v2)) - -define AddDepends/dvb-usb-v2 - SUBMENU := $(DVB_MENU) - DEPENDS += +kmod-dvb-usb-v2 $1 -endef - - -define KernelPackage/airspy - SUBMENU := $(DVB_MENU) - TITLE := Airspy - V4L_KCONFIG := CONFIG_USB_AIRSPY - FILES := $(PKG_BUILD_DIR)/v4l/airspy.ko - AUTOLOAD := $(call AutoProbe,airspy) - DEPENDS := +kmod-usb-core +kmod-videobuf2-v4l2 +kmod-videobuf2-vmalloc -endef - -define KernelPackage/airspy/description - This is a video4linux2 driver for AirSpy SDR device. -endef - -$(eval $(call KernelPackage,airspy)) - - -define KernelPackage/b2c2-flexcop-usb - SUBMENU := $(DVB_MENU) - TITLE := Technisat/B2C2 Air/Sky/Cable2PC USB - V4L_KCONFIG := CONFIG_DVB_B2C2_FLEXCOP_USB - FILES := $(PKG_BUILD_DIR)/v4l/b2c2-flexcop-usb.ko - AUTOLOAD := $(call AutoProbe,b2c2-flexcop-usb) - DEPENDS := +kmod-i2c-core +kmod-b2c2-flexcop +kmod-usb-core -endef - -define KernelPackage/b2c2-flexcop-usb/description - Support for the Air/Sky/Cable2PC USB1.1 box (DVB/ATSC) by Technisat/B2C2. -endef - -$(eval $(call KernelPackage,b2c2-flexcop-usb)) - - -define KernelPackage/cx231xx-dvb-ci - SUBMENU := $(DVB_MENU) - TITLE := DVB/ATSC Support for Cx231xx based TV cards - V4L_KCONFIG := CONFIG_VIDEO_CX231XX CONFIG_VIDEO_CX231XX_DVB - FILES := $(PKG_BUILD_DIR)/v4l/cx231xx.ko $(PKG_BUILD_DIR)/v4l/cx231xx-dvb-ci.ko - AUTOLOAD := $(call AutoProbe,cx231xx-dvb-ci) - DEPENDS := +kmod-cx2341x +kmod-dvb-core +kmod-dvb-tas2101 +kmod-rc-core +kmod-tveeprom +kmod-usb-core +kmod-videobuf @V4L_SRC_TBSDTV -endef - -define KernelPackage/cx231xx-dvb-ci/description - This adds support for DVB cards based on the Conexant cx231xx chips. -endef - -$(eval $(call KernelPackage,cx231xx-dvb-ci)) - - -define KernelPackage/dvb-as102 - SUBMENU := $(DVB_MENU) - TITLE := Abilis AS102 DVB receiver - V4L_KCONFIG := CONFIG_DVB_AS102 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-as102.ko - AUTOLOAD := $(call AutoProbe,dvb-as102) - DEPENDS := +kmod-dvb-core +kmod-i2c-core +kmod-input-core +kmod-usb-core -endef - -define KernelPackage/dvb-as102/description - Support for the Abilis AS102 based DVB-T USB2.0 receivers. -endef - -$(eval $(call KernelPackage,dvb-as102)) - - -define KernelPackage/dvb-ttusb-budget - SUBMENU := $(DVB_MENU) - TITLE := Technotrend/Hauppauge Nova-USB devices - V4L_KCONFIG := CONFIG_DVB_TTUSB_BUDGET - FILES := $(PKG_BUILD_DIR)/v4l/dvb-ttusb-budget.ko - AUTOLOAD := $(call AutoProbe,dvb-ttusb-budget) - DEPENDS := @PCI_SUPPORT +kmod-dvb-core +kmod-usb-core -endef - -define KernelPackage/dvb-ttusb-budget/description - Support for external USB adapters designed by Technotrend and - produced by Hauppauge, shipped under the brand name 'Nova-USB'. -endef - -$(eval $(call KernelPackage,dvb-ttusb-budget)) - - -define KernelPackage/dvb-usb-a800 - TITLE := AVerMedia AverTV DVB-T USB 2.0 (A800) - V4L_KCONFIG := CONFIG_DVB_USB_A800 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-a800.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-a800) - $(call AddDepends/dvb-usb,+kmod-dvb-usb-dibusb-mc-common) -endef - -define KernelPackage/dvb-usb-a800/description - Say Y here to support the AVerMedia AverTV DVB-T USB 2.0 (A800) receiver. -endef - -$(eval $(call KernelPackage,dvb-usb-a800)) - - -define KernelPackage/dvb-usb-af9005 - TITLE := Afatech AF9005 DVB-T USB1.1 support - V4L_KCONFIG := CONFIG_DVB_USB_AF9005 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-af9005.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-af9005) - $(call AddDepends/dvb-usb) -endef - -define KernelPackage/dvb-usb-af9005/description - Say Y here to support the Afatech AF9005 based DVB-T USB1.1 receiver - and the TerraTec Cinergy T USB XE (Rev.1) -endef - -$(eval $(call KernelPackage,dvb-usb-af9005)) - - -define KernelPackage/dvb-usb-af9015 - TITLE := Afatech AF9015 DVB-T USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_AF9015 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-af9015.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-af9015) - $(call AddDepends/dvb-usb-v2,+kmod-regmap) -endef - -define KernelPackage/dvb-usb-af9015/description - Support for the Afatech AF9015 based DVB-T USB2.0 receiver. -endef - -$(eval $(call KernelPackage,dvb-usb-af9015)) - - -define KernelPackage/dvb-usb-af9035 - TITLE := Afatech AF9035 DVB-T USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_AF9035 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-af9035.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-af9035) - $(call AddDepends/dvb-usb-v2) -endef - -define KernelPackage/dvb-usb-af9035/description - Say Y here to support the Afatech AF9035 based DVB USB receiver. -endef - -$(eval $(call KernelPackage,dvb-usb-af9035)) - - -define KernelPackage/dvb-usb-anysee - TITLE := Anysee DVB-T/C USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_ANYSEE - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-anysee.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-anysee) - $(call AddDepends/dvb-usb-v2) -endef - -define KernelPackage/dvb-usb-anysee/description - Anysee DVB-T/C USB2.0 support -endef - -$(eval $(call KernelPackage,dvb-usb-anysee)) - - -define KernelPackage/dvb-usb-au6610 - TITLE := Alcor Micro AU6610 USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_AU6610 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-au6610.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-au6610) - $(call AddDepends/dvb-usb-v2,+kmod-cypress-firmware) -endef - -define KernelPackage/dvb-usb-au6610/description - Say Y here to support the Sigmatek DVB-110 DVB-T USB2.0 receiver. -endef - -$(eval $(call KernelPackage,dvb-usb-au6610)) - - -define KernelPackage/dvb-usb-az6007 - TITLE := AzureWave 6007 and clones DVB-T/C USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_AZ6007 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-az6007.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-az6007) - $(call AddDepends/dvb-usb-v2,+kmod-cypress-firmware) -endef - -define KernelPackage/dvb-usb-az6007/description - Say Y here to support the AZ6007 receivers like Terratec H7. -endef - -$(eval $(call KernelPackage,dvb-usb-az6007)) - - -define KernelPackage/dvb-usb-az6027 - TITLE := Azurewave DVB-S/S2 USB2.0 AZ6027 support - V4L_KCONFIG := CONFIG_DVB_USB_AZ6027 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-az6027.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-az6027) - $(call AddDepends/dvb-usb,+kmod-dvb-stb0899 +kmod-dvb-stb6100) -endef - -define KernelPackage/dvb-usb-az6027/description - Say Y here to support the AZ6027 device -endef - -$(eval $(call KernelPackage,dvb-usb-az6027)) - - -define KernelPackage/dvb-usb-ce6230 - TITLE := Intel CE6230 DVB-T USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_CE6230 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-ce6230.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-ce6230) - $(call AddDepends/dvb-usb-v2,) -endef - -define KernelPackage/dvb-usb-ce6230/description - Say Y here to support the Intel CE6230 DVB-T USB2.0 receiver. -endef - -$(eval $(call KernelPackage,dvb-usb-ce6230)) - - -define KernelPackage/dvb-usb-cxusb - TITLE := Conexant USB2.0 hybrid reference design support - V$L_KCONFIG := CONFIG_DVB_USB_CXUSB - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-cxusb.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-cxusb) - $(call AddDepends/dvb-usb,+kmod-dvb-dib0070) -endef - -define KernelPackage/dvb-usb-cxusb/description - Support the Conexant USB2.0 hybrid reference design. - Currently, only DVB and ATSC modes are supported, analog mode - shall be added in the future. -endef - -$(eval $(call KernelPackage,dvb-usb-cxusb)) - - -define KernelPackage/dvb-usb-dib0700 - TITLE := DiBcom DiB0700 USB DVB devices - V4L_KCONFIG := CONFIG_DVB_USB_DIB0700 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-dib0700.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-dib0700) - $(call AddDepends/dvb-usb,+kmod-dvb-dib0070 +kmod-dvb-dib0090 +kmod-dvb-dib3000mc +kmod-dvb-dib7000m +kmod-dvb-dib9000) -endef - -define KernelPackage/dvb-usb-dib0700/description - Support for USB2.0/1.1 DVB receivers based on the DiB0700 USB bridge. The - USB bridge is also present in devices having the DiB7700 DVB-T-USB - silicon. This chip can be found in devices offered by Hauppauge, - Avermedia and other big and small companies. - - For an up-to-date list of devices supported by this driver, have a look - on the LinuxTV Wiki at www.linuxtv.org. - - Say Y if you own such a device and want to use it. You should build it as - a module. -endef - -$(eval $(call KernelPackage,dvb-usb-dib0700)) - - -define KernelPackage/dvb-usb-dibusb-common - TITLE := Common library for DiBcom USB drivers - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-dibusb-common.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-dibusb-common) - $(call AddDepends/dvb-usb,+kmod-dvb-dib3000mc) -endef - -$(eval $(call KernelPackage,dvb-usb-dibusb-common)) - - -define KernelPackage/dvb-usb-dibusb-mc-common - TITLE := Common library for DiBcom USB drivers - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-dibusb-mc-common.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-dibusb-mc-common) - $(call AddDepends/dvb-usb,+kmod-dvb-usb-dibusb-common) -endef - -$(eval $(call KernelPackage,dvb-usb-dibusb-mc-common)) - - -define KernelPackage/dvb-usb-dibusb-mb - TITLE := DiBcom USB DVB-T devices (DiB3000M-B based) - V4L_KCONFIG := \ - CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y \ - CONFIG_DVB_USB_DIBUSB_MB - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-dibusb-mb.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-dibusb-mb) - $(call AddDepends/dvb-usb,+kmod-dvb-usb-dibusb-common) -endef - -define KernelPackage/dvb-usb-dibusb-mb/description - Support for USB 1.1 and 2.0 DVB-T receivers based on reference designs made by - DiBcom () equipped with a DiB3000M-B demodulator. - - For an up-to-date list of devices supported by this driver, have a look - on the Linux-DVB Wiki at www.linuxtv.org. - - Say Y if you own such a device and want to use it. You should build it as - a module. -endef - -$(eval $(call KernelPackage,dvb-usb-dibusb-mb)) - - -define KernelPackage/dvb-usb-dibusb-mc - TITLE := DiBcom USB DVB-T devices (DiB3000M-C/P based) - V4L_KCONFIG := CONFIG_DVB_USB_DIBUSB_MC - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-dibusb-mc.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-dibusb-mc) - $(call AddDepends/dvb-usb,+kmod-dvb-usb-dibusb-mc-common) -endef - -define KernelPackage/dvb-usb-dibusb-mc/description - Support for USB2.0 DVB-T receivers based on reference designs made by - DiBcom () equipped with a DiB3000M-C/P demodulator. - - For an up-to-date list of devices supported by this driver, have a look - on the Linux-DVB Wiki at www.linuxtv.org. - - Say Y if you own such a device and want to use it. You should build it as - a module. -endef - -$(eval $(call KernelPackage,dvb-usb-dibusb-mc)) - - -define KernelPackage/dvb-usb-digitv - TITLE := Nebula Electronics uDigiTV DVB-T USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_DIGITV - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-digitv.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-digitv) - $(call AddDepends/dvb-usb) -endef - -define KernelPackage/dvb-usb-digitv/description - Say Y here to support the Nebula Electronics uDigitV USB2.0 DVB-T receiver. -endef - -$(eval $(call KernelPackage,dvb-usb-digitv)) - - -define KernelPackage/dvb-usb-dtt200u - TITLE := WideView WT-200U and WT-220U (pen) DVB-T USB2.0 support (Yakumo/Hama/Typhoon/Yuan) - V4L_KCONFIG := CONFIG_DVB_USB_DTT200U - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-dtt200u.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-dtt200u) - $(call AddDepends/dvb-usb) -endef - -define KernelPackage/dvb-usb-dtt200u/description - Say Y here to support the WideView/Yakumo/Hama/Typhoon/Yuan DVB-T USB2.0 receiver. - The receivers are also known as DTT200U (Yakumo) and UB300 (Yuan). - The WT-220U and its clones are pen-sized. -endef - -$(eval $(call KernelPackage,dvb-usb-dtt200u)) - - -define KernelPackage/dvb-usb-dtv5100 - TITLE := AME DTV-5100 USB2.0 DVB-T support - V4L_KCONFIG := CONFIG_DVB_USB_DTV5100 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-dtv5100.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-dtv5100) - $(call AddDepends/dvb-usb) -endef - -define KernelPackage/dvb-usb-dtv5100/description - Say Y here to support the AME DTV-5100 USB2.0 DVB-T receiver. -endef - -$(eval $(call KernelPackage,dvb-usb-dtv5100)) - - -define KernelPackage/dvb-usb-dvbsky - TITLE := DVBSky USB support - V4L_KCONFIG := CONFIG_DVB_USB_DVBSKY - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-dvbsky.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-dvbsky) - $(call AddDepends/dvb-usb-v2,+kmod-dvb-m88ds3103) -endef - -define KernelPackage/dvb-usb-dvbsky/description - Say Y here to support the USB receivers from DVBSky. -endef - -$(eval $(call KernelPackage,dvb-usb-dvbsky)) - - -define KernelPackage/dvb-usb-dw2102 - TITLE := DvbWorld & TeVii DVB-S/S2 USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_DW2102 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-dw2102.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-dw2102) - $(call AddDepends/dvb-usb) -endef - -define KernelPackage/dvb-usb-dw2102/description - Say Y here to support the DvbWorld, TeVii, Prof, TechnoTrend - DVB-S/S2 USB2.0 receivers. -endef - -$(eval $(call KernelPackage,dvb-usb-dw2102)) - - -define KernelPackage/dvb-usb-ec168 - TITLE := E3C EC168 DVB-T USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_EC168 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-ec168.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-ec168) - $(call AddDepends/dvb-usb-v2) -endef - -define KernelPackage/dvb-usb-ec168/description - Say Y here to support the E3C EC168 DVB-T USB2.0 receiver. -endef - -$(eval $(call KernelPackage,dvb-usb-ec168)) - - -define KernelPackage/dvb-usb-gl861 - TITLE := Genesys Logic GL861 USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_GL861 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-gl861.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-gl861) - $(call AddDepends/dvb-usb-v2) -endef - -define KernelPackage/dvb-usb-gl861/description - Say Y here to support the MSI Megasky 580 (55801) DVB-T USB2.0 - receiver with USB ID 0db0:5581, Friio White ISDB-T receiver - with USB ID 0x7a69:0001. -endef - -$(eval $(call KernelPackage,dvb-usb-gl861)) - - -define KernelPackage/dvb-usb-gp8psk - TITLE := GENPIX 8PSK->USB module support - V4L_KCONFIG := CONFIG_DVB_USB_GP8PSK - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-gp8psk.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-gp8psk) - $(call AddDepends/dvb-usb) -endef - -define KernelPackage/dvb-usb-gp8psk/description - Say Y here to support the GENPIX 8psk module. -endef - -$(eval $(call KernelPackage,dvb-usb-gp8psk)) - - -define KernelPackage/dvb-usb-lmedm04 - TITLE := LME DM04/QQBOX DVB-S USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_LME2510 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-lmedm04.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-lmedm04) - $(call AddDepends/dvb-usb-v2,) -endef - -define KernelPackage/dvb-usb-lmedm04/description - Say Y here to support the LME DM04/QQBOX DVB-S USB2.0. -endef - -$(eval $(call KernelPackage,dvb-usb-lmedm04)) - - -define KernelPackage/dvb-usb-m920x - TITLE := Uli m920x DVB-T USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_M920X - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-m920x.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-m920x) - $(call AddDepends/dvb-usb) -endef - -define KernelPackage/dvb-usb-m920x/description - Say Y here to support the MSI Mega Sky 580 USB2.0 DVB-T receiver. - Currently, only devices with a product id of - "DTV USB MINI" (in cold state) are supported. - Firmware required. -endef - -$(eval $(call KernelPackage,dvb-usb-m920x)) - - -define KernelPackage/dvb-usb-mxl111sf - TITLE := MxL111SF DTV USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_MXL111SF - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-mxl111sf.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-mxl111sf) - $(call AddDepends/dvb-usb-v2,+kmod-tveeprom) -endef - -define KernelPackage/dvb-usb-mxl111sf/description - Say Y here to support the MxL111SF USB2.0 DTV receiver. -endef - -$(eval $(call KernelPackage,dvb-usb-mxl111sf)) - - -define KernelPackage/dvb-usb-nova-t-usb2 - TITLE := Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_NOVA_T_USB2 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-nova-t-usb2.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-nova-t-usb2) - $(call AddDepends/dvb-usb,+kmod-dvb-usb-dibusb-mc-common) -endef - -define KernelPackage/dvb-usb-nova-t-usb2/description - Say Y here to support the Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 receiver. -endef - -$(eval $(call KernelPackage,dvb-usb-nova-t-usb2)) - - -define KernelPackage/dvb-usb-opera - TITLE := Opera1 DVB-S USB2.0 receiver - V4L_KCONFIG := CONFIG_DVB_USB_OPERA1 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-opera.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-opera) - $(call AddDepends/dvb-usb) -endef - -define KernelPackage/dvb-usb-opera/description - Say Y here to support the Opera DVB-S USB2.0 receiver. -endef - -$(eval $(call KernelPackage,dvb-usb-opera)) - - -define KernelPackage/dvb-usb-pctv452e - TITLE := Pinnacle PCTV HDTV Pro USB device/TT Connect S2-3600 - V4L_KCONFIG := CONFIG_DVB_USB_PCTV452E - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-pctv452e.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-pctv452e) - $(call AddDepends/dvb-usb,+kmod-ttpci-eeprom) -endef - -define KernelPackage/dvb-usb-pctv452e/description - Support for external USB adapter designed by Pinnacle, - shipped under the brand name 'PCTV HDTV Pro USB'. - Also supports TT Connect S2-3600/3650 cards. - Say Y if you own such a device and want to use it. -endef - -$(eval $(call KernelPackage,dvb-usb-pctv452e)) - - -define KernelPackage/dvb-usb-rtl28xxu - TITLE := Realtek RTL28xxU DVB USB support - V4L_KCONFIG := CONFIG_DVB_USB_RTL28XXU - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-rtl28xxu.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-rtl28xxu) - $(call AddDepends/dvb-usb-v2) -endef - -define KernelPackage/dvb-usb-rtl28xxu/description - Realtek RTL28xxU DVB USB support. -endef - -$(eval $(call KernelPackage,dvb-usb-rtl28xxu)) - - -define KernelPackage/dvb-usb-tbs5220 - TITLE := TurboSight TBS5220 DVB-T/T2/C USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_TBS5220 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbs5220.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbs5220) - $(call AddDepends/dvb-usb) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbs5220/description - Say Y here to support the TurboSight TBS5220 DVB-T/T2/C USB2.0 receivers. -endef - -$(eval $(call KernelPackage,dvb-usb-tbs5220)) - - -define KernelPackage/dvb-usb-tbs5301 - TITLE := TurboSight 5301 hdmi USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_TBS5220 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbs5301.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbs5301) - $(call AddDepends/dvb-usb) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbs5301/description - Say Y here to support the TurboSight 5301 hdmi USB2.0 receivers. -endef - -$(eval $(call KernelPackage,dvb-usb-tbs5301)) - - -define KernelPackage/dvb-usb-tbs5520 - TITLE := TurboSight TBS5520 support - V4L_KCONFIG := CONFIG_DVB_USB_TBS5520 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbs5520.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbs5520) - $(call AddDepends/dvb-usb) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbs5520/description - Say Y here to support the Turbosight TBS5520 USB2 DVB-T/T2/C/S/S2 device. -endef - -$(eval $(call KernelPackage,dvb-usb-tbs5520)) - - -define KernelPackage/dvb-usb-tbs5520se - TITLE := TurboSight TBS5520SE support - V4L_KCONFIG := CONFIG_DVB_USB_TBS5520SE - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbs5520se.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbs5520se) - $(call AddDepends/dvb-usb) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbs5520se/description - Say Y here to support the Turbosight TBS5520se USB2 DVB-T/T2/C/C2/S/S2/S2x device. -endef - -$(eval $(call KernelPackage,dvb-usb-tbs5520se)) - - -define KernelPackage/dvb-usb-tbs5580 - TITLE := TurboSight TBS5580 CI support - V4L_KCONFIG := CONFIG_DVB_USB_TBS5580 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbs5580.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbs5580) - $(call AddDepends/dvb-usb) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbs5580/description - Say Y here to support the Turbosight TBS5580 CI USB2 DVB-T/T2/C/C2/S/S2/S2x device. -endef - -$(eval $(call KernelPackage,dvb-usb-tbs5580)) - - -define KernelPackage/dvb-usb-tbs5590 - TITLE := Turbosight TBS5590 usb2.0 capture support - V4L_KCONFIG := CONFIG_DVB_USB_TBS5590 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbs5590.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbs5590) - $(call AddDepends/dvb-usb) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbs5590/description - Say Y here to support the Turbosight TBS5590 USB2.0 DVB-T/T2/C/C2/S/S2/S2x ASI-IN device. -endef - -$(eval $(call KernelPackage,dvb-usb-tbs5590)) - - -define KernelPackage/dvb-usb-tbs5880 - TITLE := TurboSight TBS5880 DVB-T/T2/C USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_TBS5880 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbs5880.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbs5880) - $(call AddDepends/dvb-usb) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbs5880/description - Say Y here to support the TurboSight TBS5880 DVB-T/T2/C USB2.0 receivers. -endef - -$(eval $(call KernelPackage,dvb-usb-tbs5880)) - - -define KernelPackage/dvb-usb-tbs5881 - TITLE := TurboSight TBS5881 DVB-T/T2/C USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_TBS5881 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbs5881.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbs5881) - $(call AddDepends/dvb-usb) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbs5881/description - Say Y here to support the TurboSight TBS5881 DVB-T/T2/C USB2.0 receivers. -endef - -$(eval $(call KernelPackage,dvb-usb-tbs5881)) - - -define KernelPackage/dvb-usb-tbs5922se - TITLE := TurboSight 5922SE DVB-S2 USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_TBS5922SE - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbs5922se.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbs5922se) - $(call AddDepends/dvb-usb,+kmod-dvb-tas2101) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbs5922se/description - Say Y here to support the TurboSight 5922SE DVB-S USB2.0 receivers. -endef - -$(eval $(call KernelPackage,dvb-usb-tbs5922se)) - - -define KernelPackage/dvb-usb-tbs5925 - TITLE := TurboSight 5925 DVB-S2 USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_TBS5925 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbs5925.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbs5925) - $(call AddDepends/dvb-usb) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbs5925/description - Say Y here to support the TurboSight 5925 DVB-S USB2.0 receivers. -endef - -$(eval $(call KernelPackage,dvb-usb-tbs5925)) - - -define KernelPackage/dvb-usb-tbs5927 - TITLE := TurboSight 5927 DVB-S2 USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_TBS5927 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbs5927.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbs5927) - $(call AddDepends/dvb-usb) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbs5927/description - Say Y here to support the TurboSight 5927 DVB-S USB2.0 receivers. -endef - -$(eval $(call KernelPackage,dvb-usb-tbs5927)) - - -define KernelPackage/dvb-usb-tbsqbox2 - TITLE := TurboSight QBOX2 DVB-S2 USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_TBSQBOX2 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbsqbox2.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbsqbox2) - $(call AddDepends/dvb-usb) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbsqbox2/description - Say Y here to support the TurboSight QBOX2 DVB-S USB2.0 receivers. -endef - -$(eval $(call KernelPackage,dvb-usb-tbsqbox2)) - - -define KernelPackage/dvb-usb-tbsqbox22 - TITLE := TurboSight QBOX22 DVB-S2 USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_TBSQBOX22 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbsqbox22.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbsqbox22) - $(call AddDepends/dvb-usb,+kmod-dvb-tas2101) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbsqbox22/description - Say Y here to support the TurboSight QBOX22 DVB-S USB2.0 receivers. -endef - -$(eval $(call KernelPackage,dvb-usb-tbsqbox22)) - - -define KernelPackage/dvb-usb-tbsqbox - TITLE := TurboSight QBOX DVB-S2 USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_TBSQBOX - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbsqbox.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbsqbox) - $(call AddDepends/dvb-usb) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbsqbox/description - Say Y here to support the TurboSight QBOX DVB-S USB2.0 receivers. -endef - -$(eval $(call KernelPackage,dvb-usb-tbsqbox)) - - -define KernelPackage/dvb-usb-tbsqbox2ci - TITLE := TurboSight QBOX2 CI DVB-S2 USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_TBSQBOX2CI - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbsqbox2ci.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbsqbox2ci) - $(call AddDepends/dvb-usb) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbsqbox2ci/description - Say Y here to support the TurboSight QBOX2 CI DVB-S USB2.0 receivers. -endef - -$(eval $(call KernelPackage,dvb-usb-tbsqbox2ci)) - - -define KernelPackage/dvb-usb-tbsqboxs2 - TITLE := TurboSight QBOX S2 DVB-S2 USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_TBSQBOXS2 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-tbsqboxs2.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-tbsqboxs2) - $(call AddDepends/dvb-usb) - DEPENDS += @V4L_SRC_TBSDTV -endef - -define KernelPackage/dvb-usb-tbsqboxs2/description - Say Y here to support the TurboSight QBOX S2 DVB-S USB2.0 receivers. -endef - -$(eval $(call KernelPackage,dvb-usb-tbsqboxs2)) - - -define KernelPackage/dvb-usb-technisat-usb2 - TITLE := Technisat DVB-S/S2 USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_TECHNISAT_USB2 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-technisat-usb2.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-technisat-usb2) - $(call AddDepends/dvb-usb) -endef - -define KernelPackage/dvb-usb-technisat-usb2/description - Say Y here to support the Technisat USB2 DVB-S/S2 device. -endef - -$(eval $(call KernelPackage,dvb-usb-technisat-usb2)) - - -define KernelPackage/dvb-usb-ttusb2 - TITLE := Pinnacle 400e DVB-S USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_TTUSB2 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-ttusb2.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-ttusb2) - $(call AddDepends/dvb-usb) -endef - -define KernelPackage/dvb-usb-ttusb2/description - Say Y here to support the Pinnacle 400e DVB-S USB2.0 receiver and - the TechnoTrend CT-3650 CI DVB-C/T USB2.0 receiver. The - firmware protocol used by this module is similar to the one used by the - old ttusb-driver - that's why the module is called dvb-usb-ttusb2. -endef - -$(eval $(call KernelPackage,dvb-usb-ttusb2)) - - -define KernelPackage/dvb-usb-umt-010 - TITLE := HanfTek UMT-010 DVB-T USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_UMT_010 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-umt-010.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-umt-010) - $(call AddDepends/dvb-usb,+kmod-dvb-usb-dibusb-common) -endef - -define KernelPackage/dvb-usb-umt-010/description - Say Y here to support the HanfTek UMT-010 USB2.0 stick-sized DVB-T receiver. -endef - -$(eval $(call KernelPackage,dvb-usb-umt-010)) - - -define KernelPackage/dvb-usb-vp702x - TITLE := TwinhanDTV StarBox and clones DVB-S USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_VP702X - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-vp702x.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-vp702x) - $(call AddDepends/dvb-usb) -endef - -define KernelPackage/dvb-usb-vp702x/description - TwinhanDTV StarBox, DigitalRise USB Starbox and - TYPHOON DVB-S USB 2.0 BOX. -endef - -$(eval $(call KernelPackage,dvb-usb-vp702x)) - - -define KernelPackage/dvb-usb-vp7045 - TITLE := TwinhanDTV Alpha/MagicBoxII, DNTV tinyUSB2, Beetle USB2.0 support - V4L_KCONFIG := CONFIG_DVB_USB_VP7045 - FILES := $(PKG_BUILD_DIR)/v4l/dvb-usb-vp7045.ko - AUTOLOAD := $(call AutoProbe,dvb-usb-vp7045) - $(call AddDepends/dvb-usb) -endef - -define KernelPackage/dvb-usb-vp7045/description - TwinhanDTV Alpha (stick) (VP-7045), TwinhanDTV MagicBox II (VP-7046), - DigitalNow TinyUSB 2 DVB-t, DigitalRise USB 2.0 Ter (Beetle) and - TYPHOON DVB-T USB DRIVE. -endef - -$(eval $(call KernelPackage,dvb-usb-vp7045)) - - -define KernelPackage/em28xx-dvb - SUBMENU := $(DVB_MENU) - TITLE := DVB/ATSC Support for em28xx based TV cards - V4L_KCONFIG := CONFIG_VIDEO_EM28XX CONFIG_VIDEO_EM28XX_DVB - FILES := $(PKG_BUILD_DIR)/v4l/em28xx.ko $(PKG_BUILD_DIR)/v4l/em28xx-dvb.ko - AUTOLOAD := $(call AutoProbe,em28xx-dvb) - DEPENDS := +kmod-dvb-core +kmod-tveeprom +kmod-usb-core +kmod-v4l2-core -endef - -define KernelPackage/em28xx-dvb/description - This adds support for DVB cards based on the Empiatech em28xx chips. -endef - -$(eval $(call KernelPackage,em28xx-dvb)) - - -define KernelPackage/hackrf - SUBMENU := $(DVB_MENU) - TITLE := HackRF - V4L_KCONFIG := CONFIG_USB_HACKRF - FILES := $(PKG_BUILD_DIR)/v4l/hackrf.ko - AUTOLOAD := $(call AutoProbe,hackrf) - DEPENDS := +kmod-usb-core +kmod-videobuf2-v4l2 +kmod-videobuf2-vmalloc -endef - -define KernelPackage/hackrf/description - To compile this driver as a module, choose M here, the module will be called hackrf. -endef - -$(eval $(call KernelPackage,hackrf)) - - -define KernelPackage/msi2500 - SUBMENU := $(DVB_MENU) - TITLE := Mirics MSi2500 - V4L_KCONFIG := CONFIG_USB_MSI2500 - FILES := $(PKG_BUILD_DIR)/v4l/msi2500.ko - AUTOLOAD := $(call AutoProbe,msi2500) - DEPENDS := +kmod-usb-core +kmod-v4l2-core +kmod-videobuf2-v4l2 +kmod-videobuf2-vmalloc -endef - -$(eval $(call KernelPackage,msi2500)) - - -define KernelPackage/smsusb - SUBMENU := $(DVB_MENU) - TITLE := Siano SMS1xxx based MDTV receiver - V4L_KCONFIG := CONFIG_SMS_USB_DRV - FILES := $(PKG_BUILD_DIR)/v4l/smsusb.ko - AUTOLOAD := $(call AutoProbe,smsusb) - DEPENDS := +kmod-smsmdtv +kmod-usb-core -endef - -define KernelPackage/smsusb/description - Choose if you would like to have Siano's support for USB interface. -endef - -$(eval $(call KernelPackage,smsusb)) - - -define KernelPackage/tm6000-dvb - SUBMENU := $(DVB_MENU) - TITLE := DVB Support for tm6000 based TV cards - V4L_KCONFIG := CONFIG_VIDEO_TM6000 CONFIG_VIDEO_TM6000_DVB - FILES := $(PKG_BUILD_DIR)/v4l/tm6000.ko $(PKG_BUILD_DIR)/v4l/tm6000-dvb.ko - AUTOLOAD := $(call AutoProbe,tm6000-dvb) - DEPENDS := +kmod-dvb-core +kmod-rc-core +kmod-usb-core +kmod-v4l2-core +kmod-videobuf -endef - -define KernelPackage/tm6000-dvb/description - This adds support for DVB cards based on the tm5600/tm6000 chip. -endef - -$(eval $(call KernelPackage,tm6000-dvb)) - - -define KernelPackage/ttusb-dec - SUBMENU := $(DVB_MENU) - TITLE := Technotrend/Hauppauge USB DEC devices - V4L_KCONFIG := CONFIG_DVB_TTUSB_DEC - FILES := $(PKG_BUILD_DIR)/v4l/ttusb_dec.ko $(PKG_BUILD_DIR)/v4l/ttusbdecfe.ko - AUTOLOAD := $(call AutoProbe,ttusb_dec ttusbdecfe) - DEPENDS := @PCI_SUPPORT +kmod-dvb-core +kmod-input-core +kmod-usb-core -endef - -define KernelPackage/ttusb-dec/description - Support for external USB adapters designed by Technotrend and - produced by Hauppauge, shipped under the brand name 'DEC2000-t' - and 'DEC3000-s'. -endef - -$(eval $(call KernelPackage,ttusb-dec)) - - -define KernelPackage/zd1301 - TITLE := ZyDAS ZD1301 - V4L_KCONFIG := CONFIG_DVB_USB_ZD1301 - FILES := $(PKG_BUILD_DIR)/v4l/zd1301.ko - AUTOLOAD := $(call AutoProbe,zd1301) - $(call AddDepends/dvb-usb-v2,+kmod-dvb-zd1301-demod) -endef - -define KernelPackage/zd1301/description - Say Y here to support the ZyDAS ZD1301 DVB USB receiver. -endef - -$(eval $(call KernelPackage,zd1301))