diff options
-rw-r--r-- | linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c | 7 |
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); |