From: Yinghai Lu <yinghai@kernel.org>
To: Jesse Barnes <jbarnes@virtuousgeek.org>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Tony Luck <tony.luck@intel.com>
Cc: Bjorn Helgaas <bhelgaas@google.com>,
Dominik Brodowski <linux@dominikbrodowski.net>,
Andrew Morton <akpm@linux-foundation.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arch@vger.kernel.org, Yinghai Lu <yinghai@kernel.org>,
Rusty Russell <rusty@rustcorp.com.au>,
Mauro Carvalho Chehab <mchehab@redhat.com>,
linux-pcmcia@lists.infradead.org
Subject: [PATCH 15/22] pcmcia: remove workaround for fixing pci parent bus subordinate
Date: Fri, 10 Feb 2012 20:06:18 -0800 [thread overview]
Message-ID: <1328933185-15154-16-git-send-email-yinghai@kernel.org> (raw)
In-Reply-To: <1328933185-15154-1-git-send-email-yinghai@kernel.org>
Now pci busn allocation code is there, and it will preallocate bus number and it
will make sure parent buses subordinate is right.
So remove workaround here.
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Tested-by: Dominik Brodowski <linux@dominikbrodowski.net>
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
Cc: linux-pcmcia@lists.infradead.org
---
drivers/pcmcia/yenta_socket.c | 75 -----------------------------------------
1 files changed, 0 insertions(+), 75 deletions(-)
diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c
index 849c0c1..5757cae 100644
--- a/drivers/pcmcia/yenta_socket.c
+++ b/drivers/pcmcia/yenta_socket.c
@@ -1064,79 +1064,6 @@ static void yenta_config_init(struct yenta_socket *socket)
config_writew(socket, CB_BRIDGE_CONTROL, bridge);
}
-/**
- * yenta_fixup_parent_bridge - Fix subordinate bus# of the parent bridge
- * @cardbus_bridge: The PCI bus which the CardBus bridge bridges to
- *
- * Checks if devices on the bus which the CardBus bridge bridges to would be
- * invisible during PCI scans because of a misconfigured subordinate number
- * of the parent brige - some BIOSes seem to be too lazy to set it right.
- * Does the fixup carefully by checking how far it can go without conflicts.
- * See http://bugzilla.kernel.org/show_bug.cgi?id=2944 for more information.
- */
-static void yenta_fixup_parent_bridge(struct pci_bus *cardbus_bridge)
-{
- struct list_head *tmp;
- unsigned char upper_limit;
- /*
- * We only check and fix the parent bridge: All systems which need
- * this fixup that have been reviewed are laptops and the only bridge
- * which needed fixing was the parent bridge of the CardBus bridge:
- */
- struct pci_bus *bridge_to_fix = cardbus_bridge->parent;
-
- /* Check bus numbers are already set up correctly: */
- if (bridge_to_fix->subordinate >= cardbus_bridge->subordinate)
- return; /* The subordinate number is ok, nothing to do */
-
- if (!bridge_to_fix->parent)
- return; /* Root bridges are ok */
-
- /* stay within the limits of the bus range of the parent: */
- upper_limit = bridge_to_fix->parent->subordinate;
-
- /* check the bus ranges of all silbling bridges to prevent overlap */
- list_for_each(tmp, &bridge_to_fix->parent->children) {
- struct pci_bus *silbling = pci_bus_b(tmp);
- /*
- * If the silbling has a higher secondary bus number
- * and it's secondary is equal or smaller than our
- * current upper limit, set the new upper limit to
- * the bus number below the silbling's range:
- */
- if (silbling->secondary > bridge_to_fix->subordinate
- && silbling->secondary <= upper_limit)
- upper_limit = silbling->secondary - 1;
- }
-
- /* Show that the wanted subordinate number is not possible: */
- if (cardbus_bridge->subordinate > upper_limit)
- dev_printk(KERN_WARNING, &cardbus_bridge->dev,
- "Upper limit for fixing this "
- "bridge's parent bridge: #%02x\n", upper_limit);
-
- /* If we have room to increase the bridge's subordinate number, */
- if (bridge_to_fix->subordinate < upper_limit) {
-
- /* use the highest number of the hidden bus, within limits */
- unsigned char subordinate_to_assign =
- min(cardbus_bridge->subordinate, upper_limit);
-
- dev_printk(KERN_INFO, &bridge_to_fix->dev,
- "Raising subordinate bus# of parent "
- "bus (#%02x) from #%02x to #%02x\n",
- bridge_to_fix->number,
- bridge_to_fix->subordinate, subordinate_to_assign);
-
- /* Save the new subordinate in the bus struct of the bridge */
- bridge_to_fix->subordinate = subordinate_to_assign;
-
- /* and update the PCI config space with the new subordinate */
- pci_write_config_byte(bridge_to_fix->self,
- PCI_SUBORDINATE_BUS, bridge_to_fix->subordinate);
- }
-}
-
/*
* Initialize a cardbus controller. Make sure we have a usable
* interrupt, and that we can map the cardbus area. Fill in the
@@ -1257,8 +1184,6 @@ static int __devinit yenta_probe(struct pci_dev *dev, const struct pci_device_id
dev_printk(KERN_INFO, &dev->dev,
"Socket status: %08x\n", cb_readl(socket, CB_SOCKET_STATE));
- yenta_fixup_parent_bridge(dev->subordinate);
-
/* Register it with the pcmcia layer.. */
ret = pcmcia_register_socket(&socket->socket);
if (ret == 0) {
--
1.7.7
next prev parent reply other threads:[~2012-02-11 4:06 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-11 4:06 [PATCH -v6 0/22] PCI: allocate pci bus num range for unassigned bridge busn + pci rescan cleanup Yinghai Lu
2012-02-11 4:06 ` [PATCH 01/22] PCI: Add busn_res into struct pci_bus Yinghai Lu
2012-02-11 4:06 ` [PATCH 02/22] PCI: Add busn_res operation functions Yinghai Lu
2012-02-11 4:06 ` [PATCH 03/22] PCI: Add busn_res tracking in core Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 04/22] PCI, x86: Register busn_res for root buses Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 05/22] PCI, ia64: " Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 06/22] PCI, sparc: " Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 07/22] PCI, powerpc: " Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 08/22] PCI, parisc: " Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 09/22] PCI: Add pci_bus_extend/shrink_top() Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 10/22] PCI: Probe safe range that we can use for unassigned bridge Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 11/22] PCI: Strict checking of valid range for bridge Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 12/22] PCI: Allocate bus range instead of use max blindly Yinghai Lu
2012-02-11 4:06 ` [PATCH 13/22] PCI: kill pci_fixup_parent_subordinate_busnr() Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 14/22] PCI: Seperate child bus scanning to two passes overall Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu [this message]
2012-02-11 4:06 ` [PATCH 15/22] pcmcia: remove workaround for fixing pci parent bus subordinate Yinghai Lu
2012-02-11 4:06 ` [PATCH 16/22] PCI: Double checking setting for bus register and bus struct Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 17/22] PCI, pciehp: Remove not needed bus number range checking Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 18/22] PCI, sys: Use device_type and attr_groups with pci dev Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 19/22] PCI, sysfs: create rescan_bridge under /sys/.../pci/devices/... for pci bridges Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 20/22] PCI: Add pci_bus_add_single_device() Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 21/22] PCI: make pci_rescan_bus_bridge_resize use pci_scan_bridge instead Yinghai Lu
2012-02-11 4:06 ` Yinghai Lu
2012-02-11 4:06 ` [PATCH 22/22] PCI: clean up rescan_bus_bridge_resize Yinghai Lu
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=1328933185-15154-16-git-send-email-yinghai@kernel.org \
--to=yinghai@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=bhelgaas@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=jbarnes@virtuousgeek.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-pcmcia@lists.infradead.org \
--cc=linux@dominikbrodowski.net \
--cc=mchehab@redhat.com \
--cc=rusty@rustcorp.com.au \
--cc=tony.luck@intel.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).