Commit 6d6aae19 authored by Linus Torvalds's avatar Linus Torvalds

Import 2.3.99pre3-2

parent 8ca3b9de
...@@ -137,15 +137,31 @@ ...@@ -137,15 +137,31 @@
#ifdef CONFIG_CARDBUS #ifdef CONFIG_CARDBUS
/* /*
* Generic TI open - TI has an extension for the * Generic TI init - TI has an extension for the
* INTCTL register that sets the PCI CSC interrupt. * INTCTL register that sets the PCI CSC interrupt.
* Make sure we set it correctly at open and init * Make sure we set it correctly at open and init
* time. * time
* - open: disable the PCI CSC interrupt. This makes
* it possible to use the CSC interrupt to probe the
* ISA interrupts.
* - init: set the interrupt to match our PCI state.
* This makes us correctly get PCI CSC interrupt
* events.
*/ */
static int ti_open(pci_socket_t *socket) static int ti_open(pci_socket_t *socket)
{ {
u8 new, reg = exca_readb(socket, I365_INTCTL); u8 new, reg = exca_readb(socket, I365_INTCTL);
new = reg & ~I365_INTR_ENA;
if (new != reg)
exca_writeb(socket, I365_INTCTL, new);
return 0;
}
static int ti_intctl(pci_socket_t *socket)
{
u8 new, reg = exca_readb(socket, I365_INTCTL);
new = reg & ~I365_INTR_ENA; new = reg & ~I365_INTR_ENA;
if (socket->cb_irq) if (socket->cb_irq)
new |= I365_INTR_ENA; new |= I365_INTR_ENA;
...@@ -157,7 +173,7 @@ static int ti_open(pci_socket_t *socket) ...@@ -157,7 +173,7 @@ static int ti_open(pci_socket_t *socket)
static int ti_init(pci_socket_t *socket) static int ti_init(pci_socket_t *socket)
{ {
yenta_init(socket); yenta_init(socket);
ti_open(socket); ti_intctl(socket);
return 0; return 0;
} }
...@@ -200,7 +216,7 @@ static int ti113x_init(pci_socket_t *socket) ...@@ -200,7 +216,7 @@ static int ti113x_init(pci_socket_t *socket)
config_writel(socket, TI113X_SYSTEM_CONTROL, ti_sysctl(socket)); config_writel(socket, TI113X_SYSTEM_CONTROL, ti_sysctl(socket));
config_writeb(socket, TI113X_CARD_CONTROL, ti_cardctl(socket)); config_writeb(socket, TI113X_CARD_CONTROL, ti_cardctl(socket));
config_writeb(socket, TI113X_DEVICE_CONTROL, ti_devctl(socket)); config_writeb(socket, TI113X_DEVICE_CONTROL, ti_devctl(socket));
ti_open(socket); ti_intctl(socket);
return 0; return 0;
} }
...@@ -237,7 +253,7 @@ static int ti1250_init(pci_socket_t *socket) ...@@ -237,7 +253,7 @@ static int ti1250_init(pci_socket_t *socket)
yenta_init(socket); yenta_init(socket);
config_writeb(socket, TI1250_DIAGNOSTIC, ti_diag(socket)); config_writeb(socket, TI1250_DIAGNOSTIC, ti_diag(socket));
ti_open(socket); ti_intctl(socket);
return 0; return 0;
} }
......
...@@ -851,22 +851,3 @@ struct pci_socket_ops yenta_operations = { ...@@ -851,22 +851,3 @@ struct pci_socket_ops yenta_operations = {
yenta_proc_setup yenta_proc_setup
}; };
EXPORT_SYMBOL(yenta_operations); EXPORT_SYMBOL(yenta_operations);
/*
* Ricoh cardbus bridge: standard cardbus, except it needs
* some extra init code to set timings etc.
*/
struct pci_socket_ops ricoh_operations = {
yenta_open,
yenta_close,
ricoh_init,
yenta_suspend,
yenta_get_status,
yenta_get_socket,
yenta_set_socket,
yenta_get_io_map,
yenta_set_io_map,
yenta_get_mem_map,
yenta_set_mem_map,
yenta_proc_setup
};
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