quo / ithc-linux

Linux driver for Intel Touch Host Controller
36 stars 6 forks source link

Rolling into the kernel? #7

Open jumpinggoofballs opened 2 years ago

jumpinggoofballs commented 2 years ago

Will these drivers eventually be roled into surface-kernel and then mainline linux?

Thank you so much for your work!

quo commented 2 years ago

Yeah, ithc can probably be added to the surface-linux kernel soon, but that's up to qzed/StollD.

Upstreaming into the official kernel would be nice, but a bunch of things will need to be done first:

Also they don't accept pseudonymous contributions AFAIK, so someone else will have to handle the upstreaming.

jumpinggoofballs commented 2 years ago

Awesome!

Yes, I was not expecting mainline to be easy. But surface-kernel will be very nice to have, because there's only so much I want to futz around with my main work computer - manually installing drivers is a bit too much for me.

Thanks again!

qzed commented 2 years ago

What's the current status on IPTSd support? I think it doesn't really make sense to include the module if you still have to build IPTSd yourself, but as soon as that's done and there are no known big crash-inducing bugs, I'm open for a PR. CC @StollD.

As @quo said, upstreaming will require a bunch of additional work. ./scripts/checkpatch.pl is probably a good way to start on the style issues (braces, indentation, empty lines for spacing, line breaks, variable declarations first, ...). And yes, the CHECK macros are a no-go upstream. Apart from that, make sure there are no build warnings.

quo commented 2 years ago

(Let's keep this issue open to track upstreaming status.)

What's the current status on IPTSd support?

So far the pen changes seem ok. Haven't seen any crashes. Most of the feedback is about build errors.

I'd like to let it simmer for a couple weeks, see what other bugs pop up. The parser changes still need to be tested on some older Surface devices. And of course it's based on the libqzed branch, which I don't really know the status of.

On the ithc side, the irq source-id bug really should be fixed before this gets included anywhere, since it's affecting every device with a THC so far. I'm hoping to have time to do a deep dive somewhere this month.

StollD commented 2 years ago

The libqzed branch should mostly be ready. The default behaviour should be similar to the iptsd master branch, the processing code from @qzed is behind a flag.

I would kinda like to modify iptsd to support the HID based interface before we release it. Then we wouldnt have to maintain multiple userspace APIs in multiple drivers. But I don't really have much time, so if you think everything works, I am fine with pulling your changes for the ITHC interface into the master branch.

m1nicrusher commented 1 year ago

Just wondering if I'm using quo/ithc-linux, do I need quo/iptsd or linux-surface/iptsd? I can see quo/iptsd it says it's "deprecated".

PS: I'm using SP8 and I want to enable multi-touch

qzed commented 1 year ago

AFAIK the ITHC driver runs in HID mode by default and linux-surface/iptsd supports HID mode now (as well as basic pen functionality). So I don't think you need quo/iptsd any longer.

m1nicrusher commented 1 year ago

So I don't think you need quo/iptsd any longer.

Has any one successfully got ithc running with the linux-surface/iptsd? I can't install linux-surface/iptsd with ithc.

NP-chaonay commented 1 year ago

So I don't think you need quo/iptsd any longer.

Has any one successfully got ithc running with the linux-surface/iptsd? I can't install linux-surface/iptsd with ithc.

could you posted the problem details in linux-surface matrix?

StollD commented 1 year ago

Is your ITHC running in HID mode? As of https://github.com/quo/ithc-linux/commit/02bf0eb009dcb6d037a1c10bd70e7fb5d29718bb it will do that by default, so if you installed it before that commit (i.e. through DKMS), you will need to add ithc.hid=1 to the kernel commandline.

m1nicrusher commented 1 year ago

Is your ITHC running in HID mode?

How should I tell?

could you posted the problem details in linux-surface matrix?

As for what happened exactly,

[19:10:41.274] [error] You need to specify the hidraw device!

I'm guessing it's related to HID mode thing? So again, how should I tell? I indeed installed via DKMS.

StollD commented 1 year ago

How should I tell?

sudo dmesg | grep hidraw and check if there is a device called Intel Touch Host Controller.

As for what happened exactly,

Thats explained in the iptsd README. You need to either install iptsd, so that it is started by udev, or pass the hidraw device as an argument when running it. Grabbing a prebuilt package for your distribution from Github Actions is the easiest way though.

m1nicrusher commented 1 year ago

sudo dmesg | grep hidraw and check if there is a device called Intel Touch Host Controller.

Yes there is. So I guess it's running correctly.

Thats explained in the iptsd README. You need to either install iptsd, so that it is started by udev, or pass the hidraw device as an argument when running it. Grabbing a prebuilt package for your distribution from Github Actions is the easiest way though.

Thanks! Will try later on.