Repository navigation
media: apple: jpeg: complete the T6000 reset image, enable M1 Pro JPEG - #1237
Merged
Merged
Conversation
Add the 33 sparse scratch defaults the legacy32 reset image was missing (32 zero writes and 0x234 = 0x1f40; the holes in that block stay unwritten), so T6000 no longer refuses at probe. T6000 completes jobs with interrupt status bit 31, so accept only that bit. Tested on the M1 Pro (J316s, fleet36 + this driver, DT enabled at runtime): both engines identify as HWREV 0xd1013; NV12 encodes at 3840x2160/1920x1080/1280x720/640x480 decode with ffmpeg at 41.6-43.4 dB PSNR (q75) on both engines; GStreamer -e drains; every job completed with INT_STATUS 0x80000000; three pm_test device suspend cycles with both engines bound; no DART or JPEG faults. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
Both T6000 JPEG engines now probe with a complete reset image. Enable them and their DARTs for the M1 Pro boards; they are SoC blocks with no board-specific wiring. T6001/T6002 stay disabled. Tested on the M1 Pro (J316s), see the driver change. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM
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.
Enables JPEG encode on the M1 Pro (T6000). #1226 added the legacy32 layout but left T6000 refused at probe, because the reset image was missing its sparse scratch defaults.
apple-jpeg: the legacy32 reset image is complete. It adds 33 missing defaults: 32 zero writes plus0x234 = 0x1f40. Registers in that block that are not listed (0x1a4, 0x1b8, 0x20c, 0x210, 0x238, 0x24c) stay unwritten. The image now has 111 static defaults, plus the tiling write the helper appends.reset_complete = true, so probe accepts T6000. The reset handshake is the existing sharedaj_reset().BIT(31)only.0x234 = 0x1f40, all new entries zero, holes not written,-ENOSPCat 111 slots, maskBIT(31).t6000.dtsi: enablesjpeg0/jpeg1and their DARTs (M1 Pro boards). T6001 and T6002 stay disabled.Test: M1 Pro J316s, fleet36 kernel + this driver
DT enabled at runtime (RAM only), with the shipped node descriptions; the DARTs bind as
apple,t6000-dart. Restored by reboot. The test build had the old two-bit mask plus a log line for INT_STATUS.-eEOS drainjpeg-enc, a test copy oftools/asahi/prores-enc): 4K NV12 122.3 fps, 1080p NV12 440 fps, 4K NV16 93.0 fps.pm_test=devicesfreeze with both engines bound; both engines encoded after each cycle. The M1 Pro has no wake-capable RTC yet, so there was no real s2idle.Does it need a DRAM floor? (Neo #899)
I ran each case six times, alternating three runs with the CPUs idle and three with one P-core (cpu9) spinning. Frames were held in driver buffers.
On the Neo the same comparison showed +16-20% before #899, so there is no gap here worth a floor. T6000 also has no PMC DCS-floor provider, and its PMP perf entries are still unqualified (#1064).
macOS reference: not measured. Policy says Ryan must be told before macOS boots on the M1 Pro, and no one was at the machine. For comparison, macOS on the Neo-class engine: 4K 150 / 1080p 556 fps.
Clean-room source: Daybreak t-5786 clean contract, which contains register facts only.
Gates: KUnit apple-jpeg 12/12 (arm64 QEMU), W=1 out-of-tree build against fleet36 with 0 warnings, j314s/j316s/j316c/j375d DTBs build.
Evidence (our own measurements):
traces/codec/20261109-m1pro-jpeg-t6000-gap.Assisted-by: LLM
Signed-off-by: Ryan Murray 81541646+RyanTheTide@users.noreply.github.com
🤖 Generated with Claude Code