patch-2.3.49 linux/drivers/pcmcia/yenta.c

Next file: linux/drivers/scsi/pci2000.c
Previous file: linux/drivers/pcmcia/rsrc_mgr.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.48/linux/drivers/pcmcia/yenta.c linux/drivers/pcmcia/yenta.c
@@ -235,16 +235,18 @@
 	socket->io_irq = state->io_irq;
 	bridge = config_readw(socket, CB_BRIDGE_CONTROL) & ~(CB_BRIDGE_CRST | CB_BRIDGE_INTR);
 	if (cb_readl(socket, CB_SOCKET_STATE) & CB_CBCARD) {
+		u8 intr;
 		bridge |= (state->flags & SS_RESET) ? CB_BRIDGE_CRST : 0;
 
 		/* ISA interrupt control? */
+		intr = exca_readb(socket, I365_INTCTL);
+		intr = (intr & ~0xf);
 		if (!socket->cb_irq) {
-			u8 intr = exca_readb(socket, I365_INTCTL);
-			intr = (intr & ~0xf) | state->io_irq;
-			exca_writeb(socket, I365_INTCTL, intr);
+			intr |= state->io_irq;
 			bridge |= CB_BRIDGE_INTR;
 		}
-	} else {
+		exca_writeb(socket, I365_INTCTL, intr);
+	}  else {
 		u8 reg;
 
 		bridge |= CB_BRIDGE_INTR;

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)