Lines Matching full:address

18 acpi_hw_validate_io_request(acpi_io_address address, u32 bit_width);
22 * conditionally illegal. This table must remain ordered by port address.
77 * PARAMETERS: Address Address of I/O port/register
82 * DESCRIPTION: Validates an I/O request (address/length). Certain ports are
90 acpi_hw_validate_io_request(acpi_io_address address, u32 bit_width) in acpi_hw_validate_io_request() argument
109 last_address = address + byte_width - 1; in acpi_hw_validate_io_request()
112 "Address %8.8X%8.8X LastAddress %8.8X%8.8X Length %X", in acpi_hw_validate_io_request()
113 ACPI_FORMAT_UINT64(address), in acpi_hw_validate_io_request()
116 /* Maximum 16-bit address in I/O space */ in acpi_hw_validate_io_request()
120 "Illegal I/O port address/length above 64K: %8.8X%8.8X/0x%X", in acpi_hw_validate_io_request()
121 ACPI_FORMAT_UINT64(address), byte_width)); in acpi_hw_validate_io_request()
125 /* Exit if requested address is not within the protected port table */ in acpi_hw_validate_io_request()
127 if (address > acpi_protected_ports[ACPI_PORT_INFO_ENTRIES - 1].end) { in acpi_hw_validate_io_request()
135 * Check if the requested address range will write to a reserved in acpi_hw_validate_io_request()
138 * 1) Address range is contained completely in the port address range in acpi_hw_validate_io_request()
139 * 2) Address range overlaps port range at the port range start in acpi_hw_validate_io_request()
140 * 3) Address range overlaps port range at the port range end in acpi_hw_validate_io_request()
141 * 4) Address range completely encompasses the port range in acpi_hw_validate_io_request()
143 if ((address <= port_info->end) in acpi_hw_validate_io_request()
151 ACPI_FORMAT_UINT64(address), in acpi_hw_validate_io_request()
160 /* Finished if address range ends before the end of this port */ in acpi_hw_validate_io_request()
174 * PARAMETERS: Address Address of I/O port/register to read
182 * address and the length.
186 acpi_status acpi_hw_read_port(acpi_io_address address, u32 *value, u32 width) in acpi_hw_read_port() argument
192 /* Truncate address to 16 bits if requested */ in acpi_hw_read_port()
195 address &= ACPI_UINT16_MAX; in acpi_hw_read_port()
200 status = acpi_hw_validate_io_request(address, width); in acpi_hw_read_port()
202 status = acpi_os_read_port(address, value, width); in acpi_hw_read_port()
219 if (acpi_hw_validate_io_request(address, 8) == AE_OK) { in acpi_hw_read_port()
220 status = acpi_os_read_port(address, &one_byte, 8); in acpi_hw_read_port()
228 address++; in acpi_hw_read_port()
238 * PARAMETERS: Address Address of I/O port/register to write
246 * address and the length.
250 acpi_status acpi_hw_write_port(acpi_io_address address, u32 value, u32 width) in acpi_hw_write_port() argument
255 /* Truncate address to 16 bits if requested */ in acpi_hw_write_port()
258 address &= ACPI_UINT16_MAX; in acpi_hw_write_port()
263 status = acpi_hw_validate_io_request(address, width); in acpi_hw_write_port()
265 status = acpi_os_write_port(address, value, width); in acpi_hw_write_port()
282 if (acpi_hw_validate_io_request(address, 8) == AE_OK) { in acpi_hw_write_port()
284 acpi_os_write_port(address, (value >> i) & 0xFF, 8); in acpi_hw_write_port()
290 address++; in acpi_hw_write_port()
300 * PARAMETERS: Address Address of I/O port/register blobk
310 acpi_status acpi_hw_validate_io_block(u64 address, u32 bit_width, u32 count) in acpi_hw_validate_io_block() argument
315 status = acpi_hw_validate_io_request((acpi_io_address)address, in acpi_hw_validate_io_block()
320 address += ACPI_DIV_8(bit_width); in acpi_hw_validate_io_block()