History

[PATCH] PCI: reverse pci config space restore order

According to Intel ICH spec, there are several rules that Base Address should be programmed before IOSE (PCICMD register ) enabled. For example ICH7: 12.1.3 SATA : the base address register for the bus master register should be programmed before this bit is set. 11.1.3: PCICMD (USB): The base address register for USB should be programmed before this bit is set. .... To make sure kernel code follow this rule , and prevent unnecessary confusion. I proposal this patch.

Yu, Luming committed 20 years ago

Commit 8b8c8d21 parent 04d9c1a1 file · +5 −1Browse files

Unified · Split

drivers/pci/pci.c+5−1
@@ -463,7 +463,11 @@ pci_restore_state(struct pci_dev *dev) · 462 unmodified lines
463 int i;463 int i;
464 int val;464 int val;
465 465
466 for (i = 0; i < 16; i++) {466 /*
467 * The Base Address register should be programmed before the command
468 * register(s)
469 */
470 for (i = 15; i >= 0; i--) {
467 pci_read_config_dword(dev, i * 4, &val);471 pci_read_config_dword(dev, i * 4, &val);
468 if (val != dev->saved_config_space[i]) {472 if (val != dev->saved_config_space[i]) {
469 printk(KERN_DEBUG "PM: Writing back config space on "473 printk(KERN_DEBUG "PM: Writing back config space on "