Re: si2168: different default that windows driver
From: Marc Gonzalez
Date: Wed Jun 17 2020 - 09:55:55 EST
Hello Brad,
I found this patch you wrote:
https://github.com/b-rad-NDi/Ubuntu-media-tree-kernel-builder/blob/master/patches/mainline-extra/tip/10.random.patches/0004-si2168-different-default-that-windows-driver.patch
Subject: [PATCH 4/5] si2168: different default that windows driver
Unsure of meaning, look into...
---
drivers/media/dvb-frontends/si2168.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/media/dvb-frontends/si2168.c b/drivers/media/dvb-frontends/si2168.c
index 0d9d384cf..72794ead8 100644
--- a/drivers/media/dvb-frontends/si2168.c
+++ b/drivers/media/dvb-frontends/si2168.c
@@ -418,6 +418,8 @@ static int si2168_set_frontend(struct dvb_frontend *fe)
}
cmd_init(&cmd, "\x14\x00\x0f\x10\x10\x00", 6, 4);
+ /* BUGBUG? FW defaults to 1, but windows driver uses 30; above is 0? */
+ cmd.args[5] = 30;
ret = si2168_cmd_execute(client, &cmd);
if (ret)
goto err;
0x14 = SET_PROPERTY
args[1] is ignored
args[2:3] = little-endian property = 0x100f
args[4:5] = little-endian prop_arg = 0x0010
0x100f configures the "Signal Quality Indicator" computation.
The value is averaged over the last N samples.
N = prop_arg_bits[0:4]
(legal values are 1-30, dunno what happens for 0 and 31)
You're not supposed to change args[5] i.e. prop_arg_bits[8:15]
Maybe you meant cmd.args[4] = 30; ?
Or just change the command to "\x14\x00\x0f\x10\x1e\x00" ?
Or just use 16 samples instead of 30 for the averaging?
Regards.