Made the status register clear code work. Apparently you need to write 1 to the register to set it to zero. It doesn't make any sense to me either.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11527 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Nathan Whitehorn
2005-03-02 01:45:02 +00:00
parent 5d2536d2af
commit b53df54f50
@@ -61,19 +61,10 @@ acpi_button_read (void* cookie, off_t position, void *buf, size_t* num_bytes)
*((uint8 *)(buf)) = acpi->read_acpi_reg((uint32)(cookie)); *((uint8 *)(buf)) = acpi->read_acpi_reg((uint32)(cookie));
/* acpi->write_acpi_reg((uint32)(cookie),0); */ acpi->write_acpi_reg((uint32)(cookie),1);
/* The above simple clearing of the status register doesn't seem to work. /* You need to write 1 to the status register to clear it to 0.
So we toggle the ENABLE bit instead. Hopefully this doesn't interfere No, I don't understand Intel either. */
with the debounce logic and result in two events */
if ((uint32)(cookie) == ACPI_BITREG_POWER_BUTTON_STATUS) {
acpi->write_acpi_reg(ACPI_BITREG_POWER_BUTTON_ENABLE,1);
acpi->write_acpi_reg(ACPI_BITREG_POWER_BUTTON_ENABLE,0);
} else if ((uint32)(cookie) == ACPI_BITREG_SLEEP_BUTTON_STATUS) {
acpi->write_acpi_reg(ACPI_BITREG_SLEEP_BUTTON_ENABLE,1);
acpi->write_acpi_reg(ACPI_BITREG_SLEEP_BUTTON_ENABLE,0);
}
*num_bytes = 1; *num_bytes = 1;
return B_OK; return B_OK;