From: Greg Kroah-Hartman Date: Mon, 27 Dec 2021 14:18:15 +0000 (+0100) Subject: 5.15-stable patches X-Git-Tag: v4.4.297~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6c78fe6b48c61a97168a3f307931d17e89ab91d9;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: asoc-rt5682-fix-the-wrong-jack-type-detected.patch asoc-sof-intel-pci-tgl-add-adl-n-support.patch asoc-sof-intel-pci-tgl-add-new-adl-p-variant.patch asoc-tas2770-fix-setting-of-high-sample-rates.patch input-elants_i2c-do-not-check-remark-id-on-ekth3900-ekth5312.patch input-goodix-add-id-model-mapping-for-the-9111-model.patch input-i8042-enable-deferred-probe-quirk-for-asus-um325ua.patch input-iqs626a-prohibit-inlining-of-channel-parsing-functions.patch --- diff --git a/queue-5.15/asoc-rt5682-fix-the-wrong-jack-type-detected.patch b/queue-5.15/asoc-rt5682-fix-the-wrong-jack-type-detected.patch new file mode 100644 index 00000000000..f248411ccab --- /dev/null +++ b/queue-5.15/asoc-rt5682-fix-the-wrong-jack-type-detected.patch @@ -0,0 +1,42 @@ +From 8deb34a90f06374fd26f722c2a79e15160f66be7 Mon Sep 17 00:00:00 2001 +From: Derek Fang +Date: Tue, 14 Dec 2021 18:50:33 +0800 +Subject: ASoC: rt5682: fix the wrong jack type detected + +From: Derek Fang + +commit 8deb34a90f06374fd26f722c2a79e15160f66be7 upstream. + +Some powers were changed during the jack insert detection +and clk's enable/disable in CCF. +If in parallel, the influence has a chance to detect +the wrong jack type, so add a lock. + +Signed-off-by: Derek Fang +Link: https://lore.kernel.org/r/20211214105033.471-1-derek.fang@realtek.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/codecs/rt5682.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/sound/soc/codecs/rt5682.c ++++ b/sound/soc/codecs/rt5682.c +@@ -927,6 +927,8 @@ int rt5682_headset_detect(struct snd_soc + unsigned int val, count; + + if (jack_insert) { ++ snd_soc_dapm_mutex_lock(dapm); ++ + snd_soc_component_update_bits(component, RT5682_PWR_ANLG_1, + RT5682_PWR_VREF2 | RT5682_PWR_MB, + RT5682_PWR_VREF2 | RT5682_PWR_MB); +@@ -973,6 +975,8 @@ int rt5682_headset_detect(struct snd_soc + snd_soc_component_update_bits(component, RT5682_MICBIAS_2, + RT5682_PWR_CLK25M_MASK | RT5682_PWR_CLK1M_MASK, + RT5682_PWR_CLK25M_PU | RT5682_PWR_CLK1M_PU); ++ ++ snd_soc_dapm_mutex_unlock(dapm); + } else { + rt5682_enable_push_button_irq(component, false); + snd_soc_component_update_bits(component, RT5682_CBJ_CTRL_1, diff --git a/queue-5.15/asoc-sof-intel-pci-tgl-add-adl-n-support.patch b/queue-5.15/asoc-sof-intel-pci-tgl-add-adl-n-support.patch new file mode 100644 index 00000000000..fdb8450c394 --- /dev/null +++ b/queue-5.15/asoc-sof-intel-pci-tgl-add-adl-n-support.patch @@ -0,0 +1,31 @@ +From cd57eb3c403cb864e5558874ecd57dd954a5a7f7 Mon Sep 17 00:00:00 2001 +From: Kai Vehmanen +Date: Fri, 3 Dec 2021 19:15:41 +0200 +Subject: ASoC: SOF: Intel: pci-tgl: add ADL-N support + +From: Kai Vehmanen + +commit cd57eb3c403cb864e5558874ecd57dd954a5a7f7 upstream. + +Add PCI DID for Intel AlderLake-N. + +Signed-off-by: Kai Vehmanen +Reviewed-by: Pierre-Louis Bossart +Link: https://lore.kernel.org/r/20211203171542.1021399-1-kai.vehmanen@linux.intel.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/sof/intel/pci-tgl.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/sound/soc/sof/intel/pci-tgl.c ++++ b/sound/soc/sof/intel/pci-tgl.c +@@ -121,6 +121,8 @@ static const struct pci_device_id sof_pc + .driver_data = (unsigned long)&adl_desc}, + { PCI_DEVICE(0x8086, 0x51cc), /* ADL-M */ + .driver_data = (unsigned long)&adl_desc}, ++ { PCI_DEVICE(0x8086, 0x54c8), /* ADL-N */ ++ .driver_data = (unsigned long)&adl_desc}, + { 0, } + }; + MODULE_DEVICE_TABLE(pci, sof_pci_ids); diff --git a/queue-5.15/asoc-sof-intel-pci-tgl-add-new-adl-p-variant.patch b/queue-5.15/asoc-sof-intel-pci-tgl-add-new-adl-p-variant.patch new file mode 100644 index 00000000000..4772785d94a --- /dev/null +++ b/queue-5.15/asoc-sof-intel-pci-tgl-add-new-adl-p-variant.patch @@ -0,0 +1,31 @@ +From de7dd9092cd38384f774d345cccafe81b4b866b0 Mon Sep 17 00:00:00 2001 +From: Kai Vehmanen +Date: Fri, 3 Dec 2021 19:15:42 +0200 +Subject: ASoC: SOF: Intel: pci-tgl: add new ADL-P variant + +From: Kai Vehmanen + +commit de7dd9092cd38384f774d345cccafe81b4b866b0 upstream. + +Add a PCI DID for a variant of Intel AlderLake-P. + +Signed-off-by: Kai Vehmanen +Reviewed-by: Pierre-Louis Bossart +Link: https://lore.kernel.org/r/20211203171542.1021399-2-kai.vehmanen@linux.intel.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/sof/intel/pci-tgl.c | 2 ++ + 1 file changed, 2 insertions(+) + +--- a/sound/soc/sof/intel/pci-tgl.c ++++ b/sound/soc/sof/intel/pci-tgl.c +@@ -117,6 +117,8 @@ static const struct pci_device_id sof_pc + .driver_data = (unsigned long)&adls_desc}, + { PCI_DEVICE(0x8086, 0x51c8), /* ADL-P */ + .driver_data = (unsigned long)&adl_desc}, ++ { PCI_DEVICE(0x8086, 0x51cd), /* ADL-P */ ++ .driver_data = (unsigned long)&adl_desc}, + { PCI_DEVICE(0x8086, 0x51cc), /* ADL-M */ + .driver_data = (unsigned long)&adl_desc}, + { 0, } diff --git a/queue-5.15/asoc-tas2770-fix-setting-of-high-sample-rates.patch b/queue-5.15/asoc-tas2770-fix-setting-of-high-sample-rates.patch new file mode 100644 index 00000000000..b61d645fc23 --- /dev/null +++ b/queue-5.15/asoc-tas2770-fix-setting-of-high-sample-rates.patch @@ -0,0 +1,39 @@ +From 80d5be1a057e05f01d66e986cfd34d71845e5190 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Martin=20Povi=C5=A1er?= +Date: Mon, 6 Dec 2021 22:45:43 +0000 +Subject: ASoC: tas2770: Fix setting of high sample rates +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Martin Povišer + +commit 80d5be1a057e05f01d66e986cfd34d71845e5190 upstream. + +Although the codec advertises support for 176.4 and 192 ksps, without +this fix setting those sample rates fails with EINVAL at hw_params time. + +Signed-off-by: Martin Povišer +Link: https://lore.kernel.org/r/20211206224529.74656-1-povik@protonmail.com +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman +--- + sound/soc/codecs/tas2770.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/sound/soc/codecs/tas2770.c ++++ b/sound/soc/codecs/tas2770.c +@@ -291,11 +291,11 @@ static int tas2770_set_samplerate(struct + ramp_rate_val = TAS2770_TDM_CFG_REG0_SMP_44_1KHZ | + TAS2770_TDM_CFG_REG0_31_88_2_96KHZ; + break; +- case 19200: ++ case 192000: + ramp_rate_val = TAS2770_TDM_CFG_REG0_SMP_48KHZ | + TAS2770_TDM_CFG_REG0_31_176_4_192KHZ; + break; +- case 17640: ++ case 176400: + ramp_rate_val = TAS2770_TDM_CFG_REG0_SMP_44_1KHZ | + TAS2770_TDM_CFG_REG0_31_176_4_192KHZ; + break; diff --git a/queue-5.15/input-elants_i2c-do-not-check-remark-id-on-ekth3900-ekth5312.patch b/queue-5.15/input-elants_i2c-do-not-check-remark-id-on-ekth3900-ekth5312.patch new file mode 100644 index 00000000000..5f9696ad3d6 --- /dev/null +++ b/queue-5.15/input-elants_i2c-do-not-check-remark-id-on-ekth3900-ekth5312.patch @@ -0,0 +1,90 @@ +From 4ebfee2bbc1a9c343dd50565ba5ae249fac32267 Mon Sep 17 00:00:00 2001 +From: Johnny Chuang +Date: Mon, 20 Dec 2021 00:28:45 -0800 +Subject: Input: elants_i2c - do not check Remark ID on eKTH3900/eKTH5312 + +From: Johnny Chuang + +commit 4ebfee2bbc1a9c343dd50565ba5ae249fac32267 upstream. + +The eKTH3900/eKTH5312 series do not support the firmware update rules of +Remark ID. Exclude these two series from checking it when updating the +firmware in touch controllers. + +Signed-off-by: Johnny Chuang +Link: https://lore.kernel.org/r/1639619603-20616-1-git-send-email-johnny.chuang.emc@gmail.com +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman +--- + drivers/input/touchscreen/elants_i2c.c | 46 ++++++++++++++++++++++++++++++++- + 1 file changed, 45 insertions(+), 1 deletion(-) + +--- a/drivers/input/touchscreen/elants_i2c.c ++++ b/drivers/input/touchscreen/elants_i2c.c +@@ -117,6 +117,19 @@ + #define ELAN_POWERON_DELAY_USEC 500 + #define ELAN_RESET_DELAY_MSEC 20 + ++/* FW boot code version */ ++#define BC_VER_H_BYTE_FOR_EKTH3900x1_I2C 0x72 ++#define BC_VER_H_BYTE_FOR_EKTH3900x2_I2C 0x82 ++#define BC_VER_H_BYTE_FOR_EKTH3900x3_I2C 0x92 ++#define BC_VER_H_BYTE_FOR_EKTH5312x1_I2C 0x6D ++#define BC_VER_H_BYTE_FOR_EKTH5312x2_I2C 0x6E ++#define BC_VER_H_BYTE_FOR_EKTH5312cx1_I2C 0x77 ++#define BC_VER_H_BYTE_FOR_EKTH5312cx2_I2C 0x78 ++#define BC_VER_H_BYTE_FOR_EKTH5312x1_I2C_USB 0x67 ++#define BC_VER_H_BYTE_FOR_EKTH5312x2_I2C_USB 0x68 ++#define BC_VER_H_BYTE_FOR_EKTH5312cx1_I2C_USB 0x74 ++#define BC_VER_H_BYTE_FOR_EKTH5312cx2_I2C_USB 0x75 ++ + enum elants_chip_id { + EKTH3500, + EKTF3624, +@@ -736,6 +749,37 @@ static int elants_i2c_validate_remark_id + return 0; + } + ++static bool elants_i2c_should_check_remark_id(struct elants_data *ts) ++{ ++ struct i2c_client *client = ts->client; ++ const u8 bootcode_version = ts->iap_version; ++ bool check; ++ ++ /* I2C eKTH3900 and eKTH5312 are NOT support Remark ID */ ++ if ((bootcode_version == BC_VER_H_BYTE_FOR_EKTH3900x1_I2C) || ++ (bootcode_version == BC_VER_H_BYTE_FOR_EKTH3900x2_I2C) || ++ (bootcode_version == BC_VER_H_BYTE_FOR_EKTH3900x3_I2C) || ++ (bootcode_version == BC_VER_H_BYTE_FOR_EKTH5312x1_I2C) || ++ (bootcode_version == BC_VER_H_BYTE_FOR_EKTH5312x2_I2C) || ++ (bootcode_version == BC_VER_H_BYTE_FOR_EKTH5312cx1_I2C) || ++ (bootcode_version == BC_VER_H_BYTE_FOR_EKTH5312cx2_I2C) || ++ (bootcode_version == BC_VER_H_BYTE_FOR_EKTH5312x1_I2C_USB) || ++ (bootcode_version == BC_VER_H_BYTE_FOR_EKTH5312x2_I2C_USB) || ++ (bootcode_version == BC_VER_H_BYTE_FOR_EKTH5312cx1_I2C_USB) || ++ (bootcode_version == BC_VER_H_BYTE_FOR_EKTH5312cx2_I2C_USB)) { ++ dev_dbg(&client->dev, ++ "eKTH3900/eKTH5312(0x%02x) are not support remark id\n", ++ bootcode_version); ++ check = false; ++ } else if (bootcode_version >= 0x60) { ++ check = true; ++ } else { ++ check = false; ++ } ++ ++ return check; ++} ++ + static int elants_i2c_do_update_firmware(struct i2c_client *client, + const struct firmware *fw, + bool force) +@@ -749,7 +793,7 @@ static int elants_i2c_do_update_firmware + u16 send_id; + int page, n_fw_pages; + int error; +- bool check_remark_id = ts->iap_version >= 0x60; ++ bool check_remark_id = elants_i2c_should_check_remark_id(ts); + + /* Recovery mode detection! */ + if (force) { diff --git a/queue-5.15/input-goodix-add-id-model-mapping-for-the-9111-model.patch b/queue-5.15/input-goodix-add-id-model-mapping-for-the-9111-model.patch new file mode 100644 index 00000000000..7b335b41267 --- /dev/null +++ b/queue-5.15/input-goodix-add-id-model-mapping-for-the-9111-model.patch @@ -0,0 +1,31 @@ +From 81e818869be522bc8fa6f7df1b92d7e76537926c Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Mon, 6 Dec 2021 23:29:27 -0800 +Subject: Input: goodix - add id->model mapping for the "9111" model + +From: Hans de Goede + +commit 81e818869be522bc8fa6f7df1b92d7e76537926c upstream. + +Add d->model mapping for the "9111" model, this fixes uses using +a wrong config_len of 240 bytes while the "9111" model uses +only 186 bytes of config. + +Signed-off-by: Hans de Goede +Link: https://lore.kernel.org/r/20211206164747.197309-2-hdegoede@redhat.com +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman +--- + drivers/input/touchscreen/goodix.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/drivers/input/touchscreen/goodix.c ++++ b/drivers/input/touchscreen/goodix.c +@@ -162,6 +162,7 @@ static const struct goodix_chip_id goodi + { .id = "911", .data = >911_chip_data }, + { .id = "9271", .data = >911_chip_data }, + { .id = "9110", .data = >911_chip_data }, ++ { .id = "9111", .data = >911_chip_data }, + { .id = "927", .data = >911_chip_data }, + { .id = "928", .data = >911_chip_data }, + diff --git a/queue-5.15/input-i8042-enable-deferred-probe-quirk-for-asus-um325ua.patch b/queue-5.15/input-i8042-enable-deferred-probe-quirk-for-asus-um325ua.patch new file mode 100644 index 00000000000..5a5af75b0b7 --- /dev/null +++ b/queue-5.15/input-i8042-enable-deferred-probe-quirk-for-asus-um325ua.patch @@ -0,0 +1,43 @@ +From 44ee250aeeabb28b52a10397ac17ffb8bfe94839 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Samuel=20=C4=8Cavoj?= +Date: Sat, 4 Dec 2021 13:17:36 -0800 +Subject: Input: i8042 - enable deferred probe quirk for ASUS UM325UA +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Samuel Čavoj + +commit 44ee250aeeabb28b52a10397ac17ffb8bfe94839 upstream. + +The ASUS UM325UA suffers from the same issue as the ASUS UX425UA, which +is a very similar laptop. The i8042 device is not usable immediately +after boot and fails to initialize, requiring a deferred retry. + +Enable the deferred probe quirk for the UM325UA. + +BugLink: https://bugzilla.suse.com/show_bug.cgi?id=1190256 +Signed-off-by: Samuel Čavoj +Link: https://lore.kernel.org/r/20211204015615.232948-1-samuel@cavoj.net +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman +--- + drivers/input/serio/i8042-x86ia64io.h | 7 +++++++ + 1 file changed, 7 insertions(+) + +--- a/drivers/input/serio/i8042-x86ia64io.h ++++ b/drivers/input/serio/i8042-x86ia64io.h +@@ -992,6 +992,13 @@ static const struct dmi_system_id __init + DMI_MATCH(DMI_PRODUCT_NAME, "C504"), + }, + }, ++ { ++ /* ASUS ZenBook UM325UA */ ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK COMPUTER INC."), ++ DMI_MATCH(DMI_PRODUCT_NAME, "ZenBook UX325UA_UM325UA"), ++ }, ++ }, + { } + }; + diff --git a/queue-5.15/input-iqs626a-prohibit-inlining-of-channel-parsing-functions.patch b/queue-5.15/input-iqs626a-prohibit-inlining-of-channel-parsing-functions.patch new file mode 100644 index 00000000000..cf4d084db93 --- /dev/null +++ b/queue-5.15/input-iqs626a-prohibit-inlining-of-channel-parsing-functions.patch @@ -0,0 +1,72 @@ +From e1f5e848209a1b51ccae50721b27684c6f9d978f Mon Sep 17 00:00:00 2001 +From: Jeff LaBundy +Date: Sun, 28 Nov 2021 23:41:42 -0800 +Subject: Input: iqs626a - prohibit inlining of channel parsing functions + +From: Jeff LaBundy + +commit e1f5e848209a1b51ccae50721b27684c6f9d978f upstream. + +Some automated builds report a stack frame size in excess of 2 kB for +iqs626_probe(); the culprit appears to be the call to iqs626_parse_prop(). + +To solve this problem, specify noinline_for_stack for all of the +iqs626_parse_*() helper functions which are called inside a for loop +within iqs626_parse_prop(). + +As a result, a build with '-Wframe-larger-than' as low as 512 is free of +any such warnings. + +Reported-by: kernel test robot +Signed-off-by: Jeff LaBundy +Link: https://lore.kernel.org/r/20211129004104.453930-1-jeff@labundy.com +Signed-off-by: Dmitry Torokhov +Signed-off-by: Greg Kroah-Hartman +--- + drivers/input/misc/iqs626a.c | 21 ++++++++++++--------- + 1 file changed, 12 insertions(+), 9 deletions(-) + +--- a/drivers/input/misc/iqs626a.c ++++ b/drivers/input/misc/iqs626a.c +@@ -456,9 +456,10 @@ struct iqs626_private { + unsigned int suspend_mode; + }; + +-static int iqs626_parse_events(struct iqs626_private *iqs626, +- const struct fwnode_handle *ch_node, +- enum iqs626_ch_id ch_id) ++static noinline_for_stack int ++iqs626_parse_events(struct iqs626_private *iqs626, ++ const struct fwnode_handle *ch_node, ++ enum iqs626_ch_id ch_id) + { + struct iqs626_sys_reg *sys_reg = &iqs626->sys_reg; + struct i2c_client *client = iqs626->client; +@@ -604,9 +605,10 @@ static int iqs626_parse_events(struct iq + return 0; + } + +-static int iqs626_parse_ati_target(struct iqs626_private *iqs626, +- const struct fwnode_handle *ch_node, +- enum iqs626_ch_id ch_id) ++static noinline_for_stack int ++iqs626_parse_ati_target(struct iqs626_private *iqs626, ++ const struct fwnode_handle *ch_node, ++ enum iqs626_ch_id ch_id) + { + struct iqs626_sys_reg *sys_reg = &iqs626->sys_reg; + struct i2c_client *client = iqs626->client; +@@ -885,9 +887,10 @@ static int iqs626_parse_trackpad(struct + return 0; + } + +-static int iqs626_parse_channel(struct iqs626_private *iqs626, +- const struct fwnode_handle *ch_node, +- enum iqs626_ch_id ch_id) ++static noinline_for_stack int ++iqs626_parse_channel(struct iqs626_private *iqs626, ++ const struct fwnode_handle *ch_node, ++ enum iqs626_ch_id ch_id) + { + struct iqs626_sys_reg *sys_reg = &iqs626->sys_reg; + struct i2c_client *client = iqs626->client; diff --git a/queue-5.15/series b/queue-5.15/series index 9c2284216db..43f4a0884bc 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -109,3 +109,11 @@ netfs-fix-parameter-of-cleanup.patch kvm-vmx-fix-stale-docs-for-kvm-intel.emulate_invalid_guest_state.patch arm64-dts-lx2160a-fix-scl-gpios-property-name.patch kfence-fix-memory-leak-when-cat-kfence-objects.patch +input-iqs626a-prohibit-inlining-of-channel-parsing-functions.patch +input-elants_i2c-do-not-check-remark-id-on-ekth3900-ekth5312.patch +input-i8042-enable-deferred-probe-quirk-for-asus-um325ua.patch +input-goodix-add-id-model-mapping-for-the-9111-model.patch +asoc-tas2770-fix-setting-of-high-sample-rates.patch +asoc-sof-intel-pci-tgl-add-new-adl-p-variant.patch +asoc-sof-intel-pci-tgl-add-adl-n-support.patch +asoc-rt5682-fix-the-wrong-jack-type-detected.patch