summaryrefslogtreecommitdiff
path: root/linux/drivers
diff options
context:
space:
mode:
authorAndrew de Quincy <devnull@localhost>2004-08-27 02:26:17 +0000
committerAndrew de Quincy <devnull@localhost>2004-08-27 02:26:17 +0000
commit90810fe10b17254ccf82211dd52b9d592cac636e (patch)
tree0bffe55e6d644d69ff585de8884dbed471bfee7e /linux/drivers
parent82327d09f5c8b054364d159d25272e2349a466d8 (diff)
downloadmediapointer-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.c16
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);