diff --git a/driver/smi_stream_dev.c b/driver/smi_stream_dev.c index e0d6618e..6e1f71a8 100644 --- a/driver/smi_stream_dev.c +++ b/driver/smi_stream_dev.c @@ -1050,7 +1050,12 @@ static int smi_stream_dev_probe(struct platform_device *pdev) } // Create sysfs entries with "smi-stream-dev" +#if defined(HAVE_CLASS_WITHOUT_OWNER) && HAVE_CLASS_WITHOUT_OWNER + smi_stream_class = class_create(DEVICE_NAME); +#else smi_stream_class = class_create(THIS_MODULE, DEVICE_NAME); +#endif + ptr_err = smi_stream_class; if (IS_ERR(ptr_err)) { diff --git a/driver/smi_stream_dev.h b/driver/smi_stream_dev.h index 268302c5..6957717a 100644 --- a/driver/smi_stream_dev.h +++ b/driver/smi_stream_dev.h @@ -38,6 +38,7 @@ #define _SMI_STREAM_DEV_H_ #include +#include #ifndef __KERNEL__ #include @@ -51,6 +52,12 @@ #define DRIVER_NAME "smi-stream-dev" #define DEVICE_MINOR 0 +#if ( LINUX_VERSION_CODE >= KERNEL_VERSION( 6, 4, 0) ) + #define HAVE_CLASS_WITHOUT_OWNER 1 +#else + #define HAVE_CLASS_WITHOUT_OWNER 0 +#endif + typedef enum { smi_stream_dir_smi_to_device = 0, // device data-bus is highZ (TX)