[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1161301380.5084.38.camel@s10n.fi.upm.es>
Date: Fri, 20 Oct 2006 01:43:00 +0200
From: Álvaro Arranz García
<aarranz@...aso.ls.fi.upm.es>
To: Linus Torvalds <torvalds@...l.org>
Cc: Andrew Morton <akpm@...l.org>, Greg KH <gregkh@...e.de>,
Daniel Ritz <daniel.ritz@....ch>,
Dominik Brodowski <linux@...inikbrodowski.net>,
linux-kernel@...r.kernel.org, linux-pci@...ey.karlin.mff.cuni.cz,
pcihpd-discuss@...ts.sourceforge.net
Subject: Re: [GIT PATCH] PCI and PCI hotplug fixes for 2.6.19-rc2
Hi!
first of all:
git clone
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
linux-git
then i applied this patch:
diff --git a/drivers/pcmcia/yenta_socket.c
b/drivers/pcmcia/yenta_socket.c
index 26229d9..ee7a6e9 100644
--- a/drivers/pcmcia/yenta_socket.c
+++ b/drivers/pcmcia/yenta_socket.c
@@ -552,7 +552,7 @@ static int yenta_sock_suspend(struct pcm
* max 4 MB, min 16 kB. We try very hard to not get below
* the "ACC" values, though.
*/
-#define BRIDGE_MEM_MAX 4*1024*1024
+#define BRIDGE_MEM_MAX 64*1024*1024
#define BRIDGE_MEM_ACC 128*1024
#define BRIDGE_MEM_MIN 16*1024
@@ -578,6 +578,8 @@ static int yenta_search_one_res(struct r
unsigned long avail = root->end - root->start;
int i;
size = BRIDGE_MEM_MAX;
+ printk ("yenta_search_one_res initial size=0x%08X
avail=0x%08X min=0x%08X\n",
+ size, avail, min);
if (size > avail/8) {
size=(avail+1)/8;
/* round size down to next power of 2 */
@@ -586,6 +588,7 @@ static int yenta_search_one_res(struct r
i++;
size = 1 << i;
}
+ printk ("yenta_search_one_res final size=0x%08X\n",
size);
if (size < min)
size = min;
align = size;
result:
These changes don't fix the bug and the debugging messages that I have
put aren't printed. So I think this code is not the problem.
I don't know whether this could help you, but I see that the initial
range of memory is assigned to the cardbus at pci_bus_size_cardbus
(drivers/pci/setup-pci.c).
Alvaro.
El mié, 18-10-2006 a las 17:41 -0700, Linus Torvalds escribió:
>
> On Wed, 18 Oct 2006, Andrew Morton wrote:
> >
> > pccard: CardBus card inserted into slot 0
> > PCI: Failed to allocate mem resource #0:1000000@...00000 for 0000:07:00.2
>
> That seems to be a 16MB memory resource. But we already totally filled up
> the memory space we reserved for cardbus with the memory resources needed
> for 7:0.0 and 7:0.1
>
> That cardbus card seems to have three sub-functions, and it looks like
> they _all_ want a 16MB memory region. We "only" allocated 32MB total for
> it, so the third subfunction gets left out.
>
> (There's another 32MB of memory allocated for the cardbus bridge at
> 0x6a000000, but it's prefetchable, so we don't allow a non-prefetchable
> resourc to use it).
>
> I don't think this has _ever_ worked.
>
> Hmm. I guess the Alvaro could try increasing "BRIDGE_MEM_MAX" in
> drivers/pcmcia/yenta_socket.c. It's currently at 4MB, but I think we gave
> him 32MB exactly because there was a huge memory hole, so we decided to
> extend it further a bit:
>
> size = BRIDGE_MEM_MAX;
> if (size > avail/8) {
> size=(avail+1)/8;
> /* round size down to next power of 2 */
> i = 0;
> while ((size /= 2) != 0)
> i++;
> size = 1 << i;
> }
>
>
> but it migth be worth testing with "BRIDGE_MEM_MAX" set to 64MB instead of
> the current 4MB.
>
> Alvaro?
>
> Linus
View attachment "dmesg-linux-git-64MB.log" of type "text/x-log" (25774 bytes)
View attachment "iomem-64MB.log" of type "text/x-log" (2056 bytes)
View attachment "lspci-64MB.log" of type "text/x-log" (27243 bytes)
Powered by blists - more mailing lists