summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomasz Maciej Nowak2018-02-07 17:48:50 +0100
committerTomasz Maciej Nowak2018-02-07 17:48:50 +0100
commit7049152dca2ad76ab8d1b266066540afa95f3afb (patch)
treec647e58e794482206904742357605b0bcedbd316
parent0568c76543ae09a74e87c5ea231fe3160d01c488 (diff)
downloadaur-7049152dca2ad76ab8d1b266066540afa95f3afb.tar.gz
upgpkg: vtunerc-dkms 1.4-2
fix build with 4.15 kernel
-rw-r--r--.SRCINFO18
-rw-r--r--PKGBUILD19
-rw-r--r--dkms.conf3
-rw-r--r--kernel-3.10.patch38
-rw-r--r--kernel-4.15.patch35
-rw-r--r--kernel-4.2.patch11
-rw-r--r--kernel-4.6.patch7
-rw-r--r--tweaks.patch37
8 files changed, 101 insertions, 67 deletions
diff --git a/.SRCINFO b/.SRCINFO
index e02d822c3619..474c16ac9b8e 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,10 +1,10 @@
# Generated by mksrcinfo v8
-# Thu Feb 2 20:48:19 UTC 2017
+# Wed Feb 7 16:48:51 UTC 2018
pkgbase = vtunerc-dkms
pkgdesc = VTuner client kernel module for virtual DVB's
pkgver = 1.4
- pkgrel = 1
- url = http://code.google.com/p/vtuner/
+ pkgrel = 2
+ url = http://code.google.com/p/vtuner
arch = x86_64
arch = i686
arch = arm
@@ -20,16 +20,18 @@ pkgbase = vtunerc-dkms
source = kernel-3.10.patch
source = kernel-4.2.patch
source = kernel-4.6.patch
+ source = kernel-4.15.patch
source = tweaks.patch
source = 93-vtunerc.rules
source = dkms.conf
sha256sums = c6ba0cfd808e3f8473a5ea25d4ac2871b826edc62de5f3624c0bd812aad63bc1
- sha256sums = caf2b8c5c4bf7808da4c48fa272f1706e0ca1ca4db84a08d9d2373e6e38e7812
- sha256sums = ab7f8c73aa578e4bc0a7cf58c112115cb6f215eb0a7f013773d6d4a50730d527
- sha256sums = 6c634f32b245cfc097e45b426515a1d8f5c892a60a9f9e442540d6b3a2489042
- sha256sums = bd5d9b0659fb8a2d8555adc7f60bcf2915f29244402a744aac9e10b1a50adb8c
+ sha256sums = 5793c331fd8290a81ac15f7815447fcb880a0b38b562aac24ad171448787057a
+ sha256sums = 5be590ec7c98ef199bd7643712685ffa7474010cc6fc95fd8ca347e92e46d45f
+ sha256sums = fcbaa696db85c888808919b81907a84fc1607fc5b5663c009927d5af322a1085
+ sha256sums = 52c6700a8ccad5e6ee2b25f165dcd167d852ec9448700e00bc62c07303a86ebd
+ sha256sums = bbcebd1e8252d6961733b333731c1d2777d41de7edc0c04ffb2d7b381c046368
sha256sums = 4b2d860cac8c8bab2d8fa79760d4405bef6fd042f4e78b680d25d1a5ebcbf83d
- sha256sums = d2e90a5d2da394c9ffe4ab796383d6cdd7304e926ad095b7dad6fec4a23efd5d
+ sha256sums = d0179af691700df2be637bd8e345f133d136843f442d88837dc16616e3d335ef
pkgname = vtunerc-dkms
diff --git a/PKGBUILD b/PKGBUILD
index e7ba93dd3d4a..a218c6ff81fd 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,10 +1,13 @@
# Maintainer: Tomasz Maciej Nowak <com[dot]gmail[at]tmn505>
+
+# All my PKGBUILDs are managed at https://github.com/tmn505/AUR
+
pkgname='vtunerc-dkms'
pkgdesc="VTuner client kernel module for virtual DVB's"
pkgver=1.4
-pkgrel=1
+pkgrel=2
arch=('x86_64' 'i686' 'arm' 'armv6h' 'armv7h' 'aarch64')
-url="http://code.google.com/p/vtuner/"
+url="http://code.google.com/p/vtuner"
license=('GPL2')
depends=('linux>=3.3' 'dkms')
conflicts=('vtuner-module' 'vtuner-module-lts')
@@ -12,16 +15,18 @@ source=("vtuner.linux-driver-rel${pkgver}.tar.gz::https://github.com/lecotex/vtu
'kernel-3.10.patch'
'kernel-4.2.patch'
'kernel-4.6.patch'
+ 'kernel-4.15.patch'
'tweaks.patch'
'93-vtunerc.rules'
'dkms.conf')
sha256sums=('c6ba0cfd808e3f8473a5ea25d4ac2871b826edc62de5f3624c0bd812aad63bc1'
- 'caf2b8c5c4bf7808da4c48fa272f1706e0ca1ca4db84a08d9d2373e6e38e7812'
- 'ab7f8c73aa578e4bc0a7cf58c112115cb6f215eb0a7f013773d6d4a50730d527'
- '6c634f32b245cfc097e45b426515a1d8f5c892a60a9f9e442540d6b3a2489042'
- 'bd5d9b0659fb8a2d8555adc7f60bcf2915f29244402a744aac9e10b1a50adb8c'
+ '5793c331fd8290a81ac15f7815447fcb880a0b38b562aac24ad171448787057a'
+ '5be590ec7c98ef199bd7643712685ffa7474010cc6fc95fd8ca347e92e46d45f'
+ 'fcbaa696db85c888808919b81907a84fc1607fc5b5663c009927d5af322a1085'
+ '52c6700a8ccad5e6ee2b25f165dcd167d852ec9448700e00bc62c07303a86ebd'
+ 'bbcebd1e8252d6961733b333731c1d2777d41de7edc0c04ffb2d7b381c046368'
'4b2d860cac8c8bab2d8fa79760d4405bef6fd042f4e78b680d25d1a5ebcbf83d'
- 'd2e90a5d2da394c9ffe4ab796383d6cdd7304e926ad095b7dad6fec4a23efd5d')
+ 'd0179af691700df2be637bd8e345f133d136843f442d88837dc16616e3d335ef')
package() {
install -dm755 ${pkgdir}/usr/src/vtunerc-${pkgver}/patches
diff --git a/dkms.conf b/dkms.conf
index 4e674bf39dde..2ac8ca32da65 100644
--- a/dkms.conf
+++ b/dkms.conf
@@ -16,3 +16,6 @@ PATCH_MATCH[2]="(4\.[2-9](.*)|4\.[0-9][0-9]\.(.*))"
PATCH[3]="kernel-4.6.patch"
PATCH_MATCH[3]="(4\.[6-9](.*)|4\.[0-9][0-9]\.(.*))"
+
+PATCH[3]="kernel-4.15.patch"
+PATCH_MATCH[3]="(4\.1[5-9](.*)|4\.[0-9][0-9]\.(.*))"
diff --git a/kernel-3.10.patch b/kernel-3.10.patch
index df72c3a4defa..d9b602e88a3f 100644
--- a/kernel-3.10.patch
+++ b/kernel-3.10.patch
@@ -1,6 +1,5 @@
-diff -uprNx '.*' vtuner.linux-driver-rel1.4.orig/vtunerc_main.c vtuner.linux-driver-rel1.4/vtunerc_main.c
---- vtuner.linux-driver-rel1.4.orig/vtunerc_main.c 2016-01-10 21:20:06.319074454 +0100
-+++ vtuner.linux-driver-rel1.4/vtunerc_main.c 2016-01-10 21:22:45.112413694 +0100
+--- a/vtunerc_main.c
++++ b/vtunerc_main.c
@@ -22,6 +22,7 @@
#include <linux/i2c.h>
#include <asm/uaccess.h>
@@ -9,7 +8,7 @@ diff -uprNx '.*' vtuner.linux-driver-rel1.4.orig/vtunerc_main.c vtuner.linux-dri
#include "demux.h"
#include "dmxdev.h"
-@@ -176,64 +177,53 @@ static char *get_fe_name(struct dvb_fron
+@@ -176,64 +177,53 @@ static char *get_fe_name(struct dvb_frontend_info *feinfo)
return (feinfo && feinfo->name) ? feinfo->name : "(not set)";
}
@@ -27,7 +26,8 @@ diff -uprNx '.*' vtuner.linux-driver-rel1.4.orig/vtunerc_main.c vtuner.linux-dri
-#define MAXBUF 512
-int vtunerc_read_proc(char *buffer, char **start, off_t offset, int size,
- int *eof, void *data)
--{
++static int vtunerc_read_proc(struct seq_file *seq, void *v)
+ {
- char outbuf[MAXBUF] = "[ vtunerc driver, version "
- VTUNERC_MODULE_VERSION " ]\n";
- int blen, i, pcnt;
@@ -44,8 +44,6 @@ diff -uprNx '.*' vtuner.linux-driver-rel1.4.orig/vtunerc_main.c vtuner.linux-dri
- blen = strlen(outbuf);
- if (ctx->pidtab[i] != PID_UNKNOWN) {
- sprintf(outbuf+blen, " %x", ctx->pidtab[i]);
-+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 "
@@ -74,11 +72,6 @@ diff -uprNx '.*' vtuner.linux-driver-rel1.4.orig/vtunerc_main.c vtuner.linux-dri
-
- if (offset != 0)
- return 0;
--
-- strcpy(buffer, outbuf);
--
-- /* signal EOF */
-- *eof = 1;
+ }
+ seq_printf(seq, " (len=%d)\n", pcnt);
+ seq_printf(seq, " FE type : %s\n", get_fe_name(ctx->feinfo));
@@ -86,12 +79,12 @@ diff -uprNx '.*' vtuner.linux-driver-rel1.4.orig/vtunerc_main.c vtuner.linux-dri
+ return 0;
+}
-- return blen;
+- strcpy(buffer, outbuf);
+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);
@@ -100,20 +93,24 @@ diff -uprNx '.*' vtuner.linux-driver-rel1.4.orig/vtunerc_main.c vtuner.linux-dri
+ return ret;
+}
+- /* signal EOF */
+- *eof = 1;
+static int vtuner_proc_release(struct inode *inode, struct file *file)
+{
+ int ret = single_release(inode, file);
+ module_put(THIS_MODULE);
+ return ret;
- }
-+
++}
+
+- return blen;
+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)
@@ -128,9 +125,8 @@ diff -uprNx '.*' vtuner.linux-driver-rel1.4.orig/vtunerc_main.c vtuner.linux-dri
ctx) == 0)
printk(KERN_WARNING
"vtunerc%d: Unable to register '%s' proc file\n",
-diff -uprNx '.*' vtuner.linux-driver-rel1.4.orig/vtunerc_priv.h vtuner.linux-driver-rel1.4/vtunerc_priv.h
---- vtuner.linux-driver-rel1.4.orig/vtunerc_priv.h 2013-04-18 23:19:32.000000000 +0200
-+++ vtuner.linux-driver-rel1.4/vtunerc_priv.h 2016-01-10 21:22:05.879078901 +0100
+--- a/vtunerc_priv.h
++++ b/vtunerc_priv.h
@@ -20,6 +20,7 @@
#include <linux/module.h> /* Specifically, a module */
#include <linux/kernel.h> /* We're doing kernel work */
@@ -139,7 +135,7 @@ diff -uprNx '.*' vtuner.linux-driver-rel1.4.orig/vtunerc_priv.h vtuner.linux-dri
#include "demux.h"
#include "dmxdev.h"
-@@ -108,4 +109,12 @@ if (ctx->config && (ctx->config->debug))
+@@ -108,4 +109,12 @@ if (ctx->config && (ctx->config->debug)) \
printk(KERN_DEBUG "vtunerc%d: " fmt, ctx->idx, ##arg); \
} while (0)
diff --git a/kernel-4.15.patch b/kernel-4.15.patch
new file mode 100644
index 000000000000..68eb788c9cf0
--- /dev/null
+++ b/kernel-4.15.patch
@@ -0,0 +1,35 @@
+--- a/vtunerc_main.c
++++ b/vtunerc_main.c
+@@ -119,10 +119,6 @@ static int vtunerc_start_feed(struct dvb_demux_feed *feed)
+ break;
+ case DMX_TYPE_SEC:
+ break;
+- case DMX_TYPE_PES:
+- printk(KERN_ERR "vtunerc%d: feed type PES is not supported\n",
+- ctx->idx);
+- return -EINVAL;
+ default:
+ printk(KERN_ERR "vtunerc%d: feed type %d is not supported\n",
+ ctx->idx, feed->type);
+--- a/vtunerc_proxyfe.c
++++ b/vtunerc_proxyfe.c
+@@ -234,11 +234,6 @@ static int dvb_proxyfe_set_frontend(struct dvb_frontend *fe)
+ return 0;
+ }
+
+-static int dvb_proxyfe_get_property(struct dvb_frontend *fe, struct dtv_property* tvp)
+-{
+- return 0;
+-}
+-
+ static enum dvbfe_algo dvb_proxyfe_get_frontend_algo(struct dvb_frontend *fe)
+ {
+ return DVBFE_ALGO_SW;
+@@ -478,7 +473,6 @@ static struct dvb_frontend_ops dvb_proxyfe_qpsk_ops = {
+ .sleep = dvb_proxyfe_sleep,
+
+ .get_frontend = dvb_proxyfe_get_frontend,
+- .get_property = dvb_proxyfe_get_property,
+ .get_frontend_algo = dvb_proxyfe_get_frontend_algo,
+ .set_frontend = dvb_proxyfe_set_frontend,
+
diff --git a/kernel-4.2.patch b/kernel-4.2.patch
index 24af5d2f6540..df398b6fe823 100644
--- a/kernel-4.2.patch
+++ b/kernel-4.2.patch
@@ -1,6 +1,5 @@
-diff -uprNx '.*' vtuner.linux-driver.orig/vtunerc_proxyfe.c vtuner.linux-driver/vtunerc_proxyfe.c
---- vtuner.linux-driver.orig/vtunerc_proxyfe.c 2016-01-10 03:06:52.000000000 +0100
-+++ vtuner.linux-driver/vtunerc_proxyfe.c 2016-01-10 12:55:53.141702168 +0100
+--- a/vtunerc_proxyfe.c
++++ b/vtunerc_proxyfe.c
@@ -36,7 +36,7 @@ struct dvb_proxyfe_state {
};
@@ -10,7 +9,7 @@ diff -uprNx '.*' vtuner.linux-driver.orig/vtunerc_proxyfe.c vtuner.linux-driver/
{
struct dvb_proxyfe_state *state = fe->demodulator_priv;
struct vtunerc_ctx *ctx = state->ctx;
-@@ -254,7 +254,7 @@ static int dvb_proxyfe_init(struct dvb_f
+@@ -254,7 +254,7 @@ static int dvb_proxyfe_init(struct dvb_frontend *fe)
return 0;
}
@@ -19,7 +18,7 @@ diff -uprNx '.*' vtuner.linux-driver.orig/vtunerc_proxyfe.c vtuner.linux-driver/
{
struct dvb_proxyfe_state *state = fe->demodulator_priv;
struct vtunerc_ctx *ctx = state->ctx;
-@@ -267,7 +267,7 @@ static int dvb_proxyfe_set_tone(struct d
+@@ -267,7 +267,7 @@ static int dvb_proxyfe_set_tone(struct dvb_frontend *fe, fe_sec_tone_mode_t tone
return 0;
}
@@ -28,7 +27,7 @@ diff -uprNx '.*' vtuner.linux-driver.orig/vtunerc_proxyfe.c vtuner.linux-driver/
{
struct dvb_proxyfe_state *state = fe->demodulator_priv;
struct vtunerc_ctx *ctx = state->ctx;
-@@ -293,7 +293,7 @@ static int dvb_proxyfe_send_diseqc_msg(s
+@@ -293,7 +293,7 @@ static int dvb_proxyfe_send_diseqc_msg(struct dvb_frontend *fe, struct dvb_diseq
return 0;
}
diff --git a/kernel-4.6.patch b/kernel-4.6.patch
index afa3e551f0f4..a1a63613ad44 100644
--- a/kernel-4.6.patch
+++ b/kernel-4.6.patch
@@ -1,7 +1,6 @@
-diff -uprNx '.*' vtuner.linux-driver-rel1.4.orig/vtunerc_proxyfe.c vtuner.linux-driver-rel1.4/vtunerc_proxyfe.c
---- vtuner.linux-driver-rel1.4.orig/vtunerc_proxyfe.c 2016-08-05 11:33:24.000000000 +0200
-+++ vtuner.linux-driver-rel1.4/vtunerc_proxyfe.c 2016-08-05 11:34:37.840983911 +0200
-@@ -107,9 +107,9 @@ static int dvb_proxyfe_read_ucblocks(str
+--- a/vtunerc_proxyfe.c
++++ b/vtunerc_proxyfe.c
+@@ -107,9 +107,9 @@ static int dvb_proxyfe_read_ucblocks(struct dvb_frontend *fe, u32 *ucblocks)
return 0;
}
diff --git a/tweaks.patch b/tweaks.patch
index dfacb16434f9..5530503563e8 100644
--- a/tweaks.patch
+++ b/tweaks.patch
@@ -1,7 +1,6 @@
-diff -uprNx '.*' vtuner.linux-driver/vtunerc_ctrldev.c vtuner_tweak/vtunerc_ctrldev.c
---- vtuner.linux-driver/vtunerc_ctrldev.c 2015-03-27 16:20:00.000000000 +0100
-+++ vtuner_tweak/vtunerc_ctrldev.c 2015-05-10 02:19:42.000000000 +0200
-@@ -404,7 +411,7 @@ void vtunerc_unregister_ctrldev(struct v
+--- a/vtunerc_ctrldev.c
++++ b/vtunerc_ctrldev.c
+@@ -404,7 +404,7 @@ void vtunerc_unregister_ctrldev(struct vtunerc_config *config)
int vtunerc_ctrldev_xchange_message(struct vtunerc_ctx *ctx,
struct vtuner_message *msg, int wait4response)
{
@@ -10,7 +9,7 @@ diff -uprNx '.*' vtuner.linux-driver/vtunerc_ctrldev.c vtuner_tweak/vtunerc_ctrl
if (down_interruptible(&ctx->xchange_sem))
return -ERESTARTSYS;
-@@ -413,7 +420,7 @@ int vtunerc_ctrldev_xchange_message(stru
+@@ -413,7 +413,7 @@ int vtunerc_ctrldev_xchange_message(struct vtunerc_ctx *ctx,
up(&ctx->xchange_sem);
return 0;
}
@@ -19,7 +18,7 @@ diff -uprNx '.*' vtuner.linux-driver/vtunerc_ctrldev.c vtuner_tweak/vtunerc_ctrl
#if 0
BUG_ON(ctx->ctrldev_request.type != -1);
-@@ -433,7 +440,7 @@ int vtunerc_ctrldev_xchange_message(stru
+@@ -433,7 +433,7 @@ int vtunerc_ctrldev_xchange_message(struct vtunerc_ctx *ctx,
if (wait_event_interruptible(ctx->ctrldev_wait_response_wq,
ctx->ctrldev_response.type != -1)) {
@@ -28,7 +27,7 @@ diff -uprNx '.*' vtuner.linux-driver/vtunerc_ctrldev.c vtuner_tweak/vtunerc_ctrl
ctx->ctrldev_request.type = -1;
up(&ctx->xchange_sem);
return -ERESTARTSYS;
-@@ -441,7 +448,7 @@ int vtunerc_ctrldev_xchange_message(stru
+@@ -441,7 +441,7 @@ int vtunerc_ctrldev_xchange_message(struct vtunerc_ctx *ctx,
BUG_ON(ctx->ctrldev_response.type == -1);
@@ -37,16 +36,13 @@ diff -uprNx '.*' vtuner.linux-driver/vtunerc_ctrldev.c vtuner_tweak/vtunerc_ctrl
memcpy(msg, &ctx->ctrldev_response, sizeof(struct vtuner_message));
ctx->ctrldev_response.type = -1;
-diff -uprNx '.*' vtuner.linux-driver/vtunerc_main.c vtuner_tweak/vtunerc_main.c
---- vtuner.linux-driver/vtunerc_main.c 2015-03-27 16:20:00.000000000 +0100
-+++ vtuner_tweak/vtunerc_main.c 2015-05-10 02:19:42.000000000 +0200
-@@ -101,10 +101,10 @@ static void pidtab_copy_to_msg(struct vt
- struct vtuner_message *msg)
+--- a/vtunerc_main.c
++++ b/vtunerc_main.c
+@@ -102,9 +102,9 @@ static void pidtab_copy_to_msg(struct vtunerc_ctx *ctx,
{
int i;
--
+
- for (i = 0; i < (MAX_PIDTAB_LEN - 1); 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;
@@ -54,7 +50,7 @@ diff -uprNx '.*' vtuner.linux-driver/vtunerc_main.c vtuner_tweak/vtunerc_main.c
}
static int vtunerc_start_feed(struct dvb_demux_feed *feed)
-@@ -128,8 +128,12 @@ static int vtunerc_start_feed(struct dvb
+@@ -128,8 +128,12 @@ static int vtunerc_start_feed(struct dvb_demux_feed *feed)
return -EINVAL;
}
@@ -68,10 +64,9 @@ diff -uprNx '.*' vtuner.linux-driver/vtunerc_main.c vtuner_tweak/vtunerc_main.c
if (pidtab_find_index(ctx->pidtab, feed->pid) < 0) {
pidtab_add_pid(ctx->pidtab, feed->pid);
-diff -uprNx '.*' vtuner.linux-driver/vtunerc_proxyfe.c vtuner_tweak/vtunerc_proxyfe.c
---- vtuner.linux-driver/vtunerc_proxyfe.c 2015-03-27 16:20:00.000000000 +0100
-+++ vtuner_tweak/vtunerc_proxyfe.c 2016-01-10 03:04:10.468098249 +0100
-@@ -174,52 +180,12 @@ static int dvb_proxyfe_set_frontend(stru
+--- a/vtunerc_proxyfe.c
++++ b/vtunerc_proxyfe.c
+@@ -174,52 +174,12 @@ static int dvb_proxyfe_set_frontend(struct dvb_frontend *fe)
if (ctx->vtype == VT_S2 && c->delivery_system == SYS_DVBS2) {
/* DELIVERY SYSTEM: S2 delsys in use */
@@ -127,7 +122,7 @@ diff -uprNx '.*' vtuner.linux-driver/vtunerc_proxyfe.c vtuner_tweak/vtunerc_prox
/* ROLLOFF */
switch (c->rolloff) {
-@@ -506,10 +480,10 @@ static struct dvb_frontend_ops dvb_proxy
+@@ -506,10 +466,10 @@ static struct dvb_frontend_ops dvb_proxyfe_qpsk_ops = {
.frequency_tolerance = 29500,
.symbol_rate_min = 1000000,
.symbol_rate_max = 45000000,
@@ -136,7 +131,7 @@ diff -uprNx '.*' vtuner.linux-driver/vtunerc_proxyfe.c vtuner_tweak/vtunerc_prox
- FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
- FE_CAN_QPSK
+ .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_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
},