Skip to content

hi3516av100/dv100: ship + load the VDA kernel module (enable HW motion detection)#2197

Merged
widgetii merged 1 commit into
masterfrom
feat/hi3516av100-enable-vda
Jun 17, 2026
Merged

hi3516av100/dv100: ship + load the VDA kernel module (enable HW motion detection)#2197
widgetii merged 1 commit into
masterfrom
feat/hi3516av100-enable-vda

Conversation

@widgetii

Copy link
Copy Markdown
Member

Problem

On Hi3516A/D V100 (hi3516av100 / hi3516dv100) the firmware shipped the VDA userspace API — libmpi exports HI_MPI_VDA_* — but not the VDA kernel driver:

  • hi3516a_vda.ko is present in files/kmod/ but its $(INSTALL) line was commented out, so it never reached the rootfs.
  • load_hisilicon (the loader run at boot via S70vendor → load_$(ipcinfo -v) -i) had no insmod hi3516a_vda.ko.

Result: no /proc/umap/vda, so any HI_MPI_VDA_* call fails — in particular majestic's hardware motion detection (the VDA backend used for Gen1/Gen2 HiSilicon) can't start on these SoCs.

Change

  • .mk: install hi3516a_vda.ko to /lib/modules/4.9.37/hisilicon.
  • load_hisilicon: insmod hi3516a_vda.ko after the encoders, and rmmod -w hi3516a_vda on teardown.

No userspace changes — the VDA API and the consuming app code already exist.

Validation

On a hi3516dv100 board: after loading the module, /proc/umap/vda appears and hi3516a_vda shows in lsmod alongside the rest of the MPP stack. majestic's VDA motion detection then runs end-to-end — HI_MPI_VDA_CreateChn succeeds, 960×528 MD frame, object bounding boxes, with localized detections tracking real motion. No regression to the other modules (VDA loads next to the streaming stack).

🤖 Generated with Claude Code

The Hi3516A/D V100 (hi3516av100/hi3516dv100) firmware shipped the VDA
userspace API (libmpi exports HI_MPI_VDA_*) but not the VDA kernel driver:
hi3516a_vda.ko exists in files/kmod/ but its install was commented out, and
load_hisilicon never insmod'd it. So /proc/umap/vda was absent and any
HI_MPI_VDA_* call (e.g. hardware motion detection) failed at runtime.

- .mk: install hi3516a_vda.ko to the target.
- load_hisilicon: insmod hi3516a_vda.ko (after the encoders) and rmmod it on
  teardown, for the hi3516av100/hi3516dv100 module set.

Verified on hi3516dv100: with the module loaded, /proc/umap/vda appears and
majestic's VDA motion detection runs end-to-end (960x528 MD, object boxes).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@widgetii widgetii merged commit 7c5d229 into master Jun 17, 2026
104 checks passed
@widgetii widgetii deleted the feat/hi3516av100-enable-vda branch June 19, 2026 12:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant