Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8daf4ded authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull power management fix from Rafael Wysocki:
 "This removes ACPICA code that had already been removed once from the
  kernel already by commit 2780cc4660e1 ("[ACPI] Fix suspend/resume
  lockup issue by leaving Bus Master Arbitration enabled"), because it
  was known to cause systems to lock up during resume from suspend, but
  was re-introduced by mistake during the v3.4 merge window."

* tag 'pm-for-3.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
  ACPI / PM: Leave Bus Master Arbitration enabled for suspend/resume
parents 3dc352c0 dc332fdf
Loading
Loading
Loading
Loading
+0 −22
Original line number Diff line number Diff line
@@ -95,18 +95,6 @@ acpi_status acpi_hw_legacy_sleep(u8 sleep_state, u8 flags)
		return_ACPI_STATUS(status);
	}

	if (sleep_state != ACPI_STATE_S5) {
		/*
		 * Disable BM arbitration. This feature is contained within an
		 * optional register (PM2 Control), so ignore a BAD_ADDRESS
		 * exception.
		 */
		status = acpi_write_bit_register(ACPI_BITREG_ARB_DISABLE, 1);
		if (ACPI_FAILURE(status) && (status != AE_BAD_ADDRESS)) {
			return_ACPI_STATUS(status);
		}
	}

	/*
	 * 1) Disable/Clear all GPEs
	 * 2) Enable all wakeup GPEs
@@ -364,16 +352,6 @@ acpi_status acpi_hw_legacy_wake(u8 sleep_state, u8 flags)
				    [ACPI_EVENT_POWER_BUTTON].
				    status_register_id, ACPI_CLEAR_STATUS);

	/*
	 * Enable BM arbitration. This feature is contained within an
	 * optional register (PM2 Control), so ignore a BAD_ADDRESS
	 * exception.
	 */
	status = acpi_write_bit_register(ACPI_BITREG_ARB_DISABLE, 0);
	if (ACPI_FAILURE(status) && (status != AE_BAD_ADDRESS)) {
		return_ACPI_STATUS(status);
	}

	acpi_hw_execute_sleep_method(METHOD_PATHNAME__SST, ACPI_SST_WORKING);
	return_ACPI_STATUS(status);
}