Re: KNC-1+Cineview CAM+Tuning Problems

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tuesday 18 April 2006 12:28, Manfred Petz wrote:
> hello,
>
> i'm using a KNC-1 (stv0299) + cineview with a cryptoworks CAM + orf card.
> i'm using the latest hg version of the dvb driver. the knc-1 is connected
> to a technisat gigaswitch 11/20.
>
> 1st problem:
>
>    i'm experiencing strange tuning problems in conjunction with the CAM
>    inserted or removed. after using a streaming software, initializing the
>    CAM etc and terminating it, i cannot tune again, quite reproducibly.
>    i checked also with szap(1):
>
>  	status 03 | signal a76e | snr 89ca | ber 00000000 | unc 00000000 |
>  	status 03 | signal b038 | snr 8f3a | ber 00000000 | unc 00000000 |
>  	.
>  	.
>  	.
>
>    after removing and re-inserting the cam, i almost instantly get a
>    lock:
>
>  	status 1f | signal a8bb | snr c4bf | ber 00002d00 | unc 00000000 |
> FE_HAS_LOCK status 1f | signal a641 | snr c4e6 | ber 00000000 | unc
> 00000000 | FE_HAS_LOCK .
>  	.
>  	.
>
>    though, this is not reproducible. sometimes i have to remove/re-insert
> the CAM 2-3 times. sometimes i got a lock only after removing the CAM.

This is likely caused because on the KNC1 cards, the reset line of the CAM is 
hooked to the same line as the demodulator reset... so when you reset the CAM 
(as you have to do), the demodulator gets zapped as well. This caused 
problems with the tda10046 demodulators, so I added code to reinitialise the 
demodulator when the CAM was reset.

Perhaps this isn't necessary for the stv0299 cards. Can you try the attached 
patch (against latest hg) and let me know if it helps with this?

How is your switch controlled (is it DISEQC)? The problem is when the stv0299 
gets reinitialised, it'll drop the LNB voltage and tone signalling. I did add 
code to set the simple tone/voltage signalling post-reset, but perhaps it is 
not working right. I can't really resend DISEQC again (if thats what its 
using) because that could potentially contain anything.

> 2nd problem:
>
>    i can decrypt only one channel at once (it is definitely not a CAM
> initialization problem). though, i know that the cryptoworks can decrypt at
> least 3 channels at the same time (and the streaming software can also). i
> am doing this with some other servers (but with wintv cards).

This I can't really help with - if you can talk to the cam at all and decrypt 
a channel, the CI interface is working correctly as far as I know.

>    with kernels around 2.6.11 i had none of those problems even with knc-1
> cards, though i used a previous generation of the knc-1.
>
>    once, while ejecting and re-inserting the cryptoworks, i got that dmesg:
>
>  	budget-av: cam ejected
>  	budget-av: cam inserted
>  	dvb_ca adapter 0: Invalid PC card inserted :(
>
>    i also got this once:
>
>  	dvb_ca adapter 0: CAM tried to send a buffer larger than the link buffer
> size (65535 > 128)!

The first meant that it didn't read the expected PCMCIA structures from the 
CAM for some reason. 

The second is an internal safety check to make sure nothing bad happens. Did 
the second one happen when you inserted/ejected, or was it during normal 
running?

The CI interfaces on budget cards can be a bit unstable, so its likely it is 
just being caught by that. Theres not likely much I can do - as far as I 
know, I've made it as stable as I can (but you never know....).
diff -r 0a8f56ab07fa linux/drivers/media/dvb/ttpci/budget-av.c
--- a/linux/drivers/media/dvb/ttpci/budget-av.c	Mon Apr 17 16:44:02 2006 -0300
+++ b/linux/drivers/media/dvb/ttpci/budget-av.c	Wed Apr 19 23:49:47 2006 +0100
@@ -58,6 +58,7 @@ struct budget_av {
 	struct tasklet_struct ciintf_irq_tasklet;
 	int slot_status;
 	struct dvb_ca_en50221 ca;
+   int reinitialise_demod;
 };
 
 /* GPIO Connections:
@@ -215,6 +216,7 @@ static int ciintf_slot_reset(struct dvb_
 		msleep(100);
 
 	/* reinitialise the frontend */
+   if (budget_av->reinitialise_demod)
 	dvb_frontend_reinitialise(budget_av->budget.dvb_frontend);
 
 	if (timeout <= 0)
@@ -1069,17 +1071,20 @@ static void frontend_init(struct budget_
 
 	case SUBID_DVBT_KNC1:
 	case SUBID_DVBT_KNC1_PLUS:
+	   budget_av->reinitialise_demod = 1;
 		fe = tda10046_attach(&philips_tu1216_config,
 				     &budget_av->budget.i2c_adap);
 		break;
 
 	case SUBID_DVBC_CINERGY1200:
+	   budget_av->reinitialise_demod = 1;
 		fe = tda10021_attach(&philips_cu1216_config,
 				     &budget_av->budget.i2c_adap,
 				     read_pwm(budget_av));
 		break;
 
 	case SUBID_DVBT_CINERGY1200:
+	   budget_av->reinitialise_demod = 1;
 		fe = tda10046_attach(&philips_tu1216_config,
 				     &budget_av->budget.i2c_adap);
 		break;
_______________________________________________

linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux