1. 24 1月, 2008 4 次提交
    • L
      ACPI: make _OSI(Linux) console messages smarter · d4b7dc49
      Len Brown 提交于
      If BIOS invokes _OSI(Linux), the kernel response
      depends on what the ACPI DMI list knows about the system,
      and that is reflectd in dmesg:
      
      1) System unknown to DMI:
      
      ACPI: BIOS _OSI(Linux) query ignored
      ACPI: DMI System Vendor: LENOVO
      ACPI: DMI Product Name: 7661W1P
      ACPI: DMI Product Version: ThinkPad T61
      ACPI: DMI Board Name: 7661W1P
      ACPI: DMI BIOS Vendor: LENOVO
      ACPI: DMI BIOS Date: 10/18/2007
      ACPI: Please send DMI info above to linux-acpi@vger.kernel.org
      ACPI: If "acpi_osi=Linux" works better, please notify linux-acpi@vger.kernel.org
      
      2) System known to DMI, but effect of OSI(Linux) unknown:
      
      ACPI: DMI detected: Lenovo ThinkPad T61
      ...
      ACPI: BIOS _OSI(Linux) query ignored via DMI
      ACPI: If "acpi_osi=Linux" works better, please notify linux-acpi@vger.kernel.org
      
      3) System known to DMI, which disables _OSI(Linux):
      
      ACPI: DMI detected: Lenovo ThinkPad T61
      ...
      ACPI: BIOS _OSI(Linux) query ignored via DMI
      
      4) System known to DMI, which enable _OSI(Linux):
      
      ACPI: DMI detected: Lenovo ThinkPad T61
      ACPI: Added _OSI(Linux)
      ...
      ACPI: BIOS _OSI(Linux) query honored via DMI
      
      cmdline overrides take precidence over the built-in
      default and the DMI prescribed default.
      cmdline "acpi_osi=Linux" results in:
      
      ACPI: BIOS _OSI(Linux) query honored via cmdline
      Signed-off-by: NLen Brown <len.brown@intel.com>
      d4b7dc49
    • L
      ACPI: Delete Intel Customer Reference Board (CRB) from OSI(Linux) DMI list · 7ce95ce5
      Len Brown 提交于
      Linux does not want BIOS writers to invoke _OSI(Linux) -
      for in the field it causes more Windows incompatibility problems
      than it solves.
      
      So when it is seen in the BIOS for an Intel Customer Reference Board,
      Linux should ignore its effect by default, and should complain loudly.
      Otherwise, the reference BIOS will go unfixed, and the bad BIOS
      will spread to the field.
      
      Users of this board can get the old behavior with "acpi_osi=Linux"
      
      As this was the only entry, delete acpi_osl_dmi_table[].
      Signed-off-by: NLen Brown <len.brown@intel.com>
      7ce95ce5
    • L
    • L
      ACPI: create acpi_dmi_dump() · 5a4e1432
      Len Brown 提交于
      A utility routine to print common entries used
      for ACPI-related DMI blacklist entries.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      5a4e1432
  2. 17 11月, 2007 1 次提交
  3. 10 10月, 2007 2 次提交
    • L
      cpuidle: consolidate 2.6.22 cpuidle branch into one patch · 4f86d3a8
      Len Brown 提交于
      commit e5a16b1f9eec0af7cfa0830304b41c1c0833cf9f
      Author: Len Brown <len.brown@intel.com>
      Date:   Tue Oct 2 23:44:44 2007 -0400
      
          cpuidle: shrink diff
      
          processor_idle.c |  440 +++++++++++++++++++++++++++++++++++++++++--
          1 file changed, 429 insertions(+), 11 deletions(-)
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit dfbb9d5aedfb18848a3e0d6f6e3e4969febb209c
      Author: Len Brown <len.brown@intel.com>
      Date:   Wed Sep 26 02:17:55 2007 -0400
      
          cpuidle: reduce diff size
      
          Reduces the cpuidle processor_idle.c diff vs 2.6.22 from this
           processor_idle.c | 2006 ++++++++++++++++++++++++++-----------------
           1 file changed, 1219 insertions(+), 787 deletions(-)
      
          to this:
           processor_idle.c |  502 +++++++++++++++++++++++++++++++++++++++----
           1 file changed, 458 insertions(+), 44 deletions(-)
      
          ...for the purpose of making the cpuilde patch less invasive
          and easier to review.
      
          no functional changes.  build tested only.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 889172fc915f5a7fe20f35b133cbd205ce69bf6c
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Thu Sep 13 13:40:05 2007 -0700
      
          cpuidle: Retain old ACPI policy for !CONFIG_CPU_IDLE
      
          Retain the old policy in processor_idle, so that when CPU_IDLE is not
          configured, old C-state policy will still be used. This provides a
          clean gradual migration path from old ACPI policy to new cpuidle
          based policy.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 9544a8181edc7ecc33b3bfd69271571f98ed08bc
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Thu Sep 13 13:39:17 2007 -0700
      
          cpuidle: Configure governors by default
      
          Quoting Len "Do not give an option to users to shoot themselves in the foot".
      
          Remove the configurability of ladder and menu governors as they are
          needed for default policy of cpuidle. That way users will not be able to
          have cpuidle without any policy loosing all C-state power savings.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 8975059a2c1e56cfe83d1bcf031bcf4cb39be743
      Author: Adam Belay <abelay@novell.com>
      Date:   Tue Aug 21 18:27:07 2007 -0400
      
          CPUIDLE: load ACPI properly when CPUIDLE is disabled
      
          Change the registration return codes for when CPUIDLE
          support is not compiled into the kernel.  As a result, the ACPI
          processor driver will load properly even if CPUIDLE is unavailable.
          However, it may be possible to cleanup the ACPI processor driver further
          and eliminate some dead code paths.
      Signed-off-by: NAdam Belay <abelay@novell.com>
      Acked-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit e0322e2b58dd1b12ec669bf84693efe0dc2414a8
      Author: Adam Belay <abelay@novell.com>
      Date:   Tue Aug 21 18:26:06 2007 -0400
      
          CPUIDLE: remove cpuidle_get_bm_activity()
      
          Remove cpuidle_get_bm_activity() and updates governors
          accordingly.
      Signed-off-by: NAdam Belay <abelay@novell.com>
      Acked-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 18a6e770d5c82ba26653e53d240caa617e09e9ab
      Author: Adam Belay <abelay@novell.com>
      Date:   Tue Aug 21 18:25:58 2007 -0400
      
          CPUIDLE: max_cstate fix
      
          Currently max_cstate is limited to 0, resulting in no idle processor
          power management on ACPI platforms.  This patch restores the value to
          the array size.
      Signed-off-by: NAdam Belay <abelay@novell.com>
      Acked-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 1fdc0887286179b40ce24bcdbde663172e205ef0
      Author: Adam Belay <abelay@novell.com>
      Date:   Tue Aug 21 18:25:40 2007 -0400
      
          CPUIDLE: handle BM detection inside the ACPI Processor driver
      
          Update the ACPI processor driver to detect BM activity and
          limit state entry depth internally, rather than exposing such
          requirements to CPUIDLE.  As a result, CPUIDLE can drop this
          ACPI-specific interface and become more platform independent.  BM
          activity is now handled much more aggressively than it was in the
          original implementation, so some testing coverage may be needed to
          verify that this doesn't introduce any DMA buffer under-run issues.
      Signed-off-by: NAdam Belay <abelay@novell.com>
      Acked-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 0ef38840db666f48e3cdd2b769da676c57228dd9
      Author: Adam Belay <abelay@novell.com>
      Date:   Tue Aug 21 18:25:14 2007 -0400
      
          CPUIDLE: menu governor updates
      
          Tweak the menu governor to more effectively handle non-timer
          break events.  Non-timer break events are detected by comparing the
          actual sleep time to the expected sleep time.  In future revisions, it
          may be more reliable to use the timer data structures directly.
      Signed-off-by: NAdam Belay <abelay@novell.com>
      Acked-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit bb4d74fca63fa96cf3ace644b15ae0f12b7df5a1
      Author: Adam Belay <abelay@novell.com>
      Date:   Tue Aug 21 18:24:40 2007 -0400
      
          CPUIDLE: fix 'current_governor' sysfs entry
      
          Allow the "current_governor" sysfs entry to properly handle
          input terminated with '\n'.
      Signed-off-by: NAdam Belay <abelay@novell.com>
      Acked-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit df3c71559bb69b125f1a48971bf0d17f78bbdf47
      Author: Len Brown <len.brown@intel.com>
      Date:   Sun Aug 12 02:00:45 2007 -0400
      
          cpuidle: fix IA64 build (again)
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit a02064579e3f9530fd31baae16b1fc46b5a7bca8
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Sun Aug 12 01:39:27 2007 -0400
      
          cpuidle: Remove support for runtime changing of max_cstate
      
          Remove support for runtime changeability of max_cstate. Drivers can use
          use latency APIs.
      
          max_cstate can still be used as a boot time option and dmi override.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 0912a44b13adf22f5e3f607d263aed23b4910d7e
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Sun Aug 12 01:39:16 2007 -0400
      
          cpuidle: Remove ACPI cstate_limit calls from ipw2100
      
          ipw2100 already has code to use accetable_latency interfaces to limit the
          C-state. Remove the calls to acpi_set_cstate_limit and acpi_get_cstate_limit
          as they are redundant.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit c649a76e76be6bff1fd770d0a775798813a3f6e0
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Sun Aug 12 01:35:39 2007 -0400
      
          cpuidle: compile fix for pause and resume functions
      
          Fix the compilation failure when cpuidle is not compiled in.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Acked-by: NAdam Belay <adam.belay@novell.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 2305a5920fb8ee6ccec1c62ade05aa8351091d71
      Author: Adam Belay <abelay@novell.com>
      Date:   Thu Jul 19 00:49:00 2007 -0400
      
          cpuidle: re-write
      
          Some portions have been rewritten to make the code cleaner and lighter
          weight.  The following is a list of changes:
      
          1.) the state name is now included in the sysfs interface
          2.) detection, hotplug, and available state modifications are handled by
          CPUIDLE drivers directly
          3.) the CPUIDLE idle handler is only ever installed when at least one
          cpuidle_device is enabled and ready
          4.) the menu governor BM code no longer overflows
          5.) the sysfs attributes are now printed as unsigned integers, avoiding
          negative values
          6.) a variety of other small cleanups
      
          Also, Idle drivers are no longer swappable during runtime through the
          CPUIDLE sysfs inteface.  On i386 and x86_64 most idle handlers (e.g.
          poll, mwait, halt, etc.) don't benefit from an infrastructure that
          supports multiple states, so I think using a more general case idle
          handler selection mechanism would be cleaner.
      Signed-off-by: NAdam Belay <abelay@novell.com>
      Acked-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Acked-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit df25b6b56955714e6e24b574d88d1fd11f0c3ee5
      Author: Len Brown <len.brown@intel.com>
      Date:   Tue Jul 24 17:08:21 2007 -0400
      
          cpuidle: fix IA64 buid
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit fd6ada4c14488755ff7068860078c437431fbccd
      Author: Adrian Bunk <bunk@stusta.de>
      Date:   Mon Jul 9 11:33:13 2007 -0700
      
          cpuidle: static
      
          make cpuidle_replace_governor() static
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
          Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit c1d4a2cebcadf2429c0c72e1d29aa2a9684c32e0
      Author: Adrian Bunk <bunk@stusta.de>
      Date:   Tue Jul 3 00:54:40 2007 -0400
      
          cpuidle: static
      
          This patch makes the needlessly global struct menu_governor static.
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit dbf8780c6e8d572c2c273da97ed1cca7608fd999
      Author: Andrew Morton <akpm@linux-foundation.org>
      Date:   Tue Jul 3 00:49:14 2007 -0400
      
          export symbol tick_nohz_get_sleep_length
      
          ERROR: "tick_nohz_get_sleep_length" [drivers/cpuidle/governors/menu.ko] undefined!
          ERROR: "tick_nohz_get_idle_jiffies" [drivers/cpuidle/governors/menu.ko] undefined!
      
          And please be sure to get your changes to core kernel suitably reviewed.
      
          Cc: Adam Belay <abelay@novell.com>
          Cc: Venki Pallipadi <venkatesh.pallipadi@intel.com>
          Cc: Ingo Molnar <mingo@elte.hu>
          Cc: Thomas Gleixner <tglx@linutronix.de>
          Cc: john stultz <johnstul@us.ibm.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 29f0e248e7017be15f99febf9143a2cef00b2961
      Author: Andrew Morton <akpm@linux-foundation.org>
      Date:   Tue Jul 3 00:43:04 2007 -0400
      
          tick.h needs hrtimer.h
      
          It uses hrtimers.
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit e40cede7d63a029e92712a3fe02faee60cc38fb4
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Jul 3 00:40:34 2007 -0400
      
          cpuidle: first round of documentation updates
      
          Documentation changes based on Pavel's feedback.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 83b42be2efece386976507555c29e7773a0dfcd1
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Jul 3 00:39:25 2007 -0400
      
          cpuidle: add rating to the governors and pick the one with highest rating by default
      
          Introduce a governor rating scheme to pick the right governor by default.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit d2a74b8c5e8f22def4709330d4bfc4a29209b71c
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Jul 3 00:38:08 2007 -0400
      
          cpuidle: make cpuidle sysfs driver governor switch off by default
      
          Make default cpuidle sysfs to show current_governor and current_driver in
          read-only mode.  More elaborate available_governors and available_drivers with
          writeable current_governor and current_driver interface only appear with
          "cpuidle_sysfs_switch" boot parameter.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 1f60a0e80bf83cf6b55c8845bbe5596ed8f6307b
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Jul 3 00:37:00 2007 -0400
      
          cpuidle: menu governor: change the early break condition
      
          Change the C-state early break out algorithm in menu governor.
      
          We only look at early breakouts that result in wakeups shorter than idle
          state's target_residency.  If such a breakout is frequent enough, eliminate
          the particular idle state upto a timeout period.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 45a42095cf64b003b4a69be3ce7f434f97d7af51
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Jul 3 00:35:38 2007 -0400
      
          cpuidle: fix uninitialized variable in sysfs routine
      
          Fix the uninitialized usage of ret.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 80dca7cdba3e6ee13eae277660873ab9584eb3be
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Jul 3 00:34:16 2007 -0400
      
          cpuidle: reenable /proc/acpi//power interface for the time being
      
          Keep /proc/acpi/processor/CPU*/power around for a while as powertop depends
          on it. It will be marked deprecated and removed in future. powertop can use
          cpuidle interfaces instead.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 589c37c2646c5e3813a51255a5ee1159cb4c33fc
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Jul 3 00:32:37 2007 -0400
      
          cpuidle: menu governor and hrtimer compile fix
      
          Compile fix for menu governor.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 0ba80bd9ab3ed304cb4f19b722e4cc6740588b5e
      Author: Len Brown <len.brown@intel.com>
      Date:   Thu May 31 22:51:43 2007 -0400
      
          cpuidle: build fix - cpuidle vs ipw2100 module
      
          ERROR: "acpi_set_cstate_limit" [drivers/net/wireless/ipw2100.ko] undefined!
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit d7d8fa7f96a7f7682be7c6cc0cc53fa7a18c3b58
      Author: Adam Belay <abelay@novell.com>
      Date:   Sat Mar 24 03:47:07 2007 -0400
      
          cpuidle: add the 'menu' governor
      
          Here is my first take at implementing an idle PM governor that takes
          full advantage of NO_HZ.  I call it the 'menu' governor because it
          considers the full list of idle states before each entry.
      
          I've kept the implementation fairly simple.  It attempts to guess the
          next residency time and then chooses a state that would meet at least
          the break-even point between power savings and entry cost.  To this end,
          it selects the deepest idle state that satisfies the following
          constraints:
               1. If the idle time elapsed since bus master activity was detected
                  is below a threshold (currently 20 ms), then limit the selection
                  to C2-type or above.
               2. Do not choose a state with a break-even residency that exceeds
                  the expected time remaining until the next timer interrupt.
               3. Do not choose a state with a break-even residency that exceeds
                  the elapsed time between the last pair of break events,
                  excluding timer interrupts.
      
          This governor has an advantage over "ladder" governor because it
          proactively checks how much time remains until the next timer interrupt
          using the tick infrastructure.  Also, it handles device interrupt
          activity more intelligently by not including timer interrupts in break
          event calculations.  Finally, it doesn't make policy decisions using the
          number of state entries, which can have variable residency times (NO_HZ
          makes these potentially very large), and instead only considers sleep
          time deltas.
      
          The menu governor can be selected during runtime using the cpuidle sysfs
          interface like so:
          "echo "menu" > /sys/devices/system/cpu/cpuidle/current_governor"
      Signed-off-by: NAdam Belay <abelay@novell.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit a4bec7e65aa3b7488b879d971651cc99a6c410fe
      Author: Adam Belay <abelay@novell.com>
      Date:   Sat Mar 24 03:47:03 2007 -0400
      
          cpuidle: export time until next timer interrupt using NO_HZ
      
          Expose information about the time remaining until the next
          timer interrupt expires by utilizing the dynticks infrastructure.
          Also modify the main idle loop to allow dynticks to handle
          non-interrupt break events (e.g. DMA).  Finally, expose sleep ticks
          information to external code.  Thomas Gleixner is responsible for much
          of the code in this patch.  However, I've made some additional changes,
          so I'm probably responsible if there are any bugs or oversights :)
      Signed-off-by: NAdam Belay <abelay@novell.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 2929d8996fbc77f41a5ff86bb67cdde3ca7d2d72
      Author: Adam Belay <abelay@novell.com>
      Date:   Sat Mar 24 03:46:58 2007 -0400
      
          cpuidle: governor API changes
      
          This patch prepares cpuidle for the menu governor.  It adds an optional
          stage after idle state entry to give the governor an opportunity to
          check why the state was exited.  Also it makes sure the idle loop
          returns after each state entry, allowing the appropriate dynticks code
          to run.
      Signed-off-by: NAdam Belay <abelay@novell.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 3a7fd42f9825c3b03e364ca59baa751bb350775f
      Author: Venki Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Thu Apr 26 00:03:59 2007 -0700
      
          cpuidle: hang fix
      
          Prevent hang on x86-64, when ACPI processor driver is added as a module on
          a system that does not support C-states.
      
          x86-64 expects all idle handlers to enable interrupts before returning from
          idle handler.  This is due to enter_idle(), exit_idle() races.  Make
          cpuidle_idle_call() confirm to this when there is no pm_idle_old.
      
          Also, cpuidle look at the return values of attch_driver() and set
          current_driver to NULL if attach fails on all CPUs.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 4893339a142afbd5b7c01ffadfd53d14746e858e
      Author: Shaohua Li <shaohua.li@intel.com>
      Date:   Thu Apr 26 10:40:09 2007 +0800
      
          cpuidle: add support for max_cstate limit
      
          With CPUIDLE framework, the max_cstate (to limit max cpu c-state)
          parameter is ingored. Some systems require it to ignore C2/C3
          and some drivers like ipw require it too.
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 43bbbbe1cb998cbd2df656f55bb3bfe30f30e7d1
      Author: Shaohua Li <shaohua.li@intel.com>
      Date:   Thu Apr 26 10:40:13 2007 +0800
      
          cpuidle: add cpuidle_fore_redetect_devices API
      
          add cpuidle_force_redetect_devices API,
          which forces all CPU redetect idle states.
          Next patch will use it.
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit d1edadd608f24836def5ec483d2edccfb37b1d19
      Author: Shaohua Li <shaohua.li@intel.com>
      Date:   Thu Apr 26 10:40:01 2007 +0800
      
          cpuidle: fix sysfs related issue
      
          Fix the cpuidle sysfs issue.
          a. make kobject dynamicaly allocated
          b. fixed sysfs init issue to avoid suspend/resume issue
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 7169a5cc0d67b263978859672e86c13c23a5570d
      Author: Randy Dunlap <randy.dunlap@oracle.com>
      Date:   Wed Mar 28 22:52:53 2007 -0400
      
          cpuidle: 1-bit field must be unsigned
      
          A 1-bit bitfield has no room for a sign bit.
          drivers/cpuidle/governors/ladder.c:54:16: error: dubious bitfield without explicit `signed' or `unsigned'
      Signed-off-by: NRandy Dunlap <randy.dunlap@oracle.com>
          Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 4658620158dc2fbd9e4bcb213c5b6fb5d05ba7d4
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Wed Mar 28 22:52:41 2007 -0400
      
          cpuidle: fix boot hang
      
          Patch for cpuidle boot hang reported by Larry Finger here.
          http://www.ussg.iu.edu/hypermail/linux/kernel/0703.2/2025.htmlSigned-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
          Cc: Larry Finger <larry.finger@lwfinger.net>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit c17e168aa6e5fe3851baaae8df2fbc1cf11443a9
      Author: Len Brown <len.brown@intel.com>
      Date:   Wed Mar 7 04:37:53 2007 -0500
      
          cpuidle: ladder does not depend on ACPI
      
          build fix for CONFIG_ACPI=n
      
          In file included from drivers/cpuidle/governors/ladder.c:21:
          include/acpi/processor.h:88: error: expected specifier-qualifier-list before ‘acpi_integer’
          include/acpi/processor.h:106: error: expected specifier-qualifier-list before ‘acpi_integer’
          include/acpi/processor.h:168: error: expected specifier-qualifier-list before ‘acpi_handle’
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 8c91d958246bde68db0c3f0c57b535962ce861cb
      Author: Adrian Bunk <bunk@stusta.de>
      Date:   Tue Mar 6 02:29:40 2007 -0800
      
          cpuidle: make code static
      
          This patch makes the following needlessly global code static:
          - driver.c: __cpuidle_find_driver()
          - governor.c: __cpuidle_find_governor()
          - ladder.c: struct ladder_governor
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
          Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
          Cc: Adam Belay <abelay@novell.com>
          Cc: Shaohua Li <shaohua.li@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 0c39dc3187094c72c33ab65a64d2017b21f372d2
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Wed Mar 7 02:38:22 2007 -0500
      
          cpu_idle: fix build break
      
          This patch fixes a build breakage with !CONFIG_HOTPLUG_CPU and
          CONFIG_CPU_IDLE.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NAdrian Bunk <bunk@stusta.de>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 8112e3b115659b07df340ef170515799c0105f82
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Tue Mar 6 02:29:39 2007 -0800
      
          cpuidle: build fix for !CPU_IDLE
      
          Fix the compile issues when CPU_IDLE is not configured.
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
          Cc: Adam Belay <abelay@novell.com>
          Cc: Shaohua Li <shaohua.li@intel.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 1eb4431e9599cd25e0d9872f3c2c8986821839dd
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Thu Feb 22 13:54:57 2007 -0800
      
          cpuidle take2: Basic documentation for cpuidle
      
          Documentation for cpuidle infrastructure
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NAdam Belay <abelay@novell.com>
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit ef5f15a8b79123a047285ec2e3899108661df779
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Thu Feb 22 13:54:03 2007 -0800
      
          cpuidle take2: Hookup ACPI C-states driver with cpuidle
      
          Hookup ACPI C-states onto generic cpuidle infrastructure.
      
          drivers/acpi/procesor_idle.c is now a ACPI C-states driver that registers as
          a driver in cpuidle infrastructure and the policy part is removed from
          drivers/acpi/processor_idle.c. We use governor in cpuidle instead.
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NAdam Belay <abelay@novell.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      
      commit 987196fa82d4db52c407e8c9d5dec884ba602183
      Author: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Date:   Thu Feb 22 13:52:57 2007 -0800
      
          cpuidle take2: Core cpuidle infrastructure
      
          Announcing 'cpuidle', a new CPU power management infrastructure to manage
          idle CPUs in a clean and efficient manner.
          cpuidle separates out the drivers that can provide support for multiple types
          of idle states and policy governors that decide on what idle state to use
          at run time.
          A cpuidle driver can support multiple idle states based on parameters like
          varying power consumption, wakeup latency, etc (ACPI C-states for example).
          A cpuidle governor can be usage model specific (laptop, server,
          laptop on battery etc).
          Main advantage of the infrastructure being, it allows independent development
          of drivers and governors and allows for better CPU power management.
      
          A huge thanks to Adam Belay and Shaohua Li who were part of this mini-project
          since its beginning and are greatly responsible for this patchset.
      
          This patch:
      
          Core cpuidle infrastructure.
          Introduces a new abstraction layer for cpuidle:
          * which manages drivers that can support multiple idles states. Drivers
            can be generic or particular to specific hardware/platform
          * allows pluging in multiple policy governors that can take idle state policy
            decision
          * The core also has a set of sysfs interfaces with which administrato can know
            about supported drivers and governors and switch them at run time.
      Signed-off-by: NAdam Belay <abelay@novell.com>
      Signed-off-by: NShaohua Li <shaohua.li@intel.com>
      Signed-off-by: NVenkatesh Pallipadi <venkatesh.pallipadi@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      4f86d3a8
    • J
      drivers/firmware: const-ify DMI API and internals · 1855256c
      Jeff Garzik 提交于
      Three main sets of changes:
      
      1) dmi_get_system_info() return value should have been marked const,
         since callers should not be changing that data.
      
      2) const-ify DMI internals, since DMI firmware tables should,
         whenever possible, be marked const to ensure we never ever write to
         that data area.
      
      3) const-ify DMI API, to enable marking tables const where possible
         in low-level drivers.
      
      And if we're really lucky, this might enable some additional
      optimizations on the part of the compiler.
      
      The bulk of the changes are #2 and #3, which are interrelated.  #1 could
      have been a separate patch, but it was so small compared to the others,
      it was easier to roll it into this changeset.
      Signed-off-by: NJeff Garzik <jgarzik@redhat.com>
      1855256c
  4. 20 7月, 2007 1 次提交
    • P
      mm: Remove slab destructors from kmem_cache_create(). · 20c2df83
      Paul Mundt 提交于
      Slab destructors were no longer supported after Christoph's
      c59def9f change. They've been
      BUGs for both slab and slub, and slob never supported them
      either.
      
      This rips out support for the dtor pointer from kmem_cache_create()
      completely and fixes up every single callsite in the kernel (there were
      about 224, not including the slab allocator definitions themselves,
      or the documentation references).
      Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
      20c2df83
  5. 03 7月, 2007 2 次提交
  6. 09 6月, 2007 1 次提交
    • L
      ACPI: disable _OSI(Linux) by default · 072971d7
      Len Brown 提交于
      In Linux-2.6.22 we expanded the boot parameter osi=
      so that it can enable and !enable an OSI string.
      
      _OSI(Linux) is a special case because we know that there
      are both systems that require it set, and systems
      require that it _not_ to be set.  In the long term it can't
      be set, for the same reason _OS(Linux) can't be enabled --
      it tends to confuse BIOS that are not properly
      validated with Linux.  Further, the semantics and version
      information of _OSI(Linux) were never actually defined.
      
      The kernel prints out a message if it sees _OSI(Linux)
      requested, and there is a DMI workaround to invoke
      "osi=Linux" automatically for existing systems that need it.
      
      http://bugzilla.kernel.org/show_bug.cgi?id=7787Signed-off-by: NLen Brown <len.brown@intel.com>
      072971d7
  7. 30 5月, 2007 3 次提交
    • L
      ACPI: add __init to acpi_initialize_subsystem() · dd272b57
      Len Brown 提交于
      Add __init to:
      acpi_initialize_subsystem() (and un-export it)
      acpi_os_initialize()
      
      Add __initdata to:
      acpi_osl_dmi_table[]
      Signed-off-by: NLen Brown <len.brown@intel.com>
      dd272b57
    • L
      ACPI: Make _OSI(Linux) a special case · f507654d
      Len Brown 提交于
      _OSI("Linux") is like _OS("Linux"), it is ill-defined and
      virtually no BIOS vendors test interaction with it.
      As a result, it can do more damage than good because
      it causes the BIOS to follow un-tested paths.
      
      Recently, several machines have turned up that erroneously
      test this string in a way which causes them to _not_ test other
      compatibility strings, including the ZI9 and Toshiba.
      So it appears that this bad code has made it into
      a BIOS vendor's reference BIOS.
      
      Linux has no choice but to stop advertising compatibility
      with _OSI string "Linux" - as there are an unbounded
      number of possible incompatibilities going forward.
      
      But some BIOSes have already shipped which do use it
      for things like conditionally re-enabling video on resume
      from S3.  (Too bad they didn't do that unconditionally)
      
      Add special case code for _OSI(Linux)
      Squawk to dmesg if _OSI(Linux) is requested
      Add DMI list both to enable and disable _OSI(Linux)
      But for now, keep the default enabled via
      #define OSI_LINUX_ENABLED.
      
      http://bugzilla.kernel.org/show_bug.cgi?id=7787Signed-off-by: NLen Brown <len.brown@intel.com>
      f507654d
    • L
      ACPI: extend "acpi_osi=" boot option · ae00d812
      Len Brown 提交于
      The boot option "acpi_osi=" has always disabled Linux _OSI support,
      thus disabling all OS Interface strings which are advertised
      by Linux to the BIOS.
      
      Now...
      acpi_osi="string" adds the interface string, and
      acpi_osi="!string" invalidates the pre-defined interface string
      
      eg. acpi_osi="!Windows 2006"
      would disable Linux's claim of Vista compatibility.
      Signed-off-by: NLen Brown <len.brown@intel.com>
      ae00d812
  8. 10 5月, 2007 1 次提交
    • A
      ACPI: created a dedicated workqueue for notify() execution · 88db5e14
      Alexey Starikovskiy 提交于
      HP nx6125/nx6325/... machines have a _GPE handler with an infinite
      loop sending Notify() events to different ACPI subsystems.
      
      Notify handler in ACPI driver is a C-routine, which may call ACPI
      interpreter again to get access to some ACPI variables
      (acpi_evaluate_xxx).
      On these HP machines such an evaluation changes state of some variable
      and lets the loop above break.
      
      In the current ACPI implementation Notify requests are being deferred
      to the same kacpid workqueue on which the above GPE handler with
      infinite loop is executing. Thus we have a deadlock -- loop will
      continue to spin, sending notify events, and at the same time
      preventing these notify events from being run on a workqueue. All
      notify events are deferred, thus we see increase in memory consumption
      noticed by author of the thread. Also as GPE handling is bloked,
      machines overheat. Eventually by external poll of the same
      acpi_evaluate, kacpid is released and all the queued notify events are
      free to run, thus 100% cpu utilization by kacpid for several seconds
      or more.
      
      To prevent all these horrors it's needed to not put notify events to
      kacpid workqueue by either executing them immediately or putting them
      on some other thread. It's dangerous to execute notify events in
      place, as it will put several ACPI interpreter stacks on top of each
      other (at least 4 in case of nx6125), thus causing kernel  stack
      overflow.
      
      First attempt to create a new thread was done by Peter Wainwright
      He created a bunch of threads, which were stealing work from a kacpid
      workqueue.
      This patch appeared in 2.6.15 kernel shipped with Ubuntu 6.06 LTS.
      
      Second attempt was done by me, I created a new thread for each Notify
      event. This worked OK on HP nx machines, but broke Linus' Compaq
      n620c, by producing threads with a speed what they stopped the machine
      completely. Thus this patch was reverted from 18-rc2 as I remember.
      I re-made the patch to create second workqueue just for notify events,
      thus hopping it will not break Linus' machine. Patch was tested on the
      same HP nx machines in #5534 and #7122, but I did not received reply
      from Linus on a test patch sent to him.
      Patch went to 19-rc and was rejected with much fanfare again.
      There was 4th patch, which inserted schedule_timeout(1) into deferred
      execution of kacpid, if we had any notify requests pending, but Linus
      decided that it was too complex (involved either changes to workqueue
      to see if it's empty or atomic inc/dec).
      Now you see last variant which adds yield() to every GPE execution.
      
      http://bugzilla.kernel.org/show_bug.cgi?id=5534
      http://bugzilla.kernel.org/show_bug.cgi?id=8385Signed-off-by: NAlexey Starikovskiy <alexey.y.starikovskiy@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      88db5e14
  9. 09 5月, 2007 1 次提交
  10. 17 2月, 2007 1 次提交
  11. 16 2月, 2007 2 次提交
  12. 13 2月, 2007 1 次提交
  13. 03 2月, 2007 2 次提交
  14. 26 1月, 2007 1 次提交
    • B
      ACPI: move FADT resource reservations from motherboard driver to osl · 9a47cdb1
      Bjorn Helgaas 提交于
      Resources described by the FADT aren't really a good fit for the
      ACPI motherboard driver.
      
      The motherboard driver cares about PNP0C01 and PNP0C02 devices and
      their resources.
      
      The FADT describes some resources used by the ACPI core.  Often, they
      are also described by by the _CRS of a motherboard device, but I think
      it's better to reserve them specifically in the ACPI osl.c because
      (a) the motherboard driver is optional and ACPI uses the resources even
      if the driver is absent, and (b) I want to remove the ACPI motherboard
      driver because it's mostly redundant with the PNP system.c driver.
      Signed-off-by: NBjorn Helgaas <bjorn.helgaas@hp.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      9a47cdb1
  15. 20 12月, 2006 1 次提交
  16. 22 11月, 2006 1 次提交
    • D
      WorkStruct: Pass the work_struct pointer instead of context data · 65f27f38
      David Howells 提交于
      Pass the work_struct pointer to the work function rather than context data.
      The work function can use container_of() to work out the data.
      
      For the cases where the container of the work_struct may go away the moment the
      pending bit is cleared, it is made possible to defer the release of the
      structure by deferring the clearing of the pending bit.
      
      To make this work, an extra flag is introduced into the management side of the
      work_struct.  This governs auto-release of the structure upon execution.
      
      Ordinarily, the work queue executor would release the work_struct for further
      scheduling or deallocation by clearing the pending bit prior to jumping to the
      work function.  This means that, unless the driver makes some guarantee itself
      that the work_struct won't go away, the work function may not access anything
      else in the work_struct or its container lest they be deallocated..  This is a
      problem if the auxiliary data is taken away (as done by the last patch).
      
      However, if the pending bit is *not* cleared before jumping to the work
      function, then the work function *may* access the work_struct and its container
      with no problems.  But then the work function must itself release the
      work_struct by calling work_release().
      
      In most cases, automatic release is fine, so this is the default.  Special
      initiators exist for the non-auto-release case (ending in _NAR).
      Signed-Off-By: NDavid Howells <dhowells@redhat.com>
      65f27f38
  17. 18 11月, 2006 1 次提交
    • L
      Revert "ACPI: created a dedicated workqueue for notify() execution" · b976fe19
      Linus Torvalds 提交于
      This reverts commit 37605a69.
      
      Again.
      
      This same bug has now been introduced twice: it was done earlier by
      commit b8d35192, only to be reverted
      last time in commit 72945b2b.
      
      We must NOT try to queue up notify handlers to another thread than the
      normal ACPI execution thread, because the notifications on some systems
      seem to just keep on accumulating until we run out of memory and/or
      threads.
      
      Keeping events within the one deferred execution thread automatically
      throttles the events properly.
      
      At least the Compaq N620c will lock up completely on the first thermal
      event without this patch reverted.
      
      Cc: David Brownell <david-b@pacbell.net>
      Cc: Len Brown <len.brown@intel.com>
      Cc: Alexey Starikovskiy <alexey.y.starikovskiy@linux.intel.com>
      Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
      b976fe19
  18. 14 10月, 2006 2 次提交
  19. 05 10月, 2006 1 次提交
    • D
      IRQ: Maintain regs pointer globally rather than passing to IRQ handlers · 7d12e780
      David Howells 提交于
      Maintain a per-CPU global "struct pt_regs *" variable which can be used instead
      of passing regs around manually through all ~1800 interrupt handlers in the
      Linux kernel.
      
      The regs pointer is used in few places, but it potentially costs both stack
      space and code to pass it around.  On the FRV arch, removing the regs parameter
      from all the genirq function results in a 20% speed up of the IRQ exit path
      (ie: from leaving timer_interrupt() to leaving do_IRQ()).
      
      Where appropriate, an arch may override the generic storage facility and do
      something different with the variable.  On FRV, for instance, the address is
      maintained in GR28 at all times inside the kernel as part of general exception
      handling.
      
      Having looked over the code, it appears that the parameter may be handed down
      through up to twenty or so layers of functions.  Consider a USB character
      device attached to a USB hub, attached to a USB controller that posts its
      interrupts through a cascaded auxiliary interrupt controller.  A character
      device driver may want to pass regs to the sysrq handler through the input
      layer which adds another few layers of parameter passing.
      
      I've build this code with allyesconfig for x86_64 and i386.  I've runtested the
      main part of the code on FRV and i386, though I can't test most of the drivers.
      I've also done partial conversion for powerpc and MIPS - these at least compile
      with minimal configurations.
      
      This will affect all archs.  Mostly the changes should be relatively easy.
      Take do_IRQ(), store the regs pointer at the beginning, saving the old one:
      
      	struct pt_regs *old_regs = set_irq_regs(regs);
      
      And put the old one back at the end:
      
      	set_irq_regs(old_regs);
      
      Don't pass regs through to generic_handle_irq() or __do_IRQ().
      
      In timer_interrupt(), this sort of change will be necessary:
      
      	-	update_process_times(user_mode(regs));
      	-	profile_tick(CPU_PROFILING, regs);
      	+	update_process_times(user_mode(get_irq_regs()));
      	+	profile_tick(CPU_PROFILING);
      
      I'd like to move update_process_times()'s use of get_irq_regs() into itself,
      except that i386, alone of the archs, uses something other than user_mode().
      
      Some notes on the interrupt handling in the drivers:
      
       (*) input_dev() is now gone entirely.  The regs pointer is no longer stored in
           the input_dev struct.
      
       (*) finish_unlinks() in drivers/usb/host/ohci-q.c needs checking.  It does
           something different depending on whether it's been supplied with a regs
           pointer or not.
      
       (*) Various IRQ handler function pointers have been moved to type
           irq_handler_t.
      Signed-Off-By: NDavid Howells <dhowells@redhat.com>
      (cherry picked from 1b16e7ac850969f38b375e511e3fa2f474a33867 commit)
      7d12e780
  20. 27 9月, 2006 1 次提交
  21. 17 8月, 2006 1 次提交
  22. 13 7月, 2006 1 次提交
  23. 10 7月, 2006 1 次提交
  24. 03 7月, 2006 1 次提交
  25. 01 7月, 2006 1 次提交
  26. 30 6月, 2006 1 次提交
  27. 28 6月, 2006 1 次提交
    • B
      ACPI: ACPICA 20060623 · 967440e3
      Bob Moore 提交于
      Implemented a new acpi_spinlock type for the OSL lock
      interfaces.  This allows the type to be customized to
      the host OS for improved efficiency (since a spinlock is
      usually a very small object.)
      
      Implemented support for "ignored" bits in the ACPI
      registers.  According to the ACPI specification, these
      bits should be preserved when writing the registers via
      a read/modify/write cycle. There are 3 bits preserved
      in this manner: PM1_CONTROL[0] (SCI_EN), PM1_CONTROL[9],
      and PM1_STATUS[11].
      http://bugzilla.kernel.org/show_bug.cgi?id=3691
      
      Implemented the initial deployment of new OSL mutex
      interfaces.  Since some host operating systems have
      separate mutex and semaphore objects, this feature was
      requested. The base code now uses mutexes (and the new
      mutex interfaces) wherever a binary semaphore was used
      previously. However, for the current release, the mutex
      interfaces are defined as macros to map them to the
      existing semaphore interfaces.
      
      Fixed several problems with the support for the control
      method SyncLevel parameter. The SyncLevel now works
      according to the ACPI specification and in concert with the
      Mutex SyncLevel parameter, since the current SyncLevel is
      a property of the executing thread. Mutual exclusion for
      control methods is now implemented with a mutex instead
      of a semaphore.
      
      Fixed three instances of the use of the C shift operator
      in the bitfield support code (exfldio.c) to avoid the use
      of a shift value larger than the target data width. The
      behavior of C compilers is undefined in this case and can
      cause unpredictable results, and therefore the case must
      be detected and avoided.  (Fiodor Suietov)
      
      Added an info message whenever an SSDT or OEM table
      is loaded dynamically via the Load() or LoadTable()
      ASL operators. This should improve debugging capability
      since it will show exactly what tables have been loaded
      (beyond the tables present in the RSDT/XSDT.)
      Signed-off-by: NBob Moore <robert.moore@intel.com>
      Signed-off-by: NLen Brown <len.brown@intel.com>
      967440e3
  28. 27 6月, 2006 3 次提交