public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [GIT PATCH] PCI patches for 2.6.13-rc1
@ 2005-07-01 20:47 Greg KH
  2005-07-01 20:48 ` [PATCH] PCI: Fix up PCI routing in parent bridge Greg KH
  2005-07-12 22:12 ` [GIT PATCH] ACPI patches for 2.6.13-rc2 Len Brown
  0 siblings, 2 replies; 12+ messages in thread
From: Greg KH @ 2005-07-01 20:47 UTC (permalink / raw)
  To: Linus Torvalds, Andrew Morton; +Cc: linux-kernel, linux-pci

Here are some PCI patches against your latest git tree.  These are the
rest of the PCI patches that have been in the -mm tree for a while, with
(hopefully) the patches that caused all the pcmcia problems removed.

Please pull from:
	rsync://rsync.kernel.org/pub/scm/linux/kernel/git/gregkh/pci-2.6.git/
or if master.kernel.org hasn't synced up yet:
	master.kernel.org:/pub/scm/linux/kernel/git/gregkh/pci-2.6.git/

The full patches will be sent to the linux-kernel and linux-pci mailing
lists, if anyone wants to see them.

thanks,

greg k-h


 arch/i386/kernel/cpu/cpufreq/gx-suspmod.c |    2 
 arch/i386/pci/common.c                    |    1 
 arch/i386/pci/i386.c                      |   11 +
 drivers/char/hw_random.c                  |    2 
 drivers/char/watchdog/i8xx_tco.c          |    2 
 drivers/ide/setup-pci.c                   |    2 
 drivers/parport/parport_pc.c              |    2 
 drivers/pci/Makefile                      |    1 
 drivers/pci/hotplug.c                     |    2 
 drivers/pci/pci-driver.c                  |  196 ++++++++++--------------------
 drivers/pci/pci.c                         |    6 
 drivers/pci/pcie/portdrv.h                |    5 
 drivers/pci/pcie/portdrv_core.c           |    8 +
 drivers/pci/pcie/portdrv_pci.c            |   79 +++++++++++-
 drivers/pci/probe.c                       |   24 +++
 drivers/pci/quirks.c                      |    1 
 drivers/pci/setup-bus.c                   |    2 
 include/linux/pci-dynids.h                |   18 --
 include/linux/pci.h                       |    5 
 sound/pci/bt87x.c                         |    2 
 20 files changed, 205 insertions(+), 166 deletions(-)

------------

Andy Whitcroft:
  gregkh-pci-pci-assign-unassigned-resources fix

Greg Kroah-Hartman:
  PCI: clean up dynamic pci id logic
  PCI: Fix up PCI routing in parent bridge

Hannes Reinecke:
  PCI: Remove newline from pci MODALIAS variable

Ivan Kokshaysky:
  PCI: handle subtractive decode pci-pci bridge better
  PCI: pci_assign_unassigned_resources() on x86

Jean Delvare:
  PCI: Add PCI quirk for SMBus on the Asus P4B-LX

John W. Linville:
  pci: cleanup argument comments for pci_{save,restore}_state

long:
  PCI: acpi tg3 ethernet not coming back properly after S3 suspendon DellM70

rajesh.shah@intel.com:
  PCI: Increase the number of PCI bus resources


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] PCI: pci_assign_unassigned_resources() on x86
  2005-07-01 20:48   ` [PATCH] PCI: Increase the number of PCI bus resources Greg KH
@ 2005-07-01 20:48     ` Greg KH
  2005-07-01 20:48       ` [PATCH] PCI: clean up dynamic pci id logic Greg KH
  0 siblings, 1 reply; 12+ messages in thread
From: Greg KH @ 2005-07-01 20:48 UTC (permalink / raw)
  To: linux-kernel, linux-pci; +Cc: ink

[PATCH] PCI: pci_assign_unassigned_resources() on x86

- Add sanity check for io[port,mem]_resource in setup-bus.c. These
  resources look like "free" as they have no parents, but obviously
  we must not touch them.
- In i386.c:pci_allocate_bus_resources(), if a bridge resource cannot be
  allocated for some reason, then clear its flags. This prevents any child
  allocations in this range, so the setup-bus code will work with a clean
  resource sub-tree.
- i386.c:pcibios_enable_resources() doesn't enable bridges, as it checks
  only resources 0-5, which looks like a clear bug to me. I suspect it
  might break hotplug as well in some cases.

From: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
commit 299de0343c7d18448a69c635378342e9214b14af
tree 0a456358b5f919328e234868139c983813f4cb80
parent 90b54929b626c80056262d9d99b3f48522e404d0
author Ivan Kokshaysky <ink@jurassic.park.msu.ru> Wed, 15 Jun 2005 18:59:27 +0400
committer Greg Kroah-Hartman <gregkh@suse.de> Fri, 01 Jul 2005 13:35:50 -0700

 arch/i386/pci/common.c  |    1 +
 arch/i386/pci/i386.c    |   11 ++++++++---
 drivers/pci/setup-bus.c |    2 ++
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/arch/i386/pci/common.c b/arch/i386/pci/common.c
--- a/arch/i386/pci/common.c
+++ b/arch/i386/pci/common.c
@@ -165,6 +165,7 @@ static int __init pcibios_init(void)
 	if ((pci_probe & PCI_BIOS_SORT) && !(pci_probe & PCI_NO_SORT))
 		pcibios_sort();
 #endif
+	pci_assign_unassigned_resources();
 	return 0;
 }
 
diff --git a/arch/i386/pci/i386.c b/arch/i386/pci/i386.c
--- a/arch/i386/pci/i386.c
+++ b/arch/i386/pci/i386.c
@@ -106,11 +106,16 @@ static void __init pcibios_allocate_bus_
 		if ((dev = bus->self)) {
 			for (idx = PCI_BRIDGE_RESOURCES; idx < PCI_NUM_RESOURCES; idx++) {
 				r = &dev->resource[idx];
-				if (!r->start)
+				if (!r->flags)
 					continue;
 				pr = pci_find_parent_resource(dev, r);
-				if (!pr || request_resource(pr, r) < 0)
+				if (!r->start || !pr || request_resource(pr, r) < 0) {
 					printk(KERN_ERR "PCI: Cannot allocate resource region %d of bridge %s\n", idx, pci_name(dev));
+					/* Something is wrong with the region.
+					   Invalidate the resource to prevent child
+					   resource allocations in this range. */
+					r->flags = 0;
+				}
 			}
 		}
 		pcibios_allocate_bus_resources(&bus->children);
@@ -227,7 +232,7 @@ int pcibios_enable_resources(struct pci_
 
 	pci_read_config_word(dev, PCI_COMMAND, &cmd);
 	old_cmd = cmd;
-	for(idx=0; idx<6; idx++) {
+	for(idx = 0; idx < PCI_NUM_RESOURCES; idx++) {
 		/* Only set up the requested stuff */
 		if (!(mask & (1<<idx)))
 			continue;
diff --git a/drivers/pci/setup-bus.c b/drivers/pci/setup-bus.c
--- a/drivers/pci/setup-bus.c
+++ b/drivers/pci/setup-bus.c
@@ -273,6 +273,8 @@ find_free_bus_resource(struct pci_bus *b
 
 	for (i = 0; i < PCI_BUS_NUM_RESOURCES; i++) {
 		r = bus->resource[i];
+		if (r == &ioport_resource || r == &iomem_resource)
+			continue;
 		if (r && (r->flags & type_mask) == type && !r->parent)
 			return r;
 	}


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] PCI: Fix up PCI routing in parent bridge
  2005-07-01 20:47 [GIT PATCH] PCI patches for 2.6.13-rc1 Greg KH
@ 2005-07-01 20:48 ` Greg KH
  2005-07-01 20:48   ` [PATCH] PCI: Increase the number of PCI bus resources Greg KH
  2005-07-12 22:12 ` [GIT PATCH] ACPI patches for 2.6.13-rc2 Len Brown
  1 sibling, 1 reply; 12+ messages in thread
From: Greg KH @ 2005-07-01 20:48 UTC (permalink / raw)
  To: linux-kernel, linux-pci; +Cc: gregkh

[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.


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] PCI: Increase the number of PCI bus resources
  2005-07-01 20:48 ` [PATCH] PCI: Fix up PCI routing in parent bridge Greg KH
@ 2005-07-01 20:48   ` Greg KH
  2005-07-01 20:48     ` [PATCH] PCI: pci_assign_unassigned_resources() on x86 Greg KH
  0 siblings, 1 reply; 12+ messages in thread
From: Greg KH @ 2005-07-01 20:48 UTC (permalink / raw)
  To: linux-kernel, linux-pci; +Cc: rajesh.shah

[PATCH] PCI: Increase the number of PCI bus resources

This patch increases the number of resource pointers in the
pci_bus structure. This is needed to store >4 resource ranges
for host bridges and transparent PCI bridges. With this change,
all PCI buses will have more resource pointers, but most PCI
buses will only use the first 3 or 4, the remaining being NULL.
The PCI core already deals with this correctly.

Signed-off-by: Rajesh Shah <rajesh.shah@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
commit a03fa955576af50df80bec9127b46ef57e0877c0
tree dc13df100ead9efae7b370b435b58bca4736ae39
parent 26f674ae0e37190bf61c988e52911e4372fdb5f5
author rajesh.shah@intel.com <rajesh.shah@intel.com> Thu, 02 Jun 2005 15:41:48 -0700
committer Greg Kroah-Hartman <gregkh@suse.de> Fri, 01 Jul 2005 13:35:49 -0700

 include/linux/pci.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/linux/pci.h b/include/linux/pci.h
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -586,7 +586,7 @@ struct pci_dev {
 #define PCI_NUM_RESOURCES 11
 
 #ifndef PCI_BUS_NUM_RESOURCES
-#define PCI_BUS_NUM_RESOURCES 4
+#define PCI_BUS_NUM_RESOURCES 8
 #endif
   
 #define PCI_REGION_FLAG_MASK 0x0fU	/* These bits of resource flags tell us the PCI region flags */


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] PCI: clean up dynamic pci id logic
  2005-07-01 20:48     ` [PATCH] PCI: pci_assign_unassigned_resources() on x86 Greg KH
@ 2005-07-01 20:48       ` Greg KH
  2005-07-01 20:48         ` [PATCH] PCI: handle subtractive decode pci-pci bridge better Greg KH
  0 siblings, 1 reply; 12+ messages in thread
From: Greg KH @ 2005-07-01 20:48 UTC (permalink / raw)
  To: linux-kernel, linux-pci; +Cc: gregkh

[PATCH] PCI: clean up dynamic pci id logic

The dynamic pci id logic has been bothering me for a while, and now that
I started to look into how to move some of this to the driver core, I
thought it was time to clean it all up.

It ends up making the code smaller, and easier to follow, and fixes a
few bugs at the same time (dynamic ids were not being matched
everywhere, and so could be missed on some call paths for new devices,
semaphore not needed to be grabbed when adding a new id and calling the
driver core, etc.)

I also renamed the function pci_match_device() to pci_match_id() as
that's what it really does.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
commit 75865858971add95809c5c9cd35dc4cfba08e33b
tree e8b3fe78e15696f36156d1f94d35b7711590365f
parent 299de0343c7d18448a69c635378342e9214b14af
author Greg Kroah-Hartman <gregkh@suse.de> Thu, 30 Jun 2005 02:18:12 -0700
committer Greg Kroah-Hartman <gregkh@suse.de> Fri, 01 Jul 2005 13:35:50 -0700

 arch/i386/kernel/cpu/cpufreq/gx-suspmod.c |    2 
 drivers/char/hw_random.c                  |    2 
 drivers/char/watchdog/i8xx_tco.c          |    2 
 drivers/ide/setup-pci.c                   |    2 
 drivers/parport/parport_pc.c              |    2 
 drivers/pci/pci-driver.c                  |  196 +++++++++++------------------
 include/linux/pci-dynids.h                |   18 ---
 include/linux/pci.h                       |    3 
 sound/pci/bt87x.c                         |    2 
 9 files changed, 79 insertions(+), 150 deletions(-)

diff --git a/arch/i386/kernel/cpu/cpufreq/gx-suspmod.c b/arch/i386/kernel/cpu/cpufreq/gx-suspmod.c
--- a/arch/i386/kernel/cpu/cpufreq/gx-suspmod.c
+++ b/arch/i386/kernel/cpu/cpufreq/gx-suspmod.c
@@ -190,7 +190,7 @@ static __init struct pci_dev *gx_detect_
 
 	/* detect which companion chip is used */
 	while ((gx_pci = pci_get_device(PCI_ANY_ID, PCI_ANY_ID, gx_pci)) != NULL) {
-		if ((pci_match_device (gx_chipset_tbl, gx_pci)) != NULL) {
+		if ((pci_match_id(gx_chipset_tbl, gx_pci)) != NULL) {
 			return gx_pci;
 		}
 	}
diff --git a/drivers/char/hw_random.c b/drivers/char/hw_random.c
--- a/drivers/char/hw_random.c
+++ b/drivers/char/hw_random.c
@@ -579,7 +579,7 @@ static int __init rng_init (void)
 
 	/* Probe for Intel, AMD RNGs */
 	for_each_pci_dev(pdev) {
-		ent = pci_match_device (rng_pci_tbl, pdev);
+		ent = pci_match_id(rng_pci_tbl, pdev);
 		if (ent) {
 			rng_ops = &rng_vendor_ops[ent->driver_data];
 			goto match;
diff --git a/drivers/char/watchdog/i8xx_tco.c b/drivers/char/watchdog/i8xx_tco.c
--- a/drivers/char/watchdog/i8xx_tco.c
+++ b/drivers/char/watchdog/i8xx_tco.c
@@ -401,7 +401,7 @@ static unsigned char __init i8xx_tco_get
 	 */
 
 	while ((dev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, dev)) != NULL) {
-		if (pci_match_device(i8xx_tco_pci_tbl, dev)) {
+		if (pci_match_id(i8xx_tco_pci_tbl, dev)) {
 			i8xx_tco_pci = dev;
 			break;
 		}
diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c
--- a/drivers/ide/setup-pci.c
+++ b/drivers/ide/setup-pci.c
@@ -847,7 +847,7 @@ static int __init ide_scan_pcidev(struct
 		d = list_entry(l, struct pci_driver, node);
 		if(d->id_table)
 		{
-			const struct pci_device_id *id = pci_match_device(d->id_table, dev);
+			const struct pci_device_id *id = pci_match_id(d->id_table, dev);
 			if(id != NULL)
 			{
 				if(d->probe(dev, id) >= 0)
diff --git a/drivers/parport/parport_pc.c b/drivers/parport/parport_pc.c
--- a/drivers/parport/parport_pc.c
+++ b/drivers/parport/parport_pc.c
@@ -3008,7 +3008,7 @@ static int __init parport_pc_init_superi
 	int ret = 0;
 
 	while ((pdev = pci_find_device(PCI_ANY_ID, PCI_ANY_ID, pdev)) != NULL) {
-		id = pci_match_device (parport_pc_pci_tbl, pdev);
+		id = pci_match_id(parport_pc_pci_tbl, pdev);
 		if (id == NULL || id->driver_data >= last_sio)
 			continue;
 
diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
--- a/drivers/pci/pci-driver.c
+++ b/drivers/pci/pci-driver.c
@@ -7,7 +7,6 @@
 #include <linux/module.h>
 #include <linux/init.h>
 #include <linux/device.h>
-#include <linux/pci-dynids.h>
 #include "pci.h"
 
 /*
@@ -19,35 +18,11 @@
  */
 
 #ifdef CONFIG_HOTPLUG
-/**
- * pci_device_probe_dynamic()
- *
- * Walk the dynamic ID list looking for a match.
- * returns 0 and sets pci_dev->driver when drv claims pci_dev, else error.
- */
-static int
-pci_device_probe_dynamic(struct pci_driver *drv, struct pci_dev *pci_dev)
-{
-	int error = -ENODEV;
-	struct list_head *pos;
-	struct dynid *dynid;
 
-	spin_lock(&drv->dynids.lock);
-	list_for_each(pos, &drv->dynids.list) {
-		dynid = list_entry(pos, struct dynid, node);
-		if (pci_match_one_device(&dynid->id, pci_dev)) {
-			spin_unlock(&drv->dynids.lock);
-			error = drv->probe(pci_dev, &dynid->id);
-			if (error >= 0) {
-				pci_dev->driver = drv;
-				return 0;
-			}
-			return error;
-		}
-	}
-	spin_unlock(&drv->dynids.lock);
-	return error;
-}
+struct pci_dynid {
+	struct list_head node;
+	struct pci_device_id id;
+};
 
 /**
  * store_new_id
@@ -58,8 +33,7 @@ pci_device_probe_dynamic(struct pci_driv
 static inline ssize_t
 store_new_id(struct device_driver *driver, const char *buf, size_t count)
 {
-	struct dynid *dynid;
-	struct bus_type * bus;
+	struct pci_dynid *dynid;
 	struct pci_driver *pdrv = to_pci_driver(driver);
 	__u32 vendor=PCI_ANY_ID, device=PCI_ANY_ID, subvendor=PCI_ANY_ID,
 		subdevice=PCI_ANY_ID, class=0, class_mask=0;
@@ -91,37 +65,22 @@ store_new_id(struct device_driver *drive
 	list_add_tail(&pdrv->dynids.list, &dynid->node);
 	spin_unlock(&pdrv->dynids.lock);
 
-	bus = get_bus(pdrv->driver.bus);
-	if (bus) {
-		if (get_driver(&pdrv->driver)) {
-			down_write(&bus->subsys.rwsem);
-			driver_attach(&pdrv->driver);
-			up_write(&bus->subsys.rwsem);
-			put_driver(&pdrv->driver);
-		}
-		put_bus(bus);
+	if (get_driver(&pdrv->driver)) {
+		driver_attach(&pdrv->driver);
+		put_driver(&pdrv->driver);
 	}
 
 	return count;
 }
-
 static DRIVER_ATTR(new_id, S_IWUSR, NULL, store_new_id);
-static inline void
-pci_init_dynids(struct pci_dynids *dynids)
-{
-	spin_lock_init(&dynids->lock);
-	INIT_LIST_HEAD(&dynids->list);
-}
 
 static void
 pci_free_dynids(struct pci_driver *drv)
 {
-	struct list_head *pos, *n;
-	struct dynid *dynid;
+	struct pci_dynid *dynid, *n;
 
 	spin_lock(&drv->dynids.lock);
-	list_for_each_safe(pos, n, &drv->dynids.list) {
-		dynid = list_entry(pos, struct dynid, node);
+	list_for_each_entry_safe(dynid, n, &drv->dynids.list, node) {
 		list_del(&dynid->node);
 		kfree(dynid);
 	}
@@ -138,83 +97,70 @@ pci_create_newid_file(struct pci_driver 
 	return error;
 }
 
-static int
-pci_bus_match_dynids(const struct pci_dev *pci_dev, struct pci_driver *pci_drv)
-{
-	struct list_head *pos;
-	struct dynid *dynid;
-
-	spin_lock(&pci_drv->dynids.lock);
-	list_for_each(pos, &pci_drv->dynids.list) {
-		dynid = list_entry(pos, struct dynid, node);
-		if (pci_match_one_device(&dynid->id, pci_dev)) {
-			spin_unlock(&pci_drv->dynids.lock);
-			return 1;
-		}
-	}
-	spin_unlock(&pci_drv->dynids.lock);
-	return 0;
-}
-
 #else /* !CONFIG_HOTPLUG */
-static inline int pci_device_probe_dynamic(struct pci_driver *drv, struct pci_dev *pci_dev)
-{
-	return -ENODEV;
-}
-static inline void pci_init_dynids(struct pci_dynids *dynids) {}
 static inline void pci_free_dynids(struct pci_driver *drv) {}
 static inline int pci_create_newid_file(struct pci_driver *drv)
 {
 	return 0;
 }
-static inline int pci_bus_match_dynids(const struct pci_dev *pci_dev, struct pci_driver *pci_drv)
-{
-	return 0;
-}
 #endif
 
 /**
- * pci_match_device - Tell if a PCI device structure has a matching
- *                    PCI device id structure
+ * pci_match_id - See if a pci device matches a given pci_id table
  * @ids: array of PCI device id structures to search in
- * @dev: the PCI device structure to match against
- * 
+ * @dev: the PCI device structure to match against.
+ *
  * Used by a driver to check whether a PCI device present in the
- * system is in its list of supported devices.Returns the matching
+ * system is in its list of supported devices.  Returns the matching
  * pci_device_id structure or %NULL if there is no match.
+ *
+ * Depreciated, don't use this as it will not catch any dynamic ids
+ * that a driver might want to check for.
  */
-const struct pci_device_id *
-pci_match_device(const struct pci_device_id *ids, const struct pci_dev *dev)
+const struct pci_device_id *pci_match_id(const struct pci_device_id *ids,
+					 struct pci_dev *dev)
 {
-	while (ids->vendor || ids->subvendor || ids->class_mask) {
-		if (pci_match_one_device(ids, dev))
-			return ids;
-		ids++;
+	if (ids) {
+		while (ids->vendor || ids->subvendor || ids->class_mask) {
+			if (pci_match_one_device(ids, dev))
+				return ids;
+			ids++;
+		}
 	}
 	return NULL;
 }
 
 /**
- * pci_device_probe_static()
- * 
- * returns 0 and sets pci_dev->driver when drv claims pci_dev, else error.
+ * pci_match_device - Tell if a PCI device structure has a matching
+ *                    PCI device id structure
+ * @ids: array of PCI device id structures to search in
+ * @dev: the PCI device structure to match against
+ * @drv: the PCI driver to match against
+ *
+ * Used by a driver to check whether a PCI device present in the
+ * system is in its list of supported devices.  Returns the matching
+ * pci_device_id structure or %NULL if there is no match.
  */
-static int
-pci_device_probe_static(struct pci_driver *drv, struct pci_dev *pci_dev)
-{		   
-	int error = -ENODEV;
+const struct pci_device_id *pci_match_device(struct pci_driver *drv,
+					     struct pci_dev *dev)
+{
 	const struct pci_device_id *id;
+	struct pci_dynid *dynid;
 
-	if (!drv->id_table)
-		return error;
-	id = pci_match_device(drv->id_table, pci_dev);
+	id = pci_match_id(drv->id_table, dev);
 	if (id)
-		error = drv->probe(pci_dev, id);
-	if (error >= 0) {
-		pci_dev->driver = drv;
-		error = 0;
+		return id;
+
+	/* static ids didn't match, lets look at the dynamic ones */
+	spin_lock(&drv->dynids.lock);
+	list_for_each_entry(dynid, &drv->dynids.list, node) {
+		if (pci_match_one_device(&dynid->id, dev)) {
+			spin_unlock(&drv->dynids.lock);
+			return &dynid->id;
+		}
 	}
-	return error;
+	spin_unlock(&drv->dynids.lock);
+	return NULL;
 }
 
 /**
@@ -225,13 +171,20 @@ pci_device_probe_static(struct pci_drive
  */
 static int
 __pci_device_probe(struct pci_driver *drv, struct pci_dev *pci_dev)
-{		   
+{
+	const struct pci_device_id *id;
 	int error = 0;
 
 	if (!pci_dev->driver && drv->probe) {
-		error = pci_device_probe_static(drv, pci_dev);
-		if (error == -ENODEV)
-			error = pci_device_probe_dynamic(drv, pci_dev);
+		error = -ENODEV;
+
+		id = pci_match_device(drv, pci_dev);
+		if (id)
+			error = drv->probe(pci_dev, id);
+		if (error >= 0) {
+			pci_dev->driver = drv;
+			error = 0;
+		}
 	}
 	return error;
 }
@@ -371,12 +324,6 @@ static struct kobj_type pci_driver_kobj_
 	.sysfs_ops = &pci_driver_sysfs_ops,
 };
 
-static int
-pci_populate_driver_dir(struct pci_driver *drv)
-{
-	return pci_create_newid_file(drv);
-}
-
 /**
  * pci_register_driver - register a new pci driver
  * @drv: the driver structure to register
@@ -401,13 +348,15 @@ int pci_register_driver(struct pci_drive
 		drv->driver.shutdown = pci_device_shutdown;
 	drv->driver.owner = drv->owner;
 	drv->driver.kobj.ktype = &pci_driver_kobj_type;
-	pci_init_dynids(&drv->dynids);
+
+	spin_lock_init(&drv->dynids.lock);
+	INIT_LIST_HEAD(&drv->dynids.list);
 
 	/* register with core */
 	error = driver_register(&drv->driver);
 
 	if (!error)
-		pci_populate_driver_dir(drv);
+		error = pci_create_newid_file(drv);
 
 	return error;
 }
@@ -463,21 +412,17 @@ pci_dev_driver(const struct pci_dev *dev
  * system is in its list of supported devices.Returns the matching
  * pci_device_id structure or %NULL if there is no match.
  */
-static int pci_bus_match(struct device * dev, struct device_driver * drv) 
+static int pci_bus_match(struct device *dev, struct device_driver *drv)
 {
-	const struct pci_dev * pci_dev = to_pci_dev(dev);
-	struct pci_driver * pci_drv = to_pci_driver(drv);
-	const struct pci_device_id * ids = pci_drv->id_table;
+	struct pci_dev *pci_dev = to_pci_dev(dev);
+	struct pci_driver *pci_drv = to_pci_driver(drv);
 	const struct pci_device_id *found_id;
 
-	if (!ids)
-		return 0;
-
-	found_id = pci_match_device(ids, pci_dev);
+	found_id = pci_match_device(pci_drv, pci_dev);
 	if (found_id)
 		return 1;
 
-	return pci_bus_match_dynids(pci_dev, pci_drv);
+	return 0;
 }
 
 /**
@@ -536,6 +481,7 @@ static int __init pci_driver_init(void)
 
 postcore_initcall(pci_driver_init);
 
+EXPORT_SYMBOL(pci_match_id);
 EXPORT_SYMBOL(pci_match_device);
 EXPORT_SYMBOL(pci_register_driver);
 EXPORT_SYMBOL(pci_unregister_driver);
diff --git a/include/linux/pci-dynids.h b/include/linux/pci-dynids.h
deleted file mode 100644
--- a/include/linux/pci-dynids.h
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- *	PCI defines and function prototypes
- *	Copyright 2003 Dell Inc.
- *        by Matt Domsch <Matt_Domsch@dell.com>
- */
-
-#ifndef LINUX_PCI_DYNIDS_H
-#define LINUX_PCI_DYNIDS_H
-
-#include <linux/list.h>
-#include <linux/mod_devicetable.h>
-
-struct dynid {
-	struct list_head        node;
-	struct pci_device_id    id;
-};
-
-#endif
diff --git a/include/linux/pci.h b/include/linux/pci.h
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -860,7 +860,8 @@ int pci_register_driver(struct pci_drive
 void pci_unregister_driver(struct pci_driver *);
 void pci_remove_behind_bridge(struct pci_dev *);
 struct pci_driver *pci_dev_driver(const struct pci_dev *);
-const struct pci_device_id *pci_match_device(const struct pci_device_id *ids, const struct pci_dev *dev);
+const struct pci_device_id *pci_match_device(struct pci_driver *drv, struct pci_dev *dev);
+const struct pci_device_id *pci_match_id(const struct pci_device_id *ids, struct pci_dev *dev);
 int pci_scan_bridge(struct pci_bus *bus, struct pci_dev * dev, int max, int pass);
 
 /* kmem_cache style wrapper around pci_alloc_consistent() */
diff --git a/sound/pci/bt87x.c b/sound/pci/bt87x.c
--- a/sound/pci/bt87x.c
+++ b/sound/pci/bt87x.c
@@ -804,7 +804,7 @@ static int __devinit snd_bt87x_detect_ca
 	int i;
 	const struct pci_device_id *supported;
 
-	supported = pci_match_device(snd_bt87x_ids, pci);
+	supported = pci_match_device(driver, pci);
 	if (supported)
 		return supported->driver_data;
 


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] gregkh-pci-pci-assign-unassigned-resources fix
  2005-07-01 20:48               ` [PATCH] PCI: Remove newline from pci MODALIAS variable Greg KH
@ 2005-07-01 20:48                 ` Greg KH
  2005-07-01 20:48                   ` [PATCH] pci: cleanup argument comments for pci_{save,restore}_state Greg KH
  0 siblings, 1 reply; 12+ messages in thread
From: Greg KH @ 2005-07-01 20:48 UTC (permalink / raw)
  To: linux-kernel, linux-pci; +Cc: apw

[PATCH] gregkh-pci-pci-assign-unassigned-resources fix

It seems that X86 architectures in general need the setup-bus.o
not just those with HOTPLUG.  This avoids the following error on
X86_NUMAQ and x86_64:

    arch/i386/pci/built-in.o(.init.text+0x15a6): In function `pcibios_init':
    : undefined reference to `pci_assign_unassigned_resources'

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
commit 43a6b76050aa137c51d00eec91d67ac43ac3846e
tree f29f94e98a45c5102f1516afa45ac2ec46f2dd57
parent 5848f23d811acc1cb6c19a12e1341e0640a85d0e
author Andy Whitcroft <apw@shadowen.org> Mon, 20 Jun 2005 14:29:25 -0700
committer Greg Kroah-Hartman <gregkh@suse.de> Fri, 01 Jul 2005 13:35:52 -0700

 drivers/pci/Makefile |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/pci/Makefile b/drivers/pci/Makefile
--- a/drivers/pci/Makefile
+++ b/drivers/pci/Makefile
@@ -19,6 +19,7 @@ obj-$(CONFIG_HOTPLUG_PCI) += hotplug/
 #
 # Some architectures use the generic PCI setup functions
 #
+obj-$(CONFIG_X86) += setup-bus.o
 obj-$(CONFIG_ALPHA) += setup-bus.o setup-irq.o
 obj-$(CONFIG_ARM) += setup-bus.o setup-irq.o
 obj-$(CONFIG_PARISC) += setup-bus.o


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] PCI: acpi tg3 ethernet not coming back properly after S3 suspendon DellM70
  2005-07-01 20:48         ` [PATCH] PCI: handle subtractive decode pci-pci bridge better Greg KH
@ 2005-07-01 20:48           ` Greg KH
  2005-07-01 20:48             ` [PATCH] PCI: Add PCI quirk for SMBus on the Asus P4B-LX Greg KH
  0 siblings, 1 reply; 12+ messages in thread
From: Greg KH @ 2005-07-01 20:48 UTC (permalink / raw)
  To: linux-kernel, linux-pci; +Cc: tlnguyen

[PATCH] PCI: acpi tg3 ethernet not coming back properly after S3 suspendon DellM70

This patch, is based on kernel 2.6.12, provides a fix for PCIe
port bus driver suspend/resume.

Signed-off-by: T. Long Nguyen <tom.l.nguyen@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
commit 5823d100ae260d022b4dd5ec9cc0b85f0bf0d646
tree 20cb85773cb51eed009a8b0f4646ebc4db7c293a
parent a00db371624e2e3718e5ab7d73bf364681098106
author long <tlnguyen@snoqualmie.dp.intel.com> Wed, 22 Jun 2005 09:09:54 -0700
committer Greg Kroah-Hartman <gregkh@suse.de> Fri, 01 Jul 2005 13:35:51 -0700

 drivers/pci/pcie/portdrv.h      |    5 ++
 drivers/pci/pcie/portdrv_core.c |    8 ++++
 drivers/pci/pcie/portdrv_pci.c  |   79 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 91 insertions(+), 1 deletions(-)

diff --git a/drivers/pci/pcie/portdrv.h b/drivers/pci/pcie/portdrv.h
--- a/drivers/pci/pcie/portdrv.h
+++ b/drivers/pci/pcie/portdrv.h
@@ -27,6 +27,11 @@
 
 #define get_descriptor_id(type, service) (((type - 4) << 4) | service)
 
+struct pcie_port_device_ext {
+	int interrupt_mode;	/* [0:INTx | 1:MSI | 2:MSI-X] */
+	unsigned int saved_msi_config_space[5];
+};
+
 extern struct bus_type pcie_port_bus_type;
 extern int pcie_port_device_probe(struct pci_dev *dev);
 extern int pcie_port_device_register(struct pci_dev *dev);
diff --git a/drivers/pci/pcie/portdrv_core.c b/drivers/pci/pcie/portdrv_core.c
--- a/drivers/pci/pcie/portdrv_core.c
+++ b/drivers/pci/pcie/portdrv_core.c
@@ -275,10 +275,17 @@ int pcie_port_device_probe(struct pci_de
 
 int pcie_port_device_register(struct pci_dev *dev)
 {
+	struct pcie_port_device_ext *p_ext;
 	int status, type, capabilities, irq_mode, i;
 	int vectors[PCIE_PORT_DEVICE_MAXSERVICES];
 	u16 reg16;
 
+	/* Allocate port device extension */
+	if (!(p_ext = kmalloc(sizeof(struct pcie_port_device_ext), GFP_KERNEL)))
+		return -ENOMEM;
+
+	pci_set_drvdata(dev, p_ext);
+
 	/* Get port type */
 	pci_read_config_word(dev,
 		pci_find_capability(dev, PCI_CAP_ID_EXP) +
@@ -288,6 +295,7 @@ int pcie_port_device_register(struct pci
 	/* Now get port services */
 	capabilities = get_port_device_capability(dev);
 	irq_mode = assign_interrupt_mode(dev, vectors, capabilities);
+	p_ext->interrupt_mode = irq_mode;
 
 	/* Allocate child services if any */
 	for (i = 0; i < PCIE_PORT_DEVICE_MAXSERVICES; i++) {
diff --git a/drivers/pci/pcie/portdrv_pci.c b/drivers/pci/pcie/portdrv_pci.c
--- a/drivers/pci/pcie/portdrv_pci.c
+++ b/drivers/pci/pcie/portdrv_pci.c
@@ -29,6 +29,78 @@ MODULE_LICENSE("GPL");
 /* global data */
 static const char device_name[] = "pcieport-driver";
 
+static void pci_save_msi_state(struct pci_dev *dev)
+{
+	struct pcie_port_device_ext *p_ext = pci_get_drvdata(dev);
+	int i = 0, pos;
+	u16 control;
+
+   	if ((pos = pci_find_capability(dev, PCI_CAP_ID_MSI)) <= 0)
+		return;
+
+	pci_read_config_dword(dev, pos, &p_ext->saved_msi_config_space[i++]);
+	control = p_ext->saved_msi_config_space[0] >> 16;
+	pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_LO,
+		&p_ext->saved_msi_config_space[i++]);
+	if (control & PCI_MSI_FLAGS_64BIT) {
+		pci_read_config_dword(dev, pos + PCI_MSI_ADDRESS_HI,
+			&p_ext->saved_msi_config_space[i++]);
+		pci_read_config_dword(dev, pos + PCI_MSI_DATA_64,
+			&p_ext->saved_msi_config_space[i++]);
+	} else
+		pci_read_config_dword(dev, pos + PCI_MSI_DATA_32,
+			&p_ext->saved_msi_config_space[i++]);
+	if (control & PCI_MSI_FLAGS_MASKBIT)
+		pci_read_config_dword(dev, pos + PCI_MSI_MASK_BIT,
+			&p_ext->saved_msi_config_space[i++]);
+}
+
+static void pci_restore_msi_state(struct pci_dev *dev)
+{
+	struct pcie_port_device_ext *p_ext = pci_get_drvdata(dev);
+	int i = 0, pos;
+	u16 control;
+
+   	if ((pos = pci_find_capability(dev, PCI_CAP_ID_MSI)) <= 0)
+		return;
+
+	control = p_ext->saved_msi_config_space[i++] >> 16;
+	pci_write_config_word(dev, pos + PCI_MSI_FLAGS, control);
+	pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_LO,
+		p_ext->saved_msi_config_space[i++]);
+	if (control & PCI_MSI_FLAGS_64BIT) {
+		pci_write_config_dword(dev, pos + PCI_MSI_ADDRESS_HI,
+			p_ext->saved_msi_config_space[i++]);
+		pci_write_config_dword(dev, pos + PCI_MSI_DATA_64,
+			p_ext->saved_msi_config_space[i++]);
+	} else
+		pci_write_config_dword(dev, pos + PCI_MSI_DATA_32,
+			p_ext->saved_msi_config_space[i++]);
+	if (control & PCI_MSI_FLAGS_MASKBIT)
+		pci_write_config_dword(dev, pos + PCI_MSI_MASK_BIT,
+			p_ext->saved_msi_config_space[i++]);
+}
+
+static void pcie_portdrv_save_config(struct pci_dev *dev)
+{
+	struct pcie_port_device_ext *p_ext = pci_get_drvdata(dev);
+
+	pci_save_state(dev);
+	if (p_ext->interrupt_mode == PCIE_PORT_MSI_MODE)
+		pci_save_msi_state(dev);
+}
+
+static void pcie_portdrv_restore_config(struct pci_dev *dev)
+{
+	struct pcie_port_device_ext *p_ext = pci_get_drvdata(dev);
+
+	pci_restore_state(dev);
+	if (p_ext->interrupt_mode == PCIE_PORT_MSI_MODE)
+		pci_restore_msi_state(dev);
+	pci_enable_device(dev);
+	pci_set_master(dev);
+}
+
 /*
  * pcie_portdrv_probe - Probe PCI-Express port devices
  * @dev: PCI-Express port device being probed
@@ -64,16 +136,21 @@ static int __devinit pcie_portdrv_probe 
 static void pcie_portdrv_remove (struct pci_dev *dev)
 {
 	pcie_port_device_remove(dev);
+	kfree(pci_get_drvdata(dev));
 }
 
 #ifdef CONFIG_PM
 static int pcie_portdrv_suspend (struct pci_dev *dev, pm_message_t state)
 {
-	return pcie_port_device_suspend(dev, state);
+	int ret = pcie_port_device_suspend(dev, state);
+
+	pcie_portdrv_save_config(dev);
+	return ret;
 }
 
 static int pcie_portdrv_resume (struct pci_dev *dev)
 {
+	pcie_portdrv_restore_config(dev);
 	return pcie_port_device_resume(dev);
 }
 #endif


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] PCI: Remove newline from pci MODALIAS variable
  2005-07-01 20:48             ` [PATCH] PCI: Add PCI quirk for SMBus on the Asus P4B-LX Greg KH
@ 2005-07-01 20:48               ` Greg KH
  2005-07-01 20:48                 ` [PATCH] gregkh-pci-pci-assign-unassigned-resources fix Greg KH
  0 siblings, 1 reply; 12+ messages in thread
From: Greg KH @ 2005-07-01 20:48 UTC (permalink / raw)
  To: linux-kernel, linux-pci; +Cc: hare

[PATCH] PCI: Remove newline from pci MODALIAS variable

the pci core sends out a hotplug event variable MODALIAS with a trailing
newline. This is inconsistent with all other event variables and breaks
some hotplug tools. This patch removes the said newline.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
commit c6e21e1683c2508a2b23588e1fc2e7bf6fc2549e
tree 17e925938d956a3eb17aa59ce0d3add0957906e1
parent 5823d100ae260d022b4dd5ec9cc0b85f0bf0d646
author Hannes Reinecke <hare@suse.de> Tue, 28 Jun 2005 14:57:10 +0200
committer Greg Kroah-Hartman <gregkh@suse.de> Fri, 01 Jul 2005 13:35:51 -0700

 drivers/pci/hotplug.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/pci/hotplug.c b/drivers/pci/hotplug.c
--- a/drivers/pci/hotplug.c
+++ b/drivers/pci/hotplug.c
@@ -54,7 +54,7 @@ int pci_hotplug (struct device *dev, cha
 
 	envp[i++] = scratch;
 	length += scnprintf (scratch, buffer_size - length,
-			    "MODALIAS=pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02x\n",
+			    "MODALIAS=pci:v%08Xd%08Xsv%08Xsd%08Xbc%02Xsc%02Xi%02x",
 			    pdev->vendor, pdev->device,
 			    pdev->subsystem_vendor, pdev->subsystem_device,
 			    (u8)(pdev->class >> 16), (u8)(pdev->class >> 8),


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] pci: cleanup argument comments for pci_{save,restore}_state
  2005-07-01 20:48                 ` [PATCH] gregkh-pci-pci-assign-unassigned-resources fix Greg KH
@ 2005-07-01 20:48                   ` Greg KH
  0 siblings, 0 replies; 12+ messages in thread
From: Greg KH @ 2005-07-01 20:48 UTC (permalink / raw)
  To: linux-kernel, linux-pci; +Cc: linville

[PATCH] pci: cleanup argument comments for pci_{save,restore}_state

The buffer arguments have been removed from pci_{save,restore}_state.
The comment blocks for those functions should reflect that.

Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
commit 5848f23d811acc1cb6c19a12e1341e0640a85d0e
tree 03281e4a15e538ffb18ab1f3f02a1b61736a8c84
parent c6e21e1683c2508a2b23588e1fc2e7bf6fc2549e
author John W. Linville <linville@tuxdriver.com> Fri, 01 Jul 2005 14:07:28 -0400
committer Greg Kroah-Hartman <gregkh@suse.de> Fri, 01 Jul 2005 13:35:52 -0700

 drivers/pci/pci.c |    6 ------
 1 files changed, 0 insertions(+), 6 deletions(-)

diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -334,10 +334,6 @@ EXPORT_SYMBOL(pci_choose_state);
 /**
  * pci_save_state - save the PCI configuration space of a device before suspending
  * @dev: - PCI device that we're dealing with
- * @buffer: - buffer to hold config space context
- *
- * @buffer must be large enough to hold the entire PCI 2.2 config space 
- * (>= 64 bytes).
  */
 int
 pci_save_state(struct pci_dev *dev)
@@ -352,8 +348,6 @@ pci_save_state(struct pci_dev *dev)
 /** 
  * pci_restore_state - Restore the saved state of a PCI device
  * @dev: - PCI device that we're dealing with
- * @buffer: - saved PCI config space
- *
  */
 int 
 pci_restore_state(struct pci_dev *dev)


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] PCI: handle subtractive decode pci-pci bridge better
  2005-07-01 20:48       ` [PATCH] PCI: clean up dynamic pci id logic Greg KH
@ 2005-07-01 20:48         ` Greg KH
  2005-07-01 20:48           ` [PATCH] PCI: acpi tg3 ethernet not coming back properly after S3 suspendon DellM70 Greg KH
  0 siblings, 1 reply; 12+ messages in thread
From: Greg KH @ 2005-07-01 20:48 UTC (permalink / raw)
  To: linux-kernel, linux-pci; +Cc: ink

[PATCH] PCI: handle subtractive decode pci-pci bridge better

With the number of PCI bus resources increased to 8, we can
handle the subtractive decode PCI-PCI bridge like a normal
bridge, taking into account standard PCI-PCI bridge windows
(resources 0-2). This helps to avoid problems with peer-to-peer DMA
behind such bridges, poor performance for MMIO ranges outside bridge
windows and prefetchable vs. non-prefetchable memory issues.

To reflect the fact that such bridges do forward all addresses to
the secondary bus (transparency), remaining bus resources 3-7 are
linked to resources 0-4 of the primary bus. These resources will be
used as fallback by resource management code if allocation from
standard bridge windows fails for some reason.

Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Acked-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
commit 90b54929b626c80056262d9d99b3f48522e404d0
tree d5cb91ff7bd0ac9ffeab5f7bf68235e8b35d050c
parent a03fa955576af50df80bec9127b46ef57e0877c0
author Ivan Kokshaysky <ink@jurassic.park.msu.ru> Tue, 07 Jun 2005 04:07:02 +0400
committer Greg Kroah-Hartman <gregkh@suse.de> Fri, 01 Jul 2005 13:35:50 -0700

 drivers/pci/probe.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -239,9 +239,8 @@ void __devinit pci_read_bridge_bases(str
 
 	if (dev->transparent) {
 		printk(KERN_INFO "PCI: Transparent bridge - %s\n", pci_name(dev));
-		for(i = 0; i < PCI_BUS_NUM_RESOURCES; i++)
-			child->resource[i] = child->parent->resource[i];
-		return;
+		for(i = 3; i < PCI_BUS_NUM_RESOURCES; i++)
+			child->resource[i] = child->parent->resource[i - 3];
 	}
 
 	for(i=0; i<3; i++)


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH] PCI: Add PCI quirk for SMBus on the Asus P4B-LX
  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             ` Greg KH
  2005-07-01 20:48               ` [PATCH] PCI: Remove newline from pci MODALIAS variable Greg KH
  0 siblings, 1 reply; 12+ messages in thread
From: Greg KH @ 2005-07-01 20:48 UTC (permalink / raw)
  To: linux-kernel, linux-pci; +Cc: khali

[PATCH] PCI: Add PCI quirk for SMBus on the Asus P4B-LX

One more Asus motherboard requiring the SMBus quirk (P4B-LX). Original
patch from Salah Coronya.

Signed-off-by: Salah Coronya <salahx@yahoo.com>
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
commit a00db371624e2e3718e5ab7d73bf364681098106
tree e1911719bc7bb14eb806b93950ac8c73e5f77e19
parent 75865858971add95809c5c9cd35dc4cfba08e33b
author Jean Delvare <khali@linux-fr.org> Wed, 29 Jun 2005 17:04:06 +0200
committer Greg Kroah-Hartman <gregkh@suse.de> Fri, 01 Jul 2005 13:35:51 -0700

 drivers/pci/quirks.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -767,6 +767,7 @@ static void __init asus_hides_smbus_host
 	if (unlikely(dev->subsystem_vendor == PCI_VENDOR_ID_ASUSTEK)) {
 		if (dev->device == PCI_DEVICE_ID_INTEL_82845_HB)
 			switch(dev->subsystem_device) {
+			case 0x8025: /* P4B-LX */
 			case 0x8070: /* P4B */
 			case 0x8088: /* P4B533 */
 			case 0x1626: /* L3C notebook */


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [GIT PATCH] ACPI patches for 2.6.13-rc2
  2005-07-01 20:47 [GIT PATCH] PCI patches for 2.6.13-rc1 Greg KH
  2005-07-01 20:48 ` [PATCH] PCI: Fix up PCI routing in parent bridge Greg KH
@ 2005-07-12 22:12 ` Len Brown
  1 sibling, 0 replies; 12+ messages in thread
From: Len Brown @ 2005-07-12 22:12 UTC (permalink / raw)
  To: Andrew Morton, Linus Torvalds; +Cc: acpi-devel, linux-kernel

Hi Linus,

Please pull from:

rsync://rsync.kernel.org/pub/scm/linux/kernel/git/lenb/linux-2.6.git/
or master.kernel.org:/pub/scm/linux/kernel/git/lenb/linux-2.6.git/

This batch of patches was stranded in BK upon 2.6.12-rc2 and
has been in and out of the mm tree various times since.

thanks,
-Len

p.s.
Plain patches (with quilt series file) available here:

http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/release/2.6.12/broken-out/
http://ftp.kernel.org/pub/linux/kernel/people/lenb/acpi/patches/release/2.6.13/broken-out/

 Documentation/acpi-hotkey.txt                     |   35 
 arch/frv/mb93090-mb00/pci-irq.c                   |    2 
 arch/i386/kernel/acpi/Makefile                    |    4 
 arch/i386/kernel/acpi/cstate.c                    |  103 ++
 arch/i386/kernel/acpi/wakeup.S                    |    5 
 arch/i386/kernel/cpu/cpufreq/speedstep-centrino.c |    2 
 arch/i386/pci/irq.c                               |   16 
 arch/i386/pci/visws.c                             |    2 
 arch/ia64/kernel/acpi.c                           |   54 +
 arch/ia64/kernel/mca.c                            |    2 
 arch/ia64/kernel/process.c                        |    1 
 arch/ia64/kernel/setup.c                          |    3 
 arch/ia64/kernel/topology.c                       |    7 
 drivers/acpi/Kconfig                              |   38 
 drivers/acpi/Makefile                             |    5 
 drivers/acpi/asus_acpi.c                          |    4 
 drivers/acpi/bus.c                                |    8 
 drivers/acpi/button.c                             |  245 -----
 drivers/acpi/dispatcher/dsfield.c                 |   58 -
 drivers/acpi/dispatcher/dsinit.c                  |   28 
 drivers/acpi/dispatcher/dsmethod.c                |   11 
 drivers/acpi/dispatcher/dsmthdat.c                |  195 ++--
 drivers/acpi/dispatcher/dsobject.c                |   79 +
 drivers/acpi/dispatcher/dsopcode.c                |  105 +-
 drivers/acpi/dispatcher/dsutils.c                 |   41 
 drivers/acpi/dispatcher/dswexec.c                 |   57 -
 drivers/acpi/dispatcher/dswload.c                 |  118 +-
 drivers/acpi/dispatcher/dswscope.c                |   31 
 drivers/acpi/dispatcher/dswstate.c                |  458 +++++----
 drivers/acpi/ec.c                                 |  420 ++++++---
 drivers/acpi/events/evevent.c                     |   33 
 drivers/acpi/events/evgpe.c                       |   39 
 drivers/acpi/events/evgpeblk.c                    |   63 +
 drivers/acpi/events/evmisc.c                      |   97 +-
 drivers/acpi/events/evregion.c                    |   35 
 drivers/acpi/events/evrgnini.c                    |   14 
 drivers/acpi/events/evsci.c                       |   12 
 drivers/acpi/events/evxface.c                     |   19 
 drivers/acpi/events/evxfevnt.c                    |   25 
 drivers/acpi/executer/exconfig.c                  |   31 
 drivers/acpi/executer/exconvrt.c                  |   44 
 drivers/acpi/executer/excreate.c                  |   50 -
 drivers/acpi/executer/exdump.c                    |  105 +-
 drivers/acpi/executer/exfield.c                   |   25 
 drivers/acpi/executer/exfldio.c                   |  133 +-
 drivers/acpi/executer/exmisc.c                    |    7 
 drivers/acpi/executer/exmutex.c                   |   45 
 drivers/acpi/executer/exnames.c                   |   70 -
 drivers/acpi/executer/exoparg1.c                  |   94 +-
 drivers/acpi/executer/exoparg2.c                  |   69 -
 drivers/acpi/executer/exoparg3.c                  |   25 
 drivers/acpi/executer/exoparg6.c                  |   26 
 drivers/acpi/executer/exprep.c                    |  104 +-
 drivers/acpi/executer/exregion.c                  |   34 
 drivers/acpi/executer/exresnte.c                  |   24 
 drivers/acpi/executer/exresolv.c                  |   63 -
 drivers/acpi/executer/exresop.c                   |   80 +
 drivers/acpi/executer/exstore.c                   |  260 ++++-
 drivers/acpi/executer/exstoren.c                  |   20 
 drivers/acpi/executer/exstorob.c                  |    9 
 drivers/acpi/executer/exsystem.c                  |   48 -
 drivers/acpi/executer/exutils.c                   |   37 
 drivers/acpi/glue.c                               |  360 +++++++
 drivers/acpi/hardware/hwacpi.c                    |   19 
 drivers/acpi/hardware/hwgpe.c                     |   31 
 drivers/acpi/hardware/hwregs.c                    |  114 +-
 drivers/acpi/hardware/hwsleep.c                   |  101 +-
 drivers/acpi/hardware/hwtimer.c                   |    4 
 drivers/acpi/hotkey.c                             | 1019
++++++++++++++++++++++
 drivers/acpi/ibm_acpi.c                           |    8 
 drivers/acpi/namespace/nsaccess.c                 |    5 
 drivers/acpi/namespace/nsalloc.c                  |  121 +-
 drivers/acpi/namespace/nsdump.c                   |  109 +-
 drivers/acpi/namespace/nsdumpdv.c                 |   18 
 drivers/acpi/namespace/nseval.c                   |   70 +
 drivers/acpi/namespace/nsinit.c                   |   28 
 drivers/acpi/namespace/nsload.c                   |   28 
 drivers/acpi/namespace/nsnames.c                  |   12 
 drivers/acpi/namespace/nsobject.c                 |   14 
 drivers/acpi/namespace/nssearch.c                 |   29 
 drivers/acpi/namespace/nsutils.c                  |  167 ++-
 drivers/acpi/namespace/nswalk.c                   |    2 
 drivers/acpi/namespace/nsxfeval.c                 |   16 
 drivers/acpi/namespace/nsxfname.c                 |    8 
 drivers/acpi/namespace/nsxfobj.c                  |    4 
 drivers/acpi/osl.c                                |   12 
 drivers/acpi/parser/psargs.c                      |   55 -
 drivers/acpi/parser/psopcode.c                    |  298 ------
 drivers/acpi/parser/psparse.c                     |  144 +--
 drivers/acpi/parser/psscope.c                     |   45 
 drivers/acpi/parser/pstree.c                      |  159 +--
 drivers/acpi/parser/psutils.c                     |   15 
 drivers/acpi/parser/pswalk.c                      |   11 
 drivers/acpi/parser/psxface.c                     |   21 
 drivers/acpi/pci_link.c                           |   43 
 drivers/acpi/processor_core.c                     |   37 
 drivers/acpi/processor_idle.c                     |  138 ++
 drivers/acpi/processor_perflib.c                  |   33 
 drivers/acpi/resources/rsaddr.c                   |  480 ++++------
 drivers/acpi/resources/rscalc.c                   |  144 +--
 drivers/acpi/resources/rscreate.c                 |   45 
 drivers/acpi/resources/rsdump.c                   |  402 ++++----
 drivers/acpi/resources/rsio.c                     |  197 +---
 drivers/acpi/resources/rsirq.c                    |  167 +--
 drivers/acpi/resources/rslist.c                   |   68 -
 drivers/acpi/resources/rsmemory.c                 |  236 ++---
 drivers/acpi/resources/rsmisc.c                   |  160 +--
 drivers/acpi/resources/rsutils.c                  |   53 -
 drivers/acpi/resources/rsxface.c                  |   43 
 drivers/acpi/scan.c                               |   12 
 drivers/acpi/sleep/main.c                         |   74 -
 drivers/acpi/sleep/poweroff.c                     |   81 +
 drivers/acpi/sleep/proc.c                         |    9 
 drivers/acpi/tables/tbconvrt.c                    |  105 +-
 drivers/acpi/tables/tbget.c                       |   63 -
 drivers/acpi/tables/tbgetall.c                    |   45 
 drivers/acpi/tables/tbinstal.c                    |   31 
 drivers/acpi/tables/tbrsdt.c                      |   19 
 drivers/acpi/tables/tbutils.c                     |   97 +-
 drivers/acpi/tables/tbxface.c                     |   39 
 drivers/acpi/tables/tbxfroot.c                    |  123 +-
 drivers/acpi/toshiba_acpi.c                       |    8 
 drivers/acpi/utilities/utalloc.c                  |   84 +
 drivers/acpi/utilities/utcopy.c                   |  126 +-
 drivers/acpi/utilities/utdebug.c                  |  106 +-
 drivers/acpi/utilities/utdelete.c                 |   63 -
 drivers/acpi/utilities/uteval.c                   |   36 
 drivers/acpi/utilities/utglobal.c                 |  133 +-
 drivers/acpi/utilities/utinit.c                   |   36 
 drivers/acpi/utilities/utmath.c                   |    2 
 drivers/acpi/utilities/utmisc.c                   |  187 ++--
 drivers/acpi/utilities/utobject.c                 |   68 +
 drivers/acpi/utilities/utxface.c                  |   61 -
 drivers/acpi/video.c                              |   15 
 drivers/base/sys.c                                |    1 
 drivers/net/b44.c                                 |    3 
 drivers/net/ne2k-pci.c                            |    3 
 drivers/pci/pci-acpi.c                            |  110 ++
 drivers/pci/pci.c                                 |   22 
 drivers/pci/pci.h                                 |    4 
 drivers/pcmcia/yenta_socket.c                     |    3 
 drivers/pnp/pnpacpi/rsparser.c                    |   15 
 drivers/pnp/pnpbios/rsparser.c                    |    2 
 drivers/pnp/resource.c                            |    2 
 drivers/usb/core/hcd-pci.c                        |    1 
 include/acpi/acconfig.h                           |    7 
 include/acpi/acdebug.h                            |  146 ---
 include/acpi/acdisasm.h                           |  114 --
 include/acpi/acdispat.h                           |  171 +--
 include/acpi/acevents.h                           |   85 -
 include/acpi/acexcep.h                            |    5 
 include/acpi/acglobal.h                           |   12 
 include/acpi/achware.h                            |   52 -
 include/acpi/acinterp.h                           |  243 +----
 include/acpi/aclocal.h                            |   10 
 include/acpi/acmacros.h                           |   10 
 include/acpi/acnames.h                            |   84 +
 include/acpi/acnamesp.h                           |  163 ---
 include/acpi/acobject.h                           |    2 
 include/acpi/acopcode.h                           |  325 +++++++
 include/acpi/acparser.h                           |  134 +-
 include/acpi/acpi.h                               |    1 
 include/acpi/acpi_bus.h                           |   21 
 include/acpi/acpi_drivers.h                       |    5 
 include/acpi/acpiosxf.h                           |   18 
 include/acpi/acpixf.h                             |   13 
 include/acpi/acresrc.h                            |   67 -
 include/acpi/acstruct.h                           |    1 
 include/acpi/actables.h                           |   70 -
 include/acpi/actbl.h                              |    2 
 include/acpi/actypes.h                            |    2 
 include/acpi/acutils.h                            |  274 +----
 include/acpi/amlcode.h                            |   12 
 include/acpi/pdc_intel.h                          |   29 
 include/acpi/platform/acenv.h                     |   20 
 include/acpi/processor.h                          |   34 
 include/asm-alpha/pci.h                           |    2 
 include/asm-arm/pci.h                             |    2 
 include/asm-h8300/pci.h                           |    2 
 include/asm-i386/acpi.h                           |   10 
 include/asm-i386/apicdef.h                        |    6 
 include/asm-i386/pci.h                            |    2 
 include/asm-ia64/acpi.h                           |    9 
 include/asm-ia64/pci.h                            |    2 
 include/asm-m68k/pci.h                            |    2 
 include/asm-mips/pci.h                            |    2 
 include/asm-ppc/pci.h                             |    2 
 include/asm-ppc64/pci.h                           |    2 
 include/asm-sh/pci.h                              |    2 
 include/asm-sh64/pci.h                            |    2 
 include/asm-sparc/pci.h                           |    2 
 include/asm-sparc64/pci.h                         |    2 
 include/asm-x86_64/acpi.h                         |    8 
 include/asm-x86_64/pci.h                          |    2 
 include/linux/acpi.h                              |    7 
 include/linux/device.h                            |    6 
 include/linux/pm.h                                |    2 
 kernel/power/main.c                               |   16 
 198 files changed, 7755 insertions(+), 5428 deletions(-)

commit 5028770a42e7bc4d15791a44c28f0ad539323807
Merge: 9f02d6b7b43d46a74dd385f06090104ecd0fb807
d8683a0cb5d09cb7f19feefa708424a84577e68f
Author: Len Brown <len.brown@intel.com>
Date:   Tue Jul 12 17:21:56 2005 -0400

    [ACPI] merge acpi-2.6.12 branch into latest Linux 2.6.13-rc...
    
    Signed-off-by: Len Brown <len.brown@intel.com>

commit d8683a0cb5d09cb7f19feefa708424a84577e68f
Author: Len Brown <len.brown@intel.com>
Date:   Sun Jul 3 16:42:23 2005 -0400

    [ACPI] increase MAX_IO_APICS to 64 on i386
    
    x86_64 was already 128
    
    http://bugzilla.kernel.org/show_bug.cgi?id=3754
    
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 02df8b9385c21fdba165bd380f60eca1d3b0578b
Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Date:   Fri Apr 15 15:07:10 2005 -0400

    [ACPI] enable C2 and C3 idle power states on SMP
    http://bugzilla.kernel.org/show_bug.cgi?id=4401
    
    Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 17e9c78a75ce9eacd61200f9e1f1924012e28846
Author: Luming Yu <luming.yu@intel.com>
Date:   Fri Apr 22 23:07:10 2005 -0400

    [ACPI] EC GPE-disabled issue
    http://bugzilla.kernel.org/show_bug.cgi?id=3851
    
    Signed-off-by: Luming Yu <luming.yu@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit a27ac38efd6dc6dccebfc9bcc475ab4aa5fc4a56
Author: Len Brown <len.brown@intel.com>
Date:   Fri Apr 5 00:07:45 2019 -0500

    [ACPI] fix merge error that broke CONFIG_ACPI_DEBUG=y build
    
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 590275ce72c48fdbddea057bc9ee379c1fd851ef
Author: Jesse Barnes <jbarnes@sgi.com>
Date:   Mon Apr 18 23:52:17 2005 -0400

    [ACPI] cleanup: delete !IA64_SGI_SN from acpi/Kconfig
    
    Signed-off-by: Jesse Barnes <jbarnes@sgi.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 6c4fa56033c11ad5c5929bf3edd1505d3d8a8c0b
Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Date:   Mon Apr 18 23:06:47 2005 -0400

    [ACPI] fix C1 patch for IA64
    http://bugzilla.kernel.org/show_bug.cgi?id=4233
    
    Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit ef7b06cd905424aea7c31f27fef622e84e75e650
Author: David Shaohua Li <shaohua.li@intel.com>
Date:   Mon Apr 18 22:59:23 2005 -0400

    [ACPI] quiet dmesg related to ACPI PM of PCI devices
    
    DBG("No ACPI bus support for %s\n", dev->bus_id);
    http://bugzilla.kernel.org/show_bug.cgi?id=4277
    
    Signed-off-by: David Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 44f6c01242da4e162f28d8e1216a8c7a91174605
Author: Robert Moore <robert.moore@intel.com>
Date:   Mon Apr 18 22:49:35 2005 -0400

    ACPICA 20050408 from Bob Moore
    
    Fixed three cases in the interpreter where an "index"
    argument to an ASL function was still (internally) 32
    bits instead of the required 64 bits.  This was the Index
    argument to the Index, Mid, and Match operators.
    
    The "strupr" function is now permanently local
    (acpi_ut_strupr), since this is not a POSIX-defined
    function and not present in most kernel-level C
    libraries. References to the C library strupr function
    have been removed from the headers.
    
    Completed the deployment of static
    functions/prototypes. All prototypes with the static
    attribute have been moved from the headers to the owning
    C file.
    
    ACPICA 20050329 from Bob Moore
    
    An error is now generated if an attempt is made to create
    a Buffer Field of length zero (A CreateField with a length
    operand of zero.)
    
    The interpreter now issues a warning whenever executable
    code at the module level is detected during ACPI table
    load. This will give some idea of the prevalence of this
    type of code.
    
    Implemented support for references to named objects (other
    than control methods) within package objects.
    
    Enhanced package object output for the debug
    object. Package objects are now completely dumped, showing
    all elements.
    
    Enhanced miscellaneous object output for the debug
    object. Any object can now be written to the debug object
    (for example, a device object can be written, and the type
    of the object will be displayed.)
    
    The "static" qualifier has been added to all local
    functions across the core subsystem.
    
    The number of "long" lines (> 80 chars) within the source
    has been significantly reduced, by about 1/3.
    
    Cleaned up all header files to ensure that all CA/iASL
    functions are prototyped (even static functions) and the
    formatting is consistent.
    
    Two new header files have been added, acopcode.h and
    acnames.h.
    
    Removed several obsolete functions that were no longer
    used.
    
    Signed-off-by: Len Brown <len.brown@intel.com>

commit ebb6e1a6122fd6b7c96470cfd4ce0f04150e5084
Author: Len Brown <len.brown@intel.com>
Date:   Thu Apr 14 23:12:56 2005 -0400

    [ACPI] Deprecate /proc/acpi/sleep in favor of /sys/power/state
    
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 9d9437759eb6fdb68f7b82cbee20b0fb711d9f0d
Author: Nickolai Zeldovich <kolya@MIT.EDU>
Date:   Fri Apr 8 23:37:34 2005 -0400

    [ACPI] S3 resume -- use lgdtl, not lgdt
    
    From: Nickolai Zeldovich <kolya@MIT.EDU>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit c9c3e457de24cca2ca688fa397d93a241f472048
Author: David Shaohua Li <shaohua.li@intel.com>
Date:   Fri Apr 1 00:07:31 2005 -0500

    [ACPI] PNPACPI vs sound IRQ
    
    http://bugme.osdl.org/show_bug.cgi?id=4016
    
    Written-by: David Shaohua Li <shaohua.li@intel.com>
    Acked-by: Adam Belay <abelay@novell.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit acf05f4b7f558051ea0028e8e617144123650272
Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Date:   Thu Mar 31 23:23:15 2005 -0500

    [ACPI] update /proc/acpi/processor/*/power even if only C1 support
    
    Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 55e59c511cea3c6c721971467c707e9955922bc2
Author: Ashok Raj <ashok.raj@intel.com>
Date:   Thu Mar 31 22:51:10 2005 -0500

    [ACPI] Evaluate CPEI Processor Override flag
    
    ACPI 3.0 added a Correctable Platform Error Interrupt (CPEI)
    Processor Overide flag to MADT.Platform_Interrupt_Source.
    Record the processor that was provided as hint from ACPI.
    
    Signed-off-by: Ashok Raj <ashok.raj@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 6940fabaa35b893163b7043d0d1dc5d715f9e1ca
Author: Keiichiro Tokunaga <tokunaga.keiich@jp.fujitsu.com>
Date:   Wed Mar 30 23:15:47 2005 -0500

    [ACPI] hotplug Processor consideration in acpi_bus_add()
    
    Signed-off-by: Keiichiro Tokunaga <tokunaga.keiich@jp.fujitsu.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 8de7a63b69a263b7549599be882d7aa15397f8b3
Author: Andrew Morton <akpm@osdl.org>
Date:   Wed Mar 30 22:53:30 2005 -0500

    [ACPI] fix debug-mode build warning in acpi/hotkey.c
    
    drivers/acpi/hotkey.c: In function `create_polling_proc':
    drivers/acpi/hotkey.c:334: warning: ISO C90 forbids mixed
declarations and code
    
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit d1dd0c23916bd781de27bc5ec1c295064e9ce9cc
Author: Paulo Marques <pmarques@grupopie.com>
Date:   Wed Mar 30 22:39:49 2005 -0500

    [ACPI] fix kmalloc size bug in acpi/video.c
    
    acpi_video_device_find_cap() used &p instead of *p
    when calculating storage size, thus allocating
    only 4 or 8 bytes instead of 12...
    
    Also, kfree(NULL) is legal, so remove some unneeded checks.
    
    From: Paulo Marques <pmarques@grupopie.com>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 7334571f724df7a19f48cc974e991e00afde1e2f
Author: Adrian Bunk <bunk@stusta.de>
Date:   Wed Mar 30 22:31:35 2005 -0500

    [ACPI] fix potential NULL dereference in acpi/video.c
    
    Found-by: Adrian Bunk <bunk@stusta.de>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit f4224153098c1103db592b28f304beeb9c02481b
Author: Panagiotis Issaris <takis@gna.org>
Date:   Wed Mar 30 22:15:36 2005 -0500

    [ACPI] check for kmalloc failure in toshiba_acpi.c
    
    Signed-off-by: Panagiotis Issaris <takis@gna.org>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 83ea7445221651dc43cf8d22f81089e0cbccf22b
Author: Andrew Morton <akpm@osdl.org>
Date:   Wed Mar 30 22:12:13 2005 -0500

    [ACPI] fix build warning
    
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit f165b10f4a9aac7fee9b11a125de20a1712be128
Author: Greg Kroah-Hartman <gregkh@suse.de>
Date:   Wed Mar 30 21:23:19 2005 -0500

    cleanup: remove unnecessary initializer on static pointers
    
    Suggested-by: Greg KH <greg@kroah.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit b008b8d7092053fc1f036cfc54dc11740cc424ed
Author: Matthieu Castet <castet.matthieu@free.fr>
Date:   Fri Mar 25 12:03:15 2005 -0500

    [ACPI] PNPACPI parse error
    
    http://bugzilla.kernel.org/show_bug.cgi?id=3912
    
    Written-by: matthieu castet <castet.matthieu@free.fr>
    Acked-by: Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit a406d9e63e1d7088aad22565449de2e109300e5c
Author: Len Brown <len.brown@intel.com>
Date:   Wed Mar 23 16:16:03 2005 -0500

    [ACPI] gut acpi_pci_choose_state() to avoid conflict
    with pending pm_message_t re-definition.
    
    Signed-off-by: Len Brown <len.brown@intel.com>

commit fa9cd547e097df4966b8bd5c94aeed953e32b14d
Author: Luming Yu <luming.yu@intel.com>
Date:   Sat Mar 19 01:54:47 2005 -0500

    [ACPI] fix EC access width
    http://bugzilla.kernel.org/show_bug.cgi?id=4346
    
    Written-by: David Shaohua Li and Luming Yu
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 451566f45a2e6cd10ba56e7220a9dd84ba3ef550
Author: Dmitry Torokhov <dtor@mail.ru>
Date:   Sat Mar 19 01:10:05 2005 -0500

    [ACPI] Enable EC Burst Mode
    
    Fixes several Embedded Controller issues, including
    button failure and battery status AE_TIME failure.
    
    http://bugzilla.kernel.org/show_bug.cgi?id=3851
    
    Based on patch by: Andi Kleen <ak@suse.de>
    Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
    Signed-off-by: Luming Yu <luming.yu@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit b913100d7304ea9596d8d85ab5f3ae04bd2b0ddb
Author: David Shaohua Li <shaohua.li@intel.com>
Date:   Sat Mar 19 00:16:18 2005 -0500

    [ACPI] pci_set_power_state() now calls
    	platform_pci_set_power_state()
    		and ACPI can answer
    
    http://bugzilla.kernel.org/show_bug.cgi?id=4277
    
    Signed-off-by: David Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 0f64474b8f7f1f7f3af5b24ef997baa35f923509
Author: David Shaohua Li <shaohua.li@intel.com>
Date:   Sat Mar 19 00:15:48 2005 -0500

    [ACPI] PCI can now get suspend state from firmware
    
    pci_choose_state() can now call
    	platform_pci_choose_state()
    		and ACPI can answer
    
    http://bugzilla.kernel.org/show_bug.cgi?id=4277
    
    Signed-off-by: David Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 84df749f364209c9623304b7a94ddb954dc343bb
Author: David Shaohua Li <shaohua.li@intel.com>
Date:   Fri Mar 18 18:53:36 2005 -0500

    [ACPI] Bind ACPI and PCI devices
    
    http://bugzilla.kernel.org/show_bug.cgi?id=4277
    
    Signed-off-by: David Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 4e10d12a3d88c88fba3258809aa42d14fd8cf1d1
Author: David Shaohua Li <shaohua.li@intel.com>
Date:   Fri Mar 18 18:45:35 2005 -0500

    [ACPI] Bind PCI devices with ACPI devices
    
    Implement the framework for binding physical devices
    with ACPI devices. A physical bus like PCI bus
    should create a 'acpi_bus_type', with:
    
    .find_device:
            For device which has parent such as normal PCI devices.
    
    .find_bridge:
            It's for special devices, such as PCI root bridge
    	or IDE controller.  Such devices generally haven't a
    	parent or ->bus. We use the special method
    	to get an ACPI handle.
    
    Uses new field in struct device: firmware_data
    
    http://bugzilla.kernel.org/show_bug.cgi?id=4277
    
    Signed-off-by: David Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit fb9802fa59b196d7f90bb3c2e33c555c6bdc4c54
Author: Luming Yu <luming.yu@intel.com>
Date:   Fri Mar 18 18:03:45 2005 -0500

    [ACPI] generic Hot Key support
    
    See Documentation/acpi-hotkey.txt
    
    Use cmdline "acpi_specific_hotkey" to enable
    legacy platform specific drivers.
    
    http://bugzilla.kernel.org/show_bug.cgi?id=3887
    
    Signed-off-by: Luming Yu <luming.yu@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit d58da590451cf6ae75379a2ebf96d3afb8d810d8
Author: David Shaohua Li <shaohua.li@intel.com>
Date:   Fri Mar 18 16:43:54 2005 -0500

    [ACPI] S3 Suspend to RAM: fix driver suspend/resume methods
    
    Drivers should do this:
    
    .suspend()
    	pci_disable_device()
    
    .resume()
    	pci_enable_device()
    
    http://bugzilla.kernel.org/show_bug.cgi?id=3469
    
    Signed-off-by: David Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 362b06bb70b5a5779b2e852e0f2bdb437061106e
Author: David Shaohua Li <shaohua.li@intel.com>
Date:   Fri Mar 18 16:30:29 2005 -0500

    [ACPI] S3 Suspend to RAM: interrupt resume fix
    
    Delete PCI Interrupt Link Device .resume method --
    it is the device driver's job to request interrupts,
    not the Link's job to remember what the devices want.
    
    This addresses the issue of attempting to run
    the ACPI interpreter too early in resume, when
    interrupts are still disabled.
    
    http://bugzilla.kernel.org/show_bug.cgi?id=3469
    
    Signed-off-by: David Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 5ae947ecc9c1c23834201e5321684a5cb68bdd3f
Author: David Shaohua Li <shaohua.li@intel.com>
Date:   Fri Mar 18 16:27:13 2005 -0500

    [ACPI] Suspend to RAM fix
    
    Free some RAM before entering S3 so that upon
    resume we can be sure early allocations will succeed.
    
    http://bugzilla.kernel.org/show_bug.cgi?id=3469
    
    Signed-off-by: David Shaohua Li <shaohua.li@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit e2a5b420f716cd1a46674b1a90389612eced916f
Author: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com>
Date:   Fri Mar 18 16:20:46 2005 -0500

    [ACPI] ACPI poweroff fix
    
    Register an "acpi" system device to be notified of shutdown
preparation.
    This depends on CONFIG_PM
    
    http://bugzilla.kernel.org/show_bug.cgi?id=4041
    
    Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit be91492ca871e58f61b517cfba541095bb60001c
Author: Len Brown <len.brown@intel.com>
Date:   Fri Mar 18 16:00:29 2005 -0500

    [ACPI] CONFIG_ACPI now depends on CONFIG_PM
    
    Signed-off-by: Len Brown <len.brown@intel.com>

commit bd4698dad3023ae137b366c736e29ca6eaf3b9f7
Author: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com>
Date:   Fri Mar 18 15:35:22 2005 -0500

    [ACPI] Allow simultaneous Fixed Feature and Control Method buttons
    delete /proc/acpi/button
    
    http://bugzilla.kernel.org/show_bug.cgi?id=1920
    
    Signed-off-by: Alexey Starikovskiy <alexey.y.starikovskiy@intel.com>
    Signed-off-by: Len Brown <len.brown@intel.com>

commit 45b1b196677b8009ab6cdc4b656265f1d7015c1b
Author: Keiichiro Tokunaga <tokunaga.keiich@jp.fujitsu.com>
Date:   Wed Mar 2 00:00:00 2005 -0500

    [ACPI] update CONFIG_ACPI_CONTAINER Kconfig help
    
    Signed-off-by: Keiichiro Tokunaga <tokunaga.keiich@jp.fujitsu.com>
    Signed-off-by: Andrew Morton <akpm@osdl.org>
    Signed-off-by: Len Brown <len.brown@intel.com>




^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2005-07-12 22:09 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-01 20:47 [GIT PATCH] PCI patches for 2.6.13-rc1 Greg KH
2005-07-01 20:48 ` [PATCH] PCI: Fix up PCI routing in parent bridge Greg KH
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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox