Modern touchpads and Haiku

On my new laptop, Haiku doesn’t work with the touchpad at all. On the older laptop (from 2019), it does. Just wondering, what changed with touchpads between 2019 and today that causes Haiku to not work with them anymore? This isn’t necessarily about getting my touchpad supported (but it’d be nice), since I can just use a mouse.

I just want to know what happened and maybe start a discussion on what would be needed to resolve issues caused by touchpad changes.

2 Likes

It could also be that nothing happened at all. It depends on your hardware.

For one of my newer Laptops this is the problem: #3 (PCI bus_manager does no memory resource assignment) – Haiku

It depends on the communications used by the touchpad. My 2014 MacBookPro uses a USB based interface, and the touchpad works fine. My HP Omen16 from 2021 uses I2C, and there is no touchpad driver for my laptop. Not really a loss in my scenario, since the ELAN hardware is a piece of junk and the Win/Lin drivers try all sorts of magic to get it working and fail constantly so I always have to reset the ELAN driver. Best to use a mouse with proper buttons/wheel and have much better accuracy.

3 Likes

We only have support for one kind of I2C bus. We don’t have support for modern I2C buses. We support, however, I2C HID and even there are some ELAN specific I2C drivers.

There are room for improvement on Touchpad support but what is missing here is a better I2C driver.

I also dislike I2C peripherals but all laptops I put my hands in, (and that’s a lot), have touchpad/touchscreen backed by I2C.

1 Like

The I2c hid driver is not enabled by default currently. Maybe we shoukld change that at least.

Laptops continued to use PS/2 ports for touchpads. This is a specific protocol and also a bit quirky and limited and largely non-standard.

They have now switched to i2c, a well known standard protocol already used for various other things (temperature probes, fan speed sensors, …). And on top of that they use HID, the same protocol used by bluetooth and USB, that allows the device to describe what it supports, so the driver doesn’t have to guess or do complicated feature detection attempts.

Haiku i2c support is not complete yet, which likely explains the non-working touchpads. Keyboards will probably be affected as well at some point (for now they still use PS/2, because todays keyboard are similar enough to ones from the 1980s, while touchpads are in fact quite different from 1980s mouses in terms of capabilities).

4 Likes