TechnoTrend TT-DVB-T 1500
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
The delivered CI cable (SCSI) is very short. In case the cable length is increased, there might be problems with the CAM not being recognized anymore every now and then. The output in such a case is:
Dec 14 07:16:27 mythtvbackend dvb_ca adapter 1: Invalid PC card inserted :(
This is annoying since the encrypted channels will stay encrypted in case an "Invalid PC card inserted :(" appears. The only solution, I was aware so far, was to remove the CAM followed by reinserting the CAM in the CI. This in turn would force a reinitialization of the CI/CAM.
A 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 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;