aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.de>2005-01-11 03:30:10 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-01-11 03:30:10 -0800
commit0a78f1607d70f9d22d61b2413aead5ffdd579c64 (patch)
treea383ce9700985d81092ca3a3c0570497ff5cabcd /drivers
parent1c6f569af36e2b956cb5599d29879d97c2d08038 (diff)
downloadhistory-0a78f1607d70f9d22d61b2413aead5ffdd579c64.tar.gz
[PATCH] pcmcia: yenta override to re-allocate resources
From: Manfred Spraul One bios assigns a small window for i/o access to yenta bridges. But there are Cardbus cards that needs lots of i/o ports. yenta usually honors the bios selected values, except if the bios choice is clearly invalid. The patch allows an override from the command line. Signed-Off-By: Manfred Spraul <manfred@colorfullife.com> Signed-Off-By: Dominik Brodowski <linux@brodo.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/pcmcia/yenta_socket.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c
index 91b7b133989acc..9fae06ac2761c1 100644
--- a/drivers/pcmcia/yenta_socket.c
+++ b/drivers/pcmcia/yenta_socket.c
@@ -45,6 +45,10 @@ MODULE_PARM_DESC(disable_clkrun, "If PC card doesn't function properly, please t
static int yenta_probe_cb_irq(struct yenta_socket *socket);
+static unsigned int override_bios;
+module_param(override_bios, uint, 0000);
+MODULE_PARM_DESC (override_bios, "yenta ignore bios resource allocation");
+
/*
* Generate easy-to-use ways of reading a cardbus sockets
* regular memory space ("cb_xxx"), configuration space
@@ -554,7 +558,7 @@ static void yenta_allocate_res(struct yenta_socket *socket, int nr, unsigned typ
start = config_readl(socket, offset) & mask;
end = config_readl(socket, offset+4) | ~mask;
- if (start && end > start) {
+ if (start && end > start && !override_bios) {
res->start = start;
res->end = end;
if (request_resource(root, res) == 0)