This is a modified version of the tbsecp3 and saa716x modules (and the dependend modules) from the tbsdtv/linux_media repository.
These are out-of-tree modules and do not require a full v4l media tree.
It is currently only tested on ArchLinux (Linux 5.8) with a TBS 6281SE DVB-T/T2/C.
This repo currently contains the following modules:
- tbsecp3
- saa716x
- saa716x_core
- saa716x_ff
- saa716x_hybrid
- saa716x_tbs-dvb
- dvb-frontends
- cx24117
- gx1133
- gx1503
- isl6422
- isl6423
- m88rs6060
- mb86a16
- mn88436
- mtv23x
- mxl58x
- si2168
- si2183
- stb6100
- stid135
- stv090x
- stv091x
- stv6110x
- tas2101
- tas2971
- tda1004x
- zl10353
- tuners
- av201x
- mxl603
- rda5816
- si2157
- stv6120
- tda18212
- tda827x
- tda8290
The upstream drivers are only modified to fix some build failures. Currently there are two major problems with the upstream drivers:
-
The min and max frequency settings recently changed in the v4l media tree. The units of the settings were converted to Hz and some defines for MHz and kHz were introduced. The media tree in the kernel does not contain this changes yet, so we need to add back the old format of the settings inside
#ifdef
. -
The tbsdtv/linux_media tree contains some patches to add
spi_read
,spi_write
,eeprom_read
andeeprom_write
functions to the device operations for the dvb-frontends. This requires a modification of the dvb-core module. Because the aim of this repo is to use the dvb-core module from your running linux kernel, this does not work.This modifications are ifdef'ed with
TBS_STANDALONE
. So you cannot usespi_read
,spi_write
,eeprom_read
andeeprom_write
with the modules from this repository. But this should no be required for normal operation. -
Some files are missing an include of
linux/version.h
. -
The saa716x driver contains a custom autorepeat handling for ir commands. Because the kernel changed the timer API in 4.14 the custom handling is removed when building for newer kernels (the autorepeat is handled in the input layer now). This is the kernel commit 5aeaa3e668de0782d1502f3d5751e2266a251d7c applied to the saa716x driver.
-
The saa716 driver contains a handler for the
AUDIO_GET_PTS
ioctl. Support for this ioctl was removed in kernel commit d21c249b26311dd193b100e65fc9e7ae96233d40. The ioctl handler is removed via ifdef ifAUDIO_GET_PTS
is not availabe.
To build the modules just execute:
make
and install the modules with:
make modules_install
This will build the modules for the running kernel. If you want to build the
modules for another kernel (maybe during update before rebooting) you can use
the KDIR
variable:
make KDIR=/lib/modules/4.18.12-arch1-1-ARCH/build
make KDIR=/lib/modules/4.18.12-arch1-1-ARCH/build modules_install