--- /dev/null
+--- a/src/drv_mei_cpe_os.h
++++ b/src/drv_mei_cpe_os.h
+@@ -36,6 +36,15 @@
+ #include "ifxos_select.h"
+ #include "ifx_fifo.h"
+
++/* __BYTE_ORDER is defined in ifxos_linux_common.h and ifxos_linux_drv.h, which
++ * leads to an compile error in include/uapi/linux/aio_abi.h because the
++ * __LITTLE_ENDIAN is still undefined. So let's undef the unwanted __BYTE_ORDER
++ * again here.
++ */
++#ifdef __BYTE_ORDER
++ #undef __BYTE_ORDER
++#endif
++
+ #if defined(IFXOS_HAVE_VERSION_CHECK)
+ # if (IFXOS_VERSION_CHECK_EG_THAN(1,1,0))
+ # define IFXOS_SUPPORTS_FIFO_PEEK 1
+--- a/src/drv_mei_cpe_linux.c
++++ b/src/drv_mei_cpe_linux.c
+@@ -2548,7 +2548,11 @@ static int MEI_InitModuleRegCharDev(cons
+ ("Using major number %d" MEI_DRV_CRLF, major_number));
+ }
+
++#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0)
+ mei_class = class_create(THIS_MODULE, devName);
++#else
++ mei_class = class_create(devName);
++#endif
+ mei_devt = MKDEV(major_number, 0);
+ device_create(mei_class, NULL, mei_devt, NULL, "%s/%i", devName, 0);
+