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

Commit 227243a0 authored by Bob Moore's avatar Bob Moore Committed by Len Brown
Browse files

ACPICA: Remove extra write for acpi_hw_clear_acpi_status

This function was writing an optional PM1B status register
twice.  The existing call to the low-level acpi_hw_register_write
automatically handles a possibly split PM1 A/B register.
ACPICA BZ 751.

http://www.acpica.org/bugzilla/show_bug.cgi?id=751



Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
Signed-off-by: default avatarLin Ming <ming.m.lin@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent c520abad
Loading
Loading
Loading
Loading
+3 −14
Original line number Original line Diff line number Diff line
@@ -71,7 +71,6 @@ acpi_hw_write_multiple(u32 value,
 * RETURN:      Status
 * RETURN:      Status
 *
 *
 * DESCRIPTION: Clears all fixed and general purpose status bits
 * DESCRIPTION: Clears all fixed and general purpose status bits
 *              THIS FUNCTION MUST BE CALLED WITH INTERRUPTS DISABLED
 *
 *
 ******************************************************************************/
 ******************************************************************************/


@@ -82,13 +81,13 @@ acpi_status acpi_hw_clear_acpi_status(void)


	ACPI_FUNCTION_TRACE(hw_clear_acpi_status);
	ACPI_FUNCTION_TRACE(hw_clear_acpi_status);


	ACPI_DEBUG_PRINT((ACPI_DB_IO, "About to write %04X to %04X\n",
	ACPI_DEBUG_PRINT((ACPI_DB_IO, "About to write %04X to %0llX\n",
			  ACPI_BITMASK_ALL_FIXED_STATUS,
			  ACPI_BITMASK_ALL_FIXED_STATUS,
			  (u16) acpi_gbl_xpm1a_status.address));
			  acpi_gbl_xpm1a_status.address));


	lock_flags = acpi_os_acquire_lock(acpi_gbl_hardware_lock);
	lock_flags = acpi_os_acquire_lock(acpi_gbl_hardware_lock);


	/* Clear the fixed events */
	/* Clear the fixed events in PM1 A/B */


	status = acpi_hw_register_write(ACPI_REGISTER_PM1_STATUS,
	status = acpi_hw_register_write(ACPI_REGISTER_PM1_STATUS,
					ACPI_BITMASK_ALL_FIXED_STATUS);
					ACPI_BITMASK_ALL_FIXED_STATUS);
@@ -96,16 +95,6 @@ acpi_status acpi_hw_clear_acpi_status(void)
		goto unlock_and_exit;
		goto unlock_and_exit;
	}
	}


	/* Write PM1B register if present */

	if (acpi_gbl_xpm1b_status.address) {
		status = acpi_write(ACPI_BITMASK_ALL_FIXED_STATUS,
				    &acpi_gbl_xpm1b_status);
		if (ACPI_FAILURE(status)) {
			goto unlock_and_exit;
		}
	}

	/* Clear the GPE Bits in all GPE registers in all GPE blocks */
	/* Clear the GPE Bits in all GPE registers in all GPE blocks */


	status = acpi_ev_walk_gpe_list(acpi_hw_clear_gpe_block, NULL);
	status = acpi_ev_walk_gpe_list(acpi_hw_clear_gpe_block, NULL);