SP11: fix volume-down replay and preserve 7.2.2 GPI/SPI behavior - #81
Conversation
The SP11 volume-down change moved the button to the PMK8550 gpio-keys description and removed the old pon_resin override. The integration replay retained that obsolete override, leaving two descriptions of the same input. Remove the stale node override so the replay matches the source change and avoids duplicate volume-down handling. Signed-off-by: Leon Silcott <leon@boasi.io>
The SP11 QSPI replay retained the phase55 transfer implementation but inadvertently dropped DMA_PRIVATE from the current 7.2.2 GPI driver. Restore the capability bit without changing the SP11 QSPI transfer path. Signed-off-by: Leon Silcott <leon@boasi.io>
The SP11 QSPI replay retained the phase55 paired-transfer implementation but replaced the current GENI SPI source without its trace hooks. Restore the tracepoint declaration and calls in the clock, setup, transfer and IRQ paths while leaving the QSPI behaviour unchanged. Signed-off-by: Leon Silcott <leon@boasi.io>
The correction series changes installable kernel contents after the staging branch published v20. Reusing that ABI would collide with existing v20 packages and prevent side-by-side validation. Advance only the staging ABI so the test packages are unambiguous and installable while retaining the previous kernel as a fallback. Signed-off-by: Leon Silcott <leon@boasi.io>
ee181cd to
116cef4
Compare
|
Small change. These fixes are on top of the -sp11 branch (they would wreak havoc on 7.2.y alone). For the mergeable parts the partial PR needs to be based on 7.2.y. Why: The -sp11 branch is "working, but dirty" code. It isn't very different (although much more scrutiny) when upstreaming. |
|
I was targeting these small corrections to the existing Then, once I can test
Are you saying that I shouldn't even attempt to introduce them in |
|
No, all good. This is the right way, -sp11 is specifically there for this purpose to evolve the working code branch. May I ask how much energy you're putting in there? I mean, I am old an crazy, but this is quite the pace you are going. |
Quite a bit, lol. I really just want to get it sorted and make it easier for the next Surface Pro 11 users to install Linux on their machines. Before I made a breakthrough and worked with you and the other guys, it was painful. It also really annoyed me that people shared videos last month and earlier of Linux working (almost perfectly) on their SP11 but didn't want to share how they got it working, so yeah... I want to make this upstream (or at least accessible) and make it as easy as possible for others to get started with Linux on their SP11 and eventually Snapdragon X1E devices (which is why I am also working on https://github.com/ooaklee/lexr.sh).
|
|
This is the way. I personally don't have the Surface Pro's, "only" 2x Windows Dev Kit 2023. One was the reason to take up this hobby, and the second one was testbed for the EL2 mode, and other things I didn't want to do with my daily driver. Only 3 years later, its a big zoo of x1 laptops (and an x13s), and desktops/devkits. Motto: Getting Shite Done. Learned a lot. And its almost orthogonal to my day job, which is a QoL improvement. |
I hope I do as well working with you, refining support for the SP11, and making it easier for others to get started/get involved. I unfortunately only hve one X1E device so I'm doing a lot of testing on my daily driver so, it make me spot things and try and fix bugs (learning by fire is what I tell myself 😅)
Yeah, this is the way. You've been an inspiration and trendsetter. Honestly, if you gave up, then many of us with the Snapdragon X1* devices would have been left stranded |
|
Merged, and building the package for upload on Google Drive. Thanks! |
Summary
Follow-up to the review of #79:
&pon_resinoverride retained by the integration replayDMA_PRIVATEcapability ingpi.c0sp11v21so the corrected test kernel can coexist with v20Scope
This PR deliberately targets the existing
-sp11staging branch so it can serve as a consistent, testable SP11 reference. It is not intended to be applied wholesale to the shared release line. Mergeable pieces can be recreated as separate topic branches fromjg/ubuntu-qcom-x1e-7.2.y, with shared-driver changes gated tomicrosoft,denaliwhere needed.This validation applies to the exact head of this PR. It does not make a qualification claim for the separate USB4 topic branches or PRs.
QSPI re-evaluation
The large driver diff in the replay initially looked like two stale complete files. A blob-level comparison showed that the phase55 preimages are byte-for-byte identical to the current 7.2.2 release-line driver blobs. The large diff is a consequence of replay order: the compact x1e-nixos QSPI implementation was applied first, then replaced by the different SP11 phase55 implementation.
Moving back to the compact path here would discard the paired TX/RX and event-completion behaviour used by the MSHW0485 path. This correction therefore retains the phase55 behaviour and restores only the two verified baseline regressions above. A clean QSPI topic split can be rebuilt from the release branch separately.
Validation
Validated at exact head
116cef4df36a03c1f81056521fdd7f1aa11ee347(treee00cbc28407c8e2279ab1722817becf521020f3c):scripts/checkpatch.pl --strict --git 4768136761aa..HEAD: no warnings or errorsgit diff --check 4768136761aa..HEADubuntu_x1e_defconfigW=1builds ofdrivers/dma/qcom/gpi.oanddrivers/spi/spi-geni-qcom.oqcom/x1e80100-microsoft-denali-oled.dtbandqcom/x1p64100-microsoft-denali.dtb.linux, one.hwids, 39.dtbautosections, and one exact embedded match for the packaged Denali OLED DTB7.2.0-jg-0sp11v19-qcom-x1eretained as fallback7.2.2-jg-0sp11v21-qcom-x1eSP11: QSPI using GPI DMA descriptor mode, the expected paired DMA sync mapping, touchscreen controller initialization, the IPTS HIDRAW bridge, and the IPTSD virtual stylusThe earlier v21 black-screen/restart was traced to a raw, non-Stubble EFI image produced by the build path, not to this kernel head. The corrected build and installation policy is tracked in ooaklee/lexr.sh#6.