[mythtv] Slow lock Multiproto_plus

Jacek jacus.b at gmail.com
Fri Jun 27 23:55:21 UTC 2008


2008/6/2 Jelle De Loecker <skerit at kipdola.com>:
> Hi everyone,
>
> I finally got the MythTV working with the latest multiproto drivers (yay!)
> Unfortunately things are mighty slow:
> [...]
> On MythTV,
> however, it takes a while to lock (I can see the entire L-A-M(-C)
> process) and it doesn't always work.

I did changes in mantis driver, which working with my SkyStar HD2.
I don't know where to place, so I gave it here.

changes:
 - frequency step reduced in function stb0899_search_data

[begin mantis.patch]
diff -r 0b04be0c088a linux/drivers/media/dvb/frontends/stb0899_algo.c
--- a/linux/drivers/media/dvb/frontends/stb0899_algo.c	Wed May 28
13:25:23 2008 +0400
+++ b/linux/drivers/media/dvb/frontends/stb0899_algo.c	Sat Jun 28
01:28:55 2008 +0200
@@ -381,7 +381,7 @@ static enum stb0899_status stb0899_check
  */
 static enum stb0899_status stb0899_search_data(struct stb0899_state *state)
 {
-	short int derot_freq, derot_step, derot_limit, next_loop = 3;
+	short int derot_freq, derot_limit, next_loop = 3;
 	u8 cfr[2];
 	u8 reg;
 	int index = 1;
@@ -389,14 +389,13 @@ static enum stb0899_status stb0899_searc
 	struct stb0899_internal *internal = &state->internal;
 	struct stb0899_params *params = &state->params;

-	derot_step = (params->srate / 4L) / internal->mclk;
 	derot_limit = (internal->sub_range / 2L) / internal->mclk;
 	derot_freq = internal->derot_freq;

 	do {
 		if ((internal->status != CARRIEROK) || (stb0899_check_data(state)
!= DATAOK)) {

-			derot_freq += index * internal->direction * derot_step;	/* next
zig zag derotator position	*/
+			derot_freq += index * internal->direction *
internal->derot_step;	/* next zig zag derotator position	*/
 			if (ABS(derot_freq) > derot_limit)
 				next_loop--;
[end mantis.patch]


More information about the mythtv-dev mailing list