void AcpiHwClearGpe ( UINT32 GpeNumber) { UINT32 RegisterIndex; UINT32 BitMask; FUNCTION_ENTRY (); /* * Translate GPE number to index into global registers array. */ RegisterIndex = AcpiGbl_GpeValid[GpeNumber]; /* * Figure out the bit offset for this GPE within the target register. */ BitMask = AcpiGbl_DecodeTo8bit [MOD_8 (GpeNumber)]; /* * Write a one to the appropriate bit in the status register to * clear this GPE. */ AcpiOsWritePort (AcpiGbl_GpeRegisters[RegisterIndex].StatusAddr, BitMask, 8); }
void acpi_hw_disable_gpe ( u32 gpe_number) { u8 in_byte; u32 register_index; u8 bit_mask; /* * Translate GPE number to index into global registers array. */ register_index = acpi_gbl_gpe_valid[gpe_number]; /* * Figure out the bit offset for this GPE within the target register. */ bit_mask = acpi_gbl_decode_to8bit [MOD_8 (gpe_number)]; /* * Read the current value of the register, clear the appropriate bit, * and write out the new register value to disable the GPE. */ in_byte = acpi_os_in8 (acpi_gbl_gpe_registers[register_index].enable_addr); acpi_os_out8 (acpi_gbl_gpe_registers[register_index].enable_addr, (u8)(in_byte & ~bit_mask)); }
void AcpiHwDisableGpe ( UINT32 GpeNumber) { UINT32 InByte; UINT32 RegisterIndex; UINT32 BitMask; FUNCTION_ENTRY (); /* * Translate GPE number to index into global registers array. */ RegisterIndex = AcpiGbl_GpeValid[GpeNumber]; /* * Figure out the bit offset for this GPE within the target register. */ BitMask = AcpiGbl_DecodeTo8bit [MOD_8 (GpeNumber)]; /* * Read the current value of the register, clear the appropriate bit, * and write out the new register value to disable the GPE. */ InByte = 0; AcpiOsReadPort (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr, &InByte, 8); AcpiOsWritePort (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr, (InByte & ~BitMask), 8); }
void acpi_hw_enable_gpe_for_wakeup ( u32 gpe_number) { u32 register_index; u32 bit_mask; FUNCTION_ENTRY (); /* * Translate GPE number to index into global registers array. */ register_index = acpi_gbl_gpe_valid[gpe_number]; /* * Figure out the bit offset for this GPE within the target register. */ bit_mask = acpi_gbl_decode_to8bit [MOD_8 (gpe_number)]; /* * Set the bit so we will not disable this when sleeping */ acpi_gbl_gpe_registers[register_index].wake_enable |= bit_mask; }
void acpi_hw_enable_gpe ( u32 gpe_number) { u32 in_byte; u32 register_index; u32 bit_mask; FUNCTION_ENTRY (); /* * Translate GPE number to index into global registers array. */ register_index = acpi_gbl_gpe_valid[gpe_number]; /* * Figure out the bit offset for this GPE within the target register. */ bit_mask = acpi_gbl_decode_to8bit [MOD_8 (gpe_number)]; /* * Read the current value of the register, set the appropriate bit * to enable the GPE, and write out the new register. */ in_byte = 0; acpi_os_read_port (acpi_gbl_gpe_registers[register_index].enable_addr, &in_byte, 8); acpi_os_write_port (acpi_gbl_gpe_registers[register_index].enable_addr, (in_byte | bit_mask), 8); }
void acpi_hw_clear_gpe ( u32 gpe_number) { u32 register_index; u32 bit_mask; FUNCTION_ENTRY (); /* * Translate GPE number to index into global registers array. */ register_index = acpi_gbl_gpe_valid[gpe_number]; /* * Figure out the bit offset for this GPE within the target register. */ bit_mask = acpi_gbl_decode_to8bit [MOD_8 (gpe_number)]; /* * Write a one to the appropriate bit in the status register to * clear this GPE. */ acpi_os_write_port (acpi_gbl_gpe_registers[register_index].status_addr, bit_mask, 8); }
void acpi_hw_get_gpe_status ( u32 gpe_number, acpi_event_status *event_status) { u32 in_byte = 0; u32 register_index = 0; u32 bit_mask = 0; FUNCTION_ENTRY (); if (!event_status) { return; } (*event_status) = 0; /* * Translate GPE number to index into global registers array. */ register_index = acpi_gbl_gpe_valid[gpe_number]; /* * Figure out the bit offset for this GPE within the target register. */ bit_mask = acpi_gbl_decode_to8bit [MOD_8 (gpe_number)]; /* * Enabled?: */ in_byte = 0; acpi_os_read_port (acpi_gbl_gpe_registers[register_index].enable_addr, &in_byte, 8); if (bit_mask & in_byte) { (*event_status) |= ACPI_EVENT_FLAG_ENABLED; } /* * Enabled for wake?: */ if (bit_mask & acpi_gbl_gpe_registers[register_index].wake_enable) { (*event_status) |= ACPI_EVENT_FLAG_WAKE_ENABLED; } /* * Set? */ in_byte = 0; acpi_os_read_port (acpi_gbl_gpe_registers[register_index].status_addr, &in_byte, 8); if (bit_mask & in_byte) { (*event_status) |= ACPI_EVENT_FLAG_SET; } }
void AcpiHwGetGpeStatus ( UINT32 GpeNumber, ACPI_EVENT_STATUS *EventStatus) { UINT32 InByte = 0; UINT32 RegisterIndex = 0; UINT32 BitMask = 0; FUNCTION_ENTRY (); if (!EventStatus) { return; } (*EventStatus) = 0; /* * Translate GPE number to index into global registers array. */ RegisterIndex = AcpiGbl_GpeValid[GpeNumber]; /* * Figure out the bit offset for this GPE within the target register. */ BitMask = AcpiGbl_DecodeTo8bit [MOD_8 (GpeNumber)]; /* * Enabled?: */ InByte = 0; AcpiOsReadPort (AcpiGbl_GpeRegisters[RegisterIndex].EnableAddr, &InByte, 8); if (BitMask & InByte) { (*EventStatus) |= ACPI_EVENT_FLAG_ENABLED; } /* * Set? */ InByte = 0; AcpiOsReadPort (AcpiGbl_GpeRegisters[RegisterIndex].StatusAddr, &InByte, 8); if (BitMask & InByte) { (*EventStatus) |= ACPI_EVENT_FLAG_SET; } }
void acpi_hw_get_gpe_status ( u32 gpe_number, ACPI_EVENT_STATUS *event_status) { u8 in_byte = 0; u32 register_index = 0; u8 bit_mask = 0; if (!event_status) { return; } (*event_status) = 0; /* * Translate GPE number to index into global registers array. */ register_index = acpi_gbl_gpe_valid[gpe_number]; /* * Figure out the bit offset for this GPE within the target register. */ bit_mask = acpi_gbl_decode_to8bit [MOD_8 (gpe_number)]; /* * Enabled?: */ in_byte = acpi_os_in8 (acpi_gbl_gpe_registers[register_index].enable_addr); if (bit_mask & in_byte) { (*event_status) |= ACPI_EVENT_FLAG_ENABLED; } /* * Set? */ in_byte = acpi_os_in8 (acpi_gbl_gpe_registers[register_index].status_addr); if (bit_mask & in_byte) { (*event_status) |= ACPI_EVENT_FLAG_SET; } }