Fix setting priority of interrupt task for 5.9+ kernel
authorMiroslav Ondra <ondra@faster.cz>
Sat, 6 Feb 2021 12:52:34 +0000 (13:52 +0100)
committerMiroslav Ondra <ondra@faster.cz>
Sat, 6 Feb 2021 12:52:34 +0000 (13:52 +0100)
Makefile
modules/rtc-unipi/Makefile
modules/unipi/Makefile
modules/unipi/src/unipi_spi.c

index 7542628169c15364ae795052d04387b96d6cb130..14f2d9d0261499fdd4a3d39b3d6ed3b6b296b27a 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -11,23 +11,23 @@ default: all ;
 
 all:
        for m in ${MODULES_LIST}; do\
-               cd ${MODULES_DIR_PATH}$$m; make all || exit 1;\
+               cd ${MODULES_DIR_PATH}$$m; $(MAKE) all || exit 1;\
                done
 
 modules_install: install ;
 
 install:
        for m in ${MODULES_LIST}; do\
-               cd ${MODULES_DIR_PATH}$$m; make modules_install INSTALL_MOD_PATH=${DESTDIR} || exit 1;\
+               cd ${MODULES_DIR_PATH}$$m; $(MAKE) modules_install INSTALL_MOD_PATH=${DESTDIR} || exit 1;\
                done
 
 dkms:
        for m in ${MODULES_LIST}; do\
-               cd ${MODULES_DIR_PATH}$$m; make dkms INSTALL_MOD_PATH=${DESTDIR}/$$m || exit 1;\
+               cd ${MODULES_DIR_PATH}$$m; $(MAKE) dkms INSTALL_MOD_PATH=${DESTDIR}/$$m || exit 1;\
                done
 
 clean:
        for m in ${MODULES_LIST}; do\
-               cd ${MODULES_DIR_PATH}$$m; make clean;\
+               cd ${MODULES_DIR_PATH}$$m; $(MAKE) clean;\
                done
 
index 2fd9e22ecbf700b790f48b3166df50124ac81638..350a9523c12f8b4d5279cc5367f043cf084d9d23 100644 (file)
@@ -25,10 +25,10 @@ obj-m += ${KERNEL_MODULE_NAME}.o
 default: all ;
 
 all: 
-       make $(CCPAR) -C $(LINUX_DIR_PATH) M=${PWD} modules
+       $(MAKE) $(CCPAR) -C $(LINUX_DIR_PATH) M=${PWD} modules
 
 modules_install: 
-       make $(CCPAR) -C $(LINUX_DIR_PATH) M=${PWD} modules_install
+       $(MAKE) $(CCPAR) -C $(LINUX_DIR_PATH) M=${PWD} modules_install
 
 dkms:
        $(INSTALL) -D $(C_SRC_FILES) $(MODULE_MAKE_FILE) -t $(INSTALL_MOD_PATH)
index 48abdb963781a3d11bf272576d95d1ba5c6ada2b..68b8e0e97b83767af4dc1503a3a84edec030bb9e 100644 (file)
@@ -51,10 +51,10 @@ unipi-objs := ${OBJ_FILES}
 default: all ;
 
 all: 
-       make $(CCPAR) -C $(LINUX_DIR_PATH) M=${PWD} modules
+       $(MAKE) $(CCPAR) -C $(LINUX_DIR_PATH) M=${PWD} modules
 
 modules_install: 
-       make $(CCPAR) -C $(LINUX_DIR_PATH) M=${PWD} modules_install
+       $(MAKE) $(CCPAR) -C $(LINUX_DIR_PATH) M=${PWD} modules_install
 
 dkms:
        $(INSTALL) -D $(MODULE_MAKE_FILE) -t $(INSTALL_MOD_PATH)
index dc5a15c87191e8d5b48326c3db0ae54c2316f464..959e4317e2e1477769adf7bb6ebfdf604fda9a7c 100644 (file)
@@ -19,6 +19,7 @@
  ************/
 #include <linux/completion.h>
 #include <linux/cpufreq.h>
+#include <linux/version.h>
 
 #include "unipi_common.h"
 #include "unipi_sysfs.h"
@@ -31,6 +32,7 @@
 #include "unipi_uart.h"
 #include "unipi_tty.h"
 
+
 /* using trace_printk or printk ???*/
 
 #if NEURONSPI_DETAILED_DEBUG > 1
@@ -1218,7 +1220,7 @@ s32 neuronspi_spi_probe(struct spi_device *spi)
        struct sched_param rt_param = { .sched_priority = MAX_RT_PRIO - 1 };
 
        unsigned long flags;
-    
+
        n_spi = kzalloc(sizeof *n_spi, GFP_ATOMIC);
        spin_lock_irqsave(neuronspi_probe_spinlock, flags);
        neuronspi_probe_count++;
@@ -1341,7 +1343,11 @@ s32 neuronspi_spi_probe(struct spi_device *spi)
         kfree(n_spi);
                return PTR_ERR(worker);
     }
+#if LINUX_VERSION_CODE < KERNEL_VERSION(5,9,0)
        sched_setscheduler(worker->task, SCHED_FIFO, &neuronspi_sched_param);
+#else
+       sched_set_fifo(worker->task);
+#endif
     n_spi->primary_worker = worker;
     
     // Prepare Register map