struct mantis_ca *ca = container_of(work, struct mantis_ca, hif_evm_work);
struct mantis_pci *mantis = ca->ca_priv;
- u32 gpif_stat, gpif_mask;
+ u32 gpif_stat, gpif_mask, rst_mask, rst_stat;
+
+ rst_mask = MANTIS_GPIF_WRACK |
+ MANTIS_GPIF_OTHERR |
+ MANTIS_SBUF_WSTO |
+ MANTIS_GPIF_EXTIRQ;
gpif_stat = mmread(MANTIS_GPIF_STATUS);
gpif_mask = mmread(MANTIS_GPIF_IRQCFG);
+ rst_stat = gpif_stat & rst_mask;
+ mmwrite(rst_stat, MANTIS_GPIF_STATUS);
+
if (gpif_stat & MANTIS_GPIF_DETSTAT) {
if (gpif_stat & MANTIS_CARD_PLUGIN) {
dprintk(verbose, MANTIS_DEBUG, 1, "Event Mgr: Adapter(%d) Slot(0): CAM Plugin", mantis->num);
irqcfg = mmread(MANTIS_GPIF_IRQCFG);
irqcfg |= MANTIS_MASK_BRRDY;
+ irqcfg |= MANTIS_MASK_WRACK;
mmwrite(irqcfg, MANTIS_GPIF_IRQCFG);
return 0;