diff options
author | Andrew de Quincy <devnull@localhost> | 2004-08-27 02:26:17 +0000 |
---|---|---|
committer | Andrew de Quincy <devnull@localhost> | 2004-08-27 02:26:17 +0000 |
commit | 90810fe10b17254ccf82211dd52b9d592cac636e (patch) | |
tree | 0bffe55e6d644d69ff585de8884dbed471bfee7e /linux/drivers | |
parent | 82327d09f5c8b054364d159d25272e2349a466d8 (diff) | |
download | mediapointer-dvb-s2-90810fe10b17254ccf82211dd52b9d592cac636e.tar.gz mediapointer-dvb-s2-90810fe10b17254ccf82211dd52b9d592cac636e.tar.bz2 |
Moved CAM CTRL IF reset to a better place.
Diffstat (limited to 'linux/drivers')
-rw-r--r-- | linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c | 16 |
1 files changed, 6 insertions, 10 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 55850322f..93341eef7 100644 --- a/linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c +++ b/linux/drivers/media/dvb/dvb-core/dvb_ca_en50221.c @@ -307,10 +307,6 @@ static int dvb_ca_en50221_link_init(struct dvb_ca_private* ca, int slot) /* we'll be determining these during this function */ ca->slot_info[slot].da_irq_supported = 0; - /* reset the link interface. Note CAM IRQs are disabled */ - if ((ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, CMDREG_RS)) != 0) return ret; - if ((ret = dvb_ca_en50221_wait_if_status(ca, slot, STATUSREG_FR, HZ/10)) != 0) return ret; - /* set the host link buffer size temporarily. it will be overwritten with the * real negotiated size later. */ ca->slot_info[slot].link_buf_size = 2; @@ -992,12 +988,6 @@ 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 adapter %d: Unable to reset CAM IF\n", ca->dvbdev->adapter->num); - 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 adapter %d: Invalid PC card inserted :(\n", ca->dvbdev->adapter->num); ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_INVALID; @@ -1010,6 +1000,12 @@ static int dvb_ca_en50221_thread(void* data) dvb_ca_en50221_thread_update_delay(ca); break; } + if (ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, CMDREG_RS) != 0) { + printk("dvb_ca adapter %d: Unable to reset CAM IF\n", ca->dvbdev->adapter->num); + ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_INVALID; + dvb_ca_en50221_thread_update_delay(ca); + break; + } dprintk("DVB CAM validated successfully\n"); ca->slot_info[slot].timeout = jiffies + (INIT_TIMEOUT_SECS * HZ); |