Repository navigation
Conversation
…nd DAIs Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
…tate The MSM DP bridge implements dp_audio_prepare and dp_audio_shutdown but not dp_audio_startup. drm_bridge_connector_audio_startup() treats a missing dp_audio_startup as success and allows the DPCM layer to proceed to dp_audio_prepare even when no display is connected. msm_dp_audio_prepare() then returns -EINVAL because power_on is false, producing continuous dmesg spam at boot and on every PipeWire re-probe: ASoC error (-22): at snd_soc_dai_hw_params() on i2s-hifi DisplayPort2 Playback: ASoC error (-22): at __soc_pcm_hw_params() Add a dp_audio_startup implementation that checks power_on and returns -ENOTSUPP when no display is connected, gating the entire audio setup sequence at startup so prepare is never reached when the DP link is not active. -ENOTSUPP is used deliberately as snd_soc_ret() in soc-utils.c treats it as an expected non-error condition and suppresses the log output, avoiding unnecessary noise when no display is attached. Signed-off-by: Steev Klimaszewski <threeway@gmail.com>
…llers Enable the gpi_dma0..gpi_dma2 controllers currently no clients yet Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Reference the reserved memory region for audio PD dynamic loading and remote heap requirements. Add the required VMID list for memory ownership transfers. Signed-off-by: Ekansh Gupta <ekansh.gupta@oss.qualcomm.com> Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
…me PM Convert the LPASS WSA macro codec driver to use the PM clock framework for runtime power management. The driver now relies on pm_clk helpers and runtime PM instead of manually enabling and disabling macro, dcodec, mclk, npl, and fsgen clocks. Runtime suspend and resume handling is delegated to the PM core via pm_clk_suspend() and pm_clk_resume(), while existing runtime PM callbacks continue to manage regcache state. This ensures clocks are enabled only when the WSA macro is active, improves power efficiency on LPASS platforms supporting LPI/island modes, and aligns the driver with common ASoC runtime PM patterns used across Qualcomm LPASS codec drivers. Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
…e PM Convert the LPASS VA macro codec driver to use the PM clock framework for runtime power management. The driver now relies on pm_clk helpers and runtime PM instead of manually enabling and disabling macro, dcodec, mclk, and npl clocks. All clock control during runtime suspend and resume is delegated to the PM core via pm_clk_suspend() and pm_clk_resume(). This change ensures clocks are only enabled when the VA macro is active, improves power efficiency on LPASS platforms supporting LPI/island modes, and aligns the driver with common ASoC runtime PM patterns used across Qualcomm LPASS codec drivers. Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
The NPL clock is only present on some platforms. When it is absent, wsa->npl remains NULL, but the driver unconditionally programs its rate. Guard clk_set_rate() for the NPL clock so platforms without NPL do not attempt to access it. No functional change on platforms that provide the NPL clock. Signed-off-by: Ajay Kumar Nandam <ajay.nandam@oss.qualcomm.com>
- remove codec - remove codec, dmic, speaker related DAIs - remove swr config, lpass, wsa macro, va macro - add DisplayPort related DAIs - add DisplaPort sound names Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
and follow-up changes re thermal zones in dell xps13 9345 Thermal zones definition on sgerhold's branch was different (newer) Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
required for the ufs_mem_hc node. Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Add status = "disabled" to ice@1d88000, cryptobam and general crypto nodes in hamoa.dtsi to avoid probe failures on platforms that don't use them. Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
ICE is used by the UFS controller. Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Add the dp altmode wiring from Denali. This consists of pmic-glink, ps883x retimers, and accompanying vregs and gpios. Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
- re-enable scm compatible for obvious reasons - some sorting - pcie4 pinctrl - MAC hack Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
preliminary hack Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
To support sound over DisplayPort on the type-c ports, add the necessary DAI links and port naming. Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
remove standalone _dwc3 statements, integrate in the usb_ block Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Commit 47c88db ("arm64: dts: qcom: hamoa: Add remoteproc IOMMUS in EL2 device trees") added IOMMU stream configuration for the ADSP and CDSP remote processors directly into x1-el2.dtso. This configuration is only needed when Linux at EL2 is responsible for fully managing remote processor loading and IOMMU setup via PAS (Peripheral Authentication Service). Other EL2 configurations do not require these properties in the same way. Introduce a small dedicated overlay (x1-el2-pas.dtso) that includes the base EL2 overlay and provides the remoteproc IOMMU configuration. This keeps the generic x1-el2.dtso suitable for the configurations it was originally intended for. Fixes: 47c88db ("arm64: dts: qcom: hamoa: Add remoteproc IOMMUS in EL2 device trees") Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Checked against dsdt.dsl and AeoB file: its PMICGPIO 3 3, which translates to pmc8380_3 gpio3. Go figure. pmc8380_3 gpio3 is protected, though, and can't be claimed by backlight. And surprise: without it defined backlight adjustment works after suspend, too. Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
enable HDMI connector like in TB16 enable DP sound-DAIs enable fingerprint reader, too correct usb-sbu gpios (same as TB16) Signed-off-by: Jens Glathe <jens.glathe@oldschoolsolutions.biz>
Userspace can probe all HDMI/DP PCM devices exposed by an ALSA card while building its profile set. For example, UCM-aware servers may try to open every DP PCM even when only one connector is currently plugged in. msm_dp_audio_prepare() currently returns -EINVAL when the DP controller is not powered. This protects against unclocked register access, but it also makes the inactive DP PCM fail during probing. If one such PCM is part of a UCM profile, the whole profile can be discarded even though jack and ELD state already mark the inactive connector as unavailable. Keep the clock-safety check, but treat an inactive controller as a no-op: skip the DP audio register programming and return success. Active streams still program the hardware as before, while unplugged or disabled outputs remain discoverable and report their availability through the usual jack and ELD controls. Fixes: 158b9aa ("drm/msm/dp: wait for audio notification before disabling clocks") Signed-off-by: Xilin Wu <sophon@radxa.com>
The hardware-qualified SP11 v19 image clears Offset2 while enabling the WSA VI and CPS master ports. The guarded 7.2.2 relift dropped that behavior. Apply the active value automatically only to WSA controller ports 10, 11 and 13 on Microsoft Denali. Keep the inactive transport configuration unchanged and leave generic controllers untouched. This restores the qualified behavior without exposing SP11 policy through a module parameter or making SP11 naming part of the public userspace contract. Link: 537d1ac Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit 618b3e1)
The guarded 7.2.2 port kept the 2S 4-ohm final values but dropped the hardware-qualified Denali WSA8845 cold, start and stop transactions. The right amplifier consequently reports PA status 0x6 and remains disabled during playback. Restore the v19 register sequences verbatim and select them only when the machine is Microsoft Denali, protected feedback is described, the speaker load is 4 ohms and the codec reports a 2S supply. Generic WSA884x devices retain the upstream lifecycle. Also restore the bounded PA FSM reset and retry path. Retain the relifted protection-clock accounting and keep a failed recovery as a hard playback error. Link: e72bffc Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit d1edbc8)
The WSA8845 devices remain powered and advertise simple clock-stop support on Microsoft Denali. Treating each transient SoundWire detach as context loss dirties the full register cache and replays the cold transaction on attachment, unlike the hardware-qualified v19 lifecycle. Keep the initialized codec state across the Denali protected 2S 4-ohm detach and sync only writes queued while cache-only. Preserve the existing context-loss path, including full dirty-cache restore, for every other device and profile. Link: e72bffc Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit 09a3f4e)
DPCM releases the Denali VI and CPS backends before the front end performs its final protected graph stop. The graph correctly rejects those ready-to-not-ready transitions while start_count is nonzero, but the machine driver then aborts SoundWire hw_free and shutdown. This produces four -EBUSY warnings and can retain the stream runtime on every close. Treat only a busy readiness clear as deferred so SoundWire teardown continues. Complete both deferred clears after a confirmed final protected graph stop, under the existing protection lock. Keep ready transitions into a running graph rejected, and do not clear state after an uncertain or failed stop. Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit cceb155)
The Denali cold, start, and stop transactions already carry their own gain, current-limit, and watchdog state. Running the generic speaker post-PMU and PDM watchdog writes afterwards changes that qualified transition and can leave the paired amplifiers asymmetric. Restore the protected-profile bypass used by the qualified v19 path. Non-Denali and unprotected WSA884x users retain the generic programming. Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit e0fe0c6)
The hardware-qualified SP11 v19 path materializes TOP_CFG1 after each enabled VI feedback pair. The guarded 7.2.2 relift retained the feedback clocks but dropped this producer-side write, leaving the physical lane order inconsistent with the qualified V,I,V,I stream. Restore the write at the original lifecycle boundary and gate it with the existing protected-feedback profile. This is equivalent to the original Denali check while preserving upstream defaults and behavior on every other machine. Link: f17a678 Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit 156115d)
The device writes event elements into coherent memory before publishing its event ring read pointer. Both gpi_process_events() and gpi_mark_stale_events() read that pointer through readl_relaxed() and then consume the event memory without an ordering guarantee. On architectures such as arm64, this can expose a published event before all its fields are visible. Denali QSPI exposed this as an accepted completion whose length was observed as zero. Use ordered MMIO reads only for the event pointer. Keep all other register accesses relaxed. This follows the ordered ioread32() pattern used by the Qualcomm IPA GSI event-ring consumer. Fixes: 5d0c353 ("dmaengine: qcom: Add GPI dma driver") Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit bd9f5e2) (cherry picked from commit f9c68b9)
Signed-off-by: Leon Silcott <leon@boasi.io>
Derive the softclip control register from the selected codec layout instead of combining the fixed v2.1 base with a version-dependent channel stride. This preserves v2.1 control addresses 0x604/0x644 and selects 0x644/0x664 for v2.5 and later. Keep the existing softclip enable and event policy. This is a register-layout correction, not a claim that softclip caused the Denali audio regression. Signed-off-by: Leon Silcott <leon@boasi.io>
Restore the VBAT/BCL event, widgets and routes from the qualified Denali integration source, together with its HD2 no-op and conditional primary half-dB policy. Retain the geocausa/SP11X1e-audio provenance of that source. Apply the seventeen cache-default differences to a private writable copy only for Denali. These remain cache assumptions, not forced register writes. Extend the v2.5 register access range only for Denali, and install the driver instance before regmap access callbacks can need it. Keep generic routes and defaults unchanged. Use separate Denali and generic route tables because common component routes are registered after probe. Do not change PA, VI or CPS ownership in this commit. This restores nominal source behavior, including the inherited shared-VBAT teardown and ignored event-write errors. Neither those behaviors nor the new guarded composition are hardware-qualified by the source trace tests. Link: 537d1ac Link: geocausa/SP11X1e-audio@31466d6 Signed-off-by: Leon Silcott <leon@boasi.io>
Restore the two SP/SPVI GET transactions in the qualified Denali setup order between the tag configuration and SPVI dynamic configuration. Derive their first-record query shape from the validated topology instead of introducing fixed instance IDs. Zero the request before filling it. Accept the GET response only when a pending command, opcode and token match, and validate response bounds before reporting completion. Preserve the existing protected-profile gate and transport error handling. The source order comes from the geocausa/SP11X1e-audio integration port. This does not decode calibration replies or prove that these queries resolve the speaker regression. Link: 537d1ac Link: geocausa/SP11X1e-audio@31466d6 Signed-off-by: Leon Silcott <leon@boasi.io>
Restore the qualified integration's per-record calibration replay when the aggregate returns EOPNOTSUPP. Validate the entire block's framing before sending it, retaining opaque instance IDs and query-only records. Continue past individual EOPNOTSUPP replies, but stop on hard failures. Serialize replay and retain its result on the persistent topology graph information so reopening a runtime graph cannot accept a partially failed replay. A topology reload resets this state. This intentionally replaces the legacy global once flag with per-topology ownership and sticky errors. The nominal replay is adapted from the geocausa/SP11X1e-audio integration port. Do not restore the legacy hard-aggregate-error diagnostic probes. The state and error-handling deviations still need hardware qualification. Link: 537d1ac Link: geocausa/SP11X1e-audio@31466d6 Signed-off-by: Leon Silcott <leon@boasi.io>
After both protected modules have been successfully disabled for missing VI/CPS feedback, send the qualified gain, filter, mute and channel-mixer tail. Reuse the same sequence for the fully configured protected path. Only confirm bypass after every required transaction succeeds. A failed disable or volume-tail transaction faults the graph and prevents prepare and start from treating partial configuration as success. Leave the unavailable/uncertain guard path's disable-only behavior unchanged. The nominal sequence is adapted from the geocausa/SP11X1e-audio integration port. Preserving it does not qualify bypass acoustics or speaker safety; the guarded error behavior and complete composition remain test candidates. Link: 537d1ac Link: geocausa/SP11X1e-audio@31466d6 Signed-off-by: Leon Silcott <leon@boasi.io>
Keep Denali's macro and dcodec votes for the device lifetime and cycle only mclk, optional npl and fsgen through runtime PM, in that order on resume and in reverse on suspend. This matches its qualified integration clock ownership instead of applying the newer all-clock PM policy. Retain the PM-clock framework path for all other devices. On Denali, propagate clock-enable failures and unwind partial acquisition. Clear cache-only only once the clocks are ready; on regcache-sync failure restore cache-only/dirty and release runtime references before returning the error. That sync-error handling deliberately differs from the legacy ignored error. Register a managed release action before the component and output clock so they are torn down first. Track acquired runtime references independently of PM status and disable PM before cleanup on remove or probe failure. Keep the three-second autosuspend delay and system-sleep policy unchanged. This is a Denali qualification candidate, not proof of physical power collapse or of the speaker regression's cause. The VA fsgen dependency and real PM/CCF/DAPM behavior still need qualification. Link: 537d1ac Link: jglathe@4d49f24 Signed-off-by: Leon Silcott <leon@boasi.io>
The Denali producer repair deliberately mutates a private reg_default copy before passing it to regmap. Its argument cannot be const; the generic CONST_STRUCT heuristic is not applicable to this use. Retain the diagnostic in the log, but accept it only when the complete patch has the reviewed stable patch ID, the resulting source blob matches exactly, and this exact warning is the sole diagnostic. The blob check is necessary because patch IDs also ignore significant whitespace in string literals. Do not ignore CONST_STRUCT globally or waive other findings in the same patch. Any source change requires a renewed review. This is a source-style exception, not a hardware or provenance waiver. All qualification and contributor-attestation gates remain unchanged. Signed-off-by: Leon Silcott <leon@boasi.io>
Allocate 7.2.5-jg-0sp11v3 for the guarded audio repair series. Keep its packages and modules distinct from the failed v2 hardware candidate; the calibration state changes exported AudioReach symbol checksums. Retain the prior v2 entry and existing source DTB/non-Stubble policy. No other packaging, configuration or kernel source is changed here. Compilation and linkage checks are not audio safety or hardware parity qualification. Preserve the known-good recovery kernel and keep this test carrier out of the integration target until its gates are met. Signed-off-by: Leon Silcott <leon@boasi.io>
Restore the DAC BLOCKCTRL3 and COMP/BOOST OFFSETCTRL2 SIMPLE-port capabilities from the qualified SP11 Golden transport originating in geocausa/SP11X1e-audio and carried by the integration source below. SoundWire can then write the existing master-derived banked values. Select the capabilities only for the Denali protected-feedback wiring with a four-ohm speaker description. Copy the sink properties into managed per-instance storage and leave the shared generic table unchanged. Return allocation failure before reset deassertion and component setup. Select transport from board wiring, not the VPHX status first read after attachment. Keep the measured supply and analog protection guards, gain, source ports, master tables, PCM lifecycle and userspace unchanged. This restores nominal source behavior, not proof that retained register values caused static. Require fresh package and hardware qualification before integration; compilation and host tests do not establish safety. Link: 537d1ac Signed-off-by: Leon Silcott <leon@boasi.io>
Allocate 7.2.5-jg-0sp11v4 for the guarded render port extension repair. Keep this candidate's packages and modules separate from the v3 hardware test, which still produced audible static after volume changes. Retain both previous qualification changelog entries, the GPI ordering repair and the existing source DTB/non-Stubble packaging policy. No other source or packaging changes are made by this version-only commit. Offline tests do not establish audible parity or physical speaker safety. Preserve the known-good recovery kernel and hold integration until fresh package, cold-boot audio and broader hardware qualification are complete. Signed-off-by: Leon Silcott <leon@boasi.io>
Qualcomm battmgr is the authoritative battery provider on the Surface Pro 11. Do not instantiate the primary Surface Aggregator Module battery device in the Denali-specific software-node group, avoiding a duplicate battery provider without adding a machine quirk to the shared driver. Keep the separate SAM AC-adapter node registered. This extracts and narrows the Denali battery fix from the original combined touchscreen and battery commit. Link: 3fc7c52 Signed-off-by: Justin White <kyjus25@gmail.com> Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit 9074c73) (cherry picked from commit 8ad3a31)
The X1E Qualcomm battery manager registers qcom-battmgr-ac as the authoritative mains supply. Retaining the Surface Aggregator ADP1 node creates a second mains interface for the same Denali power source. Follow the upstream Surface Laptop 7 precedent and omit the SAM AC node from the Denali-only registry group. Keep this correction separate from the Justin White battery-node extraction so its original authorship and sign-off remain intact. Link: torvalds@0488073 Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit 4eadf8d) (cherry picked from commit 53905a9)
Compose the two preserved Denali battery and AC-registry ports on the working v4 audio/input carrier. Keep platform-profile policy and the experimental camera group separate so each dependency has its own qualification path. Allocate a fresh test ABI and retain the prior changelog history and source DTB delivery policy. This source preparation does not establish provider telemetry, AC transitions, power-state behavior or acceptance for beta integration. Signed-off-by: Leon Silcott <leon@boasi.io>
Device-tree systems can use platform-profile providers even when ACPI is disabled, but the framework currently declines to register its class in that case. Register the class unconditionally and create the legacy ACPI attribute group only after ACPI has initialized successfully. Record that group registration and use it to guard legacy notifications and teardown. This keeps the class path independent of ACPI while also avoiding a stale acpi_kobj after an ACPI initialization failure. This exposes the native /sys/class/platform-profile/ interface without creating a synthetic /sys/firmware/acpi hierarchy. Existing ACPI systems retain the legacy aggregate attributes unchanged. This is a contained rework of the original SP11 non-ACPI enablement. Link: 106ad0d Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit ab12a0a) (cherry picked from commit 4e9f122)
The Surface Pro 11 has active cooling and supports SAM performance profiles, but its registry group does not instantiate the existing platform-profile and fan-speed devices. Add the existing fan-capable profile node and fan-speed node only to the Denali software-node group. Other Surface device groups are unchanged. Link: 5c513ff Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit 6680508) (cherry picked from commit e6c7470)
The Surface Pro 11 needs a lower CPU-frequency ceiling in its low-power profile to match the validated cool-running baseline. Describe the 2.515 GHz ceiling and default low-power selection on an SP11-only software node. Set up frequency-QoS only when that per-device property is present. Devices without it retain the legacy TMP-then-fan write order, including writes that repeat the current profile. Track cpufreq policies through CREATE and REMOVE notifications plus a per-device CPU-hotplug state, so a policy that is fully offline at probe is capped when a CPU returns. Hold policy references while attaching requests, clear stored raw pointers synchronously on REMOVE, and stop hotplug callbacks before tearing down requests and the notifier. When entering low power, apply the cap before fan and TMP changes; when leaving, restore fan and TMP before dropping the cap. If a SAM write fails, read TMP back and reconcile fan and cap conservatively. An unavailable cpufreq subsystem degrades to profile-only operation. Omit the staging implementation’s no-op power-supply notifier. This is a contained rework of the original SP11 low-power implementation. Link: 30972bd Signed-off-by: Leon Silcott <leon@boasi.io> (cherry picked from commit a89959a) (cherry picked from commit af4d11e)
Signed-off-by: Leon Silcott <leon@boasi.io>
|
Closing this superseded review/qualification vehicle without merging. Current review work is tracked in ooaklee/linux_ms_dev_kit-sp11#60, ooaklee/linux_ms_dev_kit-sp11#68; ooaklee/linux_ms_dev_kit-sp11#68 is the single combined 7.2.5 qualification candidate. This does not discard the original feature intent or close any outstanding acceptance gate. The current combined source is This PR's branch and exact head |
[ Upstream commit 1cdfe2f ] When shared_tags is enabled, null_setup_tagset() makes the device use the global tag_set, whose driver_data stays NULL. null_map_queues() therefore falls back to the module-wide g_submit_queues/g_poll_queues instead of any per-device value. Resizing submit_queues or poll_queues via configfs on such a device calls blk_mq_update_nr_hw_queues() on the shared set, shrinking set->nr_hw_queues. __blk_mq_realloc_hw_ctxs() only grows the q->queue_hw_ctx[] allocation, so on shrink it merely exits and NULLs the now-excess hctx slots. null_map_queues(), however, keeps mapping CPUs with the unchanged g_submit_queues/g_poll_queues, so mq_map[] ends up pointing at those NULLed hctx slots. blk_mq_map_swqueue() then dereferences the NULL hctx (hctx->cpumask), crashing the kernel: [ 460.218374] KASAN: null-ptr-deref in range [0x0000000000000098-0x000000000000009f] [ 460.219003] CPU: 24 UID: 0 PID: 1492 Comm: sh Not tainted 7.2.0-rc2+ ooaklee#67 PREEMPT(full) [ 460.219792] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.17.0-4.fc41 04/01/2014 [ 460.220452] RIP: 0010:blk_mq_map_swqueue+0x4db/0x1430 ...... [ 460.228977] Call Trace: [ 460.229175] <TASK> [ 460.229354] blk_mq_update_nr_hw_queues+0xd49/0x11c0 [ 460.229779] ? __pfx_blk_mq_update_nr_hw_queues+0x10/0x10 [ 460.230200] nullb_update_nr_hw_queues+0x1a9/0x370 [null_blk] [ 460.230694] nullb_device_submit_queues_store+0xd9/0x170 [null_blk] [ 460.231190] ? __pfx_nullb_device_submit_queues_store+0x10/0x10 [null_blk] [ 460.231776] ? configfs_write_iter+0x35c/0x4e0 [ 460.232122] configfs_write_iter+0x286/0x4e0 [ 460.232460] vfs_write+0x52d/0xd00 [ 460.232779] ? __x64_sys_openat+0x108/0x1d0 [ 460.233106] ? __pfx_vfs_write+0x10/0x10 [ 460.233413] ? fdget_pos+0x1cf/0x4c0 [ 460.233745] ? fput_close+0x133/0x190 [ 460.234038] ? __pfx_expand_files+0x10/0x10 [ 460.234368] ksys_write+0xfc/0x1d0 Reproducer: modprobe null_blk shared_tags=1 submit_queues=64 poll_queues=1 mkdir /sys/kernel/config/nullb/dev echo 1 > /sys/kernel/config/nullb/dev/power echo 1 > /sys/kernel/config/nullb/dev/submit_queues A per-device resize of a shared tag set is meaningless anyway, so reject it with -EINVAL in nullb_update_nr_hw_queues() when the device is bound to the global tag_set. Fixes: 45919fb ("null_blk: Enable modifying 'submit_queues' after an instance has been configured") Suggested-by: Nilay Shroff <nilay@linux.ibm.com> Assisted-by: Claude-Code:GLM-5.2 Signed-off-by: Zizhi Wo <wozizhi@huawei.com> Reviewed-by: Nilay Shroff <nilay@linux.ibm.com> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Link: https://patch.msgid.link/20260725022509.714271-8-wozizhi@huaweicloud.com Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Sasha Levin <sashal@kernel.org>
Profile dependency-group candidate — bounded v7 ordinary-use trial recorded
This draft carries
7.2.5-jg-0sp11v7from battery-on-working-audio v6 in #65(
5a08764e1f2fb044a5d96b75cdf8fe8d7599fd83). It replays the three held nativeprofile/fan/CPU-policy ports from #60 without changing that review branch.
Candidate head:
cb0c9895020f7b18ae54196cc4ec7924e5141ff6; tree:248820b0cdc268287eca2d66f52a2ecb4f9fe195.The exact-head five-package build and finished local artifact checks passed.
The separately authorized v7 installation and bounded ordinary-use trial are
now recorded below. Keep this PR draft and beta held: those results do not close
the remaining lifecycle, battery-phase, other-device or final-composition gates.
This carrier is for qualifying the dependency group, not a request to merge
all topics into beta.
Exact delta and contribution preservation
4e9f1229b28fbaedc267e83175024707e7a778efe861c20afed29729c9458609792ce70295a665bae6c7470008a0af4315da196483d4292de30c695b532daaf80dace011ea59c7d3abfa60a4f172577daf4d11ea94712abad563b8381ba7b05ae1937d1e0031b6f89f35a3990ab93efea7b76418f5a8ea68Original author email/date, messages, existing sign-offs, attribution and stable
patch identities are retained, with
cherry-pick -xprovenance. The newqualification changelog commit is separate and has only the intended Leon
sign-off. No contributor certification is invented.
Only four paths differ from v6:
drivers/acpi/platform_profile.c: register the native class even withoutACPI; guard legacy ACPI group notifications, updates and teardown. Do not
manufacture a synthetic ACPI hierarchy.
drivers/platform/surface/surface_aggregator_registry.c: instantiate theDenali/SP11 profile and fan nodes with per-device low-power properties. Keep
v6's two primary SAM battery/AC provider removals and other board groups.
drivers/platform/surface/surface_platform_profile.c: retain the guardedprofile/fan/frequency-QoS implementation, CPU-policy/hotplug lifecycle and
conservative transition-error reconciliation from held [HELD 7.2.5] platform/surface: preserve SP11 profile and fan policy #60. Boards without
the frequency property retain the legacy TMP-then-fan route.
debian.qcom-x1e/changelog: allocate v7, preserving the complete v6 tail.The final three code blobs match held #60 exactly. All other inherited kernel,
DT, packaging, audio/input and CI-policy blobs remain v6's. This is a functional
three-port replay, not just a version bump: unchanged exported symbols and
module names do not imply unchanged runtime behavior.
Boot-time policy to qualify: Denali requests low power at successful probe,
with a
2,515,000 kHzmaximum-frequency ceiling when frequency-QoS setup isavailable. Frequency-table rounding and existing userspace may affect the
observed state. The later bounded readback below confirms the native provider
and one low-power CPU-policy state; it does not measure every transition or
fan response. No daemon change or userspace/topology replacement is included.
Actual finished local evidence — October 3, 2026 UTC
The single normal source-mode producer completed with exit zero at 07:11:26 UTC.
Lexr
0.5.0-rc.5, commitb74247d08f7c, produced five packages with eight jobs.Independent capture from the actual running producer matched the reviewed
416-package inventory and expected configuration. Source flags remain
do_dtbs=true,do_stubble=false: external-required DTB delivery with theboot-support package, not an embedded Stubble image.
Actual extraction inspection, native/fully relocated/runtime-only Lexr
inspections and the fresh cache-independent final local audit passed:
7.2.5-jg-0sp11v7-qcom-x1eand configuration.required audio, touch, battery, native-profile and fan modules are present.
hooks and exact-ABI image triggers/rendered post-install contract.
exact temporary-Equivs diagnostic normalizations; no blanket warning waiver.
The extraction inspector actually exited zero, without OOM/error, using six
read-only mounts. It never installed packages or executed their maintainer
scripts. The final audit reopens stored input evidence, raw terminal/CLI
records and package bytes and recomputes all three comparisons. Earlier failed
build/fixture results remain retained failures.
Surface installation and bounded ordinary use on October 3
The explicitly authorized five-package installation passed current-state
preflight, package simulation, installation and receipt checks in GNU screen.
The package delta contains only four new exact-version kernel/header packages
and the boot-support upgrade; no package removal or userspace/topology swap
occurred. V23 remained the verified boot default and fallback. No automatic
reboot or suspend was issued; the human subsequently selected and booted v7.
The human reports working Power Saver, Balanced and Performance transitions,
charger indication, stereo speakers, physical volume buttons and notification
audio without lingering static, microphone recording, ordinary touch and pen,
Wi-Fi and an ordinary USB connection. These are bounded manual smoke reports,
not exhaustive performance, fan, protection or lifecycle measurements.
A passive capture confirms the running v7 ABI and the native Surface Platform
Profile provider bound to the Surface Aggregator driver. The existing active
daemon, unchanged at
0.30-2+sp11.1, exposes three UI profiles; the native classhas four choices. At capture, UI power-saver maps to native low-power, and all
three SCMI/schedutil CPU policies have a
2,188,800 kHzmaximum versus their3,417,600 kHzhardware maximum. This is one current-state readback, not proofof every transition, error reconciliation, CPU hotplug or teardown path.
The improved 10h+ battery estimate is user-observed, not measured runtime.
The saved full-battery, USB-online, noncharging snapshot does not instrument
below-full discharge or active recharge; those phase gates remain open.
The reported concurrent pen/finger canvas jumps were investigated separately.
The human confirms a smooth local Firefox control during pen hover but jumps
in AFFiNE. A corresponding source-class test reproduces a mixed-pointer panning
mechanism, making an application-side fault the probable explanation. The
deployed controller identity, exact v23 pairing, input lifetimes, one large
pen step and earlier extra-contact frames remain unresolved. This does not
universally exonerate the kernel or justify a speculative input workaround.
No driver, IPTSD, libinput, browser setting or palm-rejection policy was changed.
Source checks and CI-policy boundary
Complete-table local validation passes the four-commit immediate v6 range.
The original complete-input beta-relative validation remains a retained
failure: one historical
CONST_STRUCTwarning in audio commita5eea054c829115fd549c03a75c1a5344cfb3391, concerning a deliberately writableprivate defaults copy. The separately proposed #66 disposition passes the
unchanged carrier's 62 reviewed topic-range entries locally, with the raw
warning retained. That does not replace or retroactively pass the original
policy. The approved upstream-refresh aggregate is handled separately from
those topic entries; 62 is not the total Git ancestry count, which includes
the merged upstream commits. No all-ancestry per-commit style pass is claimed.
#64 repairs the inherited workflow's missing checkpatch tables; #66 proposes
the exact bounded finding disposition. Both remain draft/unmerged and neither
is rolled into this kernel carrier. Hosted results for those CI-only PRs cover
their own ranges, not this complete carrier. A future green inherited-workflow
result alone would retain limited style coverage, not full qualification.
Qualification order and remaining gates
and bounded ordinary-use reports at their declared scope; preserve v23.
Charger indication, estimates and full/noncharging snapshots are not phase
proof. No suspend or stress test is implied.
and separately supervised power-state cases; other-device containment remains
unproven on this one Denali OLED unit.
carrier. Its new build/package checks and separately authorized combined
hardware trial must pass before any final composition can be accepted.
The seven camera ports in #56/#63 remain on their separate bounded-tested carrier;
v7 does not include them. V4/v5/v6 ordinary-use results are evidence for those
exact heads, not automatically v7. All feature groups remain in scope for the
eventual exact combined candidate. Diagnostic/qualification helpers are not
shipped in this kernel. No beta/default promotion, merge, reboot, suspend or
additional Surface operation is authorized by publication of this draft.