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