All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matthew Wilcox <willy@debian.org>
To: linux-ia64@vger.kernel.org
Subject: [PATCH] pcibios_scan_acpi()
Date: Mon, 23 Jun 2003 18:59:01 +0000	[thread overview]
Message-ID: <marc-linux-ia64-105639496518100@msgid-missing> (raw)


This patch removes an ifdef from the ia64 acpi patch by defining a new
function which takes an acpi_device and a segment/domain as well as the
bus number.

I think pcibios_scan_acpi() is an atrocious name.  Can someone come up
with a better one?

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
--- arch/i386/pci/acpi.c	8 Oct 2002 22:46:09 -0000	1.3
+++ arch/i386/pci/acpi.c	23 Jun 2003 15:49:28 -0000
@@ -3,6 +3,16 @@
 #include <linux/init.h>
 #include "pci.h"
 
+struct pci_bus * __devinit pcibios_scan_acpi(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
--- arch/ia64/pci/pci.c	23 Jun 2003 03:30:02 -0000	1.9
+++ arch/ia64/pci/pci.c	23 Jun 2003 12:57:34 -0000
@@ -284,21 +253,21 @@ add_window (struct acpi_resource *res, v
 }
 
 struct pci_bus *
-pcibios_scan_root (void *handle, int seg, int bus)
+pcibios_scan_acpi (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 +276,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
--- drivers/acpi/pci_root.c	23 Jun 2003 03:30:15 -0000	1.8
+++ drivers/acpi/pci_root.c	23 Jun 2003 12:37:30 -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 +307,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 = pcibios_scan_acpi(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
--- include/acpi/acpi_drivers.h	15 Feb 2003 03:48:35 -0000	1.3
+++ include/acpi/acpi_drivers.h	23 Jun 2003 13:57:09 -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 *pcibios_scan_acpi(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
--- include/asm-ia64/pci.h	23 Jun 2003 03:30:47 -0000	1.9
+++ include/asm-ia64/pci.h	23 Jun 2003 12:51:08 -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

             reply	other threads:[~2003-06-23 18:59 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-06-23 18:59 Matthew Wilcox [this message]
2003-06-23 19:14 ` [PATCH] pcibios_scan_acpi() David Mosberger
2003-06-23 21:39 ` Greg KH
2003-06-24 21:31 ` Matthew Wilcox
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-105639496518100@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.