** Description changed:

+ SRU Justification:
+ 
+ [ Impact ]
+ On the Lenovo ThinkPad X13s (SC8280XP), the Ubuntu SAUCE venus enablement 
never votes the MMCX rail, and since 7.0.0-38 not MX either. Its OPP table is 
written in the wrong clock's units and starts the decoder at 533 MHz. The first 
hardware video decode (Firefox via V4L2-M2M, ffmpeg h264_v4l2m2m) makes the 
venus firmware fault (arm-smmu context fault), hang and storm its IRQ. The 
machine then hard-resets when the screen blanks, sometimes immediately. Unsaved 
work is lost.
+ Workaround: blacklist venus_core/venus_dec/venus_enc (no hardware video 
decoding).
+ 
+ [ Fix ]
+ Four UBUNTU: SAUCE patches. They are SAUCE because the venus SC8280XP 
enablement itself is SAUCE (LP: #2078929), and upstream drives SC8280XP with 
the iris driver since v7.3-rc1 (3a52eef16b97).
+ - binding: allow the mmcx power domain (as upstream ab128251dace does for 
SM8250);
+ - driver: attach mx and mmcx (as f45fd3dbb5f6 does for SM8250);
+ - driver: use vcodec0_core as the OPP clock;
+ - DT: add MMCX and use the upstream iris SC8280XP OPP table.
+ 
+ [ Test Plan ]
+ On an X13s, on a fresh boot.
+ Clips: ffmpeg -f lavfi -i testsrc2=size=1920x1080:rate=30 -t 3 -c:v libx264 
-pix_fmt yuv420p 1080p30.mp4; make the same with size=3840x2160:rate=60, and a 
20 s 1080p30 clip (-t 20).
+ 1. Check that venus probed: the venus decoder is listed in 
/sys/class/video4linux/*/name, and dmesg shows no venus probe error.
+ 2. Decode with ffmpeg -re -c:v h264_v4l2m2m -i <clip> -f null - : first 
1080p30, then 2160p60. Also decode 2x 2160p60 in parallel without -re, to reach 
the 444 MHz OPP. Expected: all frames, and no "corrupt decoded frame" in the 
-re runs.
+ 3. During step 2, /sys/kernel/debug/pm_genpd/pm_genpd_summary lists 
aa00000.video-codec under mx and mmcx with non-zero levels.
+ 4. Decode the 20 s 1080p30 clip with -re and turn the display off after 4 s 
for 12 s. Then turn the display off for 60 s with venus idle.
+ Expected: no "context fault" or "idle fail", runtime_status returns to 
"suspended", and the machine does not reset. On the stock kernel the first 
decode faults or resets the machine, and a display-off after the fault resets 
it.
+ Known, and not a failure: decoding much faster than real time (no -re) at the 
lowest OPP can give corrupt frames (see the bug).
+ 
+ [ Where problems could occur ]
+ Only sc8280xp.dtsi uses qcom,sm8350-venus, and only the X13s enables it. The 
driver change adds an optional opp_clk_name field to the common venus 
resources. It is set only for sm8350/sc8280xp; all other platforms keep "core".
+ On the X13s, venus could:
+ - fail to probe, for example with a user-supplied old DTB (the packaged 
kernel embeds the matching DTB);
+ - decode or encode more slowly than before, because the clocks are lower;
+ - produce corrupt frames when decoding faster than real time at the lowest 
OPP (see the bug).
+ The encoder and suspend/resume share the changed OPP path and were not tested.
+ 
+ [ Other Info ]
+ Tested on one X13s, in one boot, with H.264 only, using out-of-tree modules 
and the test DTB (stubble.dtb_override=false). The encoder, VP9/HEVC, Firefox 
playback, suspend/resume and the 533/560 MHz OPPs were not tested.
+ The current stable release 26.10 (linux 7.3) uses the upstream iris node for 
the X13s (3a52eef16b97) and not the venus SM8350 SAUCE resources, so this SRU 
is for resolute only. This was checked in the stonking git; 27.04 was not 
checked.
+ 
+ ===
+ 
  SUMMARY
  
  On the Lenovo ThinkPad X13s (Qualcomm SC8280XP), the Ubuntu-only venus
  video decoder enablement never votes for the MMCX power rail. The video
  core's GDSCs (mvs0c/mvs0) are MMCX subdomains, and in our measurements
  MMCX was held up only by the display controllers.
  
  A hardware video decode (Firefox uses venus via V4L2-M2M; or ffmpeg 
h264_v4l2m2m) then either:
-   (a) triggers an SMMU fault from the venus firmware, after which the 
firmware hangs, runtime PM goes into "error" and the venus IRQ storms on CPU0; 
the machine hard-resets later, reliably within ~1 s when the display blanks; or
-   (b) hard-resets the machine immediately, about 0.1 s after the decoder 
powers on.
+   (a) triggers an SMMU fault from the venus firmware, after which the 
firmware hangs, runtime PM goes into "error" and the venus IRQ storms on CPU0; 
the machine hard-resets later, reliably within ~1 s when the display blanks; or
+   (b) hard-resets the machine immediately, about 0.1 s after the decoder 
powers on.
  Hard resets leave no panic, no log entry and an empty pstore. Unsaved work is 
lost.
  
  With MMCX held at RPMh level NOM (256) by an out-of-tree test module, 3
  of 3 decodes on fresh boots were clean, and the machine survived a 60 s
  display-off in each case. Holding only MX did not help (n=1). Details
  and limits are below.
  
  Labels used: [measured] = observed on this machine in the attached logs;
  [inferred] = from code reading or timing, not directly measured.
  
- 
  SYSTEM
  
-   Hardware:   Lenovo ThinkPad X13s, 21BX001LGE, BIOS N3HET95W (1.67) 
12/11/2025 [from dmesg DMI line]
-   Release:    Ubuntu 26.04.1 LTS (resolute)
-   Kernel:     7.0.0-42-generic (7.0.0-42.42); the same fault is also in the 
logs of 7.0.0-28 and 7.0.0-30
-   Cmdline:    clk_ignore_unused pd_ignore_unused arm64.nopauth (plus 
defaults). Note: pd_ignore_unused/clk_ignore_unused affect genpd/clock 
behaviour.
-   Firmware:   qcom/sc8280xp/LENOVO/21BX/qcvss8280.mbn, linux-firmware 
20260319.git217ca6e4.1ubuntu; 
QC_IMAGE_VERSION_STRING=video-firmware.1.1-b158087140355883dc40b004032856a8feb5d565,
 BUILD_DATE Jun 20 2023 (installed file identical to upstream linux-firmware, 
sha256 187d9ebe0bb015a6...)
-   Browsers:   Firefox 151.0.2 (snap), Chromium 150.0.7871.128 (snap); ffmpeg 
7:8.0.1-3ubuntu2+esm5
-   Desktop:    GNOME (Wayland), idle-delay 300 s (screen blanks after 5 min), 
automatic suspend on AC disabled
-   Power:      on AC with a full battery during all tests (makes a 
battery-side supply problem unlikely)
-   Code origin: the venus SC8280XP enablement (DT node video-codec@aa00000, 
sm8350_res/sc8280xp_res in drivers/media/platform/qcom/venus/core.c) is Ubuntu 
SAUCE (LP: #2078929), not upstream. The X13s DT uses compatible 
"qcom,sm8350-venus", so sm8350_res is the struct in use.
- 
+   Hardware:   Lenovo ThinkPad X13s, 21BX001LGE, BIOS N3HET95W (1.67) 
12/11/2025 [from dmesg DMI line]
+   Release:    Ubuntu 26.04.1 LTS (resolute)
+   Kernel:     7.0.0-42-generic (7.0.0-42.42); the same fault is also in the 
logs of 7.0.0-28 and 7.0.0-30
+   Cmdline:    clk_ignore_unused pd_ignore_unused arm64.nopauth (plus 
defaults). Note: pd_ignore_unused/clk_ignore_unused affect genpd/clock 
behaviour.
+   Firmware:   qcom/sc8280xp/LENOVO/21BX/qcvss8280.mbn, linux-firmware 
20260319.git217ca6e4.1ubuntu; 
QC_IMAGE_VERSION_STRING=video-firmware.1.1-b158087140355883dc40b004032856a8feb5d565,
 BUILD_DATE Jun 20 2023 (installed file identical to upstream linux-firmware, 
sha256 187d9ebe0bb015a6...)
+   Browsers:   Firefox 151.0.2 (snap), Chromium 150.0.7871.128 (snap); ffmpeg 
7:8.0.1-3ubuntu2+esm5
+   Desktop:    GNOME (Wayland), idle-delay 300 s (screen blanks after 5 min), 
automatic suspend on AC disabled
+   Power:      on AC with a full battery during all tests (makes a 
battery-side supply problem unlikely)
+   Code origin: the venus SC8280XP enablement (DT node video-codec@aa00000, 
sm8350_res/sc8280xp_res in drivers/media/platform/qcom/venus/core.c) is Ubuntu 
SAUCE (LP: #2078929), not upstream. The X13s DT uses compatible 
"qcom,sm8350-venus", so sm8350_res is the struct in use.
  
  STEPS TO REPRODUCE
  
  WARNING: save your work. Step 3 can hard-reset the machine immediately.
  
  Prerequisites: ffmpeg with libx264 and h264_v4l2m2m (Ubuntu's ffmpeg has
  both); a GNOME Wayland session; Firefox/Chromium closed, because they
  may already have used venus.
  
  1. Boot fresh, with no hardware video decode since boot (check: "grep venus 
/proc/interrupts" shows only a handful of interrupts).
  2. Create a clip:
-      ffmpeg -f lavfi -i testsrc2=size=1920x1080:rate=30 -t 3 -c:v libx264 
-pix_fmt yuv420p clip.mp4
+      ffmpeg -f lavfi -i testsrc2=size=1920x1080:rate=30 -t 3 -c:v libx264 
-pix_fmt yuv420p clip.mp4
  3. Decode it on venus:
-      timeout -k 5 60 ffmpeg -nostdin -c:v h264_v4l2m2m -i clip.mp4 -f null -
+      timeout -k 5 60 ffmpeg -nostdin -c:v h264_v4l2m2m -i clip.mp4 -f null -
  4. Confirm the fault:
-      sudo dmesg | grep -E 'context fault|idle fail'
-      cat /sys/bus/platform/devices/aa00000.video-codec/power/runtime_status   
 (shows "error")
-      grep venus /proc/interrupts; sleep 1; grep venus /proc/interrupts    
(count rises by ~200k/s)
+      sudo dmesg | grep -E 'context fault|idle fail'
+      cat /sys/bus/platform/devices/aa00000.video-codec/power/runtime_status   
 (shows "error")
+      grep venus /proc/interrupts; sleep 1; grep venus /proc/interrupts    
(count rises by ~200k/s)
  5. Only after a fault: blank the display, either by waiting 5 min idle or, as 
the session user (not via sudo):
-      busctl --user set-property org.gnome.Mutter.DisplayConfig 
/org/gnome/Mutter/DisplayConfig org.gnome.Mutter.DisplayConfig PowerSaveMode i 3
+      busctl --user set-property org.gnome.Mutter.DisplayConfig 
/org/gnome/Mutter/DisplayConfig org.gnome.Mutter.DisplayConfig PowerSaveMode i 3
  
  To watch the rails: sudo cat /sys/kernel/debug/pm_genpd/pm_genpd_summary
  | grep -A12 '^mmcx'
  
- 
  ACTUAL RESULT
  
  Variant (a), step 3 [measured, attachment 02]: 0 frames decoded, and
-     arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, 
iova=0x00000400, fsynr=0x110001, cbfrsynra=0x2a00, cb=3
-     qcom-venus aa00000.video-codec: wait for cpu and video core idle fail 
(-110)
-   - runtime_status becomes "error" and stays there; the firmware stays hung 
and powered [measured].
-   - The venus IRQ (DT: GIC SPI 174 level = hwirq 206 in /proc/interrupts) 
fires ~207-212k/s on CPU0 (CPU0 97-98 % system time) until the reset; observed 
for 34-55 min [measured, attachment 08].
-   - Faulting iovas seen: 0x0, 0x400, 0x100000, 0x100c00, 0x99493c10 (4 
times), 0x1949bc10, 0x19493c10 [measured]. The driver's own mappings start at 
0xdfa00000 (top-down IOVA allocation) [measured in a traced run]. The values 
near 0 lie in the CP region (cp_size 0x25800000) [inferred]. 0x1949bc10 and 
0x19493c10 differ from 0x99493c10 by one or two bits [measured]; whether this 
is caused by the low voltage is speculation.
+     arm-smmu 15000000.iommu: Unhandled context fault: fsr=0x402, 
iova=0x00000400, fsynr=0x110001, cbfrsynra=0x2a00, cb=3
+     qcom-venus aa00000.video-codec: wait for cpu and video core idle fail 
(-110)
+   - runtime_status becomes "error" and stays there; the firmware stays hung 
and powered [measured].
+   - The venus IRQ (DT: GIC SPI 174 level = hwirq 206 in /proc/interrupts) 
fires ~207-212k/s on CPU0 (CPU0 97-98 % system time) until the reset; observed 
for 34-55 min [measured, attachment 08].
+   - Faulting iovas seen: 0x0, 0x400, 0x100000, 0x100c00, 0x99493c10 (4 
times), 0x1949bc10, 0x19493c10 [measured]. The driver's own mappings start at 
0xdfa00000 (top-down IOVA allocation) [measured in a traced run]. The values 
near 0 lie in the CP region (cp_size 0x25800000) [inferred]. 0x1949bc10 and 
0x19493c10 differ from 0x99493c10 by one or two bits [measured]; whether this 
is caused by the low voltage is speculation.
  
  Variant (b) [measured, 2 of 2 runs with ftrace and venus dynamic debug
  enabled]: the machine hard-reset ~0.1 s after decoder power-on (last
  trace events: venus genpd/GDSC/clock enable, "venus hw version
  6.10.608", first buffer mappings). No fault line was logged, because the
  logs were lost in the reset.
  
  Step 5 [measured]: in the stock run, the machine hard-reset within ~1 s
  of display-off (attachment 03; the reset came before the next 1 s rails
  sample). In the MX-only run (attachment 05), the 1 s sample right after
  display-off caught MMCX falling from 128 (SVS, set by the display) to 64
  (LOW_SVS, videocc's own vote), and then the machine reset. Two earlier
  resets that day came ~5 min after the last user activity, which matches
  the GNOME idle blank [inferred from timing].
  
- 
  EXPECTED RESULT
  
  The decode works, and blanking the display has no effect.
  
- 
  ANALYSIS
  
  pm_genpd_summary on the stock kernel before decoding [measured, attachment 
01]:
-     mx     on  0     only aec5a00.phy attached; aa00000.video-codec is NOT 
attached
-     mmcx   on  128   aea0000.displayport-controller 128, 
ae01000.display-controller 64;
-                      videocc abf0000 suspended (votes 64 only while venus is 
powered);
-                      subdomains include mvs0c_gdsc and mvs0_gdsc
-   - Venus never votes MMCX: the DT node lists only "venus", "vcodec0", "mx", 
and sm8350_res names only "mx" [measured + source].
-   - Since 7.0.0-38, MX isn't voted either. The stable backport f45fd3dbb5f6 
("media: venus: scale MMCX power domain on SM8250", in the 2026-08-20 stable 
update, LP: #2164666) made pm_helpers use res->opp_pmdomain_num. Ubuntu's 
sm8350_res/sc8280xp_res don't set it, so it is 0 and "mx" is never attached 
[source; "mx" unattached on -42 is measured]. That is a separate regression, 
but not the cause here: the fault also occurs on 7.0.0-28/-30, where MX was 
voted [from source, not measured].
-   - The fault occurred with MMCX already aggregated at SVS (128) because of 
the display [measured]. So SVS was not enough, and only NOM (256) was shown to 
work.
- 
- 
- EXPERIMENTS (original Ubuntu venus driver; out-of-tree test module 
"venus_vote", source attached)
+     mx     on  0     only aec5a00.phy attached; aa00000.video-codec is NOT 
attached
+     mmcx   on  128   aea0000.displayport-controller 128, 
ae01000.display-controller 64;
+                      videocc abf0000 suspended (votes 64 only while venus is 
powered);
+                      subdomains include mvs0c_gdsc and mvs0_gdsc
+   - Venus never votes MMCX: the DT node lists only "venus", "vcodec0", "mx", 
and sm8350_res names only "mx" [measured + source].
+   - Since 7.0.0-38, MX isn't voted either. The stable backport f45fd3dbb5f6 
("media: venus: scale MMCX power domain on SM8250", in the 2026-08-20 stable 
update, LP: #2164666) made pm_helpers use res->opp_pmdomain_num. Ubuntu's 
sm8350_res/sc8280xp_res don't set it, so it is 0 and "mx" is never attached 
[source; "mx" unattached on -42 is measured]. That is a separate regression, 
but not the cause here: the fault also occurs on 7.0.0-28/-30, where MX was 
voted [from source, not measured].
+   - The fault occurred with MMCX already aggregated at SVS (128) because of 
the display [measured]. So SVS was not enough, and only NOM (256) was shown to 
work.
+ 
+ EXPERIMENTS (original Ubuntu venus driver; out-of-tree test module
+ "venus_vote", source attached)
  
  venus_vote holds RPMh performance votes: MX by attaching the venus
  node's "mx" domain; MMCX by dev_pm_genpd_set_performance_state() on
  videocc abf0000, which it also keeps runtime-active.
  
-   Votes held       First HW decode                             Display off 60 
s (after the decode)
-   none (stock)     SMMU fault + hang: 2 of 4 runs (12:07,      hard reset: 
1/1 measured (16:30:54);
-                    16:23; neither on a fresh boot)             2 more resets 
match the 5 min idle
-                    immediate hard reset, no fault logged:      blank by 
timing [inferred]
-                    2 of 4 runs (16:01, 16:06; ftrace+dyndbg)
-   MX+MMCX @256     clean 2/2 (90/90 frames, runtime suspend    survived 2/2
-                    OK, ~200 IRQs, no storm)
-   MMCX @256 only   clean 1/1                                   survived 1/1
-   MX @256 only     SMMU fault 1/1 (iova 0x19493c10, 0 frames)  hard reset 1/1 
(MMCX 128 -> 64 captured)
- 
-   All voted runs and the MX-only run were on fresh boots, each with one 3 s 
1080p30 H.264 clip.
-   Not tested: Firefox playback with the vote, long playback, VP9/HEVC/4K, 
several sessions at once, suspend/resume.
-   Not separated: the MMCX level itself vs. videocc being kept runtime-active 
by the module (no level=0/64/128 control run).
- 
+   Votes held       First HW decode                             Display off 60 
s (after the decode)
+   none (stock)     SMMU fault + hang: 2 of 4 runs (12:07,      hard reset: 
1/1 measured (16:30:54);
+                    16:23; neither on a fresh boot)             2 more resets 
match the 5 min idle
+                    immediate hard reset, no fault logged:      blank by 
timing [inferred]
+                    2 of 4 runs (16:01, 16:06; ftrace+dyndbg)
+   MX+MMCX @256     clean 2/2 (90/90 frames, runtime suspend    survived 2/2
+                    OK, ~200 IRQs, no storm)
+   MMCX @256 only   clean 1/1                                   survived 1/1
+   MX @256 only     SMMU fault 1/1 (iova 0x19493c10, 0 frames)  hard reset 1/1 
(MMCX 128 -> 64 captured)
+ 
+   All voted runs and the MX-only run were on fresh boots, each with one 3 s 
1080p30 H.264 clip.
+   Not tested: Firefox playback with the vote, long playback, VP9/HEVC/4K, 
several sessions at once, suspend/resume.
+   Not separated: the MMCX level itself vs. videocc being kept runtime-active 
by the module (no level=0/64/128 control run).
  
  HISTORY ON THIS MACHINE [measured, attachment 09]
  
  From /var/log/syslog*, 2026-07-28 to 2026-10-31: 13 SMMU faults with the
  same signature, plus one "idle fail (-110)" without an SMMU fault
  (2026-09-01 07:55), on 7.0.0-28, -30 and -42. All 14 were followed by an
  unclean reset (no system shutdown before the next boot) 5-118 min later.
  Four of them were preceded by qcom-battmgr "-110" property timeouts, RCU
  expedited stalls and hung tasks (attachment 10). So resets also happen
  during use, not only when the display blanks. The mechanism of that path
  is unknown [inferred].
  
- 
  IMPACT
  
  On an X13s with default GNOME settings, playing an H.264/VP8/VP9/HEVC video 
in Firefox can trigger the fault: Firefox decodes through V4L2-M2M/venus 
because VA-API is unavailable [verified on this machine with MOZ_LOG and 
about:support]. The machine then hard-resets the next time the screen blanks, 
sometimes sooner, including during use. Unsaved work is lost. This happened 14 
times in 3 months on this machine.
  Not verified: whether Firefox enables hardware decoding by default on a clean 
profile; other browsers.
- 
  
  SUGGESTED FIX
  
  - Add MMCX to the venus node (power-domains: <&rpmhpd SC8280XP_MMCX>, 
power-domain-names: "mmcx"). Set .opp_pmdomain = { "mx", "mmcx" } and 
.opp_pmdomain_num = 2 in sm8350_res (and sc8280xp_res), as f45fd3dbb5f6 does 
for SM8250.
  - Caveat: only NOM was shown to work, and SVS (128) was not enough. The 
current SAUCE OPP table (720 MHz-1.332 GHz, required-opps LOW_SVS..NOM) differs 
from the upstream iris SC8280XP table (240-560 MHz, up to TURBO_L1) and may 
need correcting. Please verify a fix with the decode + display-off test above.
  - At minimum, set .opp_pmdomain_num for the Ubuntu-only resources, to undo 
the 7.0.0-38 MX regression.
  - Longer term: upstream enables SC8280XP video on the iris driver (v7.3-rc1, 
votes MX and MMCX). Consider switching to iris instead of carrying the venus 
SAUCE patches.
  - Robustness: on IRIS2, venus_isr() doesn't write WRAPPER_INTR_CLEAR (this is 
upstream behaviour, also for SM8250), and the watchdog status bit is never 
handled. After the hang, the level IRQ fires continuously [measured]; we 
suspect the watchdog interrupt stays asserted [inferred]. The driver also never 
recovers a firmware that hangs without sending SYS_ERROR.
  
- 
  WORKAROUND
  
  Disable venus: /etc/modprobe.d/blacklist-venus.conf containing
-     blacklist venus_core
-     blacklist venus_dec
-     blacklist venus_enc
-     install venus_core /bin/false
-     install venus_dec /bin/false
-     install venus_enc /bin/false
+     blacklist venus_core
+     blacklist venus_dec
+     blacklist venus_enc
+     install venus_core /bin/false
+     install venus_dec /bin/false
+     install venus_enc /bin/false
  then "sudo update-initramfs -u" and reboot. Verified here: no venus nodes, 
h264_v4l2m2m fails harmlessly, and display-off is survived. Alternatively, 
disable hardware decoding in the browser (Firefox: 
media.hardware-video-decoding.enabled=false).
  
  This report was filed with venus blacklisted, so the apport logs from
  the current boot contain no venus fault; the fault logs are in the
  attachments.
  
- 
- ATTACHMENTS (personal data redacted: MACs, UUIDs, serial numbers, IPs, 
username)
- 
-   01_pm_genpd_summary_stock_before_decode.txt   rails and clocks before a 
decode, stock kernel
-   02_dmesg_stock_fault_run.log                  stock fault run (iova 0x400). 
Note: not a fresh boot; venus fw_level=0x3f and dyndbg on hfi_venus.c (151 
empty "VenusFW :" lines); IRQ moved to CPU7 before the display-off
-   03_rails_stock_display_off_until_reset.log    stock run: mx 0 / mmcx 128 up 
to "display OFF", then reset
-   04_dmesg_mx-only_run.log, 05_rails_mx-only_run_until_reset.log, 
05b_decode_mx-only_run.log
-                                                 MX-only run: fault, 0 frames, 
MMCX 128 -> 64, reset
-   06_dmesg_clean_run_mx+mmcx.log, 06b_decode_clean_run_mx+mmcx.log, 
06c_rails_clean_run_mx+mmcx_display_off.log
-                                                 clean run with both rails 
held: 90/90 frames, display-off survived
-   07_rails_mmcx-only_run_survived.log, 07b_decode_mmcx-only_run.log
-                                                 MMCX-only run: clean, 
display-off survived
-   08_irq_storm_samples.txt                      /proc/interrupts samples of 
the IRQ storm
-   09_history_faults_table.txt                   all 14 historical events, 
with criteria
-   10_excerpt_2026-09-01_battmgr_rcu_hung.txt    reset during use, preceded by 
battmgr/RCU/hung-task messages
-   11_venus_vote.c                               the test module
+ ATTACHMENTS (personal data redacted: MACs, UUIDs, serial numbers, IPs,
+ username)
+ 
+   01_pm_genpd_summary_stock_before_decode.txt   rails and clocks before a 
decode, stock kernel
+   02_dmesg_stock_fault_run.log                  stock fault run (iova 0x400). 
Note: not a fresh boot; venus fw_level=0x3f and dyndbg on hfi_venus.c (151 
empty "VenusFW :" lines); IRQ moved to CPU7 before the display-off
+   03_rails_stock_display_off_until_reset.log    stock run: mx 0 / mmcx 128 up 
to "display OFF", then reset
+   04_dmesg_mx-only_run.log, 05_rails_mx-only_run_until_reset.log, 
05b_decode_mx-only_run.log
+                                                 MX-only run: fault, 0 frames, 
MMCX 128 -> 64, reset
+   06_dmesg_clean_run_mx+mmcx.log, 06b_decode_clean_run_mx+mmcx.log, 
06c_rails_clean_run_mx+mmcx_display_off.log
+                                                 clean run with both rails 
held: 90/90 frames, display-off survived
+   07_rails_mmcx-only_run_survived.log, 07b_decode_mmcx-only_run.log
+                                                 MMCX-only run: clean, 
display-off survived
+   08_irq_storm_samples.txt                      /proc/interrupts samples of 
the IRQ storm
+   09_history_faults_table.txt                   all 14 historical events, 
with criteria
+   10_excerpt_2026-09-01_battmgr_rcu_hung.txt    reset during use, preceded by 
battmgr/RCU/hung-task messages
+   11_venus_vote.c                               the test module
  
  Related: LP: #2078929 (X13s venus enablement), LP: #2164666 (stable
  update containing f45fd3dbb5f6). Similar user reports:
  https://discourse.ubuntu.com/t/status-of-ubuntu-support-for-lenovo-
  thinkpad-x13s/44652 (posts #299, #305/#307, #362-#366) and "X13s and
  26.04LTS: opening Mouse & Touchpad settings causes instant system
  crash". Upstream note on hard resets with the old venus patches on X13s:
  https://lkml.iu.edu/2604.0/06208.html
- 
  
  TRANSPARENCY NOTE
  
  The analysis, scripts and test module were written with the help of
  Claude Code, an AI coding assistant. All measurements were made on the
  affected X13s, and the logs are attached. Statements marked [inferred]
  come from code reading or timing, not direct measurement.
  
  ProblemType: Bug
  DistroRelease: Ubuntu 26.04
  Package: linux-image-7.0.0-42-generic 7.0.0-42.42
  ProcVersionSignature: Ubuntu 7.0.0-42.42-generic 7.0.14
  Uname: Linux 7.0.0-42-generic aarch64
  ApportVersion: 2.34.1-0ubuntu0.1
  Architecture: arm64
  AudioDevicesInUse:
-  USER        PID ACCESS COMMAND
-  /dev/snd/controlC0:  oliver     4779 F.... pipewire
-                       oliver     5452 F.... wireplumber
-  /dev/snd/seq:        oliver     4779 F.... pipewire
+  USER        PID ACCESS COMMAND
+  /dev/snd/controlC0:  oliver     4779 F.... pipewire
+                       oliver     5452 F.... wireplumber
+  /dev/snd/seq:        oliver     4779 F.... pipewire
  CasperMD5CheckResult: unknown
  CurrentDesktop: ubuntu:GNOME
  Date: Sat Oct 31 17:59:34 2026
  EcryptfsInUse: Yes
  Lspci-vt:
-  -[0002:00]---00.0-[01-ff]----00.0  Shenzhen Unionmemory Information System 
Ltd. AM630 PCIe 4.0 x4 NVMe SSD Controller
-  -[0004:00]---00.0-[01-ff]----00.0  Foxconn International, Inc. T99W175 5G 
Modem [Snapdragon X55]
-  -[0006:00]---00.0-[01-ff]----00.0  Qualcomm Technologies, Inc QCNFA765 
Wireless Network Adapter
+  -[0002:00]---00.0-[01-ff]----00.0  Shenzhen Unionmemory Information System 
Ltd. AM630 PCIe 4.0 x4 NVMe SSD Controller
+  -[0004:00]---00.0-[01-ff]----00.0  Foxconn International, Inc. T99W175 5G 
Modem [Snapdragon X55]
+  -[0006:00]---00.0-[01-ff]----00.0  Qualcomm Technologies, Inc QCNFA765 
Wireless Network Adapter
  MachineType: LENOVO 21BX001LGE
  ProcEnviron:
-  LANG=en_US.UTF-8
-  PATH=(custom, no user)
-  SHELL=/bin/bash
-  TERM=xterm-256color
-  XDG_RUNTIME_DIR=<set>
+  LANG=en_US.UTF-8
+  PATH=(custom, no user)
+  SHELL=/bin/bash
+  TERM=xterm-256color
+  XDG_RUNTIME_DIR=<set>
  ProcFB: 0 msmdrmfb
  ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-7.0.0-42-generic 
root=UUID=abdbc5b6-1e07-49fc-958b-6f1411c26f68 ro clk_ignore_unused 
pd_ignore_unused arm64.nopauth quiet splash 
crashkernel=2G-4G:320M,4G-32G:512M,32G-64G:1024M,64G-128G:2048M,128G-:4096M
  SourcePackage: linux
  UpgradeStatus: Upgraded to resolute on 2026-07-27 (96 days ago)
  acpidump:
-  
+ 
  dmi.bios.date: 12/11/2025
  dmi.bios.release: 1.67
  dmi.bios.vendor: LENOVO
  dmi.bios.version: N3HET95W (1.67 )
  dmi.board.asset.tag: Not Available
  dmi.board.name: 21BX001LGE
  dmi.board.vendor: LENOVO
  dmi.board.version:
-  SDK0T76530 WIN
-  ptal����8
+  SDK0T76530 WIN
+  ptal����8
  dmi.chassis.asset.tag: No Asset Information
  dmi.chassis.type: 10
  dmi.chassis.vendor: LENOVO
  dmi.chassis.version: None
  dmi.ec.firmware.release: 1.24
  dmi.modalias: 
dmi:bvnLENOVO:bvrN3HET95W(1.67):bd12/11/2025:br1.67:efr1.24:svnLENOVO:pn21BX001LGE:pvrThinkPadX13sGen1:rvnLENOVO:rn21BX001LGE:rvrSDK0T76530WINptal8:cvnLENOVO:ct10:cvrNone:skuLENOVO_MT_21BX_BU_Think_FM_ThinkPadX13sGen1:pfaThinkPadX13sGen1:
  dmi.product.family: ThinkPad X13s Gen 1
  dmi.product.name: 21BX001LGE
  dmi.product.sku: LENOVO_MT_21BX_BU_Think_FM_ThinkPad X13s Gen 1
  dmi.product.version: ThinkPad X13s Gen 1
  dmi.sys.vendor: LENOVO

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2172673

Title:
  [X13s / SC8280XP] venus never votes MMCX: hardware video decode causes
  SMMU fault, firmware hang and IRQ storm, followed by hard reset

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2172673/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to