diff --git a/packages/linux/package.mk b/packages/linux/package.mk index a8dddf20a6..0f50bb5f28 100644 --- a/packages/linux/package.mk +++ b/packages/linux/package.mk @@ -22,8 +22,8 @@ case "${LINUX}" in PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz" ;; raspberrypi) - PKG_VERSION="c9226080e513181ffb3909a905e9c23b8a6e8f62" # 5.10.11 - PKG_SHA256="c641c1b11b0560863acce8269d23f093866ff97b1813f8eda3fa3abf33beec4e" + PKG_VERSION="431ac1d21b5e842c5a564bc0bab31d7dc11611f5" # 5.10.13 + PKG_SHA256="f2b8a1e70f1031bc81d4e120d127d9c63e669033b5ee1589a33efd358e7fe4e3" PKG_URL="https://github.com/raspberrypi/linux/archive/${PKG_VERSION}.tar.gz" PKG_SOURCE_NAME="linux-${LINUX}-${PKG_VERSION}.tar.gz" ;; diff --git a/packages/linux/patches/raspberrypi/linux-001-fix-ir-timeout.patch b/packages/linux/patches/raspberrypi/linux-001-fix-ir-timeout.patch deleted file mode 100644 index fced386d78..0000000000 --- a/packages/linux/patches/raspberrypi/linux-001-fix-ir-timeout.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 1f363deec843ed4e75aa11e466f91e9224376c04 Mon Sep 17 00:00:00 2001 -From: Matthias Reichl -Date: Tue, 5 Jan 2021 09:57:29 +0100 -Subject: [PATCH] media: rc: fix timeout handling after switch to microsecond - durations - -Commit 528222d853f92 ("media: rc: harmonize infrared durations to -microseconds") missed to switch some timeout calculations from -nanoseconds to microseconds. This resulted in spurious key_up+key_down -events at the last scancode if the rc device uses a long timeout -(eg 100ms on nuvoton-cir) as the device timeout wasn't properly -accounted for in the keyup timeout calculation. - -Fix this by applying the proper conversion functions. - -Fixes: 528222d853f92 ("media: rc: harmonize infrared durations to microseconds") -Signed-off-by: Matthias Reichl ---- - drivers/media/rc/ir-mce_kbd-decoder.c | 2 +- - drivers/media/rc/rc-main.c | 4 ++-- - drivers/media/rc/serial_ir.c | 2 +- - 3 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/drivers/media/rc/ir-mce_kbd-decoder.c b/drivers/media/rc/ir-mce_kbd-decoder.c -index be8f2756a444..1524dc0fc566 100644 ---- a/drivers/media/rc/ir-mce_kbd-decoder.c -+++ b/drivers/media/rc/ir-mce_kbd-decoder.c -@@ -320,7 +320,7 @@ static int ir_mce_kbd_decode(struct rc_dev *dev, struct ir_raw_event ev) - data->body); - spin_lock(&data->keylock); - if (scancode) { -- delay = nsecs_to_jiffies(dev->timeout) + -+ delay = usecs_to_jiffies(dev->timeout) + - msecs_to_jiffies(100); - mod_timer(&data->rx_timeout, jiffies + delay); - } else { -diff --git a/drivers/media/rc/rc-main.c b/drivers/media/rc/rc-main.c -index 29d4d01896ff..1fd62c1dac76 100644 ---- a/drivers/media/rc/rc-main.c -+++ b/drivers/media/rc/rc-main.c -@@ -737,7 +737,7 @@ static unsigned int repeat_period(int protocol) - void rc_repeat(struct rc_dev *dev) - { - unsigned long flags; -- unsigned int timeout = nsecs_to_jiffies(dev->timeout) + -+ unsigned int timeout = usecs_to_jiffies(dev->timeout) + - msecs_to_jiffies(repeat_period(dev->last_protocol)); - struct lirc_scancode sc = { - .scancode = dev->last_scancode, .rc_proto = dev->last_protocol, -@@ -855,7 +855,7 @@ void rc_keydown(struct rc_dev *dev, enum rc_proto protocol, u64 scancode, - ir_do_keydown(dev, protocol, scancode, keycode, toggle); - - if (dev->keypressed) { -- dev->keyup_jiffies = jiffies + nsecs_to_jiffies(dev->timeout) + -+ dev->keyup_jiffies = jiffies + usecs_to_jiffies(dev->timeout) + - msecs_to_jiffies(repeat_period(protocol)); - mod_timer(&dev->timer_keyup, dev->keyup_jiffies); - } -diff --git a/drivers/media/rc/serial_ir.c b/drivers/media/rc/serial_ir.c -index 8cc28c92d05d..96ae0294ac10 100644 ---- a/drivers/media/rc/serial_ir.c -+++ b/drivers/media/rc/serial_ir.c -@@ -385,7 +385,7 @@ static irqreturn_t serial_ir_irq_handler(int i, void *blah) - } while (!(sinp(UART_IIR) & UART_IIR_NO_INT)); /* still pending ? */ - - mod_timer(&serial_ir.timeout_timer, -- jiffies + nsecs_to_jiffies(serial_ir.rcdev->timeout)); -+ jiffies + usecs_to_jiffies(serial_ir.rcdev->timeout)); - - ir_raw_event_handle(serial_ir.rcdev); - --- -2.20.1 -