Re: PCI memory reservation failure - 2.4/2.6
From: Manfred Spraul
Date: Sat May 15 2004 - 14:37:19 EST
Alec H. Peterson wrote:
A module parameter sounds like a grand idea. I'd be happy to take a
stab at it if others feel it is the way to go.
There are two possible approaches:
- just a module parameter. Probably something for 2.4.
- a combination of a dmi detection of buggy bios versions plus a pci
quirk that resets start and end to 0.
Attached is the module parameter patch against 2.6. If it works I can
write a backport to 2.4 and try to convince Marcelo to merge it.
Could you send me the output of dmidecode? I'll try to write the
autodetection patch for 2.6.
--
Manfred
--- 2.6/drivers/pcmcia/yenta_socket.c 2004-05-15 11:21:38.000000000 +0200
+++ build-2.6/drivers/pcmcia/yenta_socket.c 2004-05-15 15:00:22.000000000 +0200
@@ -40,7 +40,7 @@
#define to_ns(cycles) ((cycles)*120)
static int yenta_probe_cb_irq(struct yenta_socket *socket);
-
+static int override_bios;
/*
* Generate easy-to-use ways of reading a cardbus sockets
@@ -548,7 +548,7 @@
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)
@@ -1105,6 +1105,8 @@
};
MODULE_DEVICE_TABLE(pci, yenta_table);
+MODULE_PARM (override_bios, "i");
+MODULE_PARM_DESC (override_bios, "yenta ignore bios resource allocation");
static struct pci_driver yenta_cardbus_driver = {
.name = "yenta_cardbus",