We have a board setup as described bellow and every call to ioctl(fd, VIDIOC_S_CTRL, &argp) run in a Invalid Argument error and every call to ioctl(fd, VIDIOC_G_CTRL, &argp) fills argp with zeros, even some control registers having non zeros default values.
$ uname -a
Linux Rogers-OptiPlex-3050 4.15.0-39-generic #42-Ubuntu SMP Tue Oct 23 15:48:01 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ . /usr/local/oecore-x86_64/environment-setup-armv7at2hf-neon-angstrom-linux-gnueabi
$ ${CC} --version
arm-angstrom-linux-gnueabi-gcc (GCC) 7.3.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Target
$ cat /etc/\*-release
VERSION_ID="v2016.12"
NAME="Angstrom"
ID="angstrom"
PRETTY_NAME="The Ångström Distribution v2016.12"
ANSI_COLOR="1;35"
HOME_URL="http://www.angstrom-distribution.org"
$ cat /proc/version
Linux version 4.1.44-2.7.4+gb1555bf (yocto@45574f02061f) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #1 SMP Wed Oct 4 22:39:51 UTC 2017
$ uname -a
Linux apalis-imx6 4.1.44-2.7.4+gb1555bf #1 SMP Wed Oct 4 22:39:51 UTC 2017 armv7l GNU/Linux