diff options
author | Daniel Ritz <daniel.ritz@gmx.ch> | 2005-08-22 01:29:26 -0400 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2005-09-26 07:09:20 -0400 |
commit | 8c3520d4eb3b1bbf2e45fbae8dcfb8db06d5e775 (patch) | |
tree | df9b4f49e8f9ffa34657776be458fbd124b2e87b /drivers/pcmcia/cardbus.c | |
parent | 8ddec7460d2f5db3ac35812c03676b1473d1d668 (diff) |
[PATCH] yenta: auto-tune EnE bridges for CardBus cards
Echo Audio cardbus products are known to be incompatible with EnE bridges.
in order to maybe solve the problem a EnE specific test bit has to be set,
another cleared...but other setups have a good chance to break when just
forcing the bits. so do the whole thingy automatically.
The patch adds a hook in cb_alloc() that allows special tuning for the
different chipsets. for ene just match the Echo products and set/clear the
test bits, defaults to do the same thing as w/o the patch to not break
working setups.
Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch>
Cc: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/pcmcia/cardbus.c')
-rw-r--r-- | drivers/pcmcia/cardbus.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/pcmcia/cardbus.c b/drivers/pcmcia/cardbus.c index 1d755e20880c..3f6d51d11374 100644 --- a/drivers/pcmcia/cardbus.c +++ b/drivers/pcmcia/cardbus.c | |||
@@ -228,6 +228,11 @@ int cb_alloc(struct pcmcia_socket * s) | |||
228 | pci_bus_size_bridges(bus); | 228 | pci_bus_size_bridges(bus); |
229 | pci_bus_assign_resources(bus); | 229 | pci_bus_assign_resources(bus); |
230 | cardbus_assign_irqs(bus, s->pci_irq); | 230 | cardbus_assign_irqs(bus, s->pci_irq); |
231 | |||
232 | /* socket specific tune function */ | ||
233 | if (s->tune_bridge) | ||
234 | s->tune_bridge(s, bus); | ||
235 | |||
231 | pci_enable_bridges(bus); | 236 | pci_enable_bridges(bus); |
232 | pci_bus_add_devices(bus); | 237 | pci_bus_add_devices(bus); |
233 | 238 | ||