TechnoTrend TT-DVB-T 1500

From LinuxTVWiki
Jump to navigation Jump to search

Kernel output for a TT-DVB-T 1500 + CI + CAM (Conax 4.00e):

Dec 14 09:22:37 mythtvbackend saa7146: register extension 'budget_ci dvb'.
Dec 14 09:22:37 mythtvbackend budget_ci dvb 0000:05:09.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
Dec 14 09:22:37 mythtvbackend IRQ 18/: IRQF_DISABLED is not guaranteed on shared IRQs
Dec 14 09:22:37 mythtvbackend saa7146: found saa7146 @ mem f8b1e000 (revision 1, irq 18) (0x13c2,0x1012).
Dec 14 09:22:37 mythtvbackend saa7146 (0): dma buffer size 192512
Dec 14 09:22:37 mythtvbackend DVB: registering new adapter (TT-Budget-T-CI PCI)
Dec 14 09:22:37 mythtvbackend adapter has MAC addr = <deleted>
Dec 14 09:22:37 mythtvbackend input: Budget-CI dvb ir receiver saa7146 (0) as /class/input/input3
Dec 14 09:22:37 mythtvbackend budget_ci: CI interface initialised
Dec 14 09:22:37 mythtvbackend DVB: registering adapter 1 frontend 0 (Philips TDA10046H DVB-T)...
...
Dec 14 09:22:37 mythtvbackend dvb_ca adapter 1: DVB CAM detected and initialised successfully


Notes about CI/CAM (Conax 4.00e)

The delivered CI cable (SCSI) is very short. In case the cable length is increased, the CAM cannot always be properly initialized. In case of a CAM initialization failure the syslog is:

Dec 14 07:16:27 mythtvbackend dvb_ca adapter 1: Invalid PC card inserted :(

If the CAM initialization fails, the encrypted channels will not be decrypted anymore. The only solution, I was aware of, was to remove the CAM followed by reinserting the CAM in the CI. This in turn would force a reinitialization of the CI/CAM.

Another possible workaround is to patch the /usr/src/linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c to restart reinitialization of the CI/CAM in case it fails.

WARNING: this might put your CAM initialization in a continuous loop.

--- dvb_ca_en50221.c.ORG        2009-12-01 14:04:46.000000000 +0100
+++ dvb_ca_en50221.c    2009-12-03 17:17:21.000000000 +0100
@@ -1053,6 +1053,11 @@ static int dvb_ca_en50221_thread(void *d

                                        printk("dvb_ca adapter %d: Invalid PC card inserted :(\n",
                                               ca->dvbdev->adapter->num);
+                    //BEGIN patch 20091203
+                    printk("Retrying DVB_CA_SLOTSTATE_INVALID \n");
+                    ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_VALIDATE;
+                    break;
+                    //END
                                        ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_INVALID;
                                        dvb_ca_en50221_thread_update_delay(ca);
                                        break;