mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-03-31 14:41:55 -07:00
Merge pull request #4044 from MilhouseVH/linux5.5.0
linux (Generic): update to linux-5.5
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="kernel-firmware"
|
||||
PKG_VERSION="20200122"
|
||||
PKG_SHA256="25572b1946979aa9662284ac30601d8d8c3818ee7f63ebb6e7323e02eb62b83e"
|
||||
PKG_VERSION="b791e15d3e0ac2705eaa7965ed9b6d4c85fef2a2"
|
||||
PKG_SHA256="9415d550656974960831fb9a7c96169e67a4bf4b231a444788bc32d17dd2cd63"
|
||||
PKG_LICENSE="other"
|
||||
PKG_SITE="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/"
|
||||
PKG_URL="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/$PKG_VERSION.tar.gz"
|
||||
|
||||
@@ -29,8 +29,8 @@ case "$LINUX" in
|
||||
PKG_SOURCE_NAME="linux-$LINUX-$PKG_VERSION.tar.gz"
|
||||
;;
|
||||
*)
|
||||
PKG_VERSION="5.4.16"
|
||||
PKG_SHA256="911541df2974782062f551ba0a818d7822ec69db4c41e590bcc7422398bada7a"
|
||||
PKG_VERSION="5.5"
|
||||
PKG_SHA256="a6fbd4ee903c128367892c2393ee0d9657b6ed3ea90016d4dc6f1f6da20b2330"
|
||||
PKG_URL="https://www.kernel.org/pub/linux/kernel/v5.x/$PKG_NAME-$PKG_VERSION.tar.xz"
|
||||
PKG_PATCH_DIRS="default"
|
||||
;;
|
||||
|
||||
@@ -1,153 +0,0 @@
|
||||
From cf330691668a3bee37b8ac8212709b3ccdd87997 Mon Sep 17 00:00:00 2001
|
||||
From: Flavius Georgescu <pretoriano.mp@gmail.com>
|
||||
Date: Fri, 20 Sep 2019 13:11:39 -0300
|
||||
Subject: media: rc: Add support for another iMON 0xffdc device
|
||||
|
||||
The device it's an iMON UltraBay (0x98 in config byte) with LCD,
|
||||
IR and dual-knobs front panel.
|
||||
|
||||
To work properly the device also require its own key table,
|
||||
and repeat suppression for all buttons.
|
||||
|
||||
Signed-off-by: Flavius Georgescu <pretoriano.mp@gmail.com>
|
||||
Co-developed-by: Chris Vandomelen <chris@sightworks.com>
|
||||
Signed-off-by: Chris Vandomelen <chris@sightworks.com>
|
||||
Signed-off-by: Sean Young <sean@mess.org>
|
||||
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
|
||||
---
|
||||
drivers/media/rc/imon.c | 61 +++++++++++++++++++++++++++++++++++++++++--------
|
||||
1 file changed, 51 insertions(+), 10 deletions(-)
|
||||
|
||||
(limited to 'drivers/media/rc/imon.c')
|
||||
|
||||
diff --git a/drivers/media/rc/imon.c b/drivers/media/rc/imon.c
|
||||
index 37a850421fbb..b8d96c50a804 100644
|
||||
--- a/drivers/media/rc/imon.c
|
||||
+++ b/drivers/media/rc/imon.c
|
||||
@@ -83,6 +83,7 @@ struct imon_usb_dev_descr {
|
||||
__u16 flags;
|
||||
#define IMON_NO_FLAGS 0
|
||||
#define IMON_NEED_20MS_PKT_DELAY 1
|
||||
+#define IMON_SUPPRESS_REPEATED_KEYS 2
|
||||
struct imon_panel_key_table key_table[];
|
||||
};
|
||||
|
||||
@@ -149,8 +150,9 @@ struct imon_context {
|
||||
struct timer_list ttimer; /* touch screen timer */
|
||||
int touch_x; /* x coordinate on touchscreen */
|
||||
int touch_y; /* y coordinate on touchscreen */
|
||||
- struct imon_usb_dev_descr *dev_descr; /* device description with key
|
||||
- table for front panels */
|
||||
+ const struct imon_usb_dev_descr *dev_descr;
|
||||
+ /* device description with key */
|
||||
+ /* table for front panels */
|
||||
};
|
||||
|
||||
#define TOUCH_TIMEOUT (HZ/30)
|
||||
@@ -315,6 +317,32 @@ static const struct imon_usb_dev_descr imon_DH102 = {
|
||||
}
|
||||
};
|
||||
|
||||
+/* imon ultrabay front panel key table */
|
||||
+static const struct imon_usb_dev_descr ultrabay_table = {
|
||||
+ .flags = IMON_SUPPRESS_REPEATED_KEYS,
|
||||
+ .key_table = {
|
||||
+ { 0x0000000f0000ffeell, KEY_MEDIA }, /* Go */
|
||||
+ { 0x000000000100ffeell, KEY_UP },
|
||||
+ { 0x000000000001ffeell, KEY_DOWN },
|
||||
+ { 0x000000160000ffeell, KEY_ENTER },
|
||||
+ { 0x0000001f0000ffeell, KEY_AUDIO }, /* Music */
|
||||
+ { 0x000000200000ffeell, KEY_VIDEO }, /* Movie */
|
||||
+ { 0x000000210000ffeell, KEY_CAMERA }, /* Photo */
|
||||
+ { 0x000000270000ffeell, KEY_DVD }, /* DVD */
|
||||
+ { 0x000000230000ffeell, KEY_TV }, /* TV */
|
||||
+ { 0x000000050000ffeell, KEY_PREVIOUS }, /* Previous */
|
||||
+ { 0x000000070000ffeell, KEY_REWIND },
|
||||
+ { 0x000000040000ffeell, KEY_STOP },
|
||||
+ { 0x000000020000ffeell, KEY_PLAYPAUSE },
|
||||
+ { 0x000000080000ffeell, KEY_FASTFORWARD },
|
||||
+ { 0x000000060000ffeell, KEY_NEXT }, /* Next */
|
||||
+ { 0x000100000000ffeell, KEY_VOLUMEUP },
|
||||
+ { 0x010000000000ffeell, KEY_VOLUMEDOWN },
|
||||
+ { 0x000000010000ffeell, KEY_MUTE },
|
||||
+ { 0, KEY_RESERVED },
|
||||
+ }
|
||||
+};
|
||||
+
|
||||
/*
|
||||
* USB Device ID for iMON USB Control Boards
|
||||
*
|
||||
@@ -1264,9 +1292,11 @@ static u32 imon_mce_key_lookup(struct imon_context *ictx, u32 scancode)
|
||||
|
||||
static u32 imon_panel_key_lookup(struct imon_context *ictx, u64 code)
|
||||
{
|
||||
- int i;
|
||||
+ const struct imon_panel_key_table *key_table;
|
||||
u32 keycode = KEY_RESERVED;
|
||||
- struct imon_panel_key_table *key_table = ictx->dev_descr->key_table;
|
||||
+ int i;
|
||||
+
|
||||
+ key_table = ictx->dev_descr->key_table;
|
||||
|
||||
for (i = 0; key_table[i].hw_code != 0; i++) {
|
||||
if (key_table[i].hw_code == (code | 0xffee)) {
|
||||
@@ -1550,7 +1580,6 @@ static void imon_incoming_packet(struct imon_context *ictx,
|
||||
u32 kc;
|
||||
u64 scancode;
|
||||
int press_type = 0;
|
||||
- long msec;
|
||||
ktime_t t;
|
||||
static ktime_t prev_time;
|
||||
u8 ktype;
|
||||
@@ -1653,14 +1682,16 @@ static void imon_incoming_packet(struct imon_context *ictx,
|
||||
spin_lock_irqsave(&ictx->kc_lock, flags);
|
||||
|
||||
t = ktime_get();
|
||||
- /* KEY_MUTE repeats from knob need to be suppressed */
|
||||
- if (ictx->kc == KEY_MUTE && ictx->kc == ictx->last_keycode) {
|
||||
- msec = ktime_ms_delta(t, prev_time);
|
||||
- if (msec < ictx->idev->rep[REP_DELAY]) {
|
||||
+ /* KEY repeats from knob and panel that need to be suppressed */
|
||||
+ if (ictx->kc == KEY_MUTE ||
|
||||
+ ictx->dev_descr->flags & IMON_SUPPRESS_REPEATED_KEYS) {
|
||||
+ if (ictx->kc == ictx->last_keycode &&
|
||||
+ ktime_ms_delta(t, prev_time) < ictx->idev->rep[REP_DELAY]) {
|
||||
spin_unlock_irqrestore(&ictx->kc_lock, flags);
|
||||
return;
|
||||
}
|
||||
}
|
||||
+
|
||||
prev_time = t;
|
||||
kc = ictx->kc;
|
||||
|
||||
@@ -1848,6 +1879,14 @@ static void imon_get_ffdc_type(struct imon_context *ictx)
|
||||
dev_info(ictx->dev, "0xffdc iMON Inside, iMON IR");
|
||||
ictx->display_supported = false;
|
||||
break;
|
||||
+ /* Soundgraph iMON UltraBay */
|
||||
+ case 0x98:
|
||||
+ dev_info(ictx->dev, "0xffdc iMON UltraBay, LCD + IR");
|
||||
+ detected_display_type = IMON_DISPLAY_TYPE_LCD;
|
||||
+ allowed_protos = RC_PROTO_BIT_IMON | RC_PROTO_BIT_RC6_MCE;
|
||||
+ ictx->dev_descr = &ultrabay_table;
|
||||
+ break;
|
||||
+
|
||||
default:
|
||||
dev_info(ictx->dev, "Unknown 0xffdc device, defaulting to VFD and iMON IR");
|
||||
detected_display_type = IMON_DISPLAY_TYPE_VFD;
|
||||
@@ -1979,10 +2018,12 @@ out:
|
||||
|
||||
static struct input_dev *imon_init_idev(struct imon_context *ictx)
|
||||
{
|
||||
- struct imon_panel_key_table *key_table = ictx->dev_descr->key_table;
|
||||
+ const struct imon_panel_key_table *key_table;
|
||||
struct input_dev *idev;
|
||||
int ret, i;
|
||||
|
||||
+ key_table = ictx->dev_descr->key_table;
|
||||
+
|
||||
idev = input_allocate_device();
|
||||
if (!idev)
|
||||
goto out;
|
||||
--
|
||||
cgit 1.2-0.3.lf.el7
|
||||
@@ -1,89 +0,0 @@
|
||||
From 28ad70a06fb84fe63cd036970db2561b2fd1562b Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Sun, 5 Nov 2017 16:51:23 +0100
|
||||
Subject: [PATCH v3 1/2] i915: pm: Be less agressive with clockfreq changes on
|
||||
Bay Trail
|
||||
|
||||
Bay Trail devices are known to hang when changing the frequency often,
|
||||
this is discussed in great length in:
|
||||
https://bugzilla.kernel.org/show_bug.cgi?id=109051
|
||||
|
||||
Commit 6067a27d1f01 ("drm/i915: Avoid tweaking evaluation thresholds
|
||||
on Baytrail v3") is an attempt to workaround this. Several users in
|
||||
bko109051 report that an earlier version of this patch, v1:
|
||||
https://bugzilla.kernel.org/attachment.cgi?id=251471
|
||||
|
||||
Works better for them and they still see hangs with the merged v3.
|
||||
|
||||
Comparing the 2 versions shows that they are indeed not equivalent,
|
||||
v1 not only skips writing the GEN6_RP* registers from valleyview_set_rps,
|
||||
as v3 does. It also contained these modifications to i915_irq.c:
|
||||
|
||||
if (pm_iir & GEN6_PM_RP_DOWN_EI_EXPIRED) {
|
||||
if (!vlv_c0_above(dev_priv,
|
||||
&dev_priv->rps.down_ei, &now,
|
||||
- dev_priv->rps.down_threshold))
|
||||
+ VLV_RP_DOWN_EI_THRESHOLD))
|
||||
events |= GEN6_PM_RP_DOWN_THRESHOLD;
|
||||
dev_priv->rps.down_ei = now;
|
||||
}
|
||||
|
||||
if (pm_iir & GEN6_PM_RP_UP_EI_EXPIRED) {
|
||||
if (vlv_c0_above(dev_priv,
|
||||
&dev_priv->rps.up_ei, &now,
|
||||
- dev_priv->rps.up_threshold))
|
||||
+ VLV_RP_UP_EI_THRESHOLD))
|
||||
events |= GEN6_PM_RP_UP_THRESHOLD;
|
||||
dev_priv->rps.up_ei = now;
|
||||
}
|
||||
|
||||
Which use less aggressive up/down thresholds, which results in less
|
||||
GEN6_PM_RP_*_THRESHOLD events and thus in less calls to intel_set_rps() ->
|
||||
valleyview_set_rps() -> vlv_punit_write(PUNIT_REG_GPU_FREQ_REQ).
|
||||
With the last call being the likely cause of the hang.
|
||||
|
||||
This commit hardcodes the threshold_up and _down values for Bay Trail to
|
||||
less aggressive values, reducing the amount of clock frequency changes,
|
||||
thus avoiding the hangs some people are still seeing with the merged fix.
|
||||
|
||||
Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=109051
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/gpu/drm/i915/i915_reg.h | 3 +++
|
||||
drivers/gpu/drm/i915/intel_pm.c | 5 ++++-
|
||||
2 files changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
|
||||
index 68a58cce6ab1..2561af075ebb 100644
|
||||
--- a/drivers/gpu/drm/i915/i915_reg.h
|
||||
+++ b/drivers/gpu/drm/i915/i915_reg.h
|
||||
@@ -1355,6 +1355,9 @@ enum i915_power_well_id {
|
||||
#define VLV_BIAS_CPU_125_SOC_875 (6 << 2)
|
||||
#define CHV_BIAS_CPU_50_SOC_50 (3 << 2)
|
||||
|
||||
+#define VLV_RP_UP_EI_THRESHOLD 90
|
||||
+#define VLV_RP_DOWN_EI_THRESHOLD 70
|
||||
+
|
||||
/* vlv2 north clock has */
|
||||
#define CCK_FUSE_REG 0x8
|
||||
#define CCK_FUSE_HPLL_FREQ_MASK 0x3
|
||||
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
|
||||
index 01966b89be14..177b6caa0a38 100644
|
||||
--- a/drivers/gpu/drm/i915/intel_pm.c
|
||||
+++ b/drivers/gpu/drm/i915/intel_pm.c
|
||||
@@ -6096,8 +6096,11 @@ static void gen6_set_rps_thresholds(struct drm_i915_private *dev_priv, u8 val)
|
||||
/* When byt can survive without system hang with dynamic
|
||||
* sw freq adjustments, this restriction can be lifted.
|
||||
*/
|
||||
- if (IS_VALLEYVIEW(dev_priv))
|
||||
+ if (IS_VALLEYVIEW(dev_priv)) {
|
||||
+ threshold_up = VLV_RP_UP_EI_THRESHOLD;
|
||||
+ threshold_down = VLV_RP_DOWN_EI_THRESHOLD;
|
||||
goto skip_hw_write;
|
||||
+ }
|
||||
|
||||
I915_WRITE(GEN6_RP_UP_EI,
|
||||
GT_INTERVAL_FROM_US(dev_priv, ei_up));
|
||||
--
|
||||
2.14.3
|
||||
|
||||
@@ -1,53 +0,0 @@
|
||||
From 945d0eb39d8920854c72ecb743c07d54b738cf7f Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Thu, 9 Nov 2017 14:21:24 +0100
|
||||
Subject: [PATCH v3 2/2] intel_idle: Disable C6N and C6S on Bay Trail
|
||||
|
||||
It seems that Bay Trail SoCs sometimes have issues waking from C6,
|
||||
a lot of users even report Bay Trail devices only being stable
|
||||
when passing intel_idle.max_cstate=1 to the kernel.
|
||||
|
||||
This commits disables the C6 states while leaving the C7 states
|
||||
available so that the cores can still reach deep sleep states.
|
||||
|
||||
There are several indicators that this is part of the solution for
|
||||
all the users who need to pass intel_idle.max_cstate=1:
|
||||
|
||||
1) The "VLP52 EOI Transactions May Not be Sent if Software
|
||||
Enters Core C6 During an Interrupt Service Routine" errata.
|
||||
|
||||
2) Several users who need intel_idle.max_cstate=1 indicate in bko109051
|
||||
(which has over 800 comments!) that using a shell script which
|
||||
disables C6N and C6S through sysfs allows them to remove
|
||||
intel_idle.max_cstate=1 and still have a stable system which does
|
||||
use the C7 states for power-saving.
|
||||
|
||||
BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=109051
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/idle/intel_idle.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
|
||||
index 5dc7ea4b6bc4..fe05984c9e81 100644
|
||||
--- a/drivers/idle/intel_idle.c
|
||||
+++ b/drivers/idle/intel_idle.c
|
||||
@@ -221,6 +221,7 @@ static struct cpuidle_state byt_cstates[] = {
|
||||
.flags = MWAIT2flg(0x58) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||||
.exit_latency = 300,
|
||||
.target_residency = 275,
|
||||
+ .disabled = true,
|
||||
.enter = &intel_idle,
|
||||
.enter_s2idle = intel_idle_s2idle, },
|
||||
{
|
||||
@@ -229,6 +230,7 @@ static struct cpuidle_state byt_cstates[] = {
|
||||
.flags = MWAIT2flg(0x52) | CPUIDLE_FLAG_TLB_FLUSHED,
|
||||
.exit_latency = 500,
|
||||
.target_residency = 560,
|
||||
+ .disabled = true,
|
||||
.enter = &intel_idle,
|
||||
.enter_s2idle = intel_idle_s2idle, },
|
||||
{
|
||||
--
|
||||
2.14.3
|
||||
|
||||
@@ -6,8 +6,8 @@ PKG_NAME="xf86-video-nvidia"
|
||||
# Remember to run "python packages/x11/driver/xf86-video-nvidia/scripts/make_nvidia_udev.py" and commit changes to
|
||||
# "packages/x11/driver/xf86-video-nvidia/udev.d/96-nvidia.rules" whenever bumping version.
|
||||
# Host may require installation of python-lxml and python-requests packages.
|
||||
PKG_VERSION="440.44"
|
||||
PKG_SHA256="794fdfc8e65c203ae482f59df7e55050ddcf0a11af2a95eaa1a10c7d48ec7e0f"
|
||||
PKG_VERSION="440.59"
|
||||
PKG_SHA256="87c05aeadd260034b4d429de5be8032ead2103adee7aedc1adbb15c0ce3c6f28"
|
||||
PKG_ARCH="x86_64"
|
||||
PKG_LICENSE="nonfree"
|
||||
PKG_SITE="http://www.nvidia.com/"
|
||||
|
||||
@@ -209,6 +209,8 @@ ATTRS{device}=="0x1cba", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1cbb", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1cbc", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1cbd", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1cfa", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1cfb", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1d01", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1d10", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1d11", GOTO="configure_nvidia"
|
||||
@@ -226,6 +228,8 @@ ATTRS{device}=="0x1db6", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1db7", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1db8", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1dba", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1df0", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1df2", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1df5", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1df6", GOTO="configure_nvidia"
|
||||
ATTRS{device}=="0x1e02", GOTO="configure_nvidia"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user