Iv Been trying to patch together the RedHawk kernel (7.5.5) for JetPack 32.5.1, and have been hitting a snag with our custom camera driver for ar0234. Here is the relevant dmesg output (the camera module is the ar0234).
[ 10.585479] ar0234 60-0010: probing ar0234
[ 10.585485] ar0234 60-0010: allocating mem for ar0234
[ 10.588334] ar0234 60-0010: tegracam sensor driver:ar0234_v2.0.6
[ 10.588346] ar0234 60-0010: TEGRA_CAMERA_CID_GROUP_HOLD contorl is enabled in framework by default, no need to add it in driver
[ 10.588620] ar0234 60-0010: Error -22 in control ops setup
[ 10.588731] ar0234 60-0010: Failed to init ctrls ar0234
[ 10.588837] ar0234 60-0010: tegra camera subdev registration failed
[ 10.589038] ar0234: probe of 60-0010 failed with error -22
After tracing through the code, this comes from static int tegracam_check_ctrl_ops in nvidia/drivers/media/platform/tegra/camera/tegracam_ctrls.c.
That function returns -EINVAL if this switch case is hit (TEGRA_CAMERA_CID_GROUP_HOLD), and then propagates upward from there. Thinking this was some aggressive form of deprecation, I tried removing that switch case and got “ERROR: 1 controls registered with framework but missing implementation.”
What’s the correct way to fix this so that I don’t get snagged by this?
We were able to get this to work on JP4.4 rs32.4.3 and RedHawks 7.5.2 but this broke the CUDA/GPU access.
Additional system info:
Using Rogue ConnectTech carrier board. All kernel patches are built from source on top of the Nvidia kernels
ar0234 is interfacing with custom camera GMSL carrier board.
The cameras and GSML board, CUDA/GPU work with JP 4.4 rs32.4.3 with no RedHawks