Repository navigation
Home
Open reimplementation of Ingenic's closed TX-ISP kernel driver (tx-isp-<soc>.ko) for T10, T20, T21, T23, T30, T31, T40 and T41: same ioctl and libimp ABI and register sequencing as the vendor driver, with checked inputs, clean unload/reload and smaller modules. It works with the vendor libimp.so and with OpenIMP; open stack = open-tx-isp + OpenIMP.
The documentation for the whole stack lives in the OpenIMP wiki; this wiki is the driver entry point.
Release candidate 1: open-tx-isp 6e464ac7 (tag commit 191be6c5, driver plus RC1 documentation), paired with OpenIMP agg-35 687a68e4. Release page: v2026.10.11-rc1.
Soak evidence: the agg-35 pair ran on 10 cameras from 2026-10-10 18:04 to 2026-10-11 08:00 (about 14 h) with 0 kernel oopses, 0 unexplained reboots and 0 application restarts.
| SoC | RC1 status of the driver |
|---|---|
| T10 |
Release. Fully open; day/night, reload and boot guard verified. isp-m0 reports the gain step the AE really reaches (142 instead of 144 on the tested sensor). Front-crop window kept until a downscaled channel opens. |
| T20 |
Release. Fully open; 10x stop/start and module reload without an oops, rmmod during streaming refused. isp-m0 reports the reachable analog gain cap (day/night needs it). Same front-crop behaviour as T10. |
| T21 | Release. Fully open; AE/ADR/defog/AWB lifted from the vendor module; brightness acts and sepia works (beyond vendor). |
| T23 | Release. Fully open (native Helix encoder in OpenIMP). Front-crop hang fixed, AF statistics on by default, MSCA scratch buffer, vendor AE default; rare Helix errno 5 provisionally closed (0 errors in 6 days). No real WDR. |
| T30 | Experimental. Builds against a real T30 kernel; no T30 camera in the lab (host/build evidence only). |
| T31 | Release, reference SoC. Front crop effective and guarded; WDR statistics ring fix. |
| T40 | Experimental. First device run on 2026-10-10 (vendor kernel driver side by side with OpenIMP); see the OpenIMP wiki. |
| T41 | Experimental. Fully open from a flashed image; driver controls frame drop, sensor register, WDR enable and AF weight device-tested; MSCA channel-1 latch is opt-in. |
-
Front crop (
IMP_ISP_Tuning_SetFrontCrop): T31 refuses a window smaller than a running channel's scaler output with -EINVAL (the MSCA cannot upscale; such a window used to stall every output and reboot the camera), drops a crop that a larger main stream cannot fit, and the crop is now effective on both streams (device-tested in daylight). T23: crop off restores the full sensor window and the pipeline no longer hangs after a crop change. T20/T10: a window is kept while no downscaled channel is open and applied at stream on. The window is released with the ISP session. Module parameterfcrop_upscale_pct(T23, T31, default 0); its existence under/sys/module/tx_isp_t23|t31/parameters/tells an application that the safe path is present. - T31 WDR statistics ring: persistent across STREAMOFF, its DMA engine is disabled before the free and the IRQ window is closed (100 stop/start cycles and 20 module reloads without anomaly).
-
T20/T10 gain cap:
/proc/jz/isp/isp-m0"MAX SENSOR analog gain" reports the value the AE reaches (smaller of sensor maximum and theSetMaxAgainceiling, rounded to the sensor's gain step), so a day/night rule that waits for the cap works. -
T41 opt-ins (experimental):
t41_msca_cfg_update=2together witht41_msca_stop_disable=1latches the MSCA output geometry correctly for a channel 1 up to 768x432; larger sub-streams started mid-stream can hang the SoC, so they stay opt-in and off. See Module Parameters. - Robustness: reload/stop cycles without an oops on all release SoCs, checked inputs, sensor module pinned while the ISP is open, QBUF buffers outside the rmem window rejected.
next has moved past RC1 (agg-36 to agg-38): AWB statistics with a freshness check (T23/T31/T41), T41 ISP tuning controls and reload fixes, a crop-upscale cap for T23/T31, smaller modules and quieter kernel logs. Build and host tests only, no soak yet; device results are marked in the Changelog. In progress and not in next: the open T40 driver on the T40XP/sc830ai board (real frames, not released).
- T41 channel 1 (sub-stream) colour at night differs from channel 0; T41 stays experimental.
- T31: one black picture of about 80 s seen once during a day/night probe; not understood yet.
- T23: day/night flapping at dusk; the day/night decision is made by the application, the driver reports sensor values. The same holds for day/night in a poorly lit location.
- T40: CBR delivers only about 20 % of the target rate and H.265 is not supported yet (OpenIMP side).
- OpenIMP wiki: Home, Per-SoC Status, Feature Matrix, Changelog, Release Scheme
- Also: Supported SoCs and sensors, Architecture, Memory (rmem / ispmem), Troubleshooting
- Release notes of the driver: CHANGELOG.md at the tag; full feature matrix: FEATURE_MATRIX.md at the tag
Report driver problems at https://github.com/Lu-Fi/open-tx-isp/issues (what to include: Troubleshooting).
Open Ingenic camera stack: open-tx-isp