All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Wilcox <willy@debian.org>
To: linux-ia64@vger.kernel.org
Subject: Re: [PATCH] pcibios_scan_acpi()
Date: Tue, 24 Jun 2003 21:31:19 +0000	[thread overview]
Message-ID: <marc-linux-ia64-105649029007877@msgid-missing> (raw)
In-Reply-To: <marc-linux-ia64-105639496518100@msgid-missing>

On Mon, Jun 23, 2003 at 02:39:05PM -0700, Greg KH wrote:
> > How about acpi_scan_pci_bus_root()?
> 
> I agree, that sounds better.

I think it's too long ... so unless anyone has a better idea, I'm going with
pci_acpi_scan_root().  Here's the patch, presented in patch -p1 format to
make greg's scripts happy ;-)

ia64 needs to be passed the pci domain and the acpi handle corresponding
to each root bus.  Rather than change pcibios_scan_root to take additional
arguments, this patch introduces pci_acpi_scan_root().

Index: arch/i386/pci/acpi.c
=================================RCS file: /var/cvs/linux-2.5/arch/i386/pci/acpi.c,v
retrieving revision 1.3
diff -u -p -r1.3 acpi.c
--- a/arch/i386/pci/acpi.c	8 Oct 2002 22:46:09 -0000	1.3
+++ b/arch/i386/pci/acpi.c	24 Jun 2003 21:16:47 -0000
@@ -3,6 +3,16 @@
 #include <linux/init.h>
 #include "pci.h"
 
+struct pci_bus * __devinit pci_acpi_scan_root(struct acpi_device *device, int domain, int busnum)
+{
+	if (domain != 0) {
+		printk(KERN_WARNING "PCI: Multiple domains not supported\n");
+		return NULL;
+	}
+
+	return pcibios_scan_root(busnum);
+}
+
 static int __init pci_acpi_init(void)
 {
 	if (pcibios_scanned)
Index: arch/ia64/pci/pci.c
=================================RCS file: /var/cvs/linux-2.5/arch/ia64/pci/pci.c,v
retrieving revision 1.9
diff -u -p -r1.9 pci.c
--- a/arch/ia64/pci/pci.c	23 Jun 2003 03:30:02 -0000	1.9
+++ b/arch/ia64/pci/pci.c	24 Jun 2003 21:16:48 -0000
@@ -284,21 +284,21 @@ add_window (struct acpi_resource *res, v
 }
 
 struct pci_bus *
-pcibios_scan_root (void *handle, int seg, int bus)
+pci_acpi_scan_root (struct acpi_device *device, int domain, int bus)
 {
 	struct pci_root_info info;
 	struct pci_controller *controller;
 	unsigned int windows = 0;
 	char *name;
 
-	printk("PCI: Probing PCI hardware on bus (%02x:%02x)\n", seg, bus);
-	controller = alloc_pci_controller(seg);
+	printk("PCI: Probing PCI hardware on bus (%04x:%02x)\n", domain, bus);
+	controller = alloc_pci_controller(domain);
 	if (!controller)
 		goto out1;
 
-	controller->acpi_handle = handle;
+	controller->acpi_handle = device->handle;
 
-	acpi_walk_resources(handle, METHOD_NAME__CRS, count_window, &windows);
+	acpi_walk_resources(device->handle, METHOD_NAME__CRS, count_window, &windows);
 	controller->window = kmalloc(sizeof(*controller->window) * windows, GFP_KERNEL);
 	if (!controller->window)
 		goto out2;
@@ -307,10 +307,10 @@ pcibios_scan_root (void *handle, int seg
 	if (!name)
 		goto out3;
 
-	sprintf(name, "PCI Bus %02x:%02x", seg, bus);
+	sprintf(name, "PCI Bus %04x:%02x", domain, bus);
 	info.controller = controller;
 	info.name = name;
-	acpi_walk_resources(handle, METHOD_NAME__CRS, add_window, &info);
+	acpi_walk_resources(device->handle, METHOD_NAME__CRS, add_window, &info);
 
 	return scan_root_bus(bus, &pci_root_ops, controller);
 
Index: drivers/acpi/pci_root.c
=================================RCS file: /var/cvs/linux-2.5/drivers/acpi/pci_root.c,v
retrieving revision 1.8
diff -u -p -r1.8 pci_root.c
--- a/drivers/acpi/pci_root.c	23 Jun 2003 03:30:15 -0000	1.8
+++ b/drivers/acpi/pci_root.c	24 Jun 2003 21:16:50 -0000
@@ -246,8 +246,6 @@ acpi_pci_root_add (
 	switch (status) {
 	case AE_OK:
 		root->id.segment = (u16) value;
-		printk("_SEG exists! Unsupported. Abort.\n");
-		BUG();
 		break;
 	case AE_NOT_FOUND:
 		ACPI_DEBUG_PRINT((ACPI_DB_INFO, 
@@ -309,7 +306,7 @@ acpi_pci_root_add (
 	 * PCI namespace does not get created until this call is made (and 
 	 * thus the root bridge's pci_dev does not exist).
 	 */
-	root->bus = pcibios_scan_root(root->id.bus);
+	root->bus = pci_acpi_scan_root(device, root->id.segment, root->id.bus);
 	if (!root->bus) {
 		ACPI_DEBUG_PRINT((ACPI_DB_ERROR, 
 			"Bus %02x:%02x not present in PCI namespace\n", 
Index: include/acpi/acpi_drivers.h
=================================RCS file: /var/cvs/linux-2.5/include/acpi/acpi_drivers.h,v
retrieving revision 1.3
diff -u -p -r1.3 acpi_drivers.h
--- a/include/acpi/acpi_drivers.h	15 Feb 2003 03:48:35 -0000	1.3
+++ b/include/acpi/acpi_drivers.h	24 Jun 2003 21:16:55 -0000
@@ -73,6 +73,10 @@ struct pci_bus;
 int acpi_pci_bind (struct acpi_device *device);
 int acpi_pci_bind_root (struct acpi_device *device, struct acpi_pci_id *id, struct pci_bus *bus);
 
+/* Arch-defined function to add a bus to the system */
+
+struct pci_bus *pci_acpi_scan_root(struct acpi_device *device, int domain, int bus);
+
 #endif /*CONFIG_ACPI_PCI*/
 
 
Index: include/asm-ia64/pci.h
=================================RCS file: /var/cvs/linux-2.5/include/asm-ia64/pci.h,v
retrieving revision 1.9
diff -u -p -r1.9 pci.h
--- a/include/asm-ia64/pci.h	23 Jun 2003 03:30:47 -0000	1.9
+++ b/include/asm-ia64/pci.h	24 Jun 2003 21:16:56 -0000
@@ -21,7 +21,6 @@
 #define PCIBIOS_MIN_MEM		0x10000000
 
 void pcibios_config_init(void);
-struct pci_bus * pcibios_scan_root(void *acpi_handle, int segment, int bus);
 
 struct pci_dev;
 

-- 
"It's not Hollywood.  War is real, war is primarily not about defeat or
victory, it is about death.  I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk

  parent reply	other threads:[~2003-06-24 21:31 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-23 18:59 [PATCH] pcibios_scan_acpi() Matthew Wilcox
2003-06-23 19:14 ` David Mosberger
2003-06-23 21:39 ` Greg KH
2003-06-24 21:31 ` Matthew Wilcox [this message]
2003-06-24 22:10 ` Greg KH
  -- strict thread matches above, loose matches on Subject: below --
2003-06-23 18:59 Matthew Wilcox
     [not found] ` <20030623185901.GN2620-+pPCBgu9SkPzIGdyhVEDUDl5KyyQGfY2kSSpQ9I8OhVaa/9Udqfwiw@public.gmane.org>
2003-06-23 19:14   ` David Mosberger
     [not found]     ` <16119.20872.104128.965777-o/PNRNCSakrWxDs0y9d3MAC/G2K4zDHf@public.gmane.org>
2003-06-23 21:39       ` Greg KH
     [not found]         ` <20030623213905.GA10992-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2003-06-24 21:31           ` Matthew Wilcox
     [not found]             ` <20030624213119.GN451-+pPCBgu9SkPzIGdyhVEDUDl5KyyQGfY2kSSpQ9I8OhVaa/9Udqfwiw@public.gmane.org>
2003-06-24 22:10               ` Greg KH

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=marc-linux-ia64-105649029007877@msgid-missing \
    --to=willy@debian.org \
    --cc=linux-ia64@vger.kernel.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.