diff mbox

patch to fix a tuning regression for TeVii S471

Message ID 20140122200408.3d0fc1cf@tor.valhalla.alchemy.lu (mailing list archive)
State New, archived
Headers show

Commit Message

Joakim Hernberg Jan. 22, 2014, 7:04 p.m. UTC
Hello,

I recently discovered a regression in the S471 driver.  When trying to
tune to 10818V on Astra 28E2, the system would tune to 11343V instead.
After browsing the code it appears that a divider was changed when the
tuning code was moved from ds3000.c to ts2020.c.

The attached patch fixes this regression, but testing turns up
more anomalies.  For instance I don't seem to be able to tune to 11344H
on 28E2 either.  The diseqc switches and lnbs are most likely in
working order as my Vu+ STB has no problem to tune to this frequency.

Can someone with either a S471 or another card using the ts2020 tuner
please verify that it's not a local problem?

Comments

Joakim Hernberg Jan. 24, 2014, 3:43 p.m. UTC | #1
On Wed, 22 Jan 2014 20:04:08 +0100
Joakim Hernberg <jbh@alchemy.lu> wrote:

> I recently discovered a regression in the S471 driver.  When trying to
> tune to 10818V on Astra 28E2, the system would tune to 11343V instead.
> After browsing the code it appears that a divider was changed when the
> tuning code was moved from ds3000.c to ts2020.c.    

I decided to test this a bit more thoroughly.  I scanned 28E2 with
w_scan, compared the listings for 28E2 on King Of Sat with the
resulting channels.conf, and came up with the following anomalies. I've
also verified the non/existence of the transponders with my VU+ STB.

Some anomalies are common to all tests:
No channels found on 11307H (11307V is OK)
No channels found on 11344H (11344V is OK)
No channels found on 11390V (11389H is OK)
Finds 2 channels on 11097V that aren't in KOS nor found on the STB
Transponder on 12000H duplicate of 11992H


With linux v3.8.1 (old tuning code in ds3000.c):

No channels found on 11224V (11222H is OK)


With linux v3.13.0 (new tuning code in ts2020.c):

Shows the channels from 11344V as found on 10818V
No channels found on 11224V (11222H is OK)

Transponder on 12560H duplicate of 12545H
Transponder on 12607H duplicate of 12603H
Transponder on 12643H duplicate of 12633H


With linux 3.13.0 (+ my proposed patch):

Shows the channels from 11222H as found on 11224V
No channels found on 11224V

Transponder on 12524V duplicate of 12522V
Transponder on 12560H duplicate of 12545H
Transponder on 12607H duplicate of 12603H
Transponder on 12643H duplicate of 12633H


Unless some one can directly spot what is wrong in the ts2020.c code, I
guess the next step will be to sprinkle printk statements in the tuning
code and try to tune to the problematic channels.  Then try to see if I
can figure out how the code that programs the pll oscilliator functions
and if I can come up with better dividers for it.

It would be very much appreciated if someone with a TeVii card using
the ts2020 can confirm some of my findings, it would even be
interesting to know if it's a problem common to many cards using the
ts2020...

Finally I am quite sure that my tests above are ok, but I suppose it's
possible I've made a mistake or two, since it's was a long, boring and
manual process to match the transponders scanned to the web listings. I
also suppose that there could be bugs in w_scan affecting the results,
but guess further testing will rule this out.  Also note that there
might be more frequencies that are problematic, as I've only scanned
28E2 for the moment...
diff mbox

Patch

From 2b546f8e961b3cc1d990eabd3e9ca955b14782b5 Mon Sep 17 00:00:00 2001
From: makepkg <makepkg@archlinux.com>
Date: Wed, 22 Jan 2014 19:44:49 +0100
Subject: [PATCH] Fix a TeVii S471 regression introduced when the tuning code
 was moved from ds3000,c to ts2020.c. Trying to tune to 10818V, tunes to
 11343V instead.

---
 drivers/media/pci/cx23885/cx23885-dvb.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/media/pci/cx23885/cx23885-dvb.c b/drivers/media/pci/cx23885/cx23885-dvb.c
index 0549205..4be01b3 100644
--- a/drivers/media/pci/cx23885/cx23885-dvb.c
+++ b/drivers/media/pci/cx23885/cx23885-dvb.c
@@ -473,6 +473,7 @@  static struct ds3000_config tevii_ds3000_config = {
 static struct ts2020_config tevii_ts2020_config  = {
 	.tuner_address = 0x60,
 	.clk_out_div = 1,
+	.frequency_div = 1146000,
 };
 
 static struct cx24116_config dvbworld_cx24116_config = {
-- 
1.8.5.3