From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, linux-pci@atrey.karlin.mff.cuni.cz
Cc: gregkh@suse.de
Subject: [PATCH] PCI: Fix up PCI routing in parent bridge
Date: Fri, 1 Jul 2005 13:48:31 -0700 [thread overview]
Message-ID: <11202509113838@kroah.com> (raw)
In-Reply-To: <20050701204741.GA1137@kroah.com>
[PATCH] PCI: Fix up PCI routing in parent bridge
When the cardbus bridge is behind another bridge change the routing
in the parent bridge for new cards. This fixes Cardbus on various AMD64
laptops.
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
commit 26f674ae0e37190bf61c988e52911e4372fdb5f5
tree 625b05e5edd627a5cce0289e78057ca5ccf2290c
parent ef6689eff4b58273fed9e54293a3da983b321e9a
author Greg Kroah-Hartman <gregkh@suse.de> Thu, 02 Jun 2005 15:41:48 -0700
committer Greg Kroah-Hartman <gregkh@suse.de> Fri, 01 Jul 2005 13:35:49 -0700
drivers/pci/probe.c | 19 ++++++++++++++++++-
1 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -398,6 +398,16 @@ static void pci_enable_crs(struct pci_de
pci_write_config_word(dev, rpcap + PCI_EXP_RTCTL, rpctl);
}
+static void __devinit pci_fixup_parent_subordinate_busnr(struct pci_bus *child, int max)
+{
+ struct pci_bus *parent = child->parent;
+ while (parent->parent && parent->subordinate < max) {
+ parent->subordinate = max;
+ pci_write_config_byte(parent->self, PCI_SUBORDINATE_BUS, max);
+ parent = parent->parent;
+ }
+}
+
unsigned int __devinit pci_scan_child_bus(struct pci_bus *bus);
/*
@@ -499,7 +509,13 @@ int __devinit pci_scan_bridge(struct pci
if (!is_cardbus) {
child->bridge_ctl = PCI_BRIDGE_CTL_NO_ISA;
-
+ /*
+ * Adjust subordinate busnr in parent buses.
+ * We do this before scanning for children because
+ * some devices may not be detected if the bios
+ * was lazy.
+ */
+ pci_fixup_parent_subordinate_busnr(child, max);
/* Now we can scan all subordinate buses... */
max = pci_scan_child_bus(child);
} else {
@@ -513,6 +529,7 @@ int __devinit pci_scan_bridge(struct pci
max+i+1))
break;
max += i;
+ pci_fixup_parent_subordinate_busnr(child, max);
}
/*
* Set the subordinate bus number to its real value.
next prev parent reply other threads:[~2005-07-01 21:03 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-01 20:47 [GIT PATCH] PCI patches for 2.6.13-rc1 Greg KH
2005-07-01 20:48 ` Greg KH [this message]
2005-07-01 20:48 ` [PATCH] PCI: Increase the number of PCI bus resources Greg KH
2005-07-01 20:48 ` [PATCH] PCI: pci_assign_unassigned_resources() on x86 Greg KH
2005-07-01 20:48 ` [PATCH] PCI: clean up dynamic pci id logic Greg KH
2005-07-01 20:48 ` [PATCH] PCI: handle subtractive decode pci-pci bridge better Greg KH
2005-07-01 20:48 ` [PATCH] PCI: acpi tg3 ethernet not coming back properly after S3 suspendon DellM70 Greg KH
2005-07-01 20:48 ` [PATCH] PCI: Add PCI quirk for SMBus on the Asus P4B-LX Greg KH
2005-07-01 20:48 ` [PATCH] PCI: Remove newline from pci MODALIAS variable Greg KH
2005-07-01 20:48 ` [PATCH] gregkh-pci-pci-assign-unassigned-resources fix Greg KH
2005-07-01 20:48 ` [PATCH] pci: cleanup argument comments for pci_{save,restore}_state Greg KH
2005-07-12 22:12 ` [GIT PATCH] ACPI patches for 2.6.13-rc2 Len Brown
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=11202509113838@kroah.com \
--to=gregkh@suse.de \
--cc=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@atrey.karlin.mff.cuni.cz \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox