1. 17 Oct, 2008 3 commits
    • Rafael J. Wysocki's avatar
      ACPI Suspend: Enable ACPI during resume if SCI_EN is not set · d0c71fe7
      Rafael J. Wysocki authored
      On some machines, like for example MSI Wind U100, the BIOS doesn't
      enable ACPI before returning control to the OS, which sometimes
      causes resume to fail.  This is against the ACPI specification,
      which clearly states that "When the platform is waking from an S1, S2
      or S3 state, OSPM assumes the hardware is already in the ACPI mode
      and will not issue an ACPI_ENABLE", but it won't hurt to check the
      SCI_EN bit and enable ACPI during resume from S3 if this bit is not
      set.
      
      Fortunately, we already have acpi_enable() for that, so use it in the
      resume code path, before executing _BFS, in analogy with the
      resume-from-hibernation code path.
      
      NOTE: We aren't supposed to set SCI_EN directly, because it's owned
      by the hardware.
      Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Pavel Machek <pavel@suse.cz>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      d0c71fe7
    • Rafael J. Wysocki's avatar
      ACPI suspend: Always use the 32-bit waking vector · a6629105
      Rafael J. Wysocki authored
      According to the ACPI specification 2.0c and later, the 64-bit waking vector
      should be cleared and the 32-bit waking vector should be used, unless we want
      the wake-up code to be called by the BIOS in Protected Mode.  Moreover, some
      systems (for example HP dv5-1004nr) are known to fail to resume if the 64-bit
      waking vector is used.  Therefore, modify the code to clear the 64-bit waking
      vector, for FACS version 1 or greater, and set the 32-bit one before suspend.
      
      http://bugzilla.kernel.org/show_bug.cgi?id=11368Signed-off-by: default avatarRafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      a6629105
    • Zhao Yakui's avatar
      ACPI: Add the support for _TTS object · e49f711c
      Zhao Yakui authored
          The _TTS object is defined in the section 7.3 of acpi 3.0b spec.
          The _TTS control method is executed by the OSPM at the beginning of
      the sleep transition process for S1,S2, S3, S4, and orderly S5 shutdown.
      OS will invoke _TTS before it has notified any native mode device drivers
      of the sleep state transition. The target sleeping state value is passed to
      the _TTS control method.
      
          The _TTS control method is also executed by the OSPM at the end of
      any sleep transition process when the system transitions to S0 from
      S1, S2, S3, or S4. The _TTS object should be evaluated after it has
      notified any native mode device drivers of the end of the sleep state
      transition. The working state value (0) is passed to the _TTS control method.
      
          So it is necessary to add the support for _TTS object. The _TTS object
      will be evaluated if it exists.
          At the same time a block notifier is added to the reboot notifier list so
      that the _TTS object will also be evaluated when the system shutdown.
      
      lenb: note that as of Sep 2008, I've not yet seen _TTS in any shipping BIOS.
      So this patch is to future-proof Linux, rather than fix the installed base.
      
      http://bugzilla.kernel.org/show_bug.cgi?id=11132Signed-off-by: default avatarZhao Yakui <yakui.zhao@intel.com>
      Signed-off-by: default avatarLi Shaohua <shaohua.li@intel.com>
      Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
      Signed-off-by: default avatarLen Brown <len.brown@intel.com>
      e49f711c
  2. 16 Oct, 2008 1 commit
  3. 09 Oct, 2008 12 commits
  4. 08 Oct, 2008 3 commits
  5. 07 Oct, 2008 7 commits
  6. 06 Oct, 2008 14 commits