Subrata Banik has submitted this change. ( https://review.coreboot.org/c/coreboot/+/87001?usp=email )
(
6 is the latest approved patch-set. No files were changed between the latest approved patch-set and the submitted one. )Change subject: mb/google/rex: Enable use_gpio_for_status for touchscreen ......................................................................
mb/google/rex: 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 rex variants with touchscreen.
BUG=b:397355818 TEST=Dump SSDT and check that the _STA method of touchscreen (i2c1) 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 karis)
Change-Id: Ibe7681884dc3edfb98c7c179b1af2063e35c4b46 Signed-off-by: Momoko Hattori momohatt@google.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/87001 Reviewed-by: Subrata Banik subratabanik@google.com Reviewed-by: Kapil Porwal kapilporwal@google.com Reviewed-by: Sam McNally sammc@google.com Tested-by: build bot (Jenkins) no-reply@coreboot.org --- M src/mainboard/google/rex/variants/kanix/overridetree.cb M src/mainboard/google/rex/variants/karis/overridetree.cb M src/mainboard/google/rex/variants/rex0/overridetree.cb M src/mainboard/google/rex/variants/screebo/overridetree.cb 4 files changed, 5 insertions(+), 0 deletions(-)
Approvals: Kapil Porwal: Looks good to me, approved Subrata Banik: Looks good to me, approved build bot (Jenkins): Verified Sam McNally: Looks good to me, approved
diff --git a/src/mainboard/google/rex/variants/kanix/overridetree.cb b/src/mainboard/google/rex/variants/kanix/overridetree.cb index 83663e8..8f2aed3 100644 --- a/src/mainboard/google/rex/variants/kanix/overridetree.cb +++ b/src/mainboard/google/rex/variants/kanix/overridetree.cb @@ -444,6 +444,7 @@ register "generic.stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C06)" 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/rex/variants/karis/overridetree.cb b/src/mainboard/google/rex/variants/karis/overridetree.cb index ea45d61..2607ad7 100644 --- a/src/mainboard/google/rex/variants/karis/overridetree.cb +++ b/src/mainboard/google/rex/variants/karis/overridetree.cb @@ -404,6 +404,7 @@ register "generic.stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C06)" 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/rex/variants/rex0/overridetree.cb b/src/mainboard/google/rex/variants/rex0/overridetree.cb index 66b2bc9..177e887 100644 --- a/src/mainboard/google/rex/variants/rex0/overridetree.cb +++ b/src/mainboard/google/rex/variants/rex0/overridetree.cb @@ -579,6 +579,7 @@ register "generic.stop_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_LOW(GPP_C06)" 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 probe TOUCHSCREEN TOUCHSCREEN_I2C diff --git a/src/mainboard/google/rex/variants/screebo/overridetree.cb b/src/mainboard/google/rex/variants/screebo/overridetree.cb index d46d7c9..6e8f5fc 100644 --- a/src/mainboard/google/rex/variants/screebo/overridetree.cb +++ b/src/mainboard/google/rex/variants/screebo/overridetree.cb @@ -451,6 +451,7 @@ register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B17)" 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 probe TOUCHSCREEN TOUCHSCREEN_ILITEK @@ -467,6 +468,7 @@ register "generic.enable_gpio" = "ACPI_GPIO_OUTPUT_ACTIVE_HIGH(GPP_B17)" 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 10 on probe TOUCHSCREEN TOUCHSCREEN_ELAN