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

Import 2.3.99pre3-2

parent 8ca3b9de
......@@ -137,15 +137,31 @@
#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.
* 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)
{
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;
if (socket->cb_irq)
new |= I365_INTR_ENA;
......@@ -157,7 +173,7 @@ static int ti_open(pci_socket_t *socket)
static int ti_init(pci_socket_t *socket)
{
yenta_init(socket);
ti_open(socket);
ti_intctl(socket);
return 0;
}
......@@ -200,7 +216,7 @@ static int ti113x_init(pci_socket_t *socket)
config_writel(socket, TI113X_SYSTEM_CONTROL, ti_sysctl(socket));
config_writeb(socket, TI113X_CARD_CONTROL, ti_cardctl(socket));
config_writeb(socket, TI113X_DEVICE_CONTROL, ti_devctl(socket));
ti_open(socket);
ti_intctl(socket);
return 0;
}
......@@ -237,7 +253,7 @@ static int ti1250_init(pci_socket_t *socket)
yenta_init(socket);
config_writeb(socket, TI1250_DIAGNOSTIC, ti_diag(socket));
ti_open(socket);
ti_intctl(socket);
return 0;
}
......
......@@ -851,22 +851,3 @@ struct pci_socket_ops yenta_operations = {
yenta_proc_setup
};
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