1. 15 8月, 2010 4 次提交
  2. 03 8月, 2010 2 次提交
    • T
      acpi ec_sys: Be more cautious about ec write access · 500de3dd
      Thomas Renninger 提交于
      - Set Kconfig option default n
      - Only allow root to read/write io file (sever bug!)
      - Introduce write support module param -> default off
      - Properly clean up if any debugfs files cannot be created
      Signed-off-by: NThomas Renninger <trenn@suse.de>
      CC: mjg59@srcf.ucam.org
      CC: platform-driver-x86@vger.kernel.org
      CC: linux-acpi@vger.kernel.org
      CC: astarikovskiy@suse.de
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      500de3dd
    • T
      ACPI: Provide /sys/kernel/debug/ec/... · 1195a098
      Thomas Renninger 提交于
      This patch provides the same information through debugfs, which previously was
      provided through /proc/acpi/embedded_controller/*/info
      
      This is the gpe the EC is connected to and whether the global lock
      gets used.
      The io ports used are added to /proc/ioports in another patch.
      Beside the fact that /proc/acpi is deprecated for quite some time,
      this info is not needed for applications and thus can be moved
      to debugfs instead of a public interface like /sys.
      Signed-off-by: NThomas Renninger <trenn@suse.de>
      
      CC: Alexey Starikovskiy <astarikovskiy@suse.de>
      CC: Len Brown <lenb@kernel.org>
      CC: linux-kernel@vger.kernel.org
      CC: linux-acpi@vger.kernel.org
      CC: Bjorn Helgaas <bjorn.helgaas@hp.com>
      CC: platform-driver-x86@vger.kernel.org
      Signed-off-by: NMatthew Garrett <mjg@redhat.com>
      1195a098
  3. 20 5月, 2010 2 次提交
    • H
      ACPI Hardware Error Device (PNP0C33) support · 801eab81
      Huang Ying 提交于
      Hardware Error Device (PNP0C33) is used to report some hardware errors
      notified via SCI, mainly the corrected errors. Some APEI Generic
      Hardware Error Source (GHES) may use SCI on hardware error device to
      notify hardware error to kernel.
      
      After receiving notification from ACPI core, it is forwarded to all
      listeners via a notifier chain. The listener such as APEI GHES should
      check corresponding error source for new events when notified.
      Signed-off-by: NHuang Ying <ying.huang@intel.com>
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      801eab81
    • H
      ACPI, APEI, APEI supporting infrastructure · a643ce20
      Huang Ying 提交于
      APEI stands for ACPI Platform Error Interface, which allows to report
      errors (for example from the chipset) to the operating system. This
      improves NMI handling especially. In addition it supports error
      serialization and error injection.
      
      For more information about APEI, please refer to ACPI Specification
      version 4.0, chapter 17.
      
      This patch provides some common functions used by more than one APEI
      tables, mainly framework of interpreter for EINJ and ERST.
      
      A machine readable language is defined for EINJ and ERST for OS to
      execute, and so to drive the firmware to fulfill the corresponding
      functions. The machine language for EINJ and ERST is compatible, so a
      common framework is defined for them.
      Signed-off-by: NHuang Ying <ying.huang@intel.com>
      Signed-off-by: NAndi Kleen <ak@linux.intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      a643ce20
  4. 10 10月, 2009 1 次提交
  5. 27 9月, 2009 1 次提交
  6. 19 9月, 2009 1 次提交
    • D
      hwmon driver for ACPI 4.0 power meters · de584afa
      Darrick J. Wong 提交于
      This driver exposes ACPI 4.0 compliant power meters as hardware monitoring
      devices.  This second revision of the driver also exports the ACPI string
      info as sysfs attributes, a list of the devices that the meter measures,
      and will send ACPI notifications over the ACPI netlink socket.  This
      latest revision only enables the power capping controls if it can be
      confirmed that the power cap can be enforced by the hardware and explains
      how the notification interfaces work.
      
      [akpm@linux-foundation.org: remove default-y]
      [akpm@linux-foundation.org: build fix]
      Signed-off-by: NDarrick J. Wong <djwong@us.ibm.com>
      Cc: Zhang Rui <rui.zhang@intel.com>
      Cc: Pavel Machek <pavel@ucw.cz>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      de584afa
  7. 01 8月, 2009 1 次提交
    • S
      ACPI: create Processor Aggregator Device driver · 8e0af514
      Shaohua Li 提交于
      ACPI 4.0 created the logical "processor aggregator device" as
      a mechinism for platforms to ask the OS to force otherwise busy
      processors to enter (power saving) idle.
      
      The intent is to lower power consumption to ride-out
      transient electrical and thermal emergencies,
      rather than powering off the server.
      
      On platforms that can save more power/performance via P-states,
      the platform will first exhaust P-states before forcing idle.
      However, the relative benefit of P-states vs. idle states
      is platform dependent, and thus this driver need not know
      or care about it.
      
      This driver does not use the kernel's CPU hot-plug mechanism
      because after the transient emergency is over, the system must
      be returned to its normal state, and hotplug would permanently
      break both cpusets and binding.
      
      So to force idle, the driver creates a power saving thread.
      The scheduler will migrate the thread to the preferred CPU.
      The thread has max priority and has SCHED_RR policy,
      so it can occupy one CPU.  To save power, the thread will
      invoke the deep C-state entry instructions.
      
      To avoid starvation, the thread will sleep 5% of the time
      time for every second (current RT scheduler has threshold
      to avoid starvation, but if other CPUs are idle,
      the CPU can borrow CPU timer from other,
      which makes the mechanism not work here)
      
      Vaidyanathan Srinivasan has proposed scheduler enhancements
      to allow injecting idle time into the system.  This driver doesn't
      depend on those enhancements, but could cut over to them
      when they are available.
      
      Peter Z. does not favor upstreaming this driver until
      the those scheduler enhancements are in place.  However,
      we favor upstreaming this driver now because it is useful
      now, and can be enhanced over time.
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      NACKed-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      8e0af514
  8. 24 6月, 2009 1 次提交
  9. 19 6月, 2009 1 次提交
  10. 17 3月, 2009 1 次提交
  11. 22 2月, 2009 1 次提交
    • B
      ACPI: remove CONFIG_ACPI_SYSTEM · ba193d64
      Bjorn Helgaas 提交于
      Remove CONFIG_ACPI_SYSTEM.  It was always set the same as CONFIG_ACPI,
      and it had no menu label, so there was no way to set it to anything
      other than "y".
      
      Some things under CONFIG_ACPI_SYSTEM (acpi_irq_handled, acpi_os_gpe_count(),
      event_is_open, register_acpi_notifier(), etc.) are used unconditionally
      by the CA, the OSPM, and drivers, so we depend on them always being
      present.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      ba193d64
  12. 07 2月, 2009 2 次提交
  13. 19 12月, 2008 1 次提交
  14. 08 11月, 2008 1 次提交
  15. 07 11月, 2008 2 次提交
    • B
      ACPI: remove CONFIG_ACPI_EC · 8950d89a
      Bjorn Helgaas 提交于
      Remove CONFIG_ACPI_EC.  It was always set the same as CONFIG_ACPI,
      and it had no menu label, so there was no way to set it to anything
      other than "y".
      
      Per section 6.5.4 of the ACPI 3.0b specification,
      
          OSPM must make Embedded Controller operation regions, accessed
          via the Embedded Controllers described in ECDT, available before
          executing any control method.
      
      The ECDT table is optional, but if it is present, the above text
      means that the EC it describes is a required part of the ACPI
      subsystem, so CONFIG_ACPI_EC=n wouldn't make sense.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Acked-by: NAlexey Starikovskiy <astarikovskiy@suse.de>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      8950d89a
    • B
      ACPI: remove CONFIG_ACPI_POWER · fefe5ab3
      Bjorn Helgaas 提交于
      Remove CONFIG_ACPI_POWER.  It was always set the same as CONFIG_ACPI,
      and it had no menu label, so there was no way to set it to anything
      other than "y".
      
      The interfaces under CONFIG_ACPI_POWER (acpi_device_sleep_wake(),
      acpi_power_transition(), etc) are called unconditionally from the
      ACPI core, so we already depend on it always being present.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      fefe5ab3
  16. 23 10月, 2008 2 次提交
    • S
      dock: make dock driver not a module · 898b054f
      Shaohua Li 提交于
      To avoid dock driver is loaded after other drivers like libata, let's
      make dock driver not a module.
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      898b054f
    • R
      ACPI suspend: Fix CONFIG_ACPI_SLEEP dependence and some compilation warnings · 5d1e072b
      Rafael J. Wysocki 提交于
      Initially CONFIG_PM_SLEEP was defined as
      CONFIG_SUSPEND || CONFIG_HIBERNATION and some ACPI code, most
      importantly the code in drivers/acpi/main.c, was written with this
      assumption.  Currently, however, CONFIG_PM_SLEEP is also set when
      CONFIG_XEN_SAVE_RESTORE is set.
      
      This causes some compilation warnings to appear in
      drivers/acpi/main.c if both CONFIG_SUSPEND and CONFIG_HIBERNATION
      are unset and CONFIG_PM_SLEEP is set (this was impossible before).
      To fix this problem, redefine CONFIG_ACPI_SLEEP do depend directly
      on CONFIG_SUSPEND || CONFIG_HIBERNATION, as originally intended, and
      use it instead of CONFIG_PM_SLEEP in drivers/acpi/main.c, wherever
      appropriate.
      
      Additionally, move the acpi_target_sleep_state definition from under
      the #ifdef to prevent compilation from failing in some cases.
      Signed-off-by: NRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      5d1e072b
  17. 13 10月, 2008 1 次提交
  18. 11 10月, 2008 1 次提交
    • R
      toshiba_acpi: depends on INPUT · b3cef8f6
      Randy Dunlap 提交于
      CONFIG_ACPI_TOSHIBA can =y when CONFIG_INPUT=m, so prevent that
      combination and its subsequent build errors:
      
      toshiba_acpi.c:(.text+0x3e877): undefined reference to `input_event'
      toshiba_acpi.c:(.text+0x3e98a): undefined reference to `input_unregister_polled_device'
      toshiba_acpi.c:(.text+0x3e994): undefined reference to `input_free_polled_device'
      toshiba_acpi.c:(.init.text+0x21b4): undefined reference to `input_allocate_polled_device'
      toshiba_acpi.c:(.init.text+0x2263): undefined reference to `input_register_polled_device'
      make[1]: *** [.tmp_vmlinux1] Error 1
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      b3cef8f6
  19. 24 9月, 2008 1 次提交
  20. 06 9月, 2008 1 次提交
  21. 11 7月, 2008 1 次提交
  22. 11 6月, 2008 1 次提交
  23. 10 6月, 2008 1 次提交
  24. 29 4月, 2008 1 次提交
  25. 16 3月, 2008 1 次提交
    • L
      ACPI: Remove ACPI_CUSTOM_DSDT_INITRD option · 9a9e0d68
      Linus Torvalds 提交于
      This essentially reverts commit 71fc47a9
      ("ACPI: basic initramfs DSDT override support"), because the code simply
      isn't ready.
      
      It did ugly things to the init sequence to populate the rootfs image
      early, but that just ended up showing other problems with the whole
      approach.  The fact is, the VFS layer simply isn't initialized this
      early, and the relevant ACPI code should either run much later, or this
      shouldn't be done at all.
      
      For 2.6.25, we'll just pick the latter option.  We can revisit this
      concept later if necessary.
      
      Cc: Dave Hansen <haveblue@us.ibm.com>
      Cc: Tilman Schmidt <tilman@imap.cc>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Thomas Renninger <trenn@suse.de>
      Cc: Eric Piel <eric.piel@tremplin-utc.net>
      Cc: Len Brown <len.brown@intel.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Markus Gaugusch <dsdt@gaugusch.at>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      9a9e0d68
  26. 23 2月, 2008 1 次提交
  27. 08 2月, 2008 2 次提交
  28. 07 2月, 2008 3 次提交
  29. 06 2月, 2008 1 次提交
    • C
      ACPI: WMI: Add ACPI-WMI mapping driver · bff431e4
      Carlos Corbacho 提交于
      The following is an implementation of the Windows Management
      Instrumentation (WMI) ACPI interface mapper (PNP0C14).
      
      What it does:
      
      Parses the _WDG method and exports functions to process WMI method calls,
      data block query/ set commands (both based on GUID) and does basic event
      handling.
      
      How: WMI presents an in kernel interface here (essentially, a minimal
      wrapper around ACPI)
      
      (const char *guid assume the 36 character ASCII representation of
      a GUID - e.g. 67C3371D-95A3-4C37-BB61-DD47B491DAAB)
      
      wmi_evaluate_method(const char *guid, u8 instance, u32 method_id,
      const struct acpi_buffer *in, struct acpi_buffer *out)
      
      wmi_query_block(const char *guid, u8 instance,
      struct acpi_buffer *out)
      
      wmi_set_block(const char *guid, u38 instance,
      const struct acpi_buffer *in)
      
      wmi_install_notify_handler(acpi_notify_handler handler);
      
      wmi_remove_notify_handler(void);
      
      wmi_get_event_data(u32 event, struct acpi_buffer *out)
      
      wmi_has_guid(const char guid*)
      
      wmi_has_guid() is a helper function to find if a GUID exists or not on the
      system (a quick and easy way for WMI dependant drivers to see if the
      the method/ block they want exists, since GUIDs are supposed to be unique).
      
      Event handling - allow a WMI based driver to register a notifier handler
      for each GUID with WMI. When a notification is sent to a GUID in WMI, the
      handler registered with WMI is then called (it is left to the caller to
      ask for the WMI event data associated with the GUID, if needed).
      
      What it won't do:
      
      Unicode - The MS article[1] calls for converting between ASCII and Unicode (or
      vice versa) if a GUID is marked as "string". This is left up to the calling
      driver.
      
      Handle a MOF[1] - the WMI mapper just exports methods, data and events to
      userspace. MOF handling is down to userspace.
      
      Userspace interface - this will be added later.
      
      [1] http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx
      
      ===
      ChangeLog
      ==
      
      v1 (2007-10-02):
      
      * Initial release
      
      v2 (2007-10-05):
      
      * Cleaned up code - split up super "wmi_evaluate_block" -> each external
        symbol now handles its own ACPI calls, rather than handing off to
        a "super" method (and in turn, is a lot simpler to read)
      * Added a find_guid() symbol - return true if a given GUID exists on
        the system
      * wmi_* functions now return type acpi_status (since they are just
        fancy wrappers around acpi_evaluate_object())
      * Removed extra debug code
      
      v3 (2007-10-27)
      
      * More code clean up - now passes checkpatch.pl
      * Change data block calls - ref MS spec, method ID is not required for
        them, so drop it from the function parameters.
      * Const'ify guid in the function call parameters.
      * Fix _WDG buffer handling - copy the data to our own private structure.
      * Change WMI from tristate to bool - otherwise the external functions are
        not exported in linux/acpi.h if you try to build WMI as a module.
      * Fix more flag comparisons.
      * Add a maintainers entry - since I wrote this, I should take the blame
        for it.
      
      v4 (2007-10-30)
      
      * Add missing brace from after fixing checkpatch errors.
      * Rewrote event handling - allow external drivers to register with WMI to
        handle WMI events
      * Clean up flags and sanitise flag handling
      
      v5 (2007-11-03)
      
      * Add sysfs interface for userspace. Export events over netlink again.
      * Remove module left overs, fully convert to built-in driver.
      * Tweak in-kernel API to use u8 for instance, since this is what the GUID
        blocks use (so instance cannot be greater than u8).
      * Export wmi_get_event_data() for in kernel WMI drivers.
      
      v6 (2007-11-07)
      
      * Split out userspace into a different patch
      
      v7 (2007-11-20)
      
      * Fix driver to handle multiple PNP0C14 devices - store all GUIDs using
        the kernel's built in list functions, and just keep adding to the list
        every time we handle a PNP0C14 devices - GUIDs will always be unique,
        and WMI callers do not know or care about different devices.
      * Change WMI event handler registration to use its' own event handling
        struct; we should not pass an acpi_handle down to any WMI based drivers
        - they should be able to function with only the calls provided in WMI.
      * Update my e-mail address
      
      v8 (2007-11-28)
      
      * Convert back to a module.
      * Update Kconfig to default to building as a module.
      * Remove an erroneous printk.
      * Simply comments for string flag (since we now leave the handling to the
        caller).
      
      v9 (2007-12-07)
      
      * Add back missing MODULE_DEVICE_TABLE for autoloading
      * Checkpatch fixes
      
      v10 (2007-12-12)
      
      * Workaround broken GUIDs declared expensive without a WCxx method.
      * Minor cleanups
      
      v11 (2007-12-17)
      
      * More fixing for broken GUIDs declared expensive without a WCxx method.
      * Add basic EmbeddedControl region handling.
      
      v12 (2007-12-18)
      
      * Changed EC region handling code, as per Alexey's comments.
      
      v13 (2007-12-27)
      
      * Changed event handling so that we can have one event handler registered
        per GUID, as per Matthew Garrett's suggestion.
      
      v14 (2008-01-12)
      
      * Remove ACPI debug statements
      
      v15 (2008-02-01)
      
      * Replace two remaining 'x == NULL' type tests with '!x'
      
      v16 (2008-02-05)
      
      * Change MAINTAINERS entry, as I am not, and never have been, paid to work
        on WMI
      * Remove 'default' line from Kconfig
      Signed-off-by: NCarlos Corbacho <carlos@strangeworlds.co.uk>
      CC: Matthew Garrett <mjg59@srcf.ucam.org>
      CC: Alexey Starikovskiy <aystarik@gmail.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      bff431e4