19 Jan, 2012

1 commit

  • This includes initial support for the recently published ACPI 5.0 spec.
    In particular, support for the "hardware-reduced" bit that eliminates
    the dependency on legacy hardware.

    APEI has patches resulting from testing on real hardware.

    Plus other random fixes.

    * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux: (52 commits)
    acpi/apei/einj: Add extensions to EINJ from rev 5.0 of acpi spec
    intel_idle: Split up and provide per CPU initialization func
    ACPI processor: Remove unneeded variable passed by acpi_processor_hotadd_init V2
    ACPI processor: Remove unneeded cpuidle_unregister_driver call
    intel idle: Make idle driver more robust
    intel_idle: Fix a cast to pointer from integer of different size warning in intel_idle
    ACPI: kernel-parameters.txt : Add intel_idle.max_cstate
    intel_idle: remove redundant local_irq_disable() call
    ACPI processor: Fix error path, also remove sysdev link
    ACPI: processor: fix acpi_get_cpuid for UP processor
    intel_idle: fix API misuse
    ACPI APEI: Convert atomicio routines
    ACPI: Export interfaces for ioremapping/iounmapping ACPI registers
    ACPI: Fix possible alignment issues with GAS 'address' references
    ACPI, ia64: Use SRAT table rev to use 8bit or 16/32bit PXM fields (ia64)
    ACPI, x86: Use SRAT table rev to use 8bit or 32bit PXM fields (x86/x86-64)
    ACPI: Store SRAT table revision
    ACPI, APEI, Resolve false conflict between ACPI NVS and APEI
    ACPI, Record ACPI NVS regions
    ACPI, APEI, EINJ, Refine the fix of resource conflict
    ...

    Linus Torvalds
     

17 Jan, 2012

1 commit

  • Some firmware will access memory in ACPI NVS region via APEI. That
    is, instructions in APEI ERST/EINJ table will read/write ACPI NVS
    region. The original resource conflict checking in APEI code will
    check memory/ioport accessed by APEI via general resource management
    mechanism. But ACPI NVS region is marked as busy already, so that the
    false resource conflict will prevent APEI ERST/EINJ to work.

    To fix this, this patch record ACPI NVS regions, so that we can avoid
    request resources for memory region inside it.

    Signed-off-by: Huang Ying
    Signed-off-by: Len Brown

    Huang Ying
     

06 Dec, 2011

1 commit

  • If the kernel has requested control of the SHPC native hotplug
    feature for a given root bridge, the acpiphp driver should not try
    to handle that root bridge and it should leave it to shpchp.
    Failing to do so causes problems to happen if shpchp is loaded
    and unloaded before loading acpiphp (ACPI-based hotplug won't work
    in that case anyway).

    To address this issue make find_root_bridges() ignore PCI root
    bridges with SHPC native hotplug enabled and make add_bridge()
    return error code if SHPC native hotplug is enabled for the given
    root bridge. This causes acpiphp to refuse to load if SHPC native
    hotplug is enabled for all root bridges and to refuse binding to
    the root bridges with SHPC native hotplug enabled.

    Reviewed-by: Kenji Kaneshige
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Jesse Barnes

    Rafael J. Wysocki
     

04 Aug, 2011

1 commit

  • * 'apei-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
    ACPI, APEI, EINJ Param support is disabled by default
    APEI GHES: 32-bit buildfix
    ACPI: APEI build fix
    ACPI, APEI, GHES: Add hardware memory error recovery support
    HWPoison: add memory_failure_queue()
    ACPI, APEI, GHES, Error records content based throttle
    ACPI, APEI, GHES, printk support for recoverable error via NMI
    lib, Make gen_pool memory allocator lockless
    lib, Add lock-less NULL terminated single list
    Add Kconfig option ARCH_HAVE_NMI_SAFE_CMPXCHG
    ACPI, APEI, Add WHEA _OSC support
    ACPI, APEI, Add APEI bit support in generic _OSC call
    ACPI, APEI, GHES, Support disable GHES at boot time
    ACPI, APEI, GHES, Prevent GHES to be built as module
    ACPI, APEI, Use apei_exec_run_optional in APEI EINJ and ERST
    ACPI, APEI, Add apei_exec_run_optional
    ACPI, APEI, GHES, Do not ratelimit fatal error printk before panic
    ACPI, APEI, ERST, Fix erst-dbg long record reading issue
    ACPI, APEI, ERST, Prevent erst_dbg from loading if ERST is disabled

    Linus Torvalds
     

03 Aug, 2011

1 commit

  • b552a8c56db8 ("ACPI: remove NID_INVAL") removed the left over uses of
    NID_INVAL, but didn't actually remove the definition. Remove it.

    Signed-off-by: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Len Brown

    David Rientjes
     

14 Jul, 2011

1 commit

  • In APEI firmware first mode, hardware error is reported by hardware to
    firmware firstly, then firmware reports the error to Linux in a GHES
    error record via POLL/SCI/IRQ/NMI etc.

    This may result in some issues if OS has no full APEI support. So
    some firmware implementation will work in a back-compatible mode by
    default. Where firmware will only notify OS in old-fashion, without
    GHES record. For example, for a fatal hardware error, only NMI is
    signaled, no GHES record.

    To gain full APEI power on these machines, APEI bit in generic _OSC
    call can be specified to tell firmware that Linux has full APEI
    support. This patch adds the APEI bit support in generic _OSC call.

    Signed-off-by: Huang Ying
    Reviewed-by: Andi Kleen
    Reviewed-by: Matthew Garrett
    Signed-off-by: Len Brown

    Huang Ying
     

01 Apr, 2011

1 commit

  • static void acpi_ec_gpe_query(void *ec_cxt);
    -> The function is right above this declaration -> not needed.

    poll_force is also not used, cleaned up in ec.c and its users:
    compal-laptop and msi-laptop.

    Signed-off-by: Thomas Renninger
    Signed-off-by: Len Brown

    Thomas Renninger
     

21 Jan, 2011

1 commit

  • Commit ca9b600be38c ("ACPI / PM: Make suspend_nvs_save() use
    acpi_os_map_memory()") attempted to prevent the code in osl.c and nvs.c
    from using different ioremap() variants by making the latter use
    acpi_os_map_memory() for mapping the NVS pages. However, that also
    requires acpi_os_unmap_memory() to be used for unmapping them, which
    causes synchronize_rcu() to be executed many times in a row
    unnecessarily and introduces substantial delays during resume on some
    systems.

    Instead of using acpi_os_map_memory() for mapping the NVS pages in nvs.c
    introduce acpi_os_ioremap() calling ioremap_cache() and make the code in
    both osl.c and nvs.c use it.

    Reported-by: Jeff Chua
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     

13 Jan, 2011

1 commit


07 Jan, 2011

1 commit


11 Dec, 2010

1 commit

  • commit b0ed7a91(ACPICA/ACPI: Add new host interfaces for _OSI suppor)
    introduced a regression that _OSI string setup fails.

    There are 2 paths to setup _OSI string.

    DMI:
    acpi_dmi_osi_linux -> set_osi_linux -> acpi_osi_setup -> copy _OSI
    string to osi_setup_string

    Boot command line:
    acpi_osi_setup -> copy _OSI string to osi_setup_string

    Later, acpi_osi_setup_late will be called to handle osi_setup_string.
    If _OSI string is "Linux" or "!Linux", then the call path is,

    acpi_osi_setup_late -> acpi_cmdline_osi_linux -> set_osi_linux ->
    acpi_osi_setup -> copy _OSI string to osi_setup_string

    This actually never installs _OSI string(acpi_install_interface not
    called), but just copy the _OSI string to osi_setup_string.

    This patch fixes the regression.

    Reported-and-tested-by: Lukas Hejtmanek
    Signed-off-by: Lin Ming
    Signed-off-by: Len Brown

    Lin Ming
     

27 Oct, 2010

1 commit


25 Oct, 2010

1 commit

  • Add remapping and unmapping interfaces for ACPI registers that are
    backed by memory mapped I/O (MMIO). These interfaces, along with
    the MMIO remapping list, enable accesses of such registers from within
    interrupt context.

    ACPI Generic Address Structure (GAS) reference (ACPI's fixed/generic
    hardware registers use the GAS format):
    ACPI Specification, Revision 4.0, Section 5.2.3.1, "Generic Address
    Structure".

    Signed-off-by: Myron Stowe
    Signed-off-by: Len Brown

    Myron Stowe
     

20 Oct, 2010

1 commit


25 Aug, 2010

1 commit

  • It is possible that the BIOS will not grant control of all _OSC
    features requested via acpi_pci_osc_control_set(), so it is
    recommended to negotiate the final set of _OSC features with the
    query flag set before calling _OSC to request control of these
    features.

    To implement it, rework acpi_pci_osc_control_set() so that the caller
    can specify the mask of _OSC control bits to negotiate and the mask
    of _OSC control bits that are absolutely necessary to it. Then,
    acpi_pci_osc_control_set() will run _OSC queries in a loop until
    the mask of _OSC control bits returned by the BIOS is equal to the
    mask passed to it. Also, before running the _OSC request
    acpi_pci_osc_control_set() will check if the caller's required
    control bits are present in the final mask.

    Using this mechanism we will be able to avoid situations in which the
    BIOS doesn't grant control of certain _OSC features, because they
    depend on some other _OSC features that have not been requested.

    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Jesse Barnes

    Rafael J. Wysocki
     

25 Jul, 2010

1 commit

  • Commit 2a6b69765ad794389f2fc3e14a0afa1a995221c2
    (ACPI: Store NVS state even when entering suspend to RAM) caused the
    ACPI suspend code save the NVS area during suspend and restore it
    during resume unconditionally, although it is known that some systems
    need to use acpi_sleep=s4_nonvs for hibernation to work. To allow
    the affected systems to avoid saving and restoring the NVS area
    during suspend to RAM and resume, introduce kernel command line
    option acpi_sleep=nonvs and make acpi_sleep=s4_nonvs work as its
    alias temporarily (add acpi_sleep=s4_nonvs to the feature removal
    file).

    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=16396 .

    Signed-off-by: Rafael J. Wysocki
    Reported-and-tested-by: tomas m
    Signed-off-by: Len Brown

    Rafael J. Wysocki
     

29 May, 2010

1 commit

  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (27 commits)
    ACPI: Don't let acpi_pad needlessly mark TSC unstable
    drivers/acpi/sleep.h: Checkpatch cleanup
    ACPI: Minor cleanup eliminating redundant PMTIMER_TICKS to NS conversion
    ACPI: delete unused c-state promotion/demotion data strucutures
    ACPI: video: fix acpi_backlight=video
    ACPI: EC: Use kmemdup
    drivers/acpi: use kasprintf
    ACPI, APEI, EINJ injection parameters support
    Add x64 support to debugfs
    ACPI, APEI, Use ERST for persistent storage of MCE
    ACPI, APEI, Error Record Serialization Table (ERST) support
    ACPI, APEI, Generic Hardware Error Source memory error support
    ACPI, APEI, UEFI Common Platform Error Record (CPER) header
    Unified UUID/GUID definition
    ACPI Hardware Error Device (PNP0C33) support
    ACPI, APEI, PCIE AER, use general HEST table parsing in AER firmware_first setup
    ACPI, APEI, Document for APEI
    ACPI, APEI, EINJ support
    ACPI, APEI, HEST table parsing
    ACPI, APEI, APEI supporting infrastructure
    ...

    Linus Torvalds
     

28 May, 2010

1 commit

  • When the user passes the kernel parameter acpi_enforce_resources=lax,
    the ACPI resources are no longer protected, so a native driver can
    make use of them. In that case, we do not want the asus_atk0110 to be
    loaded. Unfortunately, this driver loads automatically due to its
    MODULE_DEVICE_TABLE, so the user ends up with two drivers loaded for
    the same device - this is bad.

    So I suggest that we prevent the asus_atk0110 driver from loading if
    acpi_enforce_resources=lax.

    Signed-off-by: Jean Delvare
    Acked-by: Luca Tettamanti
    Cc: Len Brown

    Jean Delvare
     

12 May, 2010

1 commit

  • The ACPI spec tells us that the firmware will reenable SCI_EN on resume.
    Reality disagrees in some cases. The ACPI spec tells us that the only way
    to set SCI_EN is via an SMM call.
    https://bugzilla.kernel.org/show_bug.cgi?id=13745 shows us that doing so
    may break machines. Tracing the ACPI calls made by Windows shows that it
    unconditionally sets SCI_EN on resume with a direct register write, and
    therefore the overwhelming probability is that everything is fine with
    this behaviour.

    Signed-off-by: Matthew Garrett
    Tested-by: Rafael J. Wysocki
    Signed-off-by: Len Brown

    Matthew Garrett
     

05 May, 2010

2 commits

  • In perverse acpi implementations the isa irqs are not identity mapped
    to the first 16 gsi. Furthermore at least the extended interrupt
    resource capability may return gsi's and not isa irqs. So since
    what we get from acpi is a gsi teach acpi_get_overrride_irq to
    operate on a gsi instead of an isa_irq.

    Signed-off-by: Eric W. Biederman
    LKML-Reference:
    Signed-off-by: H. Peter Anvin

    Eric W. Biederman
     
  • There are a number of cases where the current code makes the assumption
    that isa irqs identity map to the first 16 acpi global system intereupts.
    In most instances that assumption is correct as that is the required
    behaviour in dual i8259 mode and the default behavior in ioapic mode.

    However there are some systems out there that take advantage of acpis
    interrupt remapping for the isa irqs to have a completely different
    mapping of isa_irq to gsi.

    Introduce acpi_isa_irq_to_gsi to perform this mapping explicitly in the
    code that needs it. Initially this will be just the current assumed
    identity mapping to ensure it's introduction does not cause regressions.

    Signed-off-by: Eric W. Biederman
    LKML-Reference:
    Signed-off-by: H. Peter Anvin

    Eric W. Biederman
     

07 Jan, 2010

1 commit


31 Dec, 2009

1 commit

  • Introduce kernel parameter acpi_sleep=sci_force_enable

    some laptop requires SCI_EN being set directly on resume,
    or else they hung somewhere in the resume code path.

    We already have a blacklist for these laptops but we still need
    this option, especially when debugging some suspend/resume problems,
    in case there are systems that need this workaround and are not yet
    in the blacklist.

    Signed-off-by: Zhang Rui
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Len Brown

    Zhang Rui
     

17 Dec, 2009

4 commits


10 Dec, 2009

1 commit


19 Sep, 2009

3 commits


29 Aug, 2009

1 commit

  • linux/acpi.h is the top level header for interfacing
    with the ACPI sub-system, so acpi_disabled should be
    up there instead of down in asm/acpi.h -- particularly
    since asm/acpi.h doesn't exist for all architectures.

    Same story for acpi_table_parse(), which is a top-level
    API to Linux/ACPI.

    This is necessary for building some code that
    used to always depend on CONFIG_ACPI=y, but will soon
    also need to build with CONFIG_ACPI=n.

    Signed-off-by: Feng Tang
    Signed-off-by: Len Brown

    Feng Tang
     

24 Jun, 2009

1 commit


13 Jun, 2009

2 commits


28 Apr, 2009

1 commit

  • We want to use dev_to_node() later on, to be aware of the 'home node'
    of the GSI in question.

    [ Impact: cleanup, prepare the IRQ code to be more NUMA aware ]

    Signed-off-by: Yinghai Lu
    Acked-by: Len Brown
    Cc: Andrew Morton
    Cc: Suresh Siddha
    Cc: "Eric W. Biederman"
    Cc: Rusty Russell
    Cc: Len Brown
    Cc: Bjorn Helgaas
    Cc: Tony Luck
    Cc: linux-acpi@vger.kernel.org
    Cc: linux-ia64@vger.kernel.org
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Yinghai Lu
     

21 Apr, 2009

1 commit


05 Apr, 2009

1 commit


04 Apr, 2009

1 commit

  • All logical processors with APIC ID values of 255 and greater will have their
    APIC reported through Processor X2APIC structure (type-9 entry type) and all
    logical processors with APIC ID less than 255 will have their APIC reported
    through legacy Processor Local APIC (type-0 entry type) only. This is the
    same case even for NMI structure reporting.

    The Processor X2APIC Affinity structure provides the association between the
    X2APIC ID of a logical processor and the proximity domain to which the logical
    processor belongs.

    For OSPM, Procssor IDs outside the 0-254 range are to be declared as Device()
    objects in the ACPI namespace.

    Signed-off-by: Suresh Siddha
    Signed-off-by: Len Brown

    Suresh Siddha
     

02 Apr, 2009

1 commit

  • * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (88 commits)
    PCI: fix HT MSI mapping fix
    PCI: don't enable too much HT MSI mapping
    x86/PCI: make pci=lastbus=255 work when acpi is on
    PCI: save and restore PCIe 2.0 registers
    PCI: update fakephp for bus_id removal
    PCI: fix kernel oops on bridge removal
    PCI: fix conflict between SR-IOV and config space sizing
    powerpc/PCI: include pci.h in powerpc MSI implementation
    PCI Hotplug: schedule fakephp for feature removal
    PCI Hotplug: rename legacy_fakephp to fakephp
    PCI Hotplug: restore fakephp interface with complete reimplementation
    PCI: Introduce /sys/bus/pci/devices/.../rescan
    PCI: Introduce /sys/bus/pci/devices/.../remove
    PCI: Introduce /sys/bus/pci/rescan
    PCI: Introduce pci_rescan_bus()
    PCI: do not enable bridges more than once
    PCI: do not initialize bridges more than once
    PCI: always scan child buses
    PCI: pci_scan_slot() returns newly found devices
    PCI: don't scan existing devices
    ...

    Fix trivial append-only conflict in Documentation/feature-removal-schedule.txt

    Linus Torvalds