Repository navigation
media: apple: isp: Enable camera capture on T6050 - #1253
Conversation
Describe named register resources, host stream pairs, camera power gates and loader-provided memory for the T6050 ISP. Retain the disabled hardware inventory format used by the other T6050 boards. Developed with Claude Code. Signed-off-by: Erik Bourget <erik@ebourget.net>
The T6050 ISP uses the H17 capture path with its own MMIO and DSID clear windows, host stream filter mask and mailbox interrupt enables. Describe these resources and keep the existing per-SoC behavior as the default. Exercise both the default and T6050 address-filter masks in KUnit. The source implementation captured 1080p NV12 frames at 30 fps on J716c. Developed with Claude Code. Signed-off-by: Erik Bourget <erik@ebourget.net>
DjDeveloperr
left a comment
There was a problem hiding this comment.
Tested on the 14-inch M5 Pro (J714sAP, T6050, macOS 27.0 firmware) with #1252 and #1254. The built-in camera delivers frames.
Setup: PR1012 +platform kernel plus #1252..#1254, cherry-picked unchanged. aura has a J714s port of the J716c camera handoff and passes apple,platform-id = <0x74> (the J714sAP sensor type). A static V4L2 MMAP capture tool runs in the initramfs.
Evidence:
/dev/video0: driver apple-isp, card "FaceTime HD Camera". Format NV12 1920x1080, bytesperline 1920, sizeimage 3110400. The firmware reports sensor 0x958 (setfile 'apple/isp_2224_01XX.dat' missing, streaming without sensor tuning; the kit has no setfiles).- 90/90 frames at 30.08 fps, first frame after 1.2 s, 0 flagged with an error.
- Light test, 60 frames each: panel black, luma mean 22.5; panel full white, 53.4; black again, 22.6. Block-averaged luma shows the untuned lens falloff, so these are real sensor frames.
- KUnit on this tree (ARM64 QEMU, panic_on_warn=1, PROVE_LOCKING): 73 tests, 72 passed, 1 skipped (an unrelated UCLAMP-only GPU case). That includes apple-isp-camera, -dapf (with the T6050 0xcc3 mask case), -hw, -sharedmalloc, -v4l2, -ipc-layout and apple-dart.
Note, not blocking (it worked here): the T6050 table carries eight memory-controller windows (DAPF 0x2220004000..0x222e0162fc, eight DSID-clear bases). The J714sAP ADT lists only four in dart-isp0's DAPF (11 windows in all) and isp0 active-mcc-bit-vector = 0xf. The other four MCC register blocks exist (/arm-io/mcc has all eight), and streaming was clean with the full table. If a part ever faults on the inactive ones, the count could come from the DT.
|
Retested before merging on the M5 Pro (J714sAP, bare metal, SSD boot), kernel 7.3.0-m5-merge: the M5's integration kernel with this round's rebased heads in place of the old ones (every PR's own patch identical to what is merged; logs in work/m5-pr-merge-20261109). CI green. Before merging, this round (these 14 PRs, #1323 and the rebased #1254/#1306/#938/#1316/#1199) was test-merged in order onto integration/aurora f9cf6f9 with no conflicts:
🤖 Generated with Claude Code |
Add T6050 support to the existing H17 capture path so the J716c built-in camera can deliver frames. Describe its MMIO and DSID windows, DART filter mask and mailbox enables, and extend the binding while retaining the disabled inventory format used by sibling boards.
The source implementation streamed 150 NV12 frames at 1920×1080 and about 30 fps on J716c with kernel
7.3.0-ewb56+, and produced a valid color image without kernel errors during the test. The extraction ontointegration/aurorapasses all 44 ISP KUnit tests in ARM64 QEMU, including both DART filter masks, and the binding/device-tree checks. The integration port itself has not been booted on hardware.Camera enablement also needs the DART changes in #1252 and the companion J716c device-tree changes, plus a compatible bootloader handoff. The sensor tuning and image-quality behavior are unchanged.
Created with GPT-6 Astra in Codex (T3 Code).