Last active
April 2, 2022 05:16
-
-
Save RogueScholar/02624d2e8a6d9e286dbece73f48106db to your computer and use it in GitHub Desktop.
Patch for intel_nuc_led on Linux kernel versions >= 5.6.0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- a/Makefile | |
+++ b/Makefile | |
@@ -1,40 +1,46 @@ | |
-obj-m := nuc_led.o | |
+#!/usr/bin/make -f | |
+# -*- mode: makefile-gmake; coding: utf-8-unix; tab-width: 4; -*- | |
-KVERSION := $(shell uname -r) | |
-KDIR := /lib/modules/$(KVERSION)/build | |
-PWD := $(shell pwd) | |
+KERNELRELEASE ?= $(shell uname -r) | |
+KDIR ?= /lib/modules/$(KERNELRELEASE)/build | |
+PWD ?= $(shell pwd) | |
-.PHONY: clean default dkms-add dkms-build dkms-deb dkms-install dkms-rpm dkms-uninstall install | |
+MOD_NAME ::= intel-nuc-led | |
+MOD_VERSION ::= 1.0 | |
-clean: | |
- $(MAKE) -C $(KDIR) M=$(PWD) clean | |
+obj-m ::= nuc_led.o | |
-default: | |
+all: | |
$(MAKE) -C $(KDIR) M=$(PWD) modules | |
+install: default | |
+ $(MAKE) -C $(KDIR) M=$(PWD) modules_install | |
+ @depmod -a $(KERNELRELEASE) | |
+ | |
+clean: | |
+ $(MAKE) -C $(KDIR) M=$(PWD) clean | |
+ | |
dkms-add: | |
dkms add --force $(PWD) | |
dkms-build: dkms-add | |
- dkms build -m intel-nuc-led -v 1.0 | |
+ dkms build -m $(MOD_NAME) -v $(MOD_VERSION) | |
dkms-deb: dkms-add | |
- dkms mkdeb intel-nuc-led/1.0 --source-only | |
+ dkms mkdeb $(MOD_NAME)/$(MOD_VERSION) --source-only | |
dkms-install: dkms-build | |
- dkms install -m intel-nuc-led -v 1.0 | |
- @depmod -a $(KVERSION) | |
+ dkms install -m $(MOD_NAME) -v $(MOD_VERSION) | |
+ @depmod -a $(KERNELRELEASE) | |
dkms-rpm: dkms-add | |
- dkms mkrpm intel-nuc-led/1.0 --source-only | |
+ dkms mkrpm $(MOD_NAME)/$(MOD_VERSION) --source-only | |
dkms-status: | |
- dkms status intel-nuc-led/1.0 | |
+ dkms status $(MOD_NAME)/$(MOD_VERSION) | |
dkms-uninstall: | |
- dkms remove -m intel-nuc-led -v 1.0 --all | |
- rm -rf /usr/src/intel-nuc-led-1.0/ | |
+ dkms remove -m $(MOD_NAME) -v $(MOD_VERSION) --all | |
+ @rm -Rfv /usr/src/$(MOD_NAME)-$(MOD_VERSION) | |
-install: | |
- $(MAKE) -C $(KDIR) M=$(PWD) modules_install | |
- @depmod -a $(KVERSION) | |
+.PHONY: all install clean dkms-add dkms-build dkms-deb dkms-install dkms-rpm dkms-uninstall | |
--- a/dkms.conf | |
+++ b/dkms.conf | |
@@ -1,5 +1,15 @@ | |
+PACKAGE_NAME="intel-nuc-led" | |
+PACKAGE_VERSION="1.0" | |
+ | |
+CLEAN="make KDIR=${kernel_source_dir} PWD=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build clean" | |
AUTOINSTALL="yes" | |
+REMAKE_INITRD="yes" | |
+ | |
+MAKE[0]="make KDIR=${kernel_source_dir} PWD=${dkms_tree}/${PACKAGE_NAME}/${PACKAGE_VERSION}/build all" | |
+STRIP[0]="yes" | |
+ | |
BUILT_MODULE_NAME[0]="nuc_led" | |
-DEST_MODULE_LOCATION[0]="/extra" | |
-PACKAGE_NAME="intel-nuc-led" | |
-PACKAGE_VERSION=1.0 | |
\ No newline at end of file | |
+BUILT_MODULE_LOCATION[0]="" | |
+DEST_MODULE_NAME[0]="gpio-nuc-led" | |
+DEST_MODULE_LOCATION[0]="/kernel/drivers/gpio" | |
+MODULES_CONF[0]="options ${DEST_MODULE_NAME[0]} nuc_led_perms=0664 nuc_led_gid=0 nuc_led_uid=0" | |
--- a/nuc_led.c | |
+++ b/nuc_led.c | |
@@ -37,6 +37,7 @@ | |
#include <linux/acpi.h> | |
#include <linux/vmalloc.h> | |
#include <linux/uaccess.h> | |
+#include <linux/version.h> | |
MODULE_AUTHOR("Miles Peterson"); | |
MODULE_DESCRIPTION("Intel NUC LED Control WMI Driver"); | |
@@ -443,11 +444,18 @@ static ssize_t acpi_proc_read(struct file *filp, char __user *buff, | |
return ret; | |
} | |
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 6, 0)) | |
+static struct proc_ops proc_acpi_operations = { | |
+ .proc_read = acpi_proc_read, | |
+ .proc_write = acpi_proc_write, | |
+}; | |
+#else | |
static struct file_operations proc_acpi_operations = { | |
.owner = THIS_MODULE, | |
.read = acpi_proc_read, | |
.write = acpi_proc_write, | |
}; | |
+#endif | |
/* Init & unload */ | |
static int __init init_nuc_led(void) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment