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

Commit 49fbabf5 authored by Zhao Yakui's avatar Zhao Yakui Committed by Len Brown
Browse files

ACPI: Handle I/O access width requestst that are not a multiple of 8 bits.



We've run into BIOS that hand us 4-bit access width requests
for T-state control when the code expected only multipls of 8-bits.
Round up.

Signed-off-by: default avatarZhao Yakui <yakui.zhao@intel.com>
Signed-off-by: default avatarLi Shaohua <shaohua.li@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent ef54d5ad
Loading
Loading
Loading
Loading
+9 −16
Original line number Diff line number Diff line
@@ -387,17 +387,14 @@ acpi_status acpi_os_read_port(acpi_io_address port, u32 * value, u32 width)
	if (!value)
		value = &dummy;

	switch (width) {
	case 8:
	*value = 0;
	if (width <= 8) {
		*(u8 *) value = inb(port);
		break;
	case 16:
	} else if (width <= 16) {
		*(u16 *) value = inw(port);
		break;
	case 32:
	} else if (width <= 32) {
		*(u32 *) value = inl(port);
		break;
	default:
	} else {
		BUG();
	}

@@ -408,17 +405,13 @@ EXPORT_SYMBOL(acpi_os_read_port);

acpi_status acpi_os_write_port(acpi_io_address port, u32 value, u32 width)
{
	switch (width) {
	case 8:
	if (width <= 8) {
		outb(value, port);
		break;
	case 16:
	} else if (width <= 16) {
		outw(value, port);
		break;
	case 32:
	} else if (width <= 32) {
		outl(value, port);
		break;
	default:
	} else {
		BUG();
	}