linux/drivers/acpi
Bjorn Helgaas b8178f130e Revert "PCI/ACPI: Request _OSC control before scanning PCI root bus"
This reverts commit 8c33f51df4.

Conflicts:
	drivers/acpi/pci_root.c

This commit broke some pre-1.1 PCIe devices by leaving them with
ASPM enabled.  Previously, we had disabled ASPM on these devices
because many of them don't implement it correctly (per 149e1637).

Requesting _OSC control early means that aspm_disabled may be set
before we scan the PCI bus and configure link ASPM state.  But the
ASPM configuration currently skips the check for pre-PCIe 1.1 devices
when aspm_disabled is set, like this:

    acpi_pci_root_add
      acpi_pci_osc_support
        if (flags != base_flags)
          pcie_no_aspm
            aspm_disabled = 1
      pci_acpi_scan_root
        ...
          pcie_aspm_init_link_state
            pcie_aspm_sanity_check
              if (!aspm_disabled)
                /* check for pre-PCIe 1.1 device */

Therefore, setting aspm_disabled early means that we leave ASPM enabled
on these pre-PCIe 1.1 devices, which is a regression for some devices.

The best fix would be to clean up the ASPM init so we can evaluate
_OSC before scanning the bug (that way boot-time and hot-add discovery
will work the same), but that requires significant rework.

For now, we'll just revert the _OSC change as the lowest-risk fix.

Reference: https://bugzilla.kernel.org/show_bug.cgi?id=55211
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Yinghai Lu <yinghai@kernel.org>
CC: stable@vger.kernel.org	# v3.8+
2013-04-02 18:02:40 -06:00
..
acpica ACPICA: Update predefined info table for _MLS method 2013-01-25 13:30:48 +01:00
apei Merge branch 'linux_next' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-edac 2013-02-28 20:42:33 -08:00
ac.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
acpi_i2c.c i2c / ACPI: add ACPI enumeration support 2012-11-23 12:23:40 +01:00
acpi_ipmi.c IPMI/ACPI: Add the IPMI opregion driver to enable ACPI to access BMC controller 2010-12-14 00:22:14 -05:00
acpi_memhotplug.c memory-hotplug: remove sysfs file of node 2013-02-23 17:50:13 -08:00
acpi_pad.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
acpi_platform.c ACPI / platform: Use struct acpi_scan_handler for creating devices 2013-01-30 14:27:40 +01:00
battery.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
bgrt.c efi: Fix the ACPI BGRT driver for images located in EFI boot services memory 2012-09-29 12:21:03 -07:00
blacklist.c acpi: delete module.h include from files explicitly not needing it 2011-10-31 19:30:33 -04:00
bus.c ACPI / PM: Move device power management functions to device_pm.c 2013-01-19 22:09:22 +01:00
button.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
cm_sbs.c
container.c ACPI / hotplug: Fix concurrency issues and memory leaks 2013-02-13 14:36:47 +01:00
csrt.c ACPI: add support for CSRT table 2013-01-19 22:16:21 +01:00
custom_method.c The sweeping change is to make add_taint() explicitly indicate whether to disable 2013-02-25 15:41:43 -08:00
debugfs.c acpi: add export.h to files using THIS_MODULE/EXPORT_SYMBOL 2011-10-31 19:30:34 -04:00
device_pm.c Merge branch 'acpi-scan' 2013-02-11 13:20:02 +01:00
dock.c ACPI / hotplug: Fix concurrency issues and memory leaks 2013-02-13 14:36:47 +01:00
ec_sys.c simple_open: automatically convert to simple_open() 2012-04-05 15:25:50 -07:00
ec.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
event.c acpi: add export.h to files using THIS_MODULE/EXPORT_SYMBOL 2011-10-31 19:30:34 -04:00
fan.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
glue.c ACPI / glue: Drop .find_bridge() callback from struct acpi_bus_type 2013-03-04 14:23:40 +01:00
hed.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
internal.h ACPI and power management fixes for 3.9-rc1 2013-02-25 21:25:17 -08:00
Kconfig Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2013-02-27 16:16:39 -08:00
Makefile ACPI: add support for CSRT table 2013-01-19 22:16:21 +01:00
numa.c x86, ACPI, mm: Revert movablemem_map support 2013-03-02 09:34:39 -08:00
nvs.c ACPI / PM: print physical addresses consistently with other parts of kernel 2012-03-30 02:46:57 -04:00
osl.c PCI changes for the v3.9 merge window: 2013-02-25 21:18:18 -08:00
pci_irq.c PCI/ACPI: Don't cache _PRT, and don't associate them with bus numbers 2013-02-16 11:58:34 -07:00
pci_link.c ACPI / PCI: Make PCI IRQ link driver use struct acpi_scan_handler 2013-01-30 14:27:37 +01:00
pci_root.c Revert "PCI/ACPI: Request _OSC control before scanning PCI root bus" 2013-04-02 18:02:40 -06:00
pci_slot.c PCI changes for the v3.9 merge window: 2013-02-25 21:18:18 -08:00
power.c ACPI / PM: Take unusual configurations of power resources into account 2013-02-23 23:15:21 +01:00
proc.c ACPI / PM: Fix /proc/acpi/wakeup for devices w/o bus or parent 2013-01-27 21:40:11 +01:00
processor_core.c ACPI / processor: Remove redundant NULL check before kfree 2013-03-04 14:23:39 +01:00
processor_driver.c ACPI / porocessor: Beautify code, pr->id is u32 which is never < 0 2013-03-04 14:23:39 +01:00
processor_idle.c Merge branch 'misc' into release 2013-02-18 00:25:53 -05:00
processor_perflib.c acpi: Export the acpi_processor_get_performance_info 2013-03-06 10:00:34 -05:00
processor_thermal.c ACPI: Do cpufreq clamping for throttling per package v2 2012-03-22 02:16:14 -04:00
processor_throttling.c ACPI throttling: fix endian bug in acpi_read_throttling_status() 2012-03-30 16:06:12 -04:00
reboot.c Revert "ACPI: ignore FADT reset-reg-sup flag" 2012-04-20 11:19:35 -07:00
resource.c ACPI: remove unnecessary INIT_LIST_HEAD 2012-11-27 13:49:36 +01:00
sbs.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
sbshc.c ACPI: Remove useless type argument of driver .remove() operation 2013-01-26 00:37:24 +01:00
sbshc.h
scan.c ACPI and power management fixes for 3.9-rc1 2013-02-25 21:25:17 -08:00
sleep.c ACPI / Sleep: Avoid interleaved message on errors 2013-03-04 14:23:39 +01:00
sleep.h ACPI: Drop power resources driver 2013-01-17 14:11:06 +01:00
sysfs.c ACPI sysfs: remove unnecessary newline from exception 2013-01-26 00:34:21 +01:00
tables.c ACPICA: Cleanup table handler naming conflicts. 2013-01-11 13:10:16 +01:00
thermal.c Merge branch 'acpi-assorted' 2013-02-15 13:58:43 +01:00
utils.c ACPI: Add acpi_handle_<level>() interfaces 2012-11-21 23:20:22 +01:00
video_detect.c ACPI / video: Add "Asus UL30VT" to ACPI video detect blacklist 2012-11-30 13:02:50 +01:00
video.c Merge branch 'acpi-assorted' 2013-02-15 13:58:43 +01:00
wakeup.c ACPI / Wakeup: Enable button GPEs unconditionally during initialization 2011-02-12 01:39:53 +01:00