S905X4 built in DVB

CCoreELEC:~ # dvbv5-scan -l UNIVERSAL --verbose -S 2 /storage/.kodi/addons/service.tvheadend43/dvb-scan/dvb-s/Turksat-3A-42.0E
Using LNBf UNIVERSAL
        Old European Universal. Nowadays mostly replaced by Astra 19.2E
        Freqs     : 10800 to 11800 MHz, LO: 9750 MHz
        Freqs     : 11600 to 12700 MHz, LO: 10600 MHz
using demux 'dvb0.demux0'
Device Availink avl62x1 (/dev/dvb/adapter0/frontend0) capabilities:
     CAN_2G_MODULATION
     CAN_FEC_1_2
     CAN_FEC_2_3
     CAN_FEC_3_4
     CAN_FEC_4_5
     CAN_FEC_5_6
     CAN_FEC_6_7
     CAN_FEC_7_8
     CAN_FEC_AUTO
     CAN_INVERSION_AUTO
     CAN_MULTISTREAM
     CAN_MUTE_TS
     CAN_QAM_16
     CAN_QAM_32
     CAN_QAM_64
     CAN_QAM_AUTO
     CAN_QPSK
     CAN_RECOVER
     CAN_TRANSMISSION_MODE_AUTO
DVB API Version 5.11, Current v5 delivery system: DVBS2
Supported delivery systems:
     DVBS
    [DVBS2]
Frequency range for the current standard:
From:             950 MHz
To:              2.15 GHz
Symbol rate ranges for the current standard:
From:            1.00 MBauds
To:              55.0 MBauds
Failed to guess country from the current locale setting.
ERROR    command BANDWIDTH_HZ (5) not found during retrieve
Cannot calc frequency shift. Either bandwidth/symbol-rate is unavailable (yet).
Scanning frequency #1 10952840
frequency: 10952.84 MHz, high_band: 0
SEC: set voltage to 13V
DiSEqC TONE: OFF
DiSEqC command: e0 10 38 f8
DiSEqC TONE: OFF
L-Band frequency: 1202.84 MHz (offset = 9750.00 MHz)
FREQUENCY = 10952840
INVERSION = AUTO
SYMBOL_RATE = 1800000
INNER_FEC = 3/4
POLARIZATION = VERTICAL
DELIVERY_SYSTEM = DVBS
RF     (0x01)                                                                Scanning frequency #2 10958000                                               frequency: 10958.00 MHz, high_band: 0
SEC: set voltage to 13V
DiSEqC TONE: OFF
DiSEqC command: e0 10 38 f8
DiSEqC TONE: OFF
L-Band frequency: 1208.00 MHz (offset = 9750.00 MHz)
FREQUENCY = 10958000
INVERSION = AUTO
SYMBOL_RATE = 6250000
INNER_FEC = 5/6
MODULATION = PSK/8
PILOT = 4294967295
ROLLOFF = AUTO
POLARIZATION = VERTICAL
STREAM_ID = 0
DELIVERY_SYSTEM = DVBS2
RF     (0x01)                                                                Scanning frequency #3 10964300                                               frequency: 10964.30 MHz, high_band: 0
SEC: set voltage to 13V
DiSEqC TONE: OFF
DiSEqC command: e0 10 38 fa
DiSEqC TONE: OFF
L-Band frequency: 1214.30 MHz (offset = 9750.00 MHz)
FREQUENCY = 10964300
INVERSION = AUTO
SYMBOL_RATE = 22000000
INNER_FEC = 2/3
MODULATION = PSK/8
PILOT = 4294967295
ROLLOFF = AUTO
POLARIZATION = HORIZONTAL
STREAM_ID = 0
DELIVERY_SYSTEM = DVBS2
RF     (0x01)

If you look at the txt, some TPs give that error.

Here is Full scan log

scan.txt (24.8 KB)

So there are errors only for some frequencies. but stil for other there is no signal lock. The tuner is not tuning correctly or the demod is not receiving the signal corectly.
I don’t have an idea what can be wrong other that the driver code itself. There is almost no configuration variables other than i2c settings which are correct since there is no i2c errors and oscillator frequency which I can get from Your pictures (27MHz).

So lets try other av201x driver that seems to be more recent, maybe it will work.
AVL6862-22.0.6.3.zip (530.9 KB)
To be sure that the new version is used please upload dmesg output and lsmod output.

The symbol rate is 400 at the frequencies where it gives an error. Therefore, it gives an error below a minimum symbol rate of 1000. Another one gives an error because the lnbf downmix frequency is above 12739.

I will try

newdmesg.txt (74.1 KB)

lsmod.txt (2.7 KB)

CoreELEC:~ # dmesg | grep -i dvb
[    2.086162] dvb power gpio invalid
[    2.086243] aml_dvb_extern_init: OK, version: V1.28
[  151.140454] probe amlogic dvb driver [V2.02]
[  151.140611] aml_dvb_get_adapter need register adapter first.
[  151.140615] DVB: registering new adapter (amlogic-dvb)
[  151.144256] DVB: Set DMX0 TS_RECORDER_ENABLE to 0
[  151.144261] DVB: Set DMX1 TS_RECORDER_ENABLE to 0
[  151.144263] DVB: Set DMX2 TS_RECORDER_ENABLE to 0
[  151.144266] DVB: reset ASYNC FIFOs
[  151.144475] DVB: Set DMX0 TS_RECORDER_ENABLE to 0
[  151.144479] DVB: Set DMX1 TS_RECORDER_ENABLE to 0
[  151.144482] DVB: Set DMX2 TS_RECORDER_ENABLE to 0
[  151.144484] DVB: reset ASYNC FIFOs
[  151.144489] DVB:dmx_reset_dmx_hw_ex_unlock into
[  151.144529] DVB: demux0 smallsec buf disable
[  151.144533] DVB: demux0 timeout disable
[  151.144536] DVB: demux0 timeout enable:timeout(9000),ch(0xfffffff8),match(1)
[  151.144580] DVB: demux0 smallsec buf disable
[  151.144582] DVB: demux0 timeout disable
[  151.144584] DVB: demux0 timeout enable:timeout(9000),ch(0xfffffff8),match(1)

Av2018 27.000 that is true

dvb_meson module from AV6862 addon was not loaded. I tested the last version on my box and for sure it works. I see no module load errors either so it seems like there is no addon installed or something went wrong during installation.

Will try freesh install

CoreELEC:~ # dvb-fe-tool -a 0 -vv
Found dvb ca device: dvb0.ca0
  path: /dev/dvb/adapter0/ca0
  sysfs path: /sys/devices/platform/dvb-demux/dvb/dvb0.ca0
  bus addr: platform:dvb-demux
Found dvb ca device: dvb0.ca1
  path: /dev/dvb/adapter0/ca1
  sysfs path: /sys/devices/platform/dvb-demux/dvb/dvb0.ca1
  bus addr: platform:dvb-demux
Found dvb demux device: dvb0.demux0
  path: /dev/dvb/adapter0/demux0
  sysfs path: /sys/devices/platform/dvb-demux/dvb/dvb0.demux0
  bus addr: platform:dvb-demux
Found dvb demux device: dvb0.demux1
  path: /dev/dvb/adapter0/demux1
  sysfs path: /sys/devices/platform/dvb-demux/dvb/dvb0.demux1
  bus addr: platform:dvb-demux
Found dvb demux device: dvb0.demux2
  path: /dev/dvb/adapter0/demux2
  sysfs path: /sys/devices/platform/dvb-demux/dvb/dvb0.demux2
  bus addr: platform:dvb-demux
Found dvb dvr device: dvb0.dvr0
  path: /dev/dvb/adapter0/dvr0
  sysfs path: /sys/devices/platform/dvb-demux/dvb/dvb0.dvr0
  bus addr: platform:dvb-demux
Found dvb dvr device: dvb0.dvr1
  path: /dev/dvb/adapter0/dvr1
  sysfs path: /sys/devices/platform/dvb-demux/dvb/dvb0.dvr1
  bus addr: platform:dvb-demux
Found dvb dvr device: dvb0.dvr2
  path: /dev/dvb/adapter0/dvr2
  sysfs path: /sys/devices/platform/dvb-demux/dvb/dvb0.dvr2
  bus addr: platform:dvb-demux
Found dvb frontend device: dvb0.frontend0
  path: /dev/dvb/adapter0/frontend0
  sysfs path: /sys/devices/platform/dvb-demux/dvb/dvb0.frontend0
  bus addr: platform:dvb-demux
Found dvb net device: dvb0.net0
  path: /dev/dvb/adapter0/net0
  sysfs path: /sys/devices/platform/dvb-demux/dvb/dvb0.net0
  bus addr: platform:dvb-demux
Found dvb net device: dvb0.net1
  path: /dev/dvb/adapter0/net1
  sysfs path: /sys/devices/platform/dvb-demux/dvb/dvb0.net1
  bus addr: platform:dvb-demux
Found dvb net device: dvb0.net2
  path: /dev/dvb/adapter0/net2
  sysfs path: /sys/devices/platform/dvb-demux/dvb/dvb0.net2
  bus addr: platform:dvb-demux
Selected dvb frontend device: dvb0.frontend0
  path: /dev/dvb/adapter0/frontend0
  sysfs path: /sys/devices/platform/dvb-demux/dvb/dvb0.frontend0
  bus addr: platform:dvb-demux
Device Availink avl62x1 (/dev/dvb/adapter0/frontend0) capabilities:
     CAN_2G_MODULATION
     CAN_FEC_1_2
     CAN_FEC_2_3
     CAN_FEC_3_4
     CAN_FEC_4_5
     CAN_FEC_5_6
     CAN_FEC_6_7
     CAN_FEC_7_8
     CAN_FEC_AUTO
     CAN_INVERSION_AUTO
     CAN_MULTISTREAM
     CAN_MUTE_TS
     CAN_QAM_16
     CAN_QAM_32
     CAN_QAM_64
     CAN_QAM_AUTO
     CAN_QPSK
     CAN_RECOVER
     CAN_TRANSMISSION_MODE_AUTO
DVB API Version 5.11, Current v5 delivery system: DVBS
Supported delivery systems:
    [DVBS]
     DVBS2
Frequency range for the current standard:
From:             950 MHz
To:              2.15 GHz
Symbol rate ranges for the current standard:
From:            1.00 MBauds
To:              55.0 MBauds
SEC: set voltage to OFF
ERROR    FE_SET_VOLTAGE: Operation not permitted
CoreELEC:~ #

newaddondmesg.txt (77.0 KB)

newaddonlsmod.txt (2.7 KB)

Dvbv5-scan

Scanning frequency #1 10952840
frequency: 10952.84 MHz, high_band: 0
SEC: set voltage to 13V
DiSEqC TONE: OFF
DiSEqC command: e0 10 38 f0
DiSEqC BURST: SEC_MINI_A
DiSEqC TONE: OFF
L-Band frequency: 1202.84 MHz (offset = 9750.00 MHz)
FREQUENCY = 10952840
INVERSION = AUTO
SYMBOL_RATE = 1800000
INNER_FEC = 3/4
POLARIZATION = VERTICAL
DELIVERY_SYSTEM = DVBS
RF     (0x01)                                                                Scanning frequency #2 10958000                                               frequency: 10958.00 MHz, high_band: 0
SEC: set voltage to 13V
DiSEqC TONE: OFF
DiSEqC command: e0 10 38 f0
DiSEqC BURST: SEC_MINI_A
DiSEqC TONE: OFF
L-Band frequency: 1208.00 MHz (offset = 9750.00 MHz)
FREQUENCY = 10958000
INVERSION = AUTO
SYMBOL_RATE = 6250000
INNER_FEC = 5/6
MODULATION = PSK/8
PILOT = 4294967295
ROLLOFF = AUTO
POLARIZATION = VERTICAL
STREAM_ID = 0
DELIVERY_SYSTEM = DVBS2
RF     (0x01)

Tuner dont locl

Oh my bad, the DTB has error, faulty tuner configuration. please try this:
sm1_s905x3_magicsee_c500_pro_4g.dtb (77.0 KB)

i2c i2c-2: dvb_meson: Airoha Technology AV201x successfully attached MCZERSKI :laughing:

newaddonlsmod.txt (2.7 KB)

newaddondmesg.txt (76.9 KB)

CoreELEC:~ # dvbv5-scan -l UNIVERSAL --verbose -S B /storage/.kodi/addons/service.tvheadend43/dvb-scan/dvb-s/Turksat-3A-42.0E
Using LNBf UNIVERSAL
        Old European Universal. Nowadays mostly replaced by Astra 19.2E
        Freqs     : 10800 to 11800 MHz, LO: 9750 MHz
        Freqs     : 11600 to 12700 MHz, LO: 10600 MHz
using demux 'dvb0.demux0'
Device Availink avl62x1 (/dev/dvb/adapter0/frontend0) capabilities:
     CAN_2G_MODULATION
     CAN_FEC_1_2
     CAN_FEC_2_3
     CAN_FEC_3_4
     CAN_FEC_4_5
     CAN_FEC_5_6
     CAN_FEC_6_7
     CAN_FEC_7_8
     CAN_FEC_AUTO
     CAN_INVERSION_AUTO
     CAN_MULTISTREAM
     CAN_MUTE_TS
     CAN_QAM_16
     CAN_QAM_32
     CAN_QAM_64
     CAN_QAM_AUTO
     CAN_QPSK
     CAN_RECOVER
     CAN_TRANSMISSION_MODE_AUTO
DVB API Version 5.11, Current v5 delivery system: DVBS
Supported delivery systems:
    [DVBS]
     DVBS2
Frequency range for the current standard:
From:             950 MHz
To:              2.15 GHz
Symbol rate ranges for the current standard:
From:            1.00 MBauds
To:              55.0 MBauds
Failed to guess country from the current locale setting.
ERROR    command BANDWIDTH_HZ (5) not found during retrieve
Cannot calc frequency shift. Either bandwidth/symbol-rate is unavailable (yet).
Scanning frequency #1 10952840
frequency: 10952.84 MHz, high_band: 0
SEC: set voltage to 13V
DiSEqC TONE: OFF
DiSEqC command: e0 10 38 f0
DiSEqC BURST: SEC_MINI_A
DiSEqC TONE: OFF
L-Band frequency: 1202.84 MHz (offset = 9750.00 MHz)
FREQUENCY = 10952840
INVERSION = AUTO
SYMBOL_RATE = 1800000
INNER_FEC = 3/4
POLARIZATION = VERTICAL
DELIVERY_SYSTEM = DVBS
RF     (0x01)                                                                Scanning frequency #2 10958000                                               frequency: 10958.00 MHz, high_band: 0
SEC: set voltage to 13V
DiSEqC TONE: OFF
DiSEqC command: e0 10 38 f0
DiSEqC BURST: SEC_MINI_A
DiSEqC TONE: OFF
L-Band frequency: 1208.00 MHz (offset = 9750.00 MHz)
FREQUENCY = 10958000
INVERSION = AUTO
SYMBOL_RATE = 6250000
INNER_FEC = 5/6
MODULATION = PSK/8
PILOT = 4294967295
ROLLOFF = AUTO
POLARIZATION = VERTICAL
STREAM_ID = 0
DELIVERY_SYSTEM = DVBS2
RF     (0x01)                                                                Scanning frequency #3 10964300                                               frequency: 10964.30 MHz, high_band: 0
SEC: set voltage to 18V
DiSEqC TONE: OFF
DiSEqC command: e0 10 38 f2
DiSEqC BURST: SEC_MINI_A
DiSEqC TONE: OFF
L-Band frequency: 1214.30 MHz (offset = 9750.00 MHz)
FREQUENCY = 10964300
INVERSION = AUTO
SYMBOL_RATE = 22000000
INNER_FEC = 2/3
MODULATION = PSK/8
PILOT = 4294967295
ROLLOFF = AUTO
POLARIZATION = HORIZONTAL
STREAM_ID = 0
DELIVERY_SYSTEM = DVBS2
RF     (0x01)

last option, another driver for avl6261 :slight_smile:
AVL6862-22.0.6.3.zip (523.7 KB)

depmod: ERROR: Cycle detected: dvb_meson -> avl62x1 -> dvb_meson
[   42.587706] depmod: ERROR: Found 2 modules in dependency cycles!

AVL6862-22.0.6.3.zip (524.0 KB)

CoreELEC:~ # dvb-fe-tool
Device Availink AVL6261 (/dev/dvb/adapter0/frontend0) capabilities:
     CAN_2G_MODULATION
     CAN_FEC_1_2
     CAN_FEC_2_3
     CAN_FEC_3_4
     CAN_FEC_4_5
     CAN_FEC_5_6
     CAN_FEC_6_7
     CAN_FEC_7_8
     CAN_FEC_8_9
     CAN_FEC_AUTO
     CAN_GUARD_INTERVAL_AUTO
     CAN_HIERARCHY_AUTO
     CAN_INVERSION_AUTO
     CAN_MULTISTREAM
     CAN_QPSK
     CAN_RECOVER
     CAN_TRANSMISSION_MODE_AUTO
DVB API Version 5.11, Current v5 delivery system: DVBS2
Supported delivery systems:
    [DVBS2]
     DVBS
Frequency range for the current standard:
From:             950 MHz
To:              2.15 GHz
Step:            1.01 MHz
Tolerance:       5.00 MHz
Symbol rate ranges for the current standard:
From:                 0Bauds
To:              60.0 MBauds
SEC: set voltage to OFF
ERROR    FE_SET_VOLTAGE: Operation not permitted

now1.txt (74.0 KB)

Dvbv5-scan txt

scan.txt (7.0 KB)

There’s probably a tuner lock, but the signal isn’t being captured. Some things have changed. The faulty tuner and demo range are displaying external frequencies and symbols. Also, although the tuner gives the voltage correctly as 14/18v on Android, when I measure it on CoreElect, the vertical voltage is correct but the horizontal voltage gives 16 volts. On Android, it gives 18 volts. 16 volts opens it but ..

I have no other idea. tried avl62x1 drivers from those two sources:

with firmware from here:

av201x driver also from two sources, from CE linux repo and from here:

are there any other driver sources ?

https://discourse.coreelec.org/t/dvb-s2-tuner-avl62x1-tv-headend-scan-problem/17436

This link shows that in 2021, in the availink repository, a signal was received with this avl6261 using the coreelec hack 9.2.1 build with kernel 3.14. The necessary dmesg and dts files are available, but they are for kernel 3.14. Again, the issue has not been further investigated. Commits · availink/CoreELEC_avl · GitHub

You should look at the patches and commits here. Although it’s not related to our main driver, it might give you an idea. I’ll look into it, but there are no other known open-source driver repositories. It might be somewhere on GitHub. It might be in an Android SDK.

Sdmc

#include "gxl_p231_2g.dts"

/{
	le-dt-id = "gxl_p231_2g_dvb";
	dvb {
		compatible = "amlogic,dvb";
		dev_name = "dvb";
		ts0 = "parallel";
		ts0_control = <0x0>;
		ts0_invert = <0x0>;
		fec_reset_gpio-gpios = <&gpio GPIODV_12 GPIO_ACTIVE_HIGH>;
		power_ctrl_gpio-gpios = <&gpio GPIODV_15 GPIO_ACTIVE_LOW>;
		pinctrl-names = "p_ts0", "s_ts0", "s_ts1";
		pinctrl-0 = <&dvb_p_ts0_pins>;
		pinctrl-1 = <&dvb_s_ts0_pins>;
		pinctrl-2 = <&dvb_s_ts1_pins>;
		resets = <&clock GCLK_IDX_DEMUX &clock GCLK_IDX_ASYNC_FIFO &clock GCLK_IDX_AHB_ARB0 &clock GCLK_IDX_HIU_PARSER_TOP>;
		reset-names = "demux", "asyncfifo", "ahbarb0", "uparsertop";
	};

	dvbfe {
		compatible = "amlogic,dvbfe";
		//dev_name = "dvbfe";
		status = "okay";
		dtv_demod0 = "avl6261";
		dtv_demod0_i2c_adap_id = <3>;
		dtv_demod0_i2c_addr = <0x14>;
		dtv_demod0_tuner_i2c_addr = <0x62>;
		dtv_demod0_reset_value = <0>;
		dtv_demod0_reset_gpio-gpios = <&gpio GPIODV_12 GPIO_ACTIVE_LOW>;
		dtv_demod0_power_gpio-gpios = <&gpio GPIODV_15 GPIO_ACTIVE_LOW>;
		fe0_dtv_demod = <0>;
		fe0_ts = <0>;
		fe0_dev = <0>;
	};
};

&pinmux {
	dvb_p_ts0_pins:dvb_p_ts0_pins {
		amlogic,setmask = <0x2 0x1f>;
		amlogic,clrmask = <0x3 0x787 0x2 0xff000400>;
		amlogic,pins = "GPIODV_0", "GPIODV_1", "GPIODV_2", "GPIODV_3", "GPIODV_4", "GPIODV_5", "GPIODV_6", "GPIODV_7", "GPIODV_8", "GPIODV_9", "GPIODV_10";
	};

	dvb_s_ts0_pins:dvb_s_ts0_pins {
		amlogic,setmask = <0x2 0x17>;
		amlogic,clrmask = <0x3 0x584 0x2 0x7000000 0x1 0x100>;
		amlogic,pins = "GPIODV_0", "GPIODV_8", "GPIODV_9", "GPIODV_10";
	};

	dvb_s_ts1_pins:dvb_s_ts1_pins {
		amlogic,setmask = <0x3 0x17>;
		amlogic,clrmask = <0x2 0xf0000 0x1 0x7>;
		amlogic,pins = "GPIODV_0", "GPIODV_8", "GPIODV_9", "GPIODV_10";
	};

	dtv_params_pin:dtv_params_pin {
		amlogic,clrmask = <0x1 0x38000000 0x3 0x80>;
		amlogic,pins = "GPIODV_13", "GPIODV_14", "GPIODV_15";
	};

};

&i2c_a {
	status = "okay";
};

&i2c_b {
	status = "okay";
};

&i2c_c {
	status = "okay";
	pinctrl-0=<&c_i2c_master_pin1>;
};

&i2c_d {
	status = "okay";
};

low symbol rate patch

diff --git a/Makefile b/Makefile
index 691a86c..28ba576 100644
--- a/Makefile
+++ b/Makefile
@@ -8,6 +8,7 @@
 
 ifneq ($(KERNELRELEASE),)
 
+ccflags-y += -march=armv7-a
 ccflags-y += -I$(src)/common
 ccflags-y += -I$(src)/sdk_src
 ccflags-y += -DCONFIG_MEDIA_TUNER_AV201X=1
diff --git a/av201x.c b/av201x.c
old mode 100644
new mode 100755
index 63f882a..c4054e7
--- a/av201x.c
+++ b/av201x.c
@@ -225,7 +225,7 @@ static const struct dvb_tuner_ops av201x_tuner_ops = {
    .info = {
       .name           = "Airoha Technology AV201x",
 
-      .frequency_min_hz =  850 * MHz,
+      .frequency_min_hz =  700 * MHz,
       .frequency_max_hz = 2300 * MHz,
       .frequency_step_hz = 206,
    },
diff --git a/avl62x1.c b/avl62x1.c
old mode 100644
new mode 100755
index 4ae811c..13a349c
--- a/avl62x1.c
+++ b/avl62x1.c
@@ -450,7 +450,7 @@ static ssize_t avl62x1_blindscan_ctrl_write(struct file *file,
    kfree(p);
 
    if (val[0]) {
-      if (val[1] < 950 || val[2] > 2150 || val[3] < 1 || val[4] > 60)
+      if (val[1] < 700 || val[2] > 3000 || val[3] < 1 || val[4] > 60)
          return -EINVAL;
 
       if (signal_pending(current))
@@ -641,7 +641,7 @@ static int avl62x1_tune(struct dvb_frontend *fe, bool re_tune,
    if (re_tune) {
       priv->tune_state = avl62x1_tune_state_tuner_trylock;
 
-      if (c->symbol_rate < 1000)
+      if (c->symbol_rate < 100)
          priv->tune_state = avl62x1_tune_state_idle;
    }
 
@@ -731,8 +731,11 @@ static int avl62x1_tune(struct dvb_frontend *fe, bool re_tune,
       break;
    case avl62x1_tune_state_demod_status:
       ret = avl62x1_get_lock_status(&lock, priv->chip);
-      if (ret == AVL_EC_OK && lock == avl62x1_status_locked) {
-         *delay = HZ / 5;
+      if (ret == AVL_EC_OK) {
+         if (lock == avl62x1_status_locked)
+            *delay = HZ / 5;
+         else
+            *delay = HZ;
          *status = FE_HAS_SIGNAL | FE_HAS_CARRIER |
               FE_HAS_VITERBI | FE_HAS_SYNC | FE_HAS_LOCK;
          priv->tune_state = avl62x1_tune_state_read_status;
@@ -764,10 +767,8 @@ static int avl62x1_tune(struct dvb_frontend *fe, bool re_tune,
          c->strength.len = 1;
          c->strength.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
       }
-
-      if (*status & FE_HAS_VITERBI) {
-         ret = avl62x1_get_snr(&snr_db_x100, priv->chip);
-
+      ret = avl62x1_get_snr(&snr_db_x100, priv->chip);
+      if (snr_db_x100 > -1000) {
          c->cnr.len = 2;
          c->cnr.stat[0].scale = FE_SCALE_DECIBEL;
          c->cnr.stat[0].svalue = snr_db_x100 * 10;
@@ -1108,7 +1109,7 @@ static int avl62x1_i2c_gate_ctrl(struct dvb_frontend *fe, int enable)
 static struct dvb_frontend_ops avl62x1_ops = {
    .info = {
       .name = "Availink AVL6261",
-      .frequency_min_hz =  950 * MHz,
+      .frequency_min_hz =  700 * MHz,
       .frequency_max_hz = 2150 * MHz,
       .frequency_stepsize_hz =  1011 * kHz,
       .frequency_tolerance_hz = 5 * MHz,

silabs tuner av2018 sources

I got the Homatics DVB-T and I can potentially understand why they are reluctant to discusse. It looks like the player they provide uses the licensed dtvkit core and they not even even know how the device itself works.

But the hw dongle itself should not be nothing special?