You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've only had a quick glance, but it looks pretty much like the SL5. The only difference I could spot is an additional node for (what based on other devices should be) HID-based sensors.
Note that this alone is not enough. We also need the repsective ACPI device ID for adding the entry here. For that, could you also run our "diagnostics" script (see here) and upload the archive it creates? This will gather some info about the system (including an ACPI dump), which we will need to figure out that ID.
So the touchscreen won't work with the version of ithc currently in the Surface kernel, because apparently Intel changed the final MTL device IDs from those that I found in an .inf file a while ago.
There also appears to be only one THC device on the PCI bus, even though ACPI contains configuration data for a second THC. So the touchpad is presumably not connected to a THC on the SL6.
EDIT: @leenozara
You may be able to get the touchscreen working without updating the ithc driver, by forcing ithc to load using the following commands:
Let me know anytime I can help. Sadly I don't know much about hardware and driver development, otherwise I'd help with code. Maybe I can take a look at pull requests for previous new devices and see what was done there.
Getting keyboard, trackpad and battery status working at a minimum would be the most significant improvement.
The following patch should enable SAM support (and with that hopefully battery, keyboard, and touchpad). Would be great if you can test it. In particular temperature sensors and fan, because we haven't enabled and tested them on the SL5, but it looks like they should be there on the SL6.
@leenozara Thanks! That looks like things are working. A dmesg log from when you applied that would still be nice though, to confirm that there are no errors or warnings. If that doesn't show anything out of the ordinary, I think we're good to apply it.
Apart from that: Since you mentioned you have access to a SL5, you could try adding/replacing the following nodes to the SL5 entry:
And then maybe also try to run the two commands for the HID devices again on the SL5, just to make sure we're not missing anything (since the SL6 has an additional sensor device).
And I think it's best if you open a new issue for that so that we don't mix the two devices here.
For SL5 I should have the device by end of the week. I'll set create a separate issue that pertains to testing linux-surface existing support for the SL5.
Looks like everything is working (for SAM at least).
@StollD if you have some time feel free to apply this. I'm away for the next three weeks and I'm not sure if I can manage to build/test/release anything during that time (only took the SPX with me...).
@qzed An observation: I've noticed that scrolling with the touchpad on the SL6 using your recent patch isn't smooth. Page scrolling stops when fingers stop moving in the direction. I didn't notice this until I also used my SL5, which does have smooth scrolling.
@leenozara Thanks!
So it looks like it consistently fails to read the device descriptor, sometimes with a timeout, sometimes with an invalid packet.
I finally had some time to look at the SL6 UEFI driver, and noticed that for some reason Intel has changed the layout of the SPI opcode registers. The rest of the initialization code looks basically the same as in the SLS2 driver, so hopefully that's the only required change.
I've created a separate branch with this change: https://github.com/quo/ithc-linux/tree/sl6
Please let me know if this branch works. (And please attach dmesg again, regardless of whether it works or doesn't.)
The ithc sl6 branch has been confirmed to work on a Meteor Lake ThinkBook (quo/ithc-linux#5 (comment)). And the SP10 will also require these changes. So I've merged the branch into master.
Hello all, could someone please update the wiki here with current status for this device. I'm looking at picking one up but want to be sure it's supported enough to daily. Much appreciated.
Activity
leenozara commentedon May 2, 2024
For Battery/Charger
For Internal HID Devices
For Type-Cover HID Devices
qzed commentedon May 2, 2024
I've only had a quick glance, but it looks pretty much like the SL5. The only difference I could spot is an additional node for (what based on other devices should be) HID-based sensors.
So adding something like
to
surface_aggregator_registry.cshould do the trick.Note that this alone is not enough. We also need the repsective ACPI device ID for adding the entry here. For that, could you also run our "diagnostics" script (see here) and upload the archive it creates? This will gather some info about the system (including an ACPI dump), which we will need to figure out that ID.
leenozara commentedon May 3, 2024
ACPI dump:
acpidump.txt
leenozara commentedon May 4, 2024
diagnostics.sh fullarchive:diagnostics.tar.gz
quo commentedon May 5, 2024
So the touchscreen won't work with the version of ithc currently in the Surface kernel, because apparently Intel changed the final MTL device IDs from those that I found in an .inf file a while ago.
I figure it's probably better to just match on the vendor and class ID instead of device ID, since the THC is the only known PCI device that uses the pen input class: https://linux-hardware.org/?view=search&classid=09-01&typeid=all&busid=pci#list (the "Audio Controllers" are actually mislabeled THCs).
So I've made that change in quo/ithc-linux@297427b. (Tested on my SP7+.)
There also appears to be only one THC device on the PCI bus, even though ACPI contains configuration data for a second THC. So the touchpad is presumably not connected to a THC on the SL6.
EDIT:
@leenozara
You may be able to get the touchscreen working without updating the ithc driver, by forcing ithc to load using the following commands:
leenozara commentedon May 5, 2024
I tried this but no change, unfortunately.
quo commentedon May 5, 2024
Can you post the output of the commands and the output of
dmesg?leenozara commentedon May 5, 2024
Sure:
dmesg:quo commentedon May 5, 2024
Ah crap. So Intel or MS changed something again. :(
I'll have a better look at this in a few weeks.
leenozara commentedon May 5, 2024
Let me know anytime I can help. Sadly I don't know much about hardware and driver development, otherwise I'd help with code. Maybe I can take a look at pull requests for previous new devices and see what was done there.
Getting keyboard, trackpad and battery status working at a minimum would be the most significant improvement.
qzed commentedon May 5, 2024
The following patch should enable SAM support (and with that hopefully battery, keyboard, and touchpad). Would be great if you can test it. In particular temperature sensors and fan, because we haven't enabled and tested them on the SL5, but it looks like they should be there on the SL6.
leenozara commentedon May 5, 2024
Nice! I'll apply this patch tomorrow and update you here.
I have access to an SL5 so I can help with testing that after SL6.
leenozara commentedon May 7, 2024
Hi @qzed your patch works:
sensorsno load on battery power:sensorsunder load on battery power (compiling kernelmake -j22) and 'balanced' power mode:sensorsunder load plugged-in/charging (compiling kernelmake -j22) and 'performance' power mode:Are there any specifics diagnostics, commands, etc you'd like me to perform that would help?
leenozara commentedon May 7, 2024
@quo The ithc modprobe commands now have a different error output:
dmesg:qzed commentedon May 7, 2024
@leenozara Thanks! That looks like things are working. A dmesg log from when you applied that would still be nice though, to confirm that there are no errors or warnings. If that doesn't show anything out of the ordinary, I think we're good to apply it.
Apart from that: Since you mentioned you have access to a SL5, you could try adding/replacing the following nodes to the SL5 entry:
And then maybe also try to run the two commands for the HID devices again on the SL5, just to make sure we're not missing anything (since the SL6 has an additional sensor device).
And I think it's best if you open a new issue for that so that we don't mix the two devices here.
leenozara commentedon May 8, 2024
dmesg:dmesg.log
For SL5 I should have the device by end of the week. I'll set create a separate issue that pertains to testing
linux-surfaceexisting support for the SL5.Thanks!
qzed commentedon May 10, 2024
Looks like everything is working (for SAM at least).
@StollD if you have some time feel free to apply this. I'm away for the next three weeks and I'm not sure if I can manage to build/test/release anything during that time (only took the SPX with me...).
quo commentedon May 11, 2024
Weird. But I don't think it's related to the SAM patch.
Can you try probing with debug logging enabled?
Please repeat a few times to see how repeatable/variable the errors are. And please attach the dmesg log here.
Could you also try if the following patch for ithc makes any difference?
leenozara commentedon May 20, 2024
@quo apologies for the long delay.
Dmesg logs:
dmesg1.txt
dmesg2.txt
dmesg3.txt
I also tried the patch but no change. I'm back at my desk and can continue to assist you.
leenozara commentedon May 25, 2024
@qzed An observation: I've noticed that scrolling with the touchpad on the SL6 using your recent patch isn't smooth. Page scrolling stops when fingers stop moving in the direction. I didn't notice this until I also used my SL5, which does have smooth scrolling.
quo commentedon May 27, 2024
@leenozara Thanks!
So it looks like it consistently fails to read the device descriptor, sometimes with a timeout, sometimes with an invalid packet.
I finally had some time to look at the SL6 UEFI driver, and noticed that for some reason Intel has changed the layout of the SPI opcode registers. The rest of the initialization code looks basically the same as in the SLS2 driver, so hopefully that's the only required change.
I've created a separate branch with this change:
https://github.com/quo/ithc-linux/tree/sl6
Please let me know if this branch works. (And please attach dmesg again, regardless of whether it works or doesn't.)
quo commentedon Jun 15, 2024
The ithc sl6 branch has been confirmed to work on a Meteor Lake ThinkBook (quo/ithc-linux#5 (comment)). And the SP10 will also require these changes. So I've merged the branch into master.
mitchweaver commentedon Feb 25, 2026
Hello all, could someone please update the wiki here with current status for this device. I'm looking at picking one up but want to be sure it's supported enough to daily. Much appreciated.
https://github.com/linux-surface/linux-surface/wiki/Surface-Laptop-6
edit: I see Standa adding some things. Much appreciated :D