Commit 4c698cc5 authored by Russell King's avatar Russell King Committed by Russell King

[PCMCIA] Disable IRQ steering and don't change the IRQ MUX register.

The IRQ steering code operates too early at present, and actually
prevents us detecting ISA interrupts.

We should not touch the IRQ MUX register on TI bridges - only the
machine itself knows the right value for this.  The kernel doesn't
have the knowledge to know what function the cardbus controllers
multi-function pins have been assigned by the hardware manufacturer.
parent 054446cf
...@@ -258,6 +258,7 @@ static int ti_override(struct yenta_socket *socket) ...@@ -258,6 +258,7 @@ static int ti_override(struct yenta_socket *socket)
if (new != reg) if (new != reg)
exca_writeb(socket, I365_INTCTL, new); exca_writeb(socket, I365_INTCTL, new);
#if 0
/* /*
* If ISA interrupts don't work, then fall back to routing card * If ISA interrupts don't work, then fall back to routing card
* interrupts to the PCI interrupt of the socket. * interrupts to the PCI interrupt of the socket.
...@@ -282,6 +283,7 @@ static int ti_override(struct yenta_socket *socket) ...@@ -282,6 +283,7 @@ static int ti_override(struct yenta_socket *socket)
config_writeb(socket, TI113X_DEVICE_CONTROL, devctl); config_writeb(socket, TI113X_DEVICE_CONTROL, devctl);
} }
} }
#endif
socket->socket.ops->init = ti_init; socket->socket.ops->init = ti_init;
return 0; return 0;
...@@ -327,9 +329,11 @@ static int ti1250_init(struct pcmcia_socket *sock) ...@@ -327,9 +329,11 @@ static int ti1250_init(struct pcmcia_socket *sock)
struct yenta_socket *socket = container_of(sock, struct yenta_socket, socket); struct yenta_socket *socket = container_of(sock, struct yenta_socket, socket);
ti113x_init(sock); ti113x_init(sock);
ti_irqmux(socket) = config_readl(socket, TI122X_IRQMUX); ti_irqmux(socket) = config_readl(socket, TI122X_IRQMUX);
#if 0
ti_irqmux(socket) = (ti_irqmux(socket) & ~0x0f) | 0x02; /* route INTA */ ti_irqmux(socket) = (ti_irqmux(socket) & ~0x0f) | 0x02; /* route INTA */
if (!(ti_sysctl(socket) & TI122X_SCR_INTRTIE)) if (!(ti_sysctl(socket) & TI122X_SCR_INTRTIE))
ti_irqmux(socket) |= 0x20; /* route INTB */ ti_irqmux(socket) |= 0x20; /* route INTB */
#endif
config_writel(socket, TI122X_IRQMUX, ti_irqmux(socket)); config_writel(socket, TI122X_IRQMUX, ti_irqmux(socket));
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment