From 15e59ead2f9d837d41deb093008a5f973666efe4 Mon Sep 17 00:00:00 2001 From: Jens Maus Date: Sun, 23 Mar 2025 10:59:02 +0100 Subject: [PATCH] Update generic_raw_uart and eq3_char_loop to latest versions (#3964) Update generic_raw_uart package to the latest sources available coming with direct kernel 6.12.x compatibility dropping the intermediate patches accordingly. In addition, the eq3_char_loop patchset was updated to reflect the same changes performed. --- buildroot | 2 +- ...char_loop-driver-build-on-Linux-6.12.patch | 13 +-- .../0002-Linux-6.12-llseek.patch | 17 ---- .../0003-Linux-6.11-gpio-data.patch | 19 ---- .../0004-Linux-6.11-uart_remove.patch | 87 ------------------- .../generic_raw_uart/generic_raw_uart.hash | 2 +- .../generic_raw_uart/generic_raw_uart.mk | 2 +- 7 files changed, 10 insertions(+), 132 deletions(-) delete mode 100644 buildroot-external/package/generic_raw_uart/0002-Linux-6.12-llseek.patch delete mode 100644 buildroot-external/package/generic_raw_uart/0003-Linux-6.11-gpio-data.patch delete mode 100644 buildroot-external/package/generic_raw_uart/0004-Linux-6.11-uart_remove.patch diff --git a/buildroot b/buildroot index 3914f8cad..2ccc4c3f0 160000 --- a/buildroot +++ b/buildroot @@ -1 +1 @@ -Subproject commit 3914f8cad5a87a3aa1ba3aa04733887a869b87fe +Subproject commit 2ccc4c3f04e4c23beb286ac969061b911bb84c0f diff --git a/buildroot-external/package/eq3_char_loop/0004-Fix-eq3_char_loop-driver-build-on-Linux-6.12.patch b/buildroot-external/package/eq3_char_loop/0004-Fix-eq3_char_loop-driver-build-on-Linux-6.12.patch index b56548a13..0251c0555 100644 --- a/buildroot-external/package/eq3_char_loop/0004-Fix-eq3_char_loop-driver-build-on-Linux-6.12.patch +++ b/buildroot-external/package/eq3_char_loop/0004-Fix-eq3_char_loop-driver-build-on-Linux-6.12.patch @@ -1,16 +1,17 @@ -Remove llseek NULL'd in 6.0 (868941b) removed in 6.12 (cb787f4) +Upstream: Not applicable -Signed-off-by: Nick Venenga -Upstream: https://github.com/jens-maus/occu/pull/1 +Signed-off-by: Alexander Reinert --- a/KernelDrivers/eq3_char_loop.c +++ b/KernelDrivers/eq3_char_loop.c -@@ -898,7 +898,9 @@ static int eq3loop_open(struct inode *inode, struct file *filp) +@@ -917,7 +917,11 @@ static int eq3loop_open(struct inode *inode, struct file *filp) static struct file_operations eq3loop_fops = { .owner = THIS_MODULE, -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0) - .llseek = no_llseek, ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6, 12, 0)) ++ .llseek = noop_llseek, ++#else + .llseek = no_llseek, +#endif .read = eq3loop_read, .write = eq3loop_write, diff --git a/buildroot-external/package/generic_raw_uart/0002-Linux-6.12-llseek.patch b/buildroot-external/package/generic_raw_uart/0002-Linux-6.12-llseek.patch deleted file mode 100644 index 6422ddd9e..000000000 --- a/buildroot-external/package/generic_raw_uart/0002-Linux-6.12-llseek.patch +++ /dev/null @@ -1,17 +0,0 @@ -Remove llseek NULL'd in 6.0 (868941b) removed in 6.12 (cb787f4) - -Signed-off-by: Nick Venenga -Upstream: https://github.com/alexreinert/piVCCU/pull/533 - ---- a/kernel/generic_raw_uart.c -+++ b/kernel/generic_raw_uart.c -@@ -147,7 +147,9 @@ static int generic_raw_uart_get_device_type(struct generic_raw_uart_instance *in - static struct file_operations generic_raw_uart_fops = - { - .owner = THIS_MODULE, -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 0, 0) - .llseek = no_llseek, -+#endif - .read = generic_raw_uart_read, - .write = generic_raw_uart_write, - .open = generic_raw_uart_open, diff --git a/buildroot-external/package/generic_raw_uart/0003-Linux-6.11-gpio-data.patch b/buildroot-external/package/generic_raw_uart/0003-Linux-6.11-gpio-data.patch deleted file mode 100644 index a84154b45..000000000 --- a/buildroot-external/package/generic_raw_uart/0003-Linux-6.11-gpio-data.patch +++ /dev/null @@ -1,19 +0,0 @@ -Replace `gpiochip_add` removed in 6.11 (3ff1180) with `gpiochip_add_data` added in 4.5 (b08ea35) - -Signed-off-by: Nick Venenga -Upstream: https://github.com/alexreinert/piVCCU/pull/533 - ---- a/kernel/hb_rf_eth.c -+++ b/kernel/hb_rf_eth.c -@@ -715,7 +715,11 @@ static int __init hb_rf_eth_init(void) - gc.base = -1; - gc.can_sleep = false; - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 5, 0) - err = gpiochip_add(&gc); -+#else -+ err = gpiochip_add_data(&gc, NULL); -+#endif - if (err) - goto failed_gc_create; - diff --git a/buildroot-external/package/generic_raw_uart/0004-Linux-6.11-uart_remove.patch b/buildroot-external/package/generic_raw_uart/0004-Linux-6.11-uart_remove.patch deleted file mode 100644 index 79ef2f7f7..000000000 --- a/buildroot-external/package/generic_raw_uart/0004-Linux-6.11-uart_remove.patch +++ /dev/null @@ -1,87 +0,0 @@ -Change raw_uart_driver remove macro to define the function as void as in kernel 6.11 -the platform_device remove function was changed to void (0edb555). - -Upstream: Not applicable - -Signed-off-by: Jens Maus - -diff --git a/kernel/generic_raw_uart.h b/kernel/generic_raw_uart.h -index b865e22..791e5d0 100644 ---- a/kernel/generic_raw_uart.h 2025-01-10 13:19:08.697184514 +0100 -+++ b/kernel/generic_raw_uart.h 2025-01-10 13:28:43.311159893 +0100 -@@ -93,6 +93,8 @@ - - extern bool generic_raw_uart_verify_dkey(struct device *dev, unsigned char *dkey, int dkey_len, unsigned char *skey, uint32_t *pkey, int bytes); - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 11, 0) -+ - #define module_raw_uart_driver(__module_name, __raw_uart_driver, __of_match) \ - static struct generic_raw_uart *__raw_uart_driver##_raw_uart; \ - static int __##__raw_uart_driver##_probe(struct platform_device *pdev) \ -@@ -121,7 +123,7 @@ - int err; \ - struct device *dev = &pdev->dev; \ - \ -- err = generic_raw_uart_remove(__raw_uart_driver##_raw_uart); \ -+ err = generic_raw_uart_remove(__raw_uart_driver##_raw_uart); \ - if (err) \ - { \ - dev_err(dev, "failed to remove generic_raw_uart module"); \ -@@ -143,3 +145,57 @@ - \ - module_platform_driver(__raw_uart_driver_platform_driver); \ - MODULE_DEVICE_TABLE(of, __of_match); -+ -+#else -+ -+#define module_raw_uart_driver(__module_name, __raw_uart_driver, __of_match) \ -+ static struct generic_raw_uart *__raw_uart_driver##_raw_uart; \ -+ static int __##__raw_uart_driver##_probe(struct platform_device *pdev) \ -+ { \ -+ struct device *dev = &pdev->dev; \ -+ int err = __raw_uart_driver##_probe(pdev); \ -+ \ -+ if (err) \ -+ { \ -+ dev_err(dev, "failed to initialize generic_raw_uart module"); \ -+ return err; \ -+ } \ -+ \ -+ __raw_uart_driver##_raw_uart = generic_raw_uart_probe(dev, &__raw_uart_driver, NULL); \ -+ if (IS_ERR_OR_NULL(__raw_uart_driver##_raw_uart)) \ -+ { \ -+ dev_err(dev, "failed to initialize generic_raw_uart module"); \ -+ return PTR_ERR(__raw_uart_driver##_raw_uart); \ -+ } \ -+ \ -+ return 0; \ -+ } \ -+ \ -+ static void __##__raw_uart_driver##_remove(struct platform_device *pdev) \ -+ { \ -+ int err; \ -+ struct device *dev = &pdev->dev; \ -+ \ -+ err = generic_raw_uart_remove(__raw_uart_driver##_raw_uart); \ -+ if (err) \ -+ { \ -+ dev_err(dev, "failed to remove generic_raw_uart module"); \ -+ } \ -+ \ -+ __raw_uart_driver##_remove(pdev); \ -+ } \ -+ \ -+ static struct platform_driver __raw_uart_driver_platform_driver = { \ -+ .probe = __##__raw_uart_driver##_probe, \ -+ .remove = __##__raw_uart_driver##_remove, \ -+ .driver = { \ -+ .owner = THIS_MODULE, \ -+ .name = __module_name, \ -+ .of_match_table = __of_match, \ -+ }, \ -+ }; \ -+ \ -+ module_platform_driver(__raw_uart_driver_platform_driver); \ -+ MODULE_DEVICE_TABLE(of, __of_match); -+ -+#endif diff --git a/buildroot-external/package/generic_raw_uart/generic_raw_uart.hash b/buildroot-external/package/generic_raw_uart/generic_raw_uart.hash index 2215b15b4..e2e9a2130 100644 --- a/buildroot-external/package/generic_raw_uart/generic_raw_uart.hash +++ b/buildroot-external/package/generic_raw_uart/generic_raw_uart.hash @@ -1,3 +1,3 @@ # Locally computed sha256 b40930bbcf80744c86c46a12bc9da056641d722716c378f5659b9e555ef833e1 LICENSE -sha256 f1741dfe9ea6ea37213c35c735aa899f11e4c2961bccd6d8198d4051b3c42c5d generic_raw_uart-f691101c32435921a70c96075233b6d5e5eeab7d.tar.gz +sha256 1a99e87c48e95c173ce6f43b8783ac359022886265bb2ed86f67c6d05cf12658 generic_raw_uart-b80aacfb75e9689d14d4e2c94380728816c6313e.tar.gz diff --git a/buildroot-external/package/generic_raw_uart/generic_raw_uart.mk b/buildroot-external/package/generic_raw_uart/generic_raw_uart.mk index 791519c10..867e4427a 100644 --- a/buildroot-external/package/generic_raw_uart/generic_raw_uart.mk +++ b/buildroot-external/package/generic_raw_uart/generic_raw_uart.mk @@ -13,7 +13,7 @@ # ################################################################################ -GENERIC_RAW_UART_VERSION = f691101c32435921a70c96075233b6d5e5eeab7d +GENERIC_RAW_UART_VERSION = b80aacfb75e9689d14d4e2c94380728816c6313e GENERIC_RAW_UART_SITE = $(call github,alexreinert,piVCCU,$(GENERIC_RAW_UART_VERSION)) GENERIC_RAW_UART_LICENSE = GPL2 GENERIC_RAW_UART_LICENSE_FILES = LICENSE