From dfa6a03851de3405c27adf15f2560d949798e885 Mon Sep 17 00:00:00 2001 From: Andrew de Quincy Date: Mon, 16 Aug 2004 18:16:06 +0000 Subject: Fix for matrix CAMs from Sjoerd Simons --- linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c b/linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c index 68e6e0b09..e38e87c17 100644 --- a/linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c +++ b/linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c @@ -982,6 +982,12 @@ static int dvb_ca_en50221_thread(void* data) break; case DVB_CA_SLOTSTATE_VALIDATE: + if (ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, CMDREG_RS) != 0) { + printk("dvb_ca: Unable to reset CAM IF\n"); + ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_INVALID; + dvb_ca_en50221_thread_update_delay(ca); + break; + } if (dvb_ca_en50221_parse_attributes(ca, slot) != 0) { printk("dvb_ca: Invalid PC card inserted :(\n"); ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_INVALID; @@ -994,7 +1000,6 @@ static int dvb_ca_en50221_thread(void* data) dvb_ca_en50221_thread_update_delay(ca); break; } - dprintk("DVB CAM validated successfully\n"); ca->slot_info[slot].timeout = jiffies + (INIT_TIMEOUT_SECS * HZ); -- cgit v1.2.3