From: Connor Behan <connor.behan@gmail.com>
To: Gary Hade <garyhade@us.ibm.com>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>,
"Rafael J. Wysocki" <rjw@sisk.pl>,
linux-kernel@vger.kernel.org,
Linux PCI <linux-pci@vger.kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>
Subject: Re: Can't allocate resources for PCI video card behind bridge
Date: Thu, 08 Jan 2009 19:39:54 -0500 [thread overview]
Message-ID: <49669CDA.2010308@gmail.com> (raw)
In-Reply-To: <20090109000808.GA7703@us.ibm.com>
Gary Hade wrote:
> On Thu, Jan 08, 2009 at 12:26:38PM -0800, Jesse Barnes wrote:
>
>> On Thursday, January 8, 2009 11:56 am Rafael J. Wysocki wrote:
>>
>>> Cc-ing linux-pci and Jesse.
>>>
>>> On Thursday 08 January 2009, Connor Behan wrote:
>>>
>>>> Hello, I am trying to use two video cards. One is the built in ATI Rage
>>>> Mobility M3 AGP card which drives the screen of my laptop (Thinkpad a22m
>>>> 2628-S1U if that matters), the other is the ATI Radeon X1550 PCI card in
>>>> the Thinkpad Dock II which is supposed to drive an external monitor.
>>>> X1550 is a PCI-E chipset but my card is a PCI card with an onboard PCI
>>>> to PCI-E bridge. I first tried this with kernel 2.6.27 as packaged by
>>>> Archlinux and got the following startup errors:
>>>>
>>>> pci 0000:00:04.0: BAR 7: can't allocate resource
>>>> pci 0000:00:04.0: BAR 8: can't allocate resource
>>>> pci 0000:00:04.0: BAR 9: can't allocate resource
>>>>
>>>> I've seen this problem discussed in the archives and couldn't find what
>>>> looked like a fix. I WAS able to fix this by loading dock, pci_slot,
>>>> pci_hotplug and acpiphp and appending pci=assign-busses. However since
>>>> then I have run a package update to kernel 2.6.27.10 and I am once again
>>>> getting the same problem even with the same modules and parameters. I
>>>> have since tried appending irqpoll, pci=bios, pci=routeirq and acpi=off
>>>> with no success. I have even rolled back my kernel to 2.6.27 (and the
>>>> headers and a few other packages) setup my system the way it was setup
>>>> before to the best of my knowledge but I still can't get the PCI card
>>>> working again. Another subtle change must be responsible.
>>>>
>>>> Certain PCI devices in the dock are working such as the Cardbus slots...
>>>> but I could care less about them... is there a way I could tell the
>>>> kernel to prioritize the video card and sacrifice Cardbus slots first if
>>>> it can't allocate enough resources? Also my lspci output shows a large
>>>> gap 01:00.0 to 06:00.0 so some part of my system must have expected
>>>> other devices in that range. When I had the video card working it was
>>>> 02:00.0. I have tried changing the four IRQ numbers in the BIOS but this
>>>> is pointless at best and sometimes causes my soundcard to be disabled.
>>>> My dmesg, lspci and (trimmed) kernel config are pasted:
>>>>
>>>> dmesg: http://pastebin.com/f3ae15a58
>>>> lspci: http://pastebin.com/f5d7dee6e
>>>> .config: http://pastebin.com/fb925760
>>>>
>>>> I'm hoping for a solution that doesn't require recompiling the kernel
>>>> but I definitely would if that's necessary. In any event I'll be much
>>>> more vigilant about system updates if I get this working again.
>>>> Thank-you very much for your time.
>>>>
>> Can you post the output of lspci -vvv somewhere as well after trying 2.6.28?
>> It may be that we want the "don't allocate resources for transparent bridges"
>> patch after all:
>>
>> diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
>> index ea979f2..586451c 100644
>> --- a/drivers/pci/setup-bus.c
>> +++ b/drivers/pci/setup-bus.c
>> @@ -467,8 +467,12 @@ void __ref pci_bus_size_bridges(struct pci_bus *bus)
>> }
>> }
>>
>> - /* The root bus? */
>> - if (!bus->self)
>> + /*
>> + * We don't need to allocate PCI bridging windows
>> + * for a root bus (everything bridged) or for a
>> + * transparent one.
>> + */
>> + if (!bus->self || bus->self->transparent)
>> return;
>>
>> switch (bus->self->class>> 8) {
>>
>
> Jesse, I think this change is doing the same thing as
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=8fa5913d54f3b1e09948e6a0db34da887e05ff1f
> which was reverted by
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=12c22d6ef299ccf0955e5756eb57d90d7577ac68
> because of
> http://bugzilla.kernel.org/show_bug.cgi?id=10080
> http://marc.info/?l=linux-kernel&m=120620382316329&w=2
> http://marc.info/?l=linux-kernel&m=120653981716729&w=2
>
> It definitely seems like the right thing to do but it apparently
> breaks stuff on systems with oddball transparent bridges.
>
> Gary
>
>
The output of lspci -vvv is here http://pastebin.com/f126dc794 and it is
exactly the same on 2.6.27.10 and 2.6.28. I noticed various Thinkpad
models besdies Subsystem. They are all very close to mine but not
exactly A22m. Could this mean I need to tweak the DSDT file?
Should I try the above patch at the risk of having to use a custom
kernel for the rest of my life or do you think there's a way to fix this
without breaking other systems?
next prev parent reply other threads:[~2009-01-09 0:40 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-01-08 19:31 Can't allocate resources for PCI video card behind bridge Connor Behan
2009-01-08 19:56 ` Rafael J. Wysocki
2009-01-08 20:26 ` Jesse Barnes
2009-01-09 0:08 ` Gary Hade
2009-01-09 0:39 ` Connor Behan [this message]
2009-01-09 22:30 ` Bjorn Helgaas
2009-01-10 20:09 ` Grant Grundler
2009-01-13 2:42 ` Connor Behan
2009-01-13 3:05 ` Linus Torvalds
2009-01-13 21:23 ` Connor Behan
2009-01-13 21:35 ` Linus Torvalds
2009-01-14 0:14 ` Connor Behan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=49669CDA.2010308@gmail.com \
--to=connor.behan@gmail.com \
--cc=garyhade@us.ibm.com \
--cc=jbarnes@virtuousgeek.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=rjw@sisk.pl \
--cc=torvalds@linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.