summaryrefslogtreecommitdiff
path: root/linux/drivers/media
diff options
context:
space:
mode:
authorAndrew de Quincy <devnull@localhost>2004-08-16 18:16:06 +0000
committerAndrew de Quincy <devnull@localhost>2004-08-16 18:16:06 +0000
commitdfa6a03851de3405c27adf15f2560d949798e885 (patch)
tree215d86071a4778f5cbff21ab14e4eec3e64249d8 /linux/drivers/media
parent5efa2f21e0d59fa9bfd0dfbec238d4be5c971945 (diff)
downloadmediapointer-dvb-s2-dfa6a03851de3405c27adf15f2560d949798e885.tar.gz
mediapointer-dvb-s2-dfa6a03851de3405c27adf15f2560d949798e885.tar.bz2
Fix for matrix CAMs from Sjoerd Simons
Diffstat (limited to 'linux/drivers/media')
-rw-r--r--linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c7
1 files changed, 6 insertions, 1 deletions
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);