In order to have the kernel driver always build from the same sources we are considering to set:
MACHINE_USES_VIVANTE_KERNEL_DRIVER_MODULE = "0"
Now we wonder why you use the Vivante driver built out-of-tree by default at all? Are there any differences in functionality or are there any licensing issues?
This has been asked on the meta-freescale mailinglist recently.
Please have a look on this thread.
So if you make sure that the kernel variant used does build a kernel driver which matches the userspace Vivante component versions the result should work.
Depending on the BSP version you are using there might be additional bbappend files messing with the versions used.
How to know if he kernel driver matches the Version of the userspace component?
You would check in NXP’s original BSP what kernel version (meaning the exact downstream version) they use with what version of the userspace components.
Alternatively you could check ‘drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h’ in your kernel and compare that with the userspace recipe versions.