CPU (Linux): make Snapdragon X1/X2 detection more correct - #2625
Merged
Merged
Conversation
JamiKettunen
force-pushed
the
socid-x1-x2
branch
from
September 28, 2026 13:29
aaa8238 to
f61c9c0
Compare
JamiKettunen
commented
Sep 28, 2026
Use the previously discussed soc_id which have public values in EDK2. The so far used toplevel devicetree compatible values weren't as precise and some logic (x1, x2p, x2e) simply was dead code. Also drops the CPU test due to reading soc_id sysfs file, could be adapted if still wanted around.
JamiKettunen
force-pushed
the
socid-x1-x2
branch
from
September 28, 2026 17:44
f61c9c0 to
2eafdcc
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Updates reported Snapdragon X1/X2 CPU models as tested locally with below:
CPU: Qualcomm Snapdragon X2 Elite Extreme (12+6) @ 4.72 GHzCPU: Qualcomm Snapdragon X2 Elite Extreme X2E-94/96-100 (12+6) @ 4.72 GHzCPU: Qualcomm Snapdragon X Elite X1E-80-100 (12) @ 3.42 GHzCPU: Qualcomm Snapdragon X Elite X1E-78/80/84-100 (12) @ 3.42 GHzCPU: Qualcomm Snapdragon X Plus X1P-42-100 (8) @ 2.96 GHzCPU: Qualcomm Snapdragon X X1-26-100 / X Plus X1P-42/46-100 (8) @ 2.96 GHzCPU: Qualcomm Snapdragon 8cx Gen 3 (4+4) @ 3.00 GHz(stays the same)Should also fix e.g. the following case of incorrect CPU model reporting (simulated since I don't have the hw):
CPU: Qualcomm Snapdragon X2 Elite Extreme (12+6) @ 4.70 GHzCPU: Qualcomm Snapdragon X2 Elite X2E-88/90-100 (12+6) @ 4.70 GHzCPU: Qualcomm Snapdragon X Elite X1E-80-100 (12) @ 4.30 GHzCPU: Qualcomm Snapdragon X Elite X1E-00-1DE (12) @ 4.30 GHzAfaik only ones which won't be distinguishable are
X2E-80-100andX2E-84-100with same SoC ID, max clock speed and core layout but ig there probably wouldn't be a device with both as SKU options.Related issue (required for new logos for new distros)
Resolves #2611
Changes
Use the previously discussed (#2611 (comment))
soc_idwhich have public known enum values in EDK2.The so far used toplevel devicetree compatible values weren't as precise and some logic (
x1,x2p,x2e) simply was dead code. DT compatible values (https://github.com/torvalds/linux/blob/v7.3-rc5/Documentation/devicetree/bindings/arm/qcom.yaml#L1175-L1254) more often than not seem to in reality just indicate CPU family (e.g.hamoavspurwa,glymurvsmahua) than a specific SoC which happens to cover way more chips including with different core counts (Elite vs Plus SKUs), with this PR things will be overall more correct.Also drops the CPU test due to reading
soc_idfrom sysfs, could be adapted if still wanted around.Screenshots
X2E-94-100 Asus Zenbook A16 UX3607OA before vs after
X1-26-100 Lenovo IdeaCentre Mini 01Q8X10 before vs after
X1E-78-100 Asus Vivobook S 15 S5507QA before vs after
Checklist