coreboot/src
Matthew Blecker a5714574fd mb/google/poppy/variants/atlas: stop setting touchscreen probed=1
All Atlas devices have the touchscreen controller, so probing for its
presence is unnecessary.  Removing the probe requirement allows the
touchscreen ACPI device in Linux to re-enumerate when rebinding its
I2C adapter device.

Without this change, after rebinding the touchscreen's I2C adapter
device using sysfs the touchscreen ACPI and HID devices are absent, and
the touchscreen is unresponsive.

With this change, the touchscreen ACPI and HID devices are re-created
after rebinding its I2C adapter device, and the touchscreen becomes
responsive again.

BUG=b:177350937
TEST=Tested on 2 Atlas DUTs running Chrome OS R94 top-of-tree builds
with Linux 4.4 and 5.4.

Built new AP FW from Atlas Chrome OS firmware branch with this change
applied.  Tested shipping RO + new RW, and new RO + new RW.

Test sequence:

1) Boot DUT, verify basic touchscreen functionality.

2) $ cd /sys/bus/platform/drivers/i2c_designware

3) $ ls -ld i2c_designware.0{,/i2c-6{,/i2c-ACPI0C50:00{,/0018:0483:1058.*{,/hidraw{,/hidraw*}}}}}
lrwxrwxrwx. 1 root root 0 Aug 12 01:07 i2c_designware.0 -> ../../../../devices/pci0000:00/0000:00:15.0/i2c_designware.0
drwxr-xr-x. 5 root root 0 Aug 12 01:07 i2c_designware.0/i2c-6
drwxr-xr-x. 4 root root 0 Aug 12 01:07 i2c_designware.0/i2c-6/i2c-ACPI0C50:00
drwxr-xr-x. 5 root root 0 Aug 12 01:07 i2c_designware.0/i2c-6/i2c-ACPI0C50:00/0018:0483:1058.0002
drwxr-xr-x. 3 root root 0 Aug 12 01:07 i2c_designware.0/i2c-6/i2c-ACPI0C50:00/0018:0483:1058.0002/hidraw
drwxr-xr-x. 3 root root 0 Aug 12 01:07 i2c_designware.0/i2c-6/i2c-ACPI0C50:00/0018:0483:1058.0002/hidraw/hidraw1

4) $ echo i2c_designware.0 > unbind

5) Verify touchscreen is unresponsive (as expected after unbind).

6) $ ls -ld i2c_designware.0
ls: cannot access 'i2c_designware.0': No such file or directory

7) $ echo i2c_designware.0 > bind

*** Without this change: ***

8) Touchscreen remains unresponsive.

9) $ ls -ld i2c_designware.0{,/i2c-6{,/i2c-ACPI0C50:00}}
ls: cannot access 'i2c_designware.0/i2c-6/i2c-ACPI0C50:00': No such file or directory
lrwxrwxrwx. 1 root root 0 Aug 12 01:18 i2c_designware.0 -> ../../../../devices/pci0000:00/0000:00:15.0/i2c_designware.0
drwxr-xr-x. 4 root root 0 Aug 12 01:18 i2c_designware.0/i2c-6

*** With this change: ***

8) Touchscreen is functional again.

9) $ ls -ld i2c_designware.0{,/i2c-6{,/i2c-ACPI0C50:00{,/0018:0483:1058.*{,/hidraw{,/hidraw*}}}}}
lrwxrwxrwx. 1 root root 0 Aug 12 01:09 i2c_designware.0 -> ../../../../devices/pci0000:00/0000:00:15.0/i2c_designware.0
drwxr-xr-x. 5 root root 0 Aug 12 01:09 i2c_designware.0/i2c-6
drwxr-xr-x. 4 root root 0 Aug 12 01:09 i2c_designware.0/i2c-6/i2c-ACPI0C50:00
drwxr-xr-x. 5 root root 0 Aug 12 01:09 i2c_designware.0/i2c-6/i2c-ACPI0C50:00/0018:0483:1058.0003
drwxr-xr-x. 3 root root 0 Aug 12 01:09 i2c_designware.0/i2c-6/i2c-ACPI0C50:00/0018:0483:1058.0003/hidraw
drwxr-xr-x. 3 root root 0 Aug 12 01:09 i2c_designware.0/i2c-6/i2c-ACPI0C50:00/0018:0483:1058.0003/hidraw/hidraw1

Signed-off-by: Matthew Blecker <matthewb@chromium.org>
Change-Id: I7b90690b0591e8748d7a007f8cc9688d393e59db
Reviewed-on: https://review.coreboot.org/c/coreboot/+/56928
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2021-08-16 14:55:12 +00:00
..
acpi arch/x86/acpi: rename KEY_KBDILLUMTOGGLE to KEY_KBD_BKLIGHT_TOGGLE 2021-08-06 16:26:44 +00:00
arch arch/x86: smbios write 7 table using deterministic cache functions 2021-08-11 05:50:02 +00:00
commonlib util/elogtool: add tool to print elog events 2021-08-05 22:00:35 +00:00
console console/hw-debug_sink: Update for fast/slow console distinction 2021-08-04 15:15:45 +00:00
cpu cpu/x86/mp_init: don't wait between INIT and SIPI for X86_AMD_INIT_SIPI 2021-07-27 14:00:32 +00:00
device device/pci_rom: Make ON_DEVICE_ROM_LOAD condition truthy 2021-07-20 16:52:35 +00:00
drivers drivers/generic/alc1015: Add HID to support alc1019 2021-08-12 17:57:55 +00:00
ec ec/google/chromeec: Add code for KEY_MICMUTE and KEY_KBD_BKLIGHT_TOGGLE 2021-08-06 16:26:51 +00:00
include soc/intel/common/block/cpu: Introduce CAR_HAS_L3_PROTECTED_WAYS Kconfig 2021-08-16 05:07:12 +00:00
lib Move post_codes.h to commonlib/console/ 2021-08-04 15:15:51 +00:00
mainboard mb/google/poppy/variants/atlas: stop setting touchscreen probed=1 2021-08-16 14:55:12 +00:00
northbridge nb/intel/haswell: Move MRC glue code into a subfolder 2021-08-02 14:59:45 +00:00
security vboot/secdata_tpm: Add WRITE_STCLEAR attr to RW ARB spaces 2021-07-26 07:27:48 +00:00
soc soc/intel/alderlake: Create eNEM Kconfig for Alder Lake 2021-08-16 05:07:45 +00:00
southbridge soc/amd/common/block/acpimmio: add Kconfig option for biosram accessors 2021-07-26 19:34:20 +00:00
superio
vendorcode vc/mediatek/mt8195: Optimize DRAM init time by disabling Vcore setting 2021-08-12 17:58:45 +00:00
Kconfig option: Allow mainboards to implement the API 2021-05-28 11:37:25 +00:00