Eric Lai has submitted this change. ( https://review.coreboot.org/c/coreboot/+/86876?usp=email )
(
4 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. )Change subject: mb/google/brya: Enable use_gpio_for_status for touchscreen ......................................................................
mb/google/brya: Enable use_gpio_for_status for touchscreen
The _STA method of touchscreen's power resource currently always returns true. This causes the touchscreen to be powered on by the kernel in a boot critical path (in acpi_bus_init_power) and block the boot for a while due to the long (~300ms depending on variants) sleeps in the _ON method of the power resource. To prevent it, enable use_gpio_for_status so that the implementation of _STA returns the touchscreen's actual power state and the kernel powers it on in another place that doesn't block boot.
The similar change has already been made to mb/google/brya/var/redrix in commit d0367e38a9e5 ("mb/google/brya/var/redrix: Enable use_gpio_for_status for touchscreen") (CB:86749). This change applies it to all the other non-4es brya variants with touchscreen.
BUG=b:397355818 TEST=Dump SSDT and check that the _STA method of touchscreen (i2c3) PowerResource doesn't always return true. TEST=Check that touchscreen works with the change. TEST=Check that kernel sleep during ACPI initialization is removed by checking the timestamps of 'New power resource' logs from ACPI in /var/log/messages. TEST=(Tested above on crota)
Change-Id: I068faa97089ce0011727325ffc868450572bdf58 Signed-off-by: Momoko Hattori momohatt@google.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/86876 Reviewed-by: Eric Lai ericllai@google.com Reviewed-by: Sam McNally sammc@google.com Reviewed-by: Kapil Porwal kapilporwal@google.com Tested-by: build bot (Jenkins) no-reply@coreboot.org --- M src/mainboard/google/brya/variants/anahera/overridetree.cb M src/mainboard/google/brya/variants/brya0/overridetree.cb M src/mainboard/google/brya/variants/crota/overridetree.cb M src/mainboard/google/brya/variants/dochi/overridetree.cb M src/mainboard/google/brya/variants/felwinter/overridetree.cb M src/mainboard/google/brya/variants/gaelin/overridetree.cb M src/mainboard/google/brya/variants/gimble/overridetree.cb M src/mainboard/google/brya/variants/kano/overridetree.cb M src/mainboard/google/brya/variants/marasov/overridetree.cb M src/mainboard/google/brya/variants/mithrax/overridetree.cb M src/mainboard/google/brya/variants/nova/overridetree.cb M src/mainboard/google/brya/variants/omnigul/overridetree.cb M src/mainboard/google/brya/variants/primus/overridetree.cb M src/mainboard/google/brya/variants/skolas/overridetree.cb M src/mainboard/google/brya/variants/taeko/overridetree.cb M src/mainboard/google/brya/variants/taniks/overridetree.cb M src/mainboard/google/brya/variants/vell/overridetree.cb M src/mainboard/google/brya/variants/volmar/overridetree.cb M src/mainboard/google/brya/variants/zydron/overridetree.cb 19 files changed, 29 insertions(+), 0 deletions(-)
Approvals: build bot (Jenkins): Verified Eric Lai: Looks good to me, approved Sam McNally: Looks good to me, approved Kapil Porwal: Looks good to me, approved
diff --git a/src/mainboard/google/brya/variants/anahera/overridetree.cb b/src/mainboard/google/brya/variants/anahera/overridetree.cb index 95787ee..2670e11 100644 --- a/src/mainboard/google/brya/variants/anahera/overridetree.cb +++ b/src/mainboard/google/brya/variants/anahera/overridetree.cb @@ -281,6 +281,7 @@ register "stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "has_power_resource" = "true" + register "use_gpio_for_status" = "true" device i2c 10 on end end chip drivers/i2c/hid @@ -295,6 +296,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C0)" register "generic.enable_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 40 on end end diff --git a/src/mainboard/google/brya/variants/brya0/overridetree.cb b/src/mainboard/google/brya/variants/brya0/overridetree.cb index 3212a5b6..24612c1 100644 --- a/src/mainboard/google/brya/variants/brya0/overridetree.cb +++ b/src/mainboard/google/brya/variants/brya0/overridetree.cb @@ -955,6 +955,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "generic.stop_off_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 0x10 on end end @@ -974,6 +975,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "generic.stop_off_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 0x5d on end end @@ -991,6 +993,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C0)" register "generic.enable_delay_ms" = "7" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x00" device i2c 5c on end end diff --git a/src/mainboard/google/brya/variants/crota/overridetree.cb b/src/mainboard/google/brya/variants/crota/overridetree.cb index 7b0fd59..a55c68c 100644 --- a/src/mainboard/google/brya/variants/crota/overridetree.cb +++ b/src/mainboard/google/brya/variants/crota/overridetree.cb @@ -280,6 +280,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "generic.stop_off_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 0x16 on end end diff --git a/src/mainboard/google/brya/variants/dochi/overridetree.cb b/src/mainboard/google/brya/variants/dochi/overridetree.cb index f74db6e..8a10a7e 100644 --- a/src/mainboard/google/brya/variants/dochi/overridetree.cb +++ b/src/mainboard/google/brya/variants/dochi/overridetree.cb @@ -259,6 +259,7 @@ register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C0)" register "generic.enable_delay_ms" = "12" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 41 on end end @@ -276,6 +277,7 @@ register "generic.stop_delay_ms" = "150" register "generic.stop_off_delay_ms" = "2" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 10 on end end diff --git a/src/mainboard/google/brya/variants/felwinter/overridetree.cb b/src/mainboard/google/brya/variants/felwinter/overridetree.cb index ee8b584..1865ac6 100644 --- a/src/mainboard/google/brya/variants/felwinter/overridetree.cb +++ b/src/mainboard/google/brya/variants/felwinter/overridetree.cb @@ -304,6 +304,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "generic.stop_off_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 10 on end end diff --git a/src/mainboard/google/brya/variants/gaelin/overridetree.cb b/src/mainboard/google/brya/variants/gaelin/overridetree.cb index 014be97..b7bd9f0 100644 --- a/src/mainboard/google/brya/variants/gaelin/overridetree.cb +++ b/src/mainboard/google/brya/variants/gaelin/overridetree.cb @@ -209,6 +209,7 @@ register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C6)" register "generic.enable_delay_ms" = "6" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" device i2c 34 on end end end # I2C3 diff --git a/src/mainboard/google/brya/variants/gimble/overridetree.cb b/src/mainboard/google/brya/variants/gimble/overridetree.cb index 3148996..4f1bcdc 100644 --- a/src/mainboard/google/brya/variants/gimble/overridetree.cb +++ b/src/mainboard/google/brya/variants/gimble/overridetree.cb @@ -237,6 +237,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "generic.stop_off_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 0x15 on end end diff --git a/src/mainboard/google/brya/variants/kano/overridetree.cb b/src/mainboard/google/brya/variants/kano/overridetree.cb index 6e3383e..c832f96 100644 --- a/src/mainboard/google/brya/variants/kano/overridetree.cb +++ b/src/mainboard/google/brya/variants/kano/overridetree.cb @@ -434,6 +434,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "generic.stop_off_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 0x10 on end end diff --git a/src/mainboard/google/brya/variants/marasov/overridetree.cb b/src/mainboard/google/brya/variants/marasov/overridetree.cb index add5181..392fbdd 100644 --- a/src/mainboard/google/brya/variants/marasov/overridetree.cb +++ b/src/mainboard/google/brya/variants/marasov/overridetree.cb @@ -306,6 +306,7 @@ register "stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "stop_off_delay_ms" = "1" register "has_power_resource" = "true" + register "use_gpio_for_status" = "true" device i2c 10 on probe TOUCH TOUCH_ELAN0001 end diff --git a/src/mainboard/google/brya/variants/mithrax/overridetree.cb b/src/mainboard/google/brya/variants/mithrax/overridetree.cb index 0e1ba0b..15bebe2 100644 --- a/src/mainboard/google/brya/variants/mithrax/overridetree.cb +++ b/src/mainboard/google/brya/variants/mithrax/overridetree.cb @@ -258,6 +258,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "generic.stop_off_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 10 on end end diff --git a/src/mainboard/google/brya/variants/nova/overridetree.cb b/src/mainboard/google/brya/variants/nova/overridetree.cb index a615fdd..091edd5 100644 --- a/src/mainboard/google/brya/variants/nova/overridetree.cb +++ b/src/mainboard/google/brya/variants/nova/overridetree.cb @@ -218,6 +218,7 @@ register "generic.reset_delay_ms" = "200" register "generic.enable_delay_ms" = "12" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 41 on end end diff --git a/src/mainboard/google/brya/variants/omnigul/overridetree.cb b/src/mainboard/google/brya/variants/omnigul/overridetree.cb index a6c5ecc..20e3d41 100644 --- a/src/mainboard/google/brya/variants/omnigul/overridetree.cb +++ b/src/mainboard/google/brya/variants/omnigul/overridetree.cb @@ -287,6 +287,7 @@ register "generic.stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "generic.stop_off_delay_ms" = "2" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 40 on end end @@ -304,6 +305,7 @@ register "generic.stop_delay_ms" = "150" register "generic.stop_off_delay_ms" = "2" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 10 on end end diff --git a/src/mainboard/google/brya/variants/primus/overridetree.cb b/src/mainboard/google/brya/variants/primus/overridetree.cb index 893b3cf..b2619ee 100644 --- a/src/mainboard/google/brya/variants/primus/overridetree.cb +++ b/src/mainboard/google/brya/variants/primus/overridetree.cb @@ -258,6 +258,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "generic.stop_off_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 0x10 on end end @@ -273,6 +274,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C0)" register "generic.enable_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 0x40 on end end diff --git a/src/mainboard/google/brya/variants/skolas/overridetree.cb b/src/mainboard/google/brya/variants/skolas/overridetree.cb index c87690c..dc3ef3d 100644 --- a/src/mainboard/google/brya/variants/skolas/overridetree.cb +++ b/src/mainboard/google/brya/variants/skolas/overridetree.cb @@ -954,6 +954,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "generic.stop_off_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 0x10 on end end @@ -973,6 +974,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "generic.stop_off_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 0x5d on end end @@ -990,6 +992,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C0)" register "generic.enable_delay_ms" = "7" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x00" device i2c 5c on end end diff --git a/src/mainboard/google/brya/variants/taeko/overridetree.cb b/src/mainboard/google/brya/variants/taeko/overridetree.cb index 964d833..ff25f7b 100644 --- a/src/mainboard/google/brya/variants/taeko/overridetree.cb +++ b/src/mainboard/google/brya/variants/taeko/overridetree.cb @@ -478,6 +478,7 @@ # Parameter T4 >= 1ms register "generic.stop_off_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 5d on end end @@ -493,6 +494,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C0)" register "enable_delay_ms" = "1" register "has_power_resource" = "true" + register "use_gpio_for_status" = "true" device i2c 10 on end end end diff --git a/src/mainboard/google/brya/variants/taniks/overridetree.cb b/src/mainboard/google/brya/variants/taniks/overridetree.cb index ebe5853..e11793a 100644 --- a/src/mainboard/google/brya/variants/taniks/overridetree.cb +++ b/src/mainboard/google/brya/variants/taniks/overridetree.cb @@ -295,6 +295,7 @@ # Parameter T4 >= 1ms register "generic.stop_off_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 5d on end end @@ -310,6 +311,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_C0)" register "enable_delay_ms" = "1" register "has_power_resource" = "true" + register "use_gpio_for_status" = "true" device i2c 10 on end end end diff --git a/src/mainboard/google/brya/variants/vell/overridetree.cb b/src/mainboard/google/brya/variants/vell/overridetree.cb index 6f9b325..273fb0e 100644 --- a/src/mainboard/google/brya/variants/vell/overridetree.cb +++ b/src/mainboard/google/brya/variants/vell/overridetree.cb @@ -330,6 +330,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "generic.stop_off_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 0x10 on end end diff --git a/src/mainboard/google/brya/variants/volmar/overridetree.cb b/src/mainboard/google/brya/variants/volmar/overridetree.cb index 96935170..f57b733 100644 --- a/src/mainboard/google/brya/variants/volmar/overridetree.cb +++ b/src/mainboard/google/brya/variants/volmar/overridetree.cb @@ -295,6 +295,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "generic.stop_off_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 0x10 on end end diff --git a/src/mainboard/google/brya/variants/zydron/overridetree.cb b/src/mainboard/google/brya/variants/zydron/overridetree.cb index 0acf490..a3c4f34 100644 --- a/src/mainboard/google/brya/variants/zydron/overridetree.cb +++ b/src/mainboard/google/brya/variants/zydron/overridetree.cb @@ -410,6 +410,7 @@ "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C6)" register "generic.stop_off_delay_ms" = "1" register "generic.has_power_resource" = "1" + register "generic.use_gpio_for_status" = "true" register "hid_desc_reg_offset" = "0x01" device i2c 0x10 on end end