V4L/DVB (13739): [Mantis] Event Manager: Handle Masked events only
authorManu Abraham <abraham.manu@gmail.com>
Fri, 4 Dec 2009 08:08:25 +0000 (05:08 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Sun, 17 Jan 2010 13:55:34 +0000 (11:55 -0200)
Signed-off-by: Manu Abraham <manu@linuxtv.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/dvb/mantis/mantis_dvb.c
drivers/media/dvb/mantis/mantis_evm.c

index 3325b59ce19cc26ff2351eb2c2e82bacd68f50c0..ade444963c846109106533efb78b515522be654c 100644 (file)
@@ -313,6 +313,7 @@ int __devinit mantis_frontend_init(struct mantis_pci *mantis)
 
 int __devexit mantis_dvb_exit(struct mantis_pci *mantis)
 {
+       mantis_ca_exit(mantis);
        tasklet_kill(&mantis->tasklet);
        dvb_net_release(&mantis->dvbnet);
        mantis->demux.dmx.remove_frontend(&mantis->demux.dmx, &mantis->fe_mem);
index d81068d083455b011afb604e29d7da8dbdb269ad..c35ddd868f892600d8cd2c4bb7f0b59878e1179f 100644 (file)
@@ -27,9 +27,12 @@ void mantis_hifevm_tasklet(unsigned long data)
        struct mantis_ca *ca = (struct mantis_ca *) data;
        struct mantis_pci *mantis = ca->ca_priv;
 
-       u32 gpif_stat;
+       u32 gpif_stat, gpif_mask;
 
        gpif_stat = mmread(MANTIS_GPIF_STATUS);
+       gpif_mask = mmread(MANTIS_GPIF_IRQCFG);
+       if (!((gpif_stat & 0xff) & (gpif_mask & 0xff)))
+               return;
 
        if (gpif_stat & MANTIS_GPIF_DETSTAT) {
                if (gpif_stat & MANTIS_CARD_PLUGIN) {