summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authordragonn2021-02-24 23:55:09 +0100
committerdragonn2021-02-25 00:00:19 +0100
commit4f0de187d88ec51406490bb68232bf8d372cbec2 (patch)
tree027e899d39f43bf0c7fca05c968b49c708335dc3
parent2aef7061df1142a05c0d9058b1660d37e4e395cd (diff)
downloadaur-4f0de187d88ec51406490bb68232bf8d372cbec2.tar.gz
5.10.16
-rw-r--r--.SRCINFO12
-rw-r--r--PKGBUILD13
-rw-r--r--sys-kernel_arch-sources-g14_files-6005-alsa-hda-ga401-ga502-experimental.patch42
-rw-r--r--sys-kernel_arch-sources-g14_files_0007-snd-hda-realtek-g401-ga502.patch18
-rw-r--r--sys-kernel_arch-sources-g14_files_6006-cpufreq_fix_boost_freq.patch150
-rw-r--r--sys-kernel_arch-sources-g14_files_6007-HID-asus-Add-support-for-2021-ASUS-N-Key-keyboard.patch44
-rw-r--r--sys-kernel_arch-sources-g14_files_6008-HID-asus-Filter-keyboard-EC-for-old-ROG-keyboard.patch32
-rw-r--r--sys-kernel_arch-sources-g14_files_6009-WMI-asus-Reduce-G14-and-G15-match-to-min-product-nam.patch107
8 files changed, 384 insertions, 34 deletions
diff --git a/.SRCINFO b/.SRCINFO
index ae7f2a83365b..2fc1dd602253 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = linux-g14
pkgdesc = Linux
- pkgver = 5.10.7.arch1
+ pkgver = 5.10.16.arch1
pkgrel = 1
url = https://lab.retarded.farm/zappel/asus-rog-zephyrus-g14/
arch = x86_64
@@ -12,11 +12,15 @@ pkgbase = linux-g14
makedepends = xmlto
makedepends = git
options = !strip
- source = archlinux-linux::git+https://git.archlinux.org/linux.git?signed#tag=v5.10.7-arch1
+ source = archlinux-linux::git+https://git.archlinux.org/linux.git?signed#tag=v5.10.16-arch1
source = config
source = sys-kernel_arch-sources-g14_files_0002-asus-nb-wmi-add-support-for-GU502DU.patch
source = sys-kernel_arch-sources-g14_files_0003-i8042-dmiids.patch
source = sys-kernel_arch-sources-g14_files_0004-hid-asus-n-key.patch
+ source = sys-kernel_arch-sources-g14_files_6006-cpufreq_fix_boost_freq.patch
+ source = sys-kernel_arch-sources-g14_files_6007-HID-asus-Add-support-for-2021-ASUS-N-Key-keyboard.patch
+ source = sys-kernel_arch-sources-g14_files_6008-HID-asus-Filter-keyboard-EC-for-old-ROG-keyboard.patch
+ source = sys-kernel_arch-sources-g14_files_6009-WMI-asus-Reduce-G14-and-G15-match-to-min-product-nam.patch
validpgpkeys = ABAF11C65A2970B130ABE3C479BE3E4300411886
validpgpkeys = 647F28654894E3BD457199BE38DBBDC86092693E
validpgpkeys = A2FF3A36AAA56654109064AB19802F8B0D70FC30
@@ -25,6 +29,10 @@ pkgbase = linux-g14
sha256sums = e924edb045476201968eb76157a72ddae7dac18932e54f0e3d32eeed98d2b2c6
sha256sums = 7c9bff35d0bde9b4250137ea9e5292a103ecbc1fe68a753688541d22be27fa29
sha256sums = f934eb199172e3a16658eb0c66ee7a0ca37c69a9dd1ee4d20a37f89bd3c53288
+ sha256sums = a27e273e5cb81deb5a0d5a09d1f596bc821b65825089407ac90ac91eeef698fa
+ sha256sums = 2edfb8dbb0fe7202191c51a5f645559c5da9f800e8aad2f8a4fd2731092138ff
+ sha256sums = d9f5742fed4406396698897aa042d4d5fdbfd7c51add7483a777f9ab41901aac
+ sha256sums = eec1d016c5f53f1d808701b6c038db2e73a61310713f859d99bf97b9c793cefe
pkgname = linux-g14
pkgdesc = The Linux kernel and modules
diff --git a/PKGBUILD b/PKGBUILD
index d8904c452283..0bce9f9e27e1 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
pkgbase=linux-g14
-pkgver=5.10.7.arch1
+pkgver=5.10.16.arch1
pkgrel=1
pkgdesc='Linux'
_srctag=v${pkgver%.*}-${pkgver##*.}
@@ -22,6 +22,10 @@ source=(
"sys-kernel_arch-sources-g14_files_0002-asus-nb-wmi-add-support-for-GU502DU.patch"
"sys-kernel_arch-sources-g14_files_0003-i8042-dmiids.patch"
"sys-kernel_arch-sources-g14_files_0004-hid-asus-n-key.patch"
+ "sys-kernel_arch-sources-g14_files_6006-cpufreq_fix_boost_freq.patch"
+ "sys-kernel_arch-sources-g14_files_6007-HID-asus-Add-support-for-2021-ASUS-N-Key-keyboard.patch"
+ "sys-kernel_arch-sources-g14_files_6008-HID-asus-Filter-keyboard-EC-for-old-ROG-keyboard.patch"
+ "sys-kernel_arch-sources-g14_files_6009-WMI-asus-Reduce-G14-and-G15-match-to-min-product-nam.patch"
)
validpgpkeys=(
'ABAF11C65A2970B130ABE3C479BE3E4300411886' # Linus Torvalds
@@ -33,8 +37,11 @@ sha256sums=('SKIP'
'cf69b81648a07ebedb274ed26bed3c4d2ff75c6665ecaca0a724b148c70c9c7c'
'e924edb045476201968eb76157a72ddae7dac18932e54f0e3d32eeed98d2b2c6'
'7c9bff35d0bde9b4250137ea9e5292a103ecbc1fe68a753688541d22be27fa29'
- 'f934eb199172e3a16658eb0c66ee7a0ca37c69a9dd1ee4d20a37f89bd3c53288')
-
+ 'f934eb199172e3a16658eb0c66ee7a0ca37c69a9dd1ee4d20a37f89bd3c53288'
+ 'a27e273e5cb81deb5a0d5a09d1f596bc821b65825089407ac90ac91eeef698fa'
+ '2edfb8dbb0fe7202191c51a5f645559c5da9f800e8aad2f8a4fd2731092138ff'
+ 'd9f5742fed4406396698897aa042d4d5fdbfd7c51add7483a777f9ab41901aac'
+ 'eec1d016c5f53f1d808701b6c038db2e73a61310713f859d99bf97b9c793cefe')
export KBUILD_BUILD_HOST=archlinux
export KBUILD_BUILD_USER=$pkgbase
diff --git a/sys-kernel_arch-sources-g14_files-6005-alsa-hda-ga401-ga502-experimental.patch b/sys-kernel_arch-sources-g14_files-6005-alsa-hda-ga401-ga502-experimental.patch
index e6d45fec39ea..d2df68c4e217 100644
--- a/sys-kernel_arch-sources-g14_files-6005-alsa-hda-ga401-ga502-experimental.patch
+++ b/sys-kernel_arch-sources-g14_files-6005-alsa-hda-ga401-ga502-experimental.patch
@@ -1,30 +1,31 @@
---- a/sound/pci/hda/patch_realtek.c 2020-10-10 19:26:27.026289289 +0200
-+++ b/sound/pci/hda/patch_realtek.c 2020-10-10 19:28:24.502830780 +0200
-@@ -6235,7 +6235,9 @@
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index 8616c5624870..f0d08502e7ee 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -6349,6 +6349,8 @@ enum {
ALC269VC_FIXUP_ACER_HEADSET_MIC,
ALC269VC_FIXUP_ACER_MIC_NO_PRESENCE,
ALC289_FIXUP_ASUS_GA401,
-- ALC289_FIXUP_ASUS_GA502,
+ ALC289_FIXUP_ASUS_GA401_SPK,
+ ALC289_FIXUP_ASUS_GA401_HP_MIC,
-+ ALC294_FIXUP_ASUS_GA502,
+ ALC289_FIXUP_ASUS_GA502,
ALC256_FIXUP_ACER_MIC_NO_PRESENCE,
ALC285_FIXUP_HP_GPIO_AMP_INIT,
- ALC269_FIXUP_CZC_B20,
-@@ -7496,14 +7498,33 @@
+@@ -7616,14 +7618,34 @@ static const struct hda_fixup alc269_fixups[] = {
+ },
[ALC289_FIXUP_ASUS_GA401] = {
- .type = HDA_FIXUP_PINS,
- .v.pins = (const struct hda_pintbl[]) {
-- { 0x19, 0x03a11020 }, /* headset mic with jack detect */
+ .type = HDA_FIXUP_FUNC,
+- .v.func = alc289_fixup_asus_ga401,
++ .v.pins = (const struct hda_pintbl[]) {
+ { 0x17, 0x90170130 }, /* bass speaker */
+ { 0x19, 0x03a11050 }, /* headphone mic with jack detect */
+ { 0x21, 0x03211430 }, /* headphone playback */
- { }
- },
-+ .chained = true,
-+ .chain_id = ALC289_FIXUP_ASUS_GA401_SPK
- },
-- [ALC289_FIXUP_ASUS_GA502] = {
++ { }
++ },
+ .chained = true,
+- .chain_id = ALC289_FIXUP_ASUS_GA502,
++ .chain_id = ALC289_FIXUP_ASUS_GA401_SPK,
++ },
+ [ALC289_FIXUP_ASUS_GA401_SPK] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc295_fixup_disable_dac3,
@@ -39,8 +40,8 @@
+ { 0x20, AC_VERB_SET_PROC_COEF, 0x5289 },
+ { }
+ },
-+ },
-+ [ALC294_FIXUP_ASUS_GA502] = {
+ },
+ [ALC289_FIXUP_ASUS_GA502] = {
.type = HDA_FIXUP_PINS,
.v.pins = (const struct hda_pintbl[]) {
- { 0x19, 0x03a11020 }, /* headset mic with jack detect */
@@ -48,13 +49,12 @@
{ }
},
},
-@@ -7889,7 +7908,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
+@@ -7978,7 +8000,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x1043, 0x1c23, "Asus X55U", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
SND_PCI_QUIRK(0x1043, 0x1ccd, "ASUS X555UB", ALC256_FIXUP_ASUS_MIC),
SND_PCI_QUIRK(0x1043, 0x1d4e, "ASUS TM420", ALC256_FIXUP_ASUS_HPE),
- SND_PCI_QUIRK(0x1043, 0x1e11, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA502),
-+ SND_PCI_QUIRK(0x1043, 0x1e11, "ASUS Zephyrus G15", ALC294_FIXUP_ASUS_GA502),
++ SND_PCI_QUIRK(0x1043, 0x1e11, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA502),
SND_PCI_QUIRK(0x1043, 0x1f11, "ASUS Zephyrus G14", ALC289_FIXUP_ASUS_GA401),
SND_PCI_QUIRK(0x1043, 0x1881, "ASUS Zephyrus S/M", ALC294_FIXUP_ASUS_GX502_PINS),
SND_PCI_QUIRK(0x1043, 0x3030, "ASUS ZN270IE", ALC256_FIXUP_ASUS_AIO_GPIO2),
-
diff --git a/sys-kernel_arch-sources-g14_files_0007-snd-hda-realtek-g401-ga502.patch b/sys-kernel_arch-sources-g14_files_0007-snd-hda-realtek-g401-ga502.patch
index f1ff2418b149..8f8e43ae62ca 100644
--- a/sys-kernel_arch-sources-g14_files_0007-snd-hda-realtek-g401-ga502.patch
+++ b/sys-kernel_arch-sources-g14_files_0007-snd-hda-realtek-g401-ga502.patch
@@ -1,6 +1,8 @@
---- a/sound/pci/hda/patch_realtek.c 2020-09-27 19:57:22.699000000 +0200
-+++ b/sound/pci/hda/patch_realtek.c 2020-09-27 22:06:26.887560162 +0200
-@@ -6004,6 +6004,28 @@
+diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
+index 6899089d132e..2f61667bf001 100644
+--- a/sound/pci/hda/patch_realtek.c
++++ b/sound/pci/hda/patch_realtek.c
+@@ -6051,6 +6051,28 @@ static void alc_fixup_disable_mic_vref(struct hda_codec *codec,
snd_hda_codec_set_pin_target(codec, 0x19, PIN_VREFHIZ);
}
@@ -29,7 +31,7 @@
static void alc294_gx502_toggle_output(struct hda_codec *codec,
struct hda_jack_callback *cb)
-@@ -6218,6 +6240,7 @@
+@@ -6276,6 +6298,7 @@ enum {
ALC285_FIXUP_THINKPAD_HEADSET_JACK,
ALC294_FIXUP_ASUS_HPE,
ALC294_FIXUP_ASUS_COEF_1B,
@@ -37,7 +39,7 @@
ALC294_FIXUP_ASUS_GX502_HP,
ALC294_FIXUP_ASUS_GX502_PINS,
ALC294_FIXUP_ASUS_GX502_VERBS,
-@@ -6230,7 +6253,6 @@
+@@ -6288,7 +6311,6 @@ enum {
ALC269VC_FIXUP_ACER_HEADSET_MIC,
ALC269VC_FIXUP_ACER_MIC_NO_PRESENCE,
ALC289_FIXUP_ASUS_GA401,
@@ -45,7 +47,7 @@
ALC256_FIXUP_ACER_MIC_NO_PRESENCE,
ALC285_FIXUP_HP_GPIO_AMP_INIT,
ALC269_FIXUP_CZC_B20,
-@@ -7483,16 +7505,13 @@
+@@ -7550,16 +7572,13 @@ static const struct hda_fixup alc269_fixups[] = {
.chain_id = ALC269_FIXUP_HEADSET_MIC
},
[ALC289_FIXUP_ASUS_GA401] = {
@@ -66,10 +68,10 @@
{ }
},
},
-@@ -7795,7 +7814,7 @@
- SND_PCI_QUIRK(0x1043, 0x1bbd, "ASUS Z550MA", ALC255_FIXUP_ASUS_MIC_NO_PRESENCE),
+@@ -7889,7 +7908,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
SND_PCI_QUIRK(0x1043, 0x1c23, "Asus X55U", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
SND_PCI_QUIRK(0x1043, 0x1ccd, "ASUS X555UB", ALC256_FIXUP_ASUS_MIC),
+ SND_PCI_QUIRK(0x1043, 0x1d4e, "ASUS TM420", ALC256_FIXUP_ASUS_HPE),
- SND_PCI_QUIRK(0x1043, 0x1e11, "ASUS Zephyrus G15", ALC289_FIXUP_ASUS_GA502),
+ SND_PCI_QUIRK(0x1043, 0x1e11, "ASUS Zephyrus G15", ALC294_FIXUP_ASUS_GA502),
SND_PCI_QUIRK(0x1043, 0x1f11, "ASUS Zephyrus G14", ALC289_FIXUP_ASUS_GA401),
diff --git a/sys-kernel_arch-sources-g14_files_6006-cpufreq_fix_boost_freq.patch b/sys-kernel_arch-sources-g14_files_6006-cpufreq_fix_boost_freq.patch
new file mode 100644
index 000000000000..e405460c1caa
--- /dev/null
+++ b/sys-kernel_arch-sources-g14_files_6006-cpufreq_fix_boost_freq.patch
@@ -0,0 +1,150 @@
+diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
+index 1e4fbb002a31..a5facc6cad16 100644
+--- a/drivers/cpufreq/acpi-cpufreq.c
++++ b/drivers/cpufreq/acpi-cpufreq.c
+@@ -26,6 +26,7 @@
+ #include <linux/uaccess.h>
+
+ #include <acpi/processor.h>
++#include <acpi/cppc_acpi.h>
+
+ #include <asm/msr.h>
+ #include <asm/processor.h>
+@@ -628,11 +629,57 @@ static int acpi_cpufreq_blacklist(struct cpuinfo_x86 *c)
+ }
+ #endif
+
++#ifdef CONFIG_ACPI_CPPC_LIB
++static bool amd_max_boost(unsigned int max_freq,
++ unsigned int *max_boost)
++{
++ struct cppc_perf_caps perf_caps;
++ u64 highest_perf, nominal_perf, perf_ratio;
++ int ret;
++
++ ret = cppc_get_perf_caps(0, &perf_caps);
++ if (ret) {
++ pr_debug("Could not retrieve perf counters (%d)\n", ret);
++ return false;
++ }
++
++ highest_perf = perf_caps.highest_perf;
++ nominal_perf = perf_caps.nominal_perf;
++
++ if (!highest_perf || !nominal_perf) {
++ pr_debug("Could not retrieve highest or nominal performance\n");
++ return false;
++ }
++
++ perf_ratio = div_u64(highest_perf * SCHED_CAPACITY_SCALE, nominal_perf);
++ if (perf_ratio <= SCHED_CAPACITY_SCALE) {
++ pr_debug("Either perf_ratio is 0, or nominal >= highest performance\n");
++ return false;
++ }
++
++ *max_boost = max_freq * perf_ratio >> SCHED_CAPACITY_SHIFT;
++ if (!*max_boost) {
++ pr_debug("max_boost seems to be zero\n");
++ return false;
++ }
++
++ return true;
++}
++#else
++static bool amd_max_boost(unsigned int max_freq,
++ unsigned int *max_boost)
++{
++ return false;
++}
++#endif
++
+ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
+ {
+ unsigned int i;
+ unsigned int valid_states = 0;
+ unsigned int cpu = policy->cpu;
++ unsigned int freq, max_freq = 0;
++ unsigned int max_boost;
+ struct acpi_cpufreq_data *data;
+ unsigned int result = 0;
+ struct cpuinfo_x86 *c = &cpu_data(policy->cpu);
+@@ -779,15 +826,25 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
+ freq_table[valid_states-1].frequency / 1000)
+ continue;
+
++ freq = perf->states[i].core_frequency * 1000;
+ freq_table[valid_states].driver_data = i;
+- freq_table[valid_states].frequency =
+- perf->states[i].core_frequency * 1000;
++ freq_table[valid_states].frequency = freq;
++
++ if (freq > max_freq)
++ max_freq = freq;
++
+ valid_states++;
+ }
+ freq_table[valid_states].frequency = CPUFREQ_TABLE_END;
+ policy->freq_table = freq_table;
+ perf->state = 0;
+
++ if (boot_cpu_data.x86_vendor == X86_VENDOR_AMD &&
++ amd_max_boost(max_freq, &max_boost)) {
++ policy->cpuinfo.max_boost = max_boost;
++ static_branch_enable(&cpufreq_amd_max_boost);
++ }
++
+ switch (perf->control_register.space_id) {
+ case ACPI_ADR_SPACE_SYSTEM_IO:
+ /*
+diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
+index d0a3525ce27f..b96677f6b57e 100644
+--- a/drivers/cpufreq/cpufreq.c
++++ b/drivers/cpufreq/cpufreq.c
+@@ -2721,6 +2721,9 @@ int cpufreq_boost_enabled(void)
+ }
+ EXPORT_SYMBOL_GPL(cpufreq_boost_enabled);
+
++DEFINE_STATIC_KEY_FALSE(cpufreq_amd_max_boost);
++EXPORT_SYMBOL_GPL(cpufreq_amd_max_boost);
++
+ /*********************************************************************
+ * REGISTER / UNREGISTER CPUFREQ DRIVER *
+ *********************************************************************/
+diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
+index 9c8b7437b6cd..341cac76d254 100644
+--- a/include/linux/cpufreq.h
++++ b/include/linux/cpufreq.h
+@@ -40,9 +40,14 @@ enum cpufreq_table_sorting {
+ CPUFREQ_TABLE_SORTED_DESCENDING
+ };
+
++DECLARE_STATIC_KEY_FALSE(cpufreq_amd_max_boost);
++
++#define cpufreq_driver_has_max_boost() static_branch_unlikely(&cpufreq_amd_max_boost)
++
+ struct cpufreq_cpuinfo {
+ unsigned int max_freq;
+ unsigned int min_freq;
++ unsigned int max_boost;
+
+ /* in 10^(-9) s = nanoseconds */
+ unsigned int transition_latency;
+diff --git a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c
+index 6931f0cdeb80..541f3db3f576 100644
+--- a/kernel/sched/cpufreq_schedutil.c
++++ b/kernel/sched/cpufreq_schedutil.c
+@@ -159,8 +159,12 @@ static unsigned int get_next_freq(struct sugov_policy *sg_policy,
+ unsigned long util, unsigned long max)
+ {
+ struct cpufreq_policy *policy = sg_policy->policy;
+- unsigned int freq = arch_scale_freq_invariant() ?
+- policy->cpuinfo.max_freq : policy->cur;
++ unsigned int freq, max_freq;
++
++ max_freq = cpufreq_driver_has_max_boost() ?
++ policy->cpuinfo.max_boost : policy->cpuinfo.max_freq;
++
++ freq = arch_scale_freq_invariant() ? max_freq : policy->cur;
+
+ freq = map_util_freq(util, freq, max);
+
diff --git a/sys-kernel_arch-sources-g14_files_6007-HID-asus-Add-support-for-2021-ASUS-N-Key-keyboard.patch b/sys-kernel_arch-sources-g14_files_6007-HID-asus-Add-support-for-2021-ASUS-N-Key-keyboard.patch
new file mode 100644
index 000000000000..f729fc0d73e6
--- /dev/null
+++ b/sys-kernel_arch-sources-g14_files_6007-HID-asus-Add-support-for-2021-ASUS-N-Key-keyboard.patch
@@ -0,0 +1,44 @@
+From d875a55692d7c4752147bff2deb81aba7183d1b4 Mon Sep 17 00:00:00 2001
+From: Luke D Jones <luke@ljones.dev>
+Date: Fri, 19 Feb 2021 09:51:26 +1300
+Subject: [PATCH] HID: asus: Add support for 2021 ASUS N-Key keyboard
+
+Some new 2021 version of ASUS gamer laptops are using an updated
+N-Key keyboard with the PID of 0x19b6. This version is using the
+same init sequence and brightness control as the 0x1866 keyboard.
+
+Signed-off-by: Luke D Jones <luke@ljones.dev>
+---
+ drivers/hid/hid-asus.c | 3 +++
+ drivers/hid/hid-ids.h | 1 +
+ 2 files changed, 4 insertions(+)
+
+diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
+index 1dfe184ebf5a..2ab22b925941 100644
+--- a/drivers/hid/hid-asus.c
++++ b/drivers/hid/hid-asus.c
+@@ -1221,6 +1221,9 @@ static const struct hid_device_id asus_devices[] = {
+ { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
+ USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD),
+ QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD },
++ { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
++ USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD2),
++ QUIRK_USE_KBD_BACKLIGHT | QUIRK_ROG_NKEY_KEYBOARD },
+ { HID_USB_DEVICE(USB_VENDOR_ID_ASUSTEK,
+ USB_DEVICE_ID_ASUSTEK_T100TA_KEYBOARD),
+ QUIRK_T100_KEYBOARD | QUIRK_NO_CONSUMER_USAGES },
+diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
+index 5ba0aa1d2335..b64d3eb5367c 100644
+--- a/drivers/hid/hid-ids.h
++++ b/drivers/hid/hid-ids.h
+@@ -191,6 +191,7 @@
+ #define USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD2 0x1837
+ #define USB_DEVICE_ID_ASUSTEK_ROG_KEYBOARD3 0x1822
+ #define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD 0x1866
++#define USB_DEVICE_ID_ASUSTEK_ROG_NKEY_KEYBOARD2 0x19b6
+ #define USB_DEVICE_ID_ASUSTEK_FX503VD_KEYBOARD 0x1869
+
+ #define USB_VENDOR_ID_ATEN 0x0557
+--
+2.30.0
+
diff --git a/sys-kernel_arch-sources-g14_files_6008-HID-asus-Filter-keyboard-EC-for-old-ROG-keyboard.patch b/sys-kernel_arch-sources-g14_files_6008-HID-asus-Filter-keyboard-EC-for-old-ROG-keyboard.patch
new file mode 100644
index 000000000000..3beb53d9ea4f
--- /dev/null
+++ b/sys-kernel_arch-sources-g14_files_6008-HID-asus-Filter-keyboard-EC-for-old-ROG-keyboard.patch
@@ -0,0 +1,32 @@
+From 20c82cdae05f6ffe8405cc32cfa94551f596b05c Mon Sep 17 00:00:00 2001
+From: Luke D Jones <luke@ljones.dev>
+Date: Fri, 19 Feb 2021 10:33:03 +1300
+Subject: [PATCH] HID: asus: Filter keyboard EC for old ROG keyboard
+
+Older ROG keyboards emit a similar stream of bytes to the new
+N-Key keyboards and require filtering to prevent a lot of
+unmapped key warnings showing. As all the ROG keyboards use
+QUIRK_USE_KBD_BACKLIGHT this is now used to branch to filtering
+in asus_raw_event.
+
+Signed-off-by: Luke D Jones <luke@ljones.dev>
+---
+ drivers/hid/hid-asus.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/hid/hid-asus.c b/drivers/hid/hid-asus.c
+index 2ab22b925941..1ed1c05c3d54 100644
+--- a/drivers/hid/hid-asus.c
++++ b/drivers/hid/hid-asus.c
+@@ -335,7 +335,7 @@ static int asus_raw_event(struct hid_device *hdev,
+ if (drvdata->quirks & QUIRK_MEDION_E1239T)
+ return asus_e1239t_event(drvdata, data, size);
+
+- if (drvdata->quirks & QUIRK_ROG_NKEY_KEYBOARD) {
++ if (drvdata->quirks & QUIRK_USE_KBD_BACKLIGHT) {
+ /*
+ * Skip these report ID, the device emits a continuous stream associated
+ * with the AURA mode it is in which looks like an 'echo'.
+--
+2.30.1
+
diff --git a/sys-kernel_arch-sources-g14_files_6009-WMI-asus-Reduce-G14-and-G15-match-to-min-product-nam.patch b/sys-kernel_arch-sources-g14_files_6009-WMI-asus-Reduce-G14-and-G15-match-to-min-product-nam.patch
new file mode 100644
index 000000000000..d2d78d6c5c5f
--- /dev/null
+++ b/sys-kernel_arch-sources-g14_files_6009-WMI-asus-Reduce-G14-and-G15-match-to-min-product-nam.patch
@@ -0,0 +1,107 @@
+From 9a8bf4421fd85356e7f200f720b109f70860c219 Mon Sep 17 00:00:00 2001
+From: Luke D Jones <luke@ljones.dev>
+Date: Fri, 19 Feb 2021 16:28:47 +1300
+Subject: [PATCH] WMI: asus: Reduce G14 and G15 match to min product name
+
+This patch reduces the product match for GA401 series laptops to
+the minimum string required.
+
+The GA401 series of laptops has a lengthy list of product
+variations in the 2020 series and the 2021 series refresh
+is using the same base product ID of GA401.
+
+The same is also true for the GA502 series, and the new GA503
+series which is added in this patch as a variant of the G15.
+
+Signed-off-by: Luke D Jones <luke@ljones.dev>
+---
+ drivers/platform/x86/asus-nb-wmi.c | 57 ++++--------------------------
+ 1 file changed, 6 insertions(+), 51 deletions(-)
+
+diff --git a/drivers/platform/x86/asus-nb-wmi.c b/drivers/platform/x86/asus-nb-wmi.c
+index d41d7ad14be0..f4db67c3eba2 100644
+--- a/drivers/platform/x86/asus-nb-wmi.c
++++ b/drivers/platform/x86/asus-nb-wmi.c
+@@ -427,73 +427,28 @@ static const struct dmi_system_id asus_quirks[] = {
+ },
+ {
+ .callback = dmi_matched,
+- .ident = "ASUSTeK COMPUTER INC. GA401IH",
++ .ident = "ASUSTeK COMPUTER INC. GA401",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+- DMI_MATCH(DMI_PRODUCT_NAME, "GA401IH"),
++ DMI_MATCH(DMI_PRODUCT_NAME, "GA401"),
+ },
+ .driver_data = &quirk_asus_vendor_backlight,
+ },
+ {
+ .callback = dmi_matched,
+- .ident = "ASUSTeK COMPUTER INC. GA401II",
++ .ident = "ASUSTeK COMPUTER INC. GA502",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+- DMI_MATCH(DMI_PRODUCT_NAME, "GA401II"),
++ DMI_MATCH(DMI_PRODUCT_NAME, "GA502"),
+ },
+ .driver_data = &quirk_asus_vendor_backlight,
+ },
+ {
+ .callback = dmi_matched,
+- .ident = "ASUSTeK COMPUTER INC. GA401IU",
++ .ident = "ASUSTeK COMPUTER INC. GA503",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+- DMI_MATCH(DMI_PRODUCT_NAME, "GA401IU"),
+- },
+- .driver_data = &quirk_asus_vendor_backlight,
+- },
+- {
+- .callback = dmi_matched,
+- .ident = "ASUSTeK COMPUTER INC. GA401IV",
+- .matches = {
+- DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+- DMI_MATCH(DMI_PRODUCT_NAME, "GA401IV"),
+- },
+- .driver_data = &quirk_asus_vendor_backlight,
+- },
+- {
+- .callback = dmi_matched,
+- .ident = "ASUSTeK COMPUTER INC. GA401IVC",
+- .matches = {
+- DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+- DMI_MATCH(DMI_PRODUCT_NAME, "GA401IVC"),
+- },
+- .driver_data = &quirk_asus_vendor_backlight,
+- },
+- {
+- .callback = dmi_matched,
+- .ident = "ASUSTeK COMPUTER INC. GA502II",
+- .matches = {
+- DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+- DMI_MATCH(DMI_PRODUCT_NAME, "GA502II"),
+- },
+- .driver_data = &quirk_asus_vendor_backlight,
+- },
+- {
+- .callback = dmi_matched,
+- .ident = "ASUSTeK COMPUTER INC. GA502IU",
+- .matches = {
+- DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+- DMI_MATCH(DMI_PRODUCT_NAME, "GA502IU"),
+- },
+- .driver_data = &quirk_asus_vendor_backlight,
+- },
+- {
+- .callback = dmi_matched,
+- .ident = "ASUSTeK COMPUTER INC. GA502IV",
+- .matches = {
+- DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."),
+- DMI_MATCH(DMI_PRODUCT_NAME, "GA502IV"),
++ DMI_MATCH(DMI_PRODUCT_NAME, "GA503"),
+ },
+ .driver_data = &quirk_asus_vendor_backlight,
+ },
+--
+2.30.1
+