public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Soeren Moch <Soeren.Moch@stud.uni-hannover.de>
To: pboettcher@kernellabs.com
Cc: linux-media@vger.kernel.org, odanet@caramail.com
Subject: dib0700 i2c problem / mt2266 patch
Date: Wed, 16 Sep 2009 15:50:09 +0200	[thread overview]
Message-ID: <4AB0ED11.3090205@stud.uni-hannover.de> (raw)
In-Reply-To: <4AAE1975.6050707@stud.uni-hannover.de>

[-- Attachment #1: Type: text/plain, Size: 752 bytes --]

Patrick,

when you are discussing dib0700 issues with dibcom, there is an
additional one for the list:
When using dib0700 in dual mode (on my nova-td stick), from
time to time a tuner hangs up. I never observed this behavior in
single mode. It seems to me that there is no proper locking within
the dib0700 firmware when accessing both tuner i2c buses
"simultaneously".

Since I only need UHF channels, I use the attached patch to decrease
the number of i2c transactions and tuner registers, which are involved
in the channel switch. This solved the tuning problems.

Besides the i2c problem, maybe it might be a good idea to integrate
this patch into the mt2266 driver anyway, because it considerably
speeds up the channel switch.

Regards,
S:oren




[-- Attachment #2: mt2266.patch --]
[-- Type: text/x-patch, Size: 2062 bytes --]

--- drivers/media/common/tuners/mt2266.c.orig	2009-06-29 22:11:08.000000000 +0200
+++ drivers/media/common/tuners/mt2266.c	2009-06-29 22:21:01.000000000 +0200
@@ -137,7 +137,6 @@ static int mt2266_set_params(struct dvb_
 	freq = params->frequency / 1000; // Hz -> kHz
 	if (freq < 470000 && freq > 230000)
 		return -EINVAL; /* Gap between VHF and UHF bands */
-	priv->bandwidth = (fe->ops.info.type == FE_OFDM) ? params->u.ofdm.bandwidth : 0;
 	priv->frequency = freq * 1000;
 
 	tune = 2 * freq * (8192/16) / (FREF/16);
@@ -145,21 +144,24 @@ static int mt2266_set_params(struct dvb_
 	if (band == MT2266_VHF)
 		tune *= 2;
 
-	switch (params->u.ofdm.bandwidth) {
-	case BANDWIDTH_6_MHZ:
-		mt2266_writeregs(priv, mt2266_init_6mhz,
-				 sizeof(mt2266_init_6mhz));
-		break;
-	case BANDWIDTH_7_MHZ:
-		mt2266_writeregs(priv, mt2266_init_7mhz,
-				 sizeof(mt2266_init_7mhz));
-		break;
-	case BANDWIDTH_8_MHZ:
-	default:
-		mt2266_writeregs(priv, mt2266_init_8mhz,
-				 sizeof(mt2266_init_8mhz));
-		break;
-	}
+        if (priv->bandwidth != params->u.ofdm.bandwidth) {
+          priv->bandwidth = (fe->ops.info.type == FE_OFDM) ? params->u.ofdm.bandwidth : 0;
+          switch (params->u.ofdm.bandwidth) {
+          case BANDWIDTH_6_MHZ:
+            mt2266_writeregs(priv, mt2266_init_6mhz,
+                             sizeof(mt2266_init_6mhz));
+            break;
+          case BANDWIDTH_7_MHZ:
+            mt2266_writeregs(priv, mt2266_init_7mhz,
+                             sizeof(mt2266_init_7mhz));
+            break;
+          case BANDWIDTH_8_MHZ:
+          default:
+            mt2266_writeregs(priv, mt2266_init_8mhz,
+                             sizeof(mt2266_init_8mhz));
+            break;
+          }
+        }
 
 	if (band == MT2266_VHF && priv->band == MT2266_UHF) {
 		dprintk("Switch from UHF to VHF");
@@ -327,6 +329,7 @@ struct dvb_frontend * mt2266_attach(stru
 
 	priv->cfg      = cfg;
 	priv->i2c      = i2c;
+	priv->bandwidth= BANDWIDTH_8_MHZ;
 	priv->band     = MT2266_UHF;
 
 	if (mt2266_readreg(priv, 0, &id)) {

      reply	other threads:[~2009-09-16 13:50 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-22 13:30 Nova-T 500 does not survive reboot Soeren Moch
2009-05-24 12:43 ` Nicolas Will
2009-09-14 10:22 ` DVB USB stream parameters Soeren Moch
2009-09-16 13:50   ` Soeren Moch [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4AB0ED11.3090205@stud.uni-hannover.de \
    --to=soeren.moch@stud.uni-hannover.de \
    --cc=linux-media@vger.kernel.org \
    --cc=odanet@caramail.com \
    --cc=pboettcher@kernellabs.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox