 /* Set up ISA irq routing to probe the ISA irqs.. */ bridge_ctrl = config_readw(socket, CB_BRIDGE_CONTROL); if (!(bridge_ctrl & CB_BRIDGE_INTR)) { bridge_ctrl |= CB_BRIDGE_INTR; config_writew(socket, CB_BRIDGE_CONTROL, bridge_ctrl); } 
static unsigned int yenta_probe_irq(struct yenta_socket *socket, u32 isa_irq_mask){	int i;	unsigned long val;	u16 bridge_ctrl;	u32 mask;	/* Set up ISA irq routing to probe the ISA irqs.. */	bridge_ctrl = config_readw(socket, CB_BRIDGE_CONTROL);	if (!(bridge_ctrl & CB_BRIDGE_INTR)) {		bridge_ctrl |= CB_BRIDGE_INTR;		config_writew(socket, CB_BRIDGE_CONTROL, bridge_ctrl);	}	/*	 * Probe for usable interrupts using the force	 * register to generate bogus card status events.	 */	cb_writel(socket, CB_SOCKET_EVENT, -1);	cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK);	exca_writeb(socket, I365_CSCINT, 0);	val = probe_irq_on() & isa_irq_mask;	for (i = 1; i < 16; i++) {		if (!((val >> i) & 1))			continue;		exca_writeb(socket, I365_CSCINT, I365_CSC_STSCHG | (i << 4));		cb_writel(socket, CB_SOCKET_FORCE, CB_FCARDSTS);		udelay(100);		cb_writel(socket, CB_SOCKET_EVENT, -1);	}	cb_writel(socket, CB_SOCKET_MASK, 0);	exca_writeb(socket, I365_CSCINT, 0);	mask = probe_irq_mask(val) & 0xffff;	bridge_ctrl &= ~CB_BRIDGE_INTR;	config_writew(socket, CB_BRIDGE_CONTROL, bridge_ctrl);	return mask;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/a413c09094e4df714c274690928dcf8125daf7e8/yenta_socket.c/clean/drivers/pcmcia/yenta_socket.c