summarylogtreecommitdiffstats
diff options
context:
space:
mode:
author7Ji2023-04-28 00:47:07 +0800
committer7Ji2023-04-28 00:47:07 +0800
commit99ebb986d628df5aecfdc59fda9af60fc0d67b51 (patch)
treefb03cf988958cfab5253b1f160915a60b481055c
parent32688a570b98097349d8decbca814836da436689 (diff)
downloadaur-99ebb986d628df5aecfdc59fda9af60fc0d67b51.tar.gz
bump to 6.1.26
also add patch to improve dev write logic of openvfd driver
-rw-r--r--.SRCINFO16
-rw-r--r--0001-drivers-auxdisplay-openvfd-improve-dev-write-logic.patch101
-rw-r--r--PKGBUILD17
-rw-r--r--config4
4 files changed, 123 insertions, 15 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 8b1e647a0b00..4261f9a04a9d 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
+
diff --git a/PKGBUILD b/PKGBUILD
index 842c70c4eab1..63b048b75278 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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
diff --git a/config b/config
index eb5eeb43e78b..876843b4ccb9 100644
--- a/config
+++ b/config
@@ -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