OpenCL kernel driver for 5.10.x

Is the OpenCL supported for kernel 5.10.103+?

I am using the Ubuntu-focal image from Rockpi4/downloads. My attempt to install the mali-midgard-dkms fails with build errors. Wondering if the OpenCL instructions here https://wiki.radxa.com/Rockpi4/dev/install-opencl are relevant.

Loading new mali-midgard-16.0 DKMS files...
Building for 5.10.103+
Building initial module for 5.10.103+
Error! Bad return status for module build on kernel: 5.10.103+ (aarch64)
Consult /var/lib/dkms/mali-midgard/16.0/build/make.log for more information.

In the make.log has below error snippet:

>   CC [M]  /var/lib/dkms/mali-midgard/16.0/build/mali_kbase_jd_debugfs.o
> gcc: warning: switch Āe-msign-return-address=allĀf is no longer supported
> In file included from /var/lib/dkms/mali-midgard/16.0/build/mali_kbase.h:52,
>              from /var/lib/dkms/mali-midgard/16.0/build/mali_kbase_cache_policy.h:27,
>              from /var/lib/dkms/mali-midgard/16.0/build/mali_kbase_cache_policy.c:24:
> /var/lib/dkms/mali-midgard/16.0/build/mali_kbase_defs.h:726:18: error: field ĀetimestampĀf has incomplete type
>   726 |  struct timespec timestamp;
>   |                  ^~~~~~~~~
> In file included from /var/lib/dkms/mali-midgard/16.0/build/mali_kbase.h:52,
>              from /var/lib/dkms/mali-midgard/16.0/build/mali_kbase_jd_debugfs.c:20:
> /var/lib/dkms/mali-midgard/16.0/build/mali_kbase_defs.h:726:18: error: field ĀetimestampĀf has incomplete type
>   726 |  struct timespec timestamp;
>   |                  ^~~~~~~~~
> In file included from /var/lib/dkms/mali-midgard/16.0/build/mali_kbase.h:59,
>              from /var/lib/dkms/mali-midgard/16.0/build/mali_kbase_cache_policy.h:27,
>              from /var/lib/dkms/mali-midgard/16.0/build/mali_kbase_cache_policy.c:24:

Regards,
Praveen

1 Like

struct timespec is deprecated as of kernel 5.6 in favor of timespec64, along with several related functions.

You can try this to see if it works:

     #define timespec timespec64
     #define timespec_to_ktime(__z) timespec64_to_ktime(__z)
     #define getnstimeofday(__z) ktime_get_real_ts64(__z)