The palm rejection on this laptop isn’t ideal. If I put my palm on the screen, the palm is ignored, but any new tap will still be detected. This causes many accidental taps while I’m drawing with my palm on the screen. I think it’d be way better if the screen is disabled while a palm is detected. I’m trying to see if this behavior can be improved with some kind of update, or otherwise tweaked.
The touch screen is reported as “GDIX0000:00 27C6:0ED3” by Goodix, and is handled by the “hid-multitouch” driver in linux.
I’ve been trying to figure out the source of the behavior, and I’ve concluded by dumping HID events, that the palm press doesn’t reach the kernel. This means that the behavior comes from the firmware.
I’m wondering, where is this firmware supplied? Does coreboot include this firmware somewhere, or is it stored somewhere else in the hardware? Does ChromeOS update it?
I realize this question is quite technical and may sound weird, but I’m wondering if anyone knows more about this bit of hardware.
palm rejection is almost always implemented at the OS level, not firmware. The firmware doesn’t even report events to the OS, it just tells the OS (drivers) how to interface with the hardware. Everything else happens at the OS level
Do you know how I can make sure that this palm rejecting behaviour I’m seeing is done by the OS? I used the “hid-recorder” tool from https://gitlab.freedesktop.org/libevdev/hid-tools, and it doesn’t show any events when I put my palm on the screen, only when I put actual fingers on it, or it misdetects some other touch.
That said, I see, I’m aware the coreboot firmware doesn’t generate the events, but it may configure the devices a certain way, or upload device-specific firmware on boot, like the linux kernel does with the files in /lib/firmware. I’m wondering if the coreboot firmware has any binary blobs or configuration for the touch panel. I know for example the elan touchpad on this laptop has builtin firmware that can be updated with the elan_i2c linux module.
Thanks for the quick replies! I now know enough to solve my initial questions, so I’ll mark this as solved. I’m still wondering how this exposing happens, but that’s a different question.