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