netdev
[Top] [All Lists]

Re: PCI memory reservation failure - 2.4/2.6

To: "Alec H. Peterson" <ahp@xxxxxxxxxxxx>
Subject: Re: PCI memory reservation failure - 2.4/2.6
From: Manfred Spraul <manfred@xxxxxxxxxxxxxxxx>
Date: Sat, 15 May 2004 21:34:49 +0200
Cc: linux-kernel@xxxxxxxxxxxxxxx, Dominik Brodowski <linux@xxxxxxxx>, netdev@xxxxxxxxxxx
In-reply-to: <9C9F57570B19C8A682D96940@[192.168.0.100]>
References: <BDD74A21E0B47FEAC3AB8A10@[192.168.0.100]> <40A29211.2010707@xxxxxxxxxxxxxxxx> <9C9F57570B19C8A682D96940@[192.168.0.100]>
Sender: netdev-bounce@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.4.1) Gecko/20031114
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",
<Prev in Thread] Current Thread [Next in Thread>