diff options
author | 7Ji | 2023-04-28 00:47:07 +0800 |
---|---|---|
committer | 7Ji | 2023-04-28 00:47:07 +0800 |
commit | 99ebb986d628df5aecfdc59fda9af60fc0d67b51 (patch) | |
tree | fb03cf988958cfab5253b1f160915a60b481055c | |
parent | 32688a570b98097349d8decbca814836da436689 (diff) | |
download | aur-99ebb986d628df5aecfdc59fda9af60fc0d67b51.tar.gz |
bump to 6.1.26
also add patch to improve dev write logic of openvfd driver
-rw-r--r-- | .SRCINFO | 16 | ||||
-rw-r--r-- | 0001-drivers-auxdisplay-openvfd-improve-dev-write-logic.patch | 101 | ||||
-rw-r--r-- | PKGBUILD | 17 | ||||
-rw-r--r-- | config | 4 |
4 files changed, 123 insertions, 15 deletions
@@ -1,5 +1,5 @@ pkgbase = linux-aarch64-flippy - pkgver = 6.1.24 + pkgver = 6.1.26 pkgrel = 1 url = https://github.com/unifreq/linux-6.1.y arch = aarch64 @@ -9,12 +9,14 @@ pkgbase = linux-aarch64-flippy makedepends = dtc makedepends = uboot-tools options = !strip - source = linux-6.1.y-2c936ab9379154a13e759b30916134704072ee3a.tar.gz::https://github.com/unifreq/linux-6.1.y/archive/2c936ab9379154a13e759b30916134704072ee3a.tar.gz + source = linux-6.1.y-06e93d0351d703cce92e588ba2e7cc5a36d65fdb.tar.gz::https://github.com/unifreq/linux-6.1.y/archive/06e93d0351d703cce92e588ba2e7cc5a36d65fdb.tar.gz source = config source = linux.preset - sha256sums = 028d8c6740eefd0efbce294c0ca5e80d97f89ee146ad41bff3adf958ba10002f - sha256sums = 3cb447597f018e7af120840fbfe9be2900703765817b53a242a4ac6fae517a30 + source = 0001-drivers-auxdisplay-openvfd-improve-dev-write-logic.patch + sha256sums = 56db5ed562987e41eb4efdce21193cf28c7e3cafc6a91457de729b2f25d92822 + sha256sums = eea825bef9a873be55cab26035cc6b16e210f4effba905fadc22de444e2b7f30 sha256sums = bdcd6cbf19284b60fac6d6772f1e0ec2e2fe03ce7fe3d7d16844dd6d2b5711f3 + sha256sums = 6fcc328ca286e8fa86d8988aa2f01afdd41cf650425baa967eebbb9e29bca5a4 pkgname = linux-aarch64-flippy pkgdesc = The Linux Kernel and module - flippy's AArch64-focused fork aiming to increase usability @@ -36,12 +38,12 @@ pkgname = linux-aarch64-flippy-headers pkgname = linux-aarch64-flippy-dtb-allwinner pkgdesc = DTB files for Allwinner SoCs for flippy's AArch64 kernel - provides = linux-aarch64-flippy-dtb=6.1.24 + provides = linux-aarch64-flippy-dtb=6.1.26 pkgname = linux-aarch64-flippy-dtb-amlogic pkgdesc = DTB files for Amlogic SoCs for flippy's AArch64 kernel - provides = linux-aarch64-flippy-dtb=6.1.24 + provides = linux-aarch64-flippy-dtb=6.1.26 pkgname = linux-aarch64-flippy-dtb-rockchip pkgdesc = DTB files for Rockchip SoCs for flippy's AArch64 kernel - provides = linux-aarch64-flippy-dtb=6.1.24 + provides = linux-aarch64-flippy-dtb=6.1.26 diff --git a/0001-drivers-auxdisplay-openvfd-improve-dev-write-logic.patch b/0001-drivers-auxdisplay-openvfd-improve-dev-write-logic.patch new file mode 100644 index 000000000000..5c26728bce1a --- /dev/null +++ b/0001-drivers-auxdisplay-openvfd-improve-dev-write-logic.patch @@ -0,0 +1,101 @@ +From ae04984a5b4905b6326f9c1d94c554381d289634 Mon Sep 17 00:00:00 2001 +From: 7Ji <pugokushin@gmail.com> +Date: Thu, 27 Apr 2023 23:46:33 +0800 +Subject: [PATCH] drivers: auxdisplay: openvfd: improve dev write logic + +--- + drivers/auxdisplay/openvfd/openvfd_drv.c | 64 ++++++++++++++---------- + 1 file changed, 37 insertions(+), 27 deletions(-) + +diff --git a/drivers/auxdisplay/openvfd/openvfd_drv.c b/drivers/auxdisplay/openvfd/openvfd_drv.c +index bd1a4c0d2..485fa48d9 100644 +--- a/drivers/auxdisplay/openvfd/openvfd_drv.c ++++ b/drivers/auxdisplay/openvfd/openvfd_drv.c +@@ -216,6 +216,8 @@ static ssize_t openvfd_dev_read(struct file *filp, char __user * buf, + return ret; + } + ++#define OPENVFD_DEV_WRITE_RAW_LENGTH 10 ++ + /** + * @param buf: Incoming LED codes. + * [0] Display indicators mask (wifi, eth, usb, etc.) +@@ -226,40 +228,48 @@ static ssize_t openvfd_dev_write(struct file *filp, const char __user * buf, + size_t count, loff_t * f_pos) + { + ssize_t status = 0; +- unsigned long missing; + static struct vfd_display_data data; +- +- if (count == sizeof(data)) { +- missing = copy_from_user(&data, buf, count); +- if (missing == 0 && count > 0) { ++ static unsigned char raw_data[OPENVFD_DEV_WRITE_RAW_LENGTH]; ++ ++ if (count > 0) { ++ void *data_p; ++ bool should_free = false; ++ bool write_raw = false; ++ switch (count) { ++ case sizeof data: ++ data_p = &data; ++ break; ++ case OPENVFD_DEV_WRITE_RAW_LENGTH: ++ data_p = raw_data; ++ write_raw = true; ++ break; ++ default: ++ if (!(data_p = kzalloc(count, GFP_KERNEL))) { ++ pr_error("openvfd_dev_write failed to allocate %ld bytes (raw_data)\n", count); ++ return -1; ++ } ++ should_free = true; ++ write_raw = true; ++ break; ++ } ++ if (!copy_from_user(data_p, buf, count)) { ++ size_t write_count = 0; + mutex_lock(&mutex); +- if (controller->write_display_data(&data)) +- pr_dbg("openvfd_dev_write count : %ld\n", count); +- else { +- status = -1; +- pr_error("openvfd_dev_write failed to write %ld bytes (display_data)\n", count); ++ if (write_raw) { ++ write_count = controller->write_data((unsigned char*)raw_data, count); ++ } else { ++ write_count = controller->write_display_data(&data); + } + mutex_unlock(&mutex); +- } +- } else if (count > 0) { +- unsigned char *raw_data; +- pr_dbg2("openvfd_dev_write: count = %ld, sizeof(data) = %ld\n", count, sizeof(data)); +- raw_data = kzalloc(count, GFP_KERNEL); +- if (raw_data) { +- missing = copy_from_user(raw_data, buf, count); +- mutex_lock(&mutex); +- if (controller->write_data((unsigned char*)raw_data, count)) +- pr_dbg("openvfd_dev_write count : %ld\n", count); +- else { ++ if (write_count) { ++ pr_dbg("openvfd_dev_write %ld from %ld bytes\n", write_count, count); ++ } else { + status = -1; +- pr_error("openvfd_dev_write failed to write %ld bytes (raw_data)\n", count); ++ pr_error("openvfd_dev_write failed to write %ld bytes (display_data)\n", count); + } +- mutex_unlock(&mutex); +- kfree(raw_data); + } +- else { +- status = -1; +- pr_error("openvfd_dev_write failed to allocate %ld bytes (raw_data)\n", count); ++ if (should_free) { ++ kfree(data_p); + } + } + +-- +2.40.0 + @@ -1,11 +1,11 @@ # Maintainer: 7Ji <pugokughin@gmail.com> _desc="flippy's AArch64-focused fork aiming to increase usability" -_pkgver_main=6.1.24 +_pkgver_main=6.1.26 _pkgver_suffix=flippy _pkgver_uname="${_pkgver_main}-${_pkgver_suffix}" _flippy_repo='linux-6.1.y' -_flippy_commit='2c936ab9379154a13e759b30916134704072ee3a' +_flippy_commit='06e93d0351d703cce92e588ba2e7cc5a36d65fdb' _srcname="${_flippy_repo}-${_flippy_commit}" pkgbase=linux-aarch64-flippy @@ -29,18 +29,23 @@ source=( "${_srcname}.tar.gz::${url}/archive/${_flippy_commit}.tar.gz" 'config' 'linux.preset' + '0001-drivers-auxdisplay-openvfd-improve-dev-write-logic.patch' ) sha256sums=( - '028d8c6740eefd0efbce294c0ca5e80d97f89ee146ad41bff3adf958ba10002f' - '3cb447597f018e7af120840fbfe9be2900703765817b53a242a4ac6fae517a30' + '56db5ed562987e41eb4efdce21193cf28c7e3cafc6a91457de729b2f25d92822' + 'eea825bef9a873be55cab26035cc6b16e210f4effba905fadc22de444e2b7f30' 'bdcd6cbf19284b60fac6d6772f1e0ec2e2fe03ce7fe3d7d16844dd6d2b5711f3' + '6fcc328ca286e8fa86d8988aa2f01afdd41cf650425baa967eebbb9e29bca5a4' ) prepare() { cd "${_srcname}" -# echo "Patching kernel..." -# patch -p1 < '../support-amlogic-proprietary-partition.patch' + echo "Patching kernel..." + local file_patch + for file_patch in "${source[@]:3}"; do + patch -p1 < "../${file_patch}" + done echo "Setting version..." scripts/setlocalversion --save-scmversion @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm64 6.1.24 Kernel Configuration +# Linux/arm64 6.1.26 Kernel Configuration # CONFIG_CC_VERSION_TEXT="gcc (GCC) 12.1.0" CONFIG_CC_IS_GCC=y @@ -158,7 +158,6 @@ CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y CONFIG_CC_HAS_INT128=y CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" CONFIG_GCC11_NO_ARRAY_BOUNDS=y -CONFIG_GCC12_NO_ARRAY_BOUNDS=y CONFIG_CC_NO_ARRAY_BOUNDS=y CONFIG_ARCH_SUPPORTS_INT128=y CONFIG_CGROUPS=y @@ -1883,6 +1882,7 @@ CONFIG_RFKILL=m CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y CONFIG_RFKILL_GPIO=m +# CONFIG_RFKILL_GPIO_NEO is not set CONFIG_NET_9P=m CONFIG_NET_9P_FD=m CONFIG_NET_9P_VIRTIO=m |