]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 5.10
authorSasha Levin <sashal@kernel.org>
Wed, 16 Nov 2022 12:53:27 +0000 (07:53 -0500)
committerSasha Levin <sashal@kernel.org>
Wed, 16 Nov 2022 12:53:27 +0000 (07:53 -0500)
Signed-off-by: Sasha Levin <sashal@kernel.org>
24 files changed:
queue-5.10/asoc-codecs-jz4725b-add-missed-line-in-power-control.patch [new file with mode: 0644]
queue-5.10/asoc-codecs-jz4725b-fix-capture-selector-naming.patch [new file with mode: 0644]
queue-5.10/asoc-codecs-jz4725b-fix-reported-volume-for-master-c.patch [new file with mode: 0644]
queue-5.10/asoc-codecs-jz4725b-fix-spelling-mistake-sourc-sourc.patch [new file with mode: 0644]
queue-5.10/asoc-codecs-jz4725b-use-right-control-for-capture-vo.patch [new file with mode: 0644]
queue-5.10/asoc-intel-sof_sdw-add-quirk-variant-for-lapbc710-nu.patch [new file with mode: 0644]
queue-5.10/asoc-mt6660-keep-the-pm_runtime-enables-before-compo.patch [new file with mode: 0644]
queue-5.10/asoc-rt1308-sdw-add-the-default-value-of-some-regist.patch [new file with mode: 0644]
queue-5.10/asoc-wm5102-revert-asoc-wm5102-fix-pm-disable-depth-.patch [new file with mode: 0644]
queue-5.10/asoc-wm5110-revert-asoc-wm5110-fix-pm-disable-depth-.patch [new file with mode: 0644]
queue-5.10/asoc-wm8962-add-an-event-handler-for-temp_hp-and-tem.patch [new file with mode: 0644]
queue-5.10/asoc-wm8997-revert-asoc-wm8997-fix-pm-disable-depth-.patch [new file with mode: 0644]
queue-5.10/bluetooth-l2cap-fix-l2cap_global_chan_by_psm.patch [new file with mode: 0644]
queue-5.10/btrfs-remove-pointless-and-double-ulist-frees-in-err.patch [new file with mode: 0644]
queue-5.10/drm-amd-display-remove-wrong-pipe-control-lock.patch [new file with mode: 0644]
queue-5.10/drm-imx-imx-tve-fix-return-type-of-imx_tve_connector.patch [new file with mode: 0644]
queue-5.10/i2c-i801-add-lis3lv02d-s-i2c-address-for-vostro-5568.patch [new file with mode: 0644]
queue-5.10/i2c-tegra-allocate-dma-memory-for-dma-engine.patch [new file with mode: 0644]
queue-5.10/nfsv4-retry-lock-on-old_stateid-during-delegation-re.patch [new file with mode: 0644]
queue-5.10/rtc-cmos-fix-build-on-non-acpi-platforms.patch [new file with mode: 0644]
queue-5.10/selftests-futex-fix-build-for-clang.patch [new file with mode: 0644]
queue-5.10/selftests-intel_pstate-fix-build-for-arch-x86_64.patch [new file with mode: 0644]
queue-5.10/series [new file with mode: 0644]
queue-5.10/spi-intel-fix-the-offset-to-get-the-64k-erase-opcode.patch [new file with mode: 0644]

diff --git a/queue-5.10/asoc-codecs-jz4725b-add-missed-line-in-power-control.patch b/queue-5.10/asoc-codecs-jz4725b-add-missed-line-in-power-control.patch
new file mode 100644 (file)
index 0000000..2b474bb
--- /dev/null
@@ -0,0 +1,37 @@
+From 7c013abf0b5feff4f232304168ee425f2166691b Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 16 Oct 2022 16:26:42 +0300
+Subject: ASoC: codecs: jz4725b: add missed Line In power control bit
+
+From: Siarhei Volkau <lis8215@gmail.com>
+
+[ Upstream commit 1013999b431b4bcdc1f5ae47dd3338122751db31 ]
+
+Line In path stayed powered off during capturing or
+bypass to mixer.
+
+Signed-off-by: Siarhei Volkau <lis8215@gmail.com>
+Link: https://lore.kernel.org/r/20221016132648.3011729-2-lis8215@gmail.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/jz4725b.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/sound/soc/codecs/jz4725b.c b/sound/soc/codecs/jz4725b.c
+index e49374c72e70..9f6f4e941e55 100644
+--- a/sound/soc/codecs/jz4725b.c
++++ b/sound/soc/codecs/jz4725b.c
+@@ -236,7 +236,8 @@ static const struct snd_soc_dapm_widget jz4725b_codec_dapm_widgets[] = {
+       SND_SOC_DAPM_MIXER("DAC to Mixer", JZ4725B_CODEC_REG_CR1,
+                          REG_CR1_DACSEL_OFFSET, 0, NULL, 0),
+-      SND_SOC_DAPM_MIXER("Line In", SND_SOC_NOPM, 0, 0, NULL, 0),
++      SND_SOC_DAPM_MIXER("Line In", JZ4725B_CODEC_REG_PMR1,
++                         REG_PMR1_SB_LIN_OFFSET, 1, NULL, 0),
+       SND_SOC_DAPM_MIXER("HP Out", JZ4725B_CODEC_REG_CR1,
+                          REG_CR1_HP_DIS_OFFSET, 1, NULL, 0),
+-- 
+2.35.1
+
diff --git a/queue-5.10/asoc-codecs-jz4725b-fix-capture-selector-naming.patch b/queue-5.10/asoc-codecs-jz4725b-fix-capture-selector-naming.patch
new file mode 100644 (file)
index 0000000..0312ef6
--- /dev/null
@@ -0,0 +1,64 @@
+From 5a10760399fcab8c49b8e404c8f086d792c80553 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 16 Oct 2022 16:26:45 +0300
+Subject: ASoC: codecs: jz4725b: fix capture selector naming
+
+From: Siarhei Volkau <lis8215@gmail.com>
+
+[ Upstream commit 80852f8268769715db335a22305e81a0c4a38a84 ]
+
+At the moment Capture source selector appears on Playback
+tab in the alsamixer and has a senseless name.
+
+Let's fix that.
+
+Signed-off-by: Siarhei Volkau <lis8215@gmail.com>
+Link: https://lore.kernel.org/r/20221016132648.3011729-5-lis8215@gmail.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/jz4725b.c | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/sound/soc/codecs/jz4725b.c b/sound/soc/codecs/jz4725b.c
+index 9dc8d76bf104..ab744e375367 100644
+--- a/sound/soc/codecs/jz4725b.c
++++ b/sound/soc/codecs/jz4725b.c
+@@ -183,7 +183,7 @@ static SOC_VALUE_ENUM_SINGLE_DECL(jz4725b_codec_adc_src_enum,
+                                 jz4725b_codec_adc_src_texts,
+                                 jz4725b_codec_adc_src_values);
+ static const struct snd_kcontrol_new jz4725b_codec_adc_src_ctrl =
+-                      SOC_DAPM_ENUM("Route", jz4725b_codec_adc_src_enum);
++      SOC_DAPM_ENUM("ADC Source Capture Route", jz4725b_codec_adc_src_enum);
+ static const struct snd_kcontrol_new jz4725b_codec_mixer_controls[] = {
+       SOC_DAPM_SINGLE("Line In Bypass", JZ4725B_CODEC_REG_CR1,
+@@ -228,7 +228,7 @@ static const struct snd_soc_dapm_widget jz4725b_codec_dapm_widgets[] = {
+       SND_SOC_DAPM_ADC("ADC", "Capture",
+                        JZ4725B_CODEC_REG_PMR1, REG_PMR1_SB_ADC_OFFSET, 1),
+-      SND_SOC_DAPM_MUX("ADC Source", SND_SOC_NOPM, 0, 0,
++      SND_SOC_DAPM_MUX("ADC Source Capture Route", SND_SOC_NOPM, 0, 0,
+                        &jz4725b_codec_adc_src_ctrl),
+       /* Mixer */
+@@ -287,11 +287,11 @@ static const struct snd_soc_dapm_route jz4725b_codec_dapm_routes[] = {
+       {"Mixer", NULL, "DAC to Mixer"},
+       {"Mixer to ADC", NULL, "Mixer"},
+-      {"ADC Source", "Mixer", "Mixer to ADC"},
+-      {"ADC Source", "Line In", "Line In"},
+-      {"ADC Source", "Mic 1", "Mic 1"},
+-      {"ADC Source", "Mic 2", "Mic 2"},
+-      {"ADC", NULL, "ADC Source"},
++      {"ADC Source Capture Route", "Mixer", "Mixer to ADC"},
++      {"ADC Sourc Capture Routee", "Line In", "Line In"},
++      {"ADC Source Capture Route", "Mic 1", "Mic 1"},
++      {"ADC Source Capture Route", "Mic 2", "Mic 2"},
++      {"ADC", NULL, "ADC Source Capture Route"},
+       {"Out Stage", NULL, "Mixer"},
+       {"HP Out", NULL, "Out Stage"},
+-- 
+2.35.1
+
diff --git a/queue-5.10/asoc-codecs-jz4725b-fix-reported-volume-for-master-c.patch b/queue-5.10/asoc-codecs-jz4725b-fix-reported-volume-for-master-c.patch
new file mode 100644 (file)
index 0000000..735415d
--- /dev/null
@@ -0,0 +1,41 @@
+From 72b8fadf4148acb336af494500ed2411eb91e8e0 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 16 Oct 2022 16:26:43 +0300
+Subject: ASoC: codecs: jz4725b: fix reported volume for Master ctl
+
+From: Siarhei Volkau <lis8215@gmail.com>
+
+[ Upstream commit 088777bf65b98cfa4b5378119d0a7d49a58ece44 ]
+
+DAC volume control is the Master Playback Volume at the moment
+and it reports wrong levels in alsamixer and other alsa apps.
+
+The patch fixes that, as stated in manual on the jz4725b SoC
+(16.6.3.4 Programmable attenuation: GOD) the ctl range varies
+from -22.5dB to 0dB with 1.5dB step.
+
+Signed-off-by: Siarhei Volkau <lis8215@gmail.com>
+Link: https://lore.kernel.org/r/20221016132648.3011729-3-lis8215@gmail.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/jz4725b.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sound/soc/codecs/jz4725b.c b/sound/soc/codecs/jz4725b.c
+index 9f6f4e941e55..6f3d4ead9150 100644
+--- a/sound/soc/codecs/jz4725b.c
++++ b/sound/soc/codecs/jz4725b.c
+@@ -142,8 +142,8 @@ struct jz_icdc {
+       struct clk *clk;
+ };
+-static const SNDRV_CTL_TLVD_DECLARE_DB_LINEAR(jz4725b_dac_tlv, -2250, 0);
+ static const SNDRV_CTL_TLVD_DECLARE_DB_LINEAR(jz4725b_line_tlv, -1500, 600);
++static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE(jz4725b_dac_tlv, -2250, 150, 0);
+ static const struct snd_kcontrol_new jz4725b_codec_controls[] = {
+       SOC_DOUBLE_TLV("Master Playback Volume",
+-- 
+2.35.1
+
diff --git a/queue-5.10/asoc-codecs-jz4725b-fix-spelling-mistake-sourc-sourc.patch b/queue-5.10/asoc-codecs-jz4725b-fix-spelling-mistake-sourc-sourc.patch
new file mode 100644 (file)
index 0000000..2ee75b1
--- /dev/null
@@ -0,0 +1,41 @@
+From 8c42ac96b651c9dfd2112720ea52d3508a82f4b2 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 19 Oct 2022 08:16:39 +0100
+Subject: ASoC: codecs: jz4725b: Fix spelling mistake "Sourc" -> "Source",
+ "Routee" -> "Route"
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Colin Ian King <colin.i.king@gmail.com>
+
+[ Upstream commit df496157a5afa1b6d1f4c46ad6549c2c346d1e59 ]
+
+There are two spelling mistakes in codec routing description. Fix it.
+
+Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
+Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
+Acked-by: Paul Cercueil <paul@crapouillou.net>
+Link: https://lore.kernel.org/r/20221019071639.1003730-1-colin.i.king@gmail.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/jz4725b.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sound/soc/codecs/jz4725b.c b/sound/soc/codecs/jz4725b.c
+index ab744e375367..8a830d0ad950 100644
+--- a/sound/soc/codecs/jz4725b.c
++++ b/sound/soc/codecs/jz4725b.c
+@@ -288,7 +288,7 @@ static const struct snd_soc_dapm_route jz4725b_codec_dapm_routes[] = {
+       {"Mixer to ADC", NULL, "Mixer"},
+       {"ADC Source Capture Route", "Mixer", "Mixer to ADC"},
+-      {"ADC Sourc Capture Routee", "Line In", "Line In"},
++      {"ADC Source Capture Route", "Line In", "Line In"},
+       {"ADC Source Capture Route", "Mic 1", "Mic 1"},
+       {"ADC Source Capture Route", "Mic 2", "Mic 2"},
+       {"ADC", NULL, "ADC Source Capture Route"},
+-- 
+2.35.1
+
diff --git a/queue-5.10/asoc-codecs-jz4725b-use-right-control-for-capture-vo.patch b/queue-5.10/asoc-codecs-jz4725b-use-right-control-for-capture-vo.patch
new file mode 100644 (file)
index 0000000..6841114
--- /dev/null
@@ -0,0 +1,69 @@
+From c9124ce23df2a7a078ca3e7939416fe2715a0904 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sun, 16 Oct 2022 16:26:44 +0300
+Subject: ASoC: codecs: jz4725b: use right control for Capture Volume
+
+From: Siarhei Volkau <lis8215@gmail.com>
+
+[ Upstream commit 1538e2c8c9b7e7a656effcc6e4e7cfe8c1b405fd ]
+
+Line In Bypass control is used as Master Capture at the moment
+this is completely incorrect.
+
+Current control routed to Mixer instead of ADC, thus can't affect
+Capture path. ADC control shall be used instead.
+
+ADC volume control parameters are different, so the patch fixes that
+as well. Manual says (16.6.3.2 Programmable input attenuation amplifier:
+PGATM) that gain varies in range 0dB..22.5dB with 1.5dB step.
+
+Signed-off-by: Siarhei Volkau <lis8215@gmail.com>
+Link: https://lore.kernel.org/r/20221016132648.3011729-4-lis8215@gmail.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/jz4725b.c | 15 +++++++++------
+ 1 file changed, 9 insertions(+), 6 deletions(-)
+
+diff --git a/sound/soc/codecs/jz4725b.c b/sound/soc/codecs/jz4725b.c
+index 6f3d4ead9150..9dc8d76bf104 100644
+--- a/sound/soc/codecs/jz4725b.c
++++ b/sound/soc/codecs/jz4725b.c
+@@ -136,13 +136,16 @@ enum {
+ #define REG_CGR3_GO1L_OFFSET          0
+ #define REG_CGR3_GO1L_MASK            (0x1f << REG_CGR3_GO1L_OFFSET)
++#define REG_CGR10_GIL_OFFSET          0
++#define REG_CGR10_GIR_OFFSET          4
++
+ struct jz_icdc {
+       struct regmap *regmap;
+       void __iomem *base;
+       struct clk *clk;
+ };
+-static const SNDRV_CTL_TLVD_DECLARE_DB_LINEAR(jz4725b_line_tlv, -1500, 600);
++static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE(jz4725b_adc_tlv,     0, 150, 0);
+ static const SNDRV_CTL_TLVD_DECLARE_DB_SCALE(jz4725b_dac_tlv, -2250, 150, 0);
+ static const struct snd_kcontrol_new jz4725b_codec_controls[] = {
+@@ -151,11 +154,11 @@ static const struct snd_kcontrol_new jz4725b_codec_controls[] = {
+                      REG_CGR1_GODL_OFFSET,
+                      REG_CGR1_GODR_OFFSET,
+                      0xf, 1, jz4725b_dac_tlv),
+-      SOC_DOUBLE_R_TLV("Master Capture Volume",
+-                       JZ4725B_CODEC_REG_CGR3,
+-                       JZ4725B_CODEC_REG_CGR2,
+-                       REG_CGR2_GO1R_OFFSET,
+-                       0x1f, 1, jz4725b_line_tlv),
++      SOC_DOUBLE_TLV("Master Capture Volume",
++                     JZ4725B_CODEC_REG_CGR10,
++                     REG_CGR10_GIL_OFFSET,
++                     REG_CGR10_GIR_OFFSET,
++                     0xf, 0, jz4725b_adc_tlv),
+       SOC_SINGLE("Master Playback Switch", JZ4725B_CODEC_REG_CR1,
+                  REG_CR1_DAC_MUTE_OFFSET, 1, 1),
+-- 
+2.35.1
+
diff --git a/queue-5.10/asoc-intel-sof_sdw-add-quirk-variant-for-lapbc710-nu.patch b/queue-5.10/asoc-intel-sof_sdw-add-quirk-variant-for-lapbc710-nu.patch
new file mode 100644 (file)
index 0000000..e6be249
--- /dev/null
@@ -0,0 +1,48 @@
+From c663f9c076e3bb624e069b1b80616e7cc4deb40e Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 17 Oct 2022 15:40:54 -0500
+Subject: ASoC: Intel: sof_sdw: add quirk variant for LAPBC710 NUC15
+
+From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+
+[ Upstream commit 41deb2db64997d01110faaf763bd911d490dfde7 ]
+
+Some NUC15 LAPBC710 devices don't expose the same DMI information as
+the Intel reference, add additional entry in the match table.
+
+BugLink: https://github.com/thesofproject/linux/issues/3885
+Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
+Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
+Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com>
+Link: https://lore.kernel.org/r/20221017204054.207512-1-pierre-louis.bossart@linux.intel.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/intel/boards/sof_sdw.c | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c
+index 25548555d8d7..5e1a718a64da 100644
+--- a/sound/soc/intel/boards/sof_sdw.c
++++ b/sound/soc/intel/boards/sof_sdw.c
+@@ -175,6 +175,17 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
+                                       SOF_SDW_PCH_DMIC |
+                                       SOF_RT711_JD_SRC_JD2),
+       },
++      {
++              /* NUC15 LAPBC710 skews */
++              .callback = sof_sdw_quirk_cb,
++              .matches = {
++                      DMI_MATCH(DMI_BOARD_VENDOR, "Intel Corporation"),
++                      DMI_MATCH(DMI_BOARD_NAME, "LAPBC710"),
++              },
++              .driver_data = (void *)(SOF_SDW_TGL_HDMI |
++                                      SOF_SDW_PCH_DMIC |
++                                      RT711_JD1),
++      },
+       /* TigerLake-SDCA devices */
+       {
+               .callback = sof_sdw_quirk_cb,
+-- 
+2.35.1
+
diff --git a/queue-5.10/asoc-mt6660-keep-the-pm_runtime-enables-before-compo.patch b/queue-5.10/asoc-mt6660-keep-the-pm_runtime-enables-before-compo.patch
new file mode 100644 (file)
index 0000000..c19bb37
--- /dev/null
@@ -0,0 +1,49 @@
+From 52f8c20ac90cd2941dc6d2d728800a62d9c85925 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Sat, 8 Oct 2022 22:05:22 +0800
+Subject: ASoC: mt6660: Keep the pm_runtime enables before component stuff in
+ mt6660_i2c_probe
+
+From: Zhang Qilong <zhangqilong3@huawei.com>
+
+[ Upstream commit c4ab29b0f3a6f1e167c5a627f7cd036c1d2b7d65 ]
+
+It would be better to keep the pm_runtime enables before the
+IRQ and component stuff. Both of those could start triggering
+PM runtime events.
+
+Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
+Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
+Link: https://lore.kernel.org/r/20221008140522.134912-1-zhangqilong3@huawei.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/mt6660.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/sound/soc/codecs/mt6660.c b/sound/soc/codecs/mt6660.c
+index e18a58868273..3cee2ea4b85d 100644
+--- a/sound/soc/codecs/mt6660.c
++++ b/sound/soc/codecs/mt6660.c
+@@ -504,14 +504,14 @@ static int mt6660_i2c_probe(struct i2c_client *client,
+               dev_err(chip->dev, "read chip revision fail\n");
+               goto probe_fail;
+       }
++      pm_runtime_set_active(chip->dev);
++      pm_runtime_enable(chip->dev);
+       ret = devm_snd_soc_register_component(chip->dev,
+                                              &mt6660_component_driver,
+                                              &mt6660_codec_dai, 1);
+-      if (!ret) {
+-              pm_runtime_set_active(chip->dev);
+-              pm_runtime_enable(chip->dev);
+-      }
++      if (ret)
++              pm_runtime_disable(chip->dev);
+       return ret;
+-- 
+2.35.1
+
diff --git a/queue-5.10/asoc-rt1308-sdw-add-the-default-value-of-some-regist.patch b/queue-5.10/asoc-rt1308-sdw-add-the-default-value-of-some-regist.patch
new file mode 100644 (file)
index 0000000..efd9fc4
--- /dev/null
@@ -0,0 +1,41 @@
+From f9e4394da8f019f5c48dbc8b8973e0f701169c57 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 19 Oct 2022 17:57:15 +0800
+Subject: ASoC: rt1308-sdw: add the default value of some registers
+
+From: Shuming Fan <shumingf@realtek.com>
+
+[ Upstream commit 75d8b1662ca5c20cf8365575222abaef18ff1f50 ]
+
+The driver missed the default value of register 0xc070/0xc360.
+This patch adds that default value to avoid invalid register access
+when the device doesn't be enumerated yet.
+BugLink: https://github.com/thesofproject/linux/issues/3924
+
+Signed-off-by: Shuming Fan <shumingf@realtek.com>
+Link: https://lore.kernel.org/r/20221019095715.31082-1-shumingf@realtek.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/rt1308-sdw.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/sound/soc/codecs/rt1308-sdw.h b/sound/soc/codecs/rt1308-sdw.h
+index c5ce75666dcc..98293d73ebab 100644
+--- a/sound/soc/codecs/rt1308-sdw.h
++++ b/sound/soc/codecs/rt1308-sdw.h
+@@ -139,9 +139,11 @@ static const struct reg_default rt1308_reg_defaults[] = {
+       { 0x3005, 0x23 },
+       { 0x3008, 0x02 },
+       { 0x300a, 0x00 },
++      { 0xc000 | (RT1308_DATA_PATH << 4), 0x00 },
+       { 0xc003 | (RT1308_DAC_SET << 4), 0x00 },
+       { 0xc001 | (RT1308_POWER << 4), 0x00 },
+       { 0xc002 | (RT1308_POWER << 4), 0x00 },
++      { 0xc000 | (RT1308_POWER_STATUS << 4), 0x00 },
+ };
+ #define RT1308_SDW_OFFSET 0xc000
+-- 
+2.35.1
+
diff --git a/queue-5.10/asoc-wm5102-revert-asoc-wm5102-fix-pm-disable-depth-.patch b/queue-5.10/asoc-wm5102-revert-asoc-wm5102-fix-pm-disable-depth-.patch
new file mode 100644 (file)
index 0000000..c9c7818
--- /dev/null
@@ -0,0 +1,51 @@
+From 1b0e22f128b31a1a5c2d2f7167da934b7d23eb4a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 10 Oct 2022 19:48:50 +0800
+Subject: ASoC: wm5102: Revert "ASoC: wm5102: Fix PM disable depth imbalance in
+ wm5102_probe"
+
+From: Zhang Qilong <zhangqilong3@huawei.com>
+
+[ Upstream commit de71d7567e358effd06dfc3e2a154b25f1331c10 ]
+
+This reverts commit fcbb60820cd3008bb44334a0395e5e57ccb77329.
+
+The pm_runtime_disable is redundant when error returns in
+wm5102_probe, we just revert the old patch to fix it.
+
+Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
+Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
+Link: https://lore.kernel.org/r/20221010114852.88127-2-zhangqilong3@huawei.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/wm5102.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/codecs/wm5102.c b/sound/soc/codecs/wm5102.c
+index b7f5e5391fdb..2ed3fa67027d 100644
+--- a/sound/soc/codecs/wm5102.c
++++ b/sound/soc/codecs/wm5102.c
+@@ -2083,6 +2083,9 @@ static int wm5102_probe(struct platform_device *pdev)
+               regmap_update_bits(arizona->regmap, wm5102_digital_vu[i],
+                                  WM5102_DIG_VU, WM5102_DIG_VU);
++      pm_runtime_enable(&pdev->dev);
++      pm_runtime_idle(&pdev->dev);
++
+       ret = arizona_request_irq(arizona, ARIZONA_IRQ_DSP_IRQ1,
+                                 "ADSP2 Compressed IRQ", wm5102_adsp2_irq,
+                                 wm5102);
+@@ -2115,9 +2118,6 @@ static int wm5102_probe(struct platform_device *pdev)
+               goto err_spk_irqs;
+       }
+-      pm_runtime_enable(&pdev->dev);
+-      pm_runtime_idle(&pdev->dev);
+-
+       return ret;
+ err_spk_irqs:
+-- 
+2.35.1
+
diff --git a/queue-5.10/asoc-wm5110-revert-asoc-wm5110-fix-pm-disable-depth-.patch b/queue-5.10/asoc-wm5110-revert-asoc-wm5110-fix-pm-disable-depth-.patch
new file mode 100644 (file)
index 0000000..5dee201
--- /dev/null
@@ -0,0 +1,51 @@
+From 7f716aa32048d92a29f31a48cdb38cafda8e2cb9 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 10 Oct 2022 19:48:51 +0800
+Subject: ASoC: wm5110: Revert "ASoC: wm5110: Fix PM disable depth imbalance in
+ wm5110_probe"
+
+From: Zhang Qilong <zhangqilong3@huawei.com>
+
+[ Upstream commit 7d4e966f4cd73ff69bf06934e8e14a33fb7ef447 ]
+
+This reverts commit 86b46bf1feb83898d89a2b4a8d08d21e9ea277a7.
+
+The pm_runtime_disable is redundant when error returns in
+wm5110_probe, we just revert the old patch to fix it.
+
+Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
+Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
+Link: https://lore.kernel.org/r/20221010114852.88127-3-zhangqilong3@huawei.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/wm5110.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/codecs/wm5110.c b/sound/soc/codecs/wm5110.c
+index c158f8b1e8e4..d0cef982215d 100644
+--- a/sound/soc/codecs/wm5110.c
++++ b/sound/soc/codecs/wm5110.c
+@@ -2452,6 +2452,9 @@ static int wm5110_probe(struct platform_device *pdev)
+               regmap_update_bits(arizona->regmap, wm5110_digital_vu[i],
+                                  WM5110_DIG_VU, WM5110_DIG_VU);
++      pm_runtime_enable(&pdev->dev);
++      pm_runtime_idle(&pdev->dev);
++
+       ret = arizona_request_irq(arizona, ARIZONA_IRQ_DSP_IRQ1,
+                                 "ADSP2 Compressed IRQ", wm5110_adsp2_irq,
+                                 wm5110);
+@@ -2484,9 +2487,6 @@ static int wm5110_probe(struct platform_device *pdev)
+               goto err_spk_irqs;
+       }
+-      pm_runtime_enable(&pdev->dev);
+-      pm_runtime_idle(&pdev->dev);
+-
+       return ret;
+ err_spk_irqs:
+-- 
+2.35.1
+
diff --git a/queue-5.10/asoc-wm8962-add-an-event-handler-for-temp_hp-and-tem.patch b/queue-5.10/asoc-wm8962-add-an-event-handler-for-temp_hp-and-tem.patch
new file mode 100644 (file)
index 0000000..c08ee04
--- /dev/null
@@ -0,0 +1,116 @@
+From 0bd083dd425f76ac1bd848740341b7d192da840b Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 10 Oct 2022 17:20:14 +0800
+Subject: ASoC: wm8962: Add an event handler for TEMP_HP and TEMP_SPK
+
+From: Xiaolei Wang <xiaolei.wang@windriver.com>
+
+[ Upstream commit ee1aa2ae3eaa96e70229fa61deee87ef4528ffdf ]
+
+In wm8962 driver, the WM8962_ADDITIONAL_CONTROL_4 is used as a volatile
+register, but this register mixes a bunch of volatile status bits and a
+bunch of non-volatile control bits. The dapm widgets TEMP_HP and
+TEMP_SPK leverages the control bits in this register. After the wm8962
+probe, the regmap will bet set to cache only mode, then a read error
+like below would be triggered when trying to read the initial power
+state of the dapm widgets TEMP_HP and TEMP_SPK.
+  wm8962 0-001a: ASoC: error at soc_component_read_no_lock
+  on wm8962.0-001a: -16
+
+In order to fix this issue, we add event handler to actually power
+up/down these widgets. With this change, we also need to explicitly
+power off these widgets in the wm8962 probe since they are enabled
+by default.
+
+Signed-off-by: Xiaolei Wang <xiaolei.wang@windriver.com>
+Tested-by: Adam Ford <aford173@gmail.com>
+Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
+Link: https://lore.kernel.org/r/20221010092014.2229246-1-xiaolei.wang@windriver.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/wm8962.c | 54 +++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 52 insertions(+), 2 deletions(-)
+
+diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
+index 38651022e3d5..21574447650c 100644
+--- a/sound/soc/codecs/wm8962.c
++++ b/sound/soc/codecs/wm8962.c
+@@ -1840,6 +1840,49 @@ SOC_SINGLE_TLV("SPKOUTR Mixer DACR Volume", WM8962_SPEAKER_MIXER_5,
+              4, 1, 0, inmix_tlv),
+ };
++static int tp_event(struct snd_soc_dapm_widget *w,
++                  struct snd_kcontrol *kcontrol, int event)
++{
++      int ret, reg, val, mask;
++      struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm);
++
++      ret = pm_runtime_resume_and_get(component->dev);
++      if (ret < 0) {
++              dev_err(component->dev, "Failed to resume device: %d\n", ret);
++              return ret;
++      }
++
++      reg = WM8962_ADDITIONAL_CONTROL_4;
++
++      if (!strcmp(w->name, "TEMP_HP")) {
++              mask = WM8962_TEMP_ENA_HP_MASK;
++              val = WM8962_TEMP_ENA_HP;
++      } else if (!strcmp(w->name, "TEMP_SPK")) {
++              mask = WM8962_TEMP_ENA_SPK_MASK;
++              val = WM8962_TEMP_ENA_SPK;
++      } else {
++              pm_runtime_put(component->dev);
++              return -EINVAL;
++      }
++
++      switch (event) {
++      case SND_SOC_DAPM_POST_PMD:
++              val = 0;
++              fallthrough;
++      case SND_SOC_DAPM_POST_PMU:
++              ret = snd_soc_component_update_bits(component, reg, mask, val);
++              break;
++      default:
++              WARN(1, "Invalid event %d\n", event);
++              pm_runtime_put(component->dev);
++              return -EINVAL;
++      }
++
++      pm_runtime_put(component->dev);
++
++      return 0;
++}
++
+ static int cp_event(struct snd_soc_dapm_widget *w,
+                   struct snd_kcontrol *kcontrol, int event)
+ {
+@@ -2133,8 +2176,10 @@ SND_SOC_DAPM_SUPPLY("TOCLK", WM8962_ADDITIONAL_CONTROL_1, 0, 0, NULL, 0),
+ SND_SOC_DAPM_SUPPLY_S("DSP2", 1, WM8962_DSP2_POWER_MANAGEMENT,
+                     WM8962_DSP2_ENA_SHIFT, 0, dsp2_event,
+                     SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
+-SND_SOC_DAPM_SUPPLY("TEMP_HP", WM8962_ADDITIONAL_CONTROL_4, 2, 0, NULL, 0),
+-SND_SOC_DAPM_SUPPLY("TEMP_SPK", WM8962_ADDITIONAL_CONTROL_4, 1, 0, NULL, 0),
++SND_SOC_DAPM_SUPPLY("TEMP_HP", SND_SOC_NOPM, 0, 0, tp_event,
++              SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
++SND_SOC_DAPM_SUPPLY("TEMP_SPK", SND_SOC_NOPM, 0, 0, tp_event,
++              SND_SOC_DAPM_POST_PMU|SND_SOC_DAPM_POST_PMD),
+ SND_SOC_DAPM_MIXER("INPGAL", WM8962_LEFT_INPUT_PGA_CONTROL, 4, 0,
+                  inpgal, ARRAY_SIZE(inpgal)),
+@@ -3760,6 +3805,11 @@ static int wm8962_i2c_probe(struct i2c_client *i2c,
+       if (ret < 0)
+               goto err_pm_runtime;
++      regmap_update_bits(wm8962->regmap, WM8962_ADDITIONAL_CONTROL_4,
++                          WM8962_TEMP_ENA_HP_MASK, 0);
++      regmap_update_bits(wm8962->regmap, WM8962_ADDITIONAL_CONTROL_4,
++                          WM8962_TEMP_ENA_SPK_MASK, 0);
++
+       regcache_cache_only(wm8962->regmap, true);
+       /* The drivers should power up as needed */
+-- 
+2.35.1
+
diff --git a/queue-5.10/asoc-wm8997-revert-asoc-wm8997-fix-pm-disable-depth-.patch b/queue-5.10/asoc-wm8997-revert-asoc-wm8997-fix-pm-disable-depth-.patch
new file mode 100644 (file)
index 0000000..da2fd58
--- /dev/null
@@ -0,0 +1,51 @@
+From bccbc4cf8104fd7d85c19723fd41f064347023bd Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 10 Oct 2022 19:48:52 +0800
+Subject: ASoC: wm8997: Revert "ASoC: wm8997: Fix PM disable depth imbalance in
+ wm8997_probe"
+
+From: Zhang Qilong <zhangqilong3@huawei.com>
+
+[ Upstream commit 68ce83e3bb26feba0fcdd59667fde942b3a600a1 ]
+
+This reverts commit 41a736ac20602f64773e80f0f5b32cde1830a44a.
+
+The pm_runtime_disable is redundant when error returns in
+wm8997_probe, we just revert the old patch to fix it.
+
+Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
+Acked-by: Charles Keepax <ckeepax@opensource.cirrus.com>
+Link: https://lore.kernel.org/r/20221010114852.88127-4-zhangqilong3@huawei.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ sound/soc/codecs/wm8997.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/sound/soc/codecs/wm8997.c b/sound/soc/codecs/wm8997.c
+index 07378714b013..229f2986cd96 100644
+--- a/sound/soc/codecs/wm8997.c
++++ b/sound/soc/codecs/wm8997.c
+@@ -1156,6 +1156,9 @@ static int wm8997_probe(struct platform_device *pdev)
+               regmap_update_bits(arizona->regmap, wm8997_digital_vu[i],
+                                  WM8997_DIG_VU, WM8997_DIG_VU);
++      pm_runtime_enable(&pdev->dev);
++      pm_runtime_idle(&pdev->dev);
++
+       arizona_init_common(arizona);
+       ret = arizona_init_vol_limit(arizona);
+@@ -1174,9 +1177,6 @@ static int wm8997_probe(struct platform_device *pdev)
+               goto err_spk_irqs;
+       }
+-      pm_runtime_enable(&pdev->dev);
+-      pm_runtime_idle(&pdev->dev);
+-
+       return ret;
+ err_spk_irqs:
+-- 
+2.35.1
+
diff --git a/queue-5.10/bluetooth-l2cap-fix-l2cap_global_chan_by_psm.patch b/queue-5.10/bluetooth-l2cap-fix-l2cap_global_chan_by_psm.patch
new file mode 100644 (file)
index 0000000..e4017df
--- /dev/null
@@ -0,0 +1,35 @@
+From 136965301214155a9bf00407c014899517f63121 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 31 Oct 2022 16:10:33 -0700
+Subject: Bluetooth: L2CAP: Fix l2cap_global_chan_by_psm
+
+From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
+
+[ Upstream commit f937b758a188d6fd328a81367087eddbb2fce50f ]
+
+l2cap_global_chan_by_psm shall not return fixed channels as they are not
+meant to be connected by (S)PSM.
+
+Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
+Reviewed-by: Tedd Ho-Jeong An <tedd.an@intel.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ net/bluetooth/l2cap_core.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
+index e69e96ef4927..c5e4d2b8cb0b 100644
+--- a/net/bluetooth/l2cap_core.c
++++ b/net/bluetooth/l2cap_core.c
+@@ -1986,7 +1986,7 @@ static struct l2cap_chan *l2cap_global_chan_by_psm(int state, __le16 psm,
+               if (link_type == LE_LINK && c->src_type == BDADDR_BREDR)
+                       continue;
+-              if (c->psm == psm) {
++              if (c->chan_type != L2CAP_CHAN_FIXED && c->psm == psm) {
+                       int src_match, dst_match;
+                       int src_any, dst_any;
+-- 
+2.35.1
+
diff --git a/queue-5.10/btrfs-remove-pointless-and-double-ulist-frees-in-err.patch b/queue-5.10/btrfs-remove-pointless-and-double-ulist-frees-in-err.patch
new file mode 100644 (file)
index 0000000..b61ed42
--- /dev/null
@@ -0,0 +1,134 @@
+From 6ce41414223faed109930e6577ae7d1a5ff64652 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 1 Nov 2022 16:15:40 +0000
+Subject: btrfs: remove pointless and double ulist frees in error paths of
+ qgroup tests
+
+From: Filipe Manana <fdmanana@suse.com>
+
+[ Upstream commit d0ea17aec12ea0f7b9d2ed727d8ef8169d1e7699 ]
+
+Several places in the qgroup self tests follow the pattern of freeing the
+ulist pointer they passed to btrfs_find_all_roots() if the call to that
+function returned an error. That is pointless because that function always
+frees the ulist in case it returns an error.
+
+Also In some places like at test_multiple_refs(), after a call to
+btrfs_qgroup_account_extent() we also leave "old_roots" and "new_roots"
+pointing to ulists that were freed, because btrfs_qgroup_account_extent()
+has freed those ulists, and if after that the next call to
+btrfs_find_all_roots() fails, we call ulist_free() on the "old_roots"
+ulist again, resulting in a double free.
+
+So remove those calls to reduce the code size and avoid double ulist
+free in case of an error.
+
+Signed-off-by: Filipe Manana <fdmanana@suse.com>
+Signed-off-by: David Sterba <dsterba@suse.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/btrfs/tests/qgroup-tests.c | 16 ++++------------
+ 1 file changed, 4 insertions(+), 12 deletions(-)
+
+diff --git a/fs/btrfs/tests/qgroup-tests.c b/fs/btrfs/tests/qgroup-tests.c
+index c4b31dccc184..289366c98f5b 100644
+--- a/fs/btrfs/tests/qgroup-tests.c
++++ b/fs/btrfs/tests/qgroup-tests.c
+@@ -230,7 +230,6 @@ static int test_no_shared_qgroup(struct btrfs_root *root,
+       ret = btrfs_find_all_roots(&trans, fs_info, nodesize, 0, &old_roots,
+                       false);
+       if (ret) {
+-              ulist_free(old_roots);
+               test_err("couldn't find old roots: %d", ret);
+               return ret;
+       }
+@@ -246,7 +245,6 @@ static int test_no_shared_qgroup(struct btrfs_root *root,
+                       false);
+       if (ret) {
+               ulist_free(old_roots);
+-              ulist_free(new_roots);
+               test_err("couldn't find old roots: %d", ret);
+               return ret;
+       }
+@@ -258,18 +256,19 @@ static int test_no_shared_qgroup(struct btrfs_root *root,
+               return ret;
+       }
++      /* btrfs_qgroup_account_extent() always frees the ulists passed to it. */
++      old_roots = NULL;
++      new_roots = NULL;
++
+       if (btrfs_verify_qgroup_counts(fs_info, BTRFS_FS_TREE_OBJECTID,
+                               nodesize, nodesize)) {
+               test_err("qgroup counts didn't match expected values");
+               return -EINVAL;
+       }
+-      old_roots = NULL;
+-      new_roots = NULL;
+       ret = btrfs_find_all_roots(&trans, fs_info, nodesize, 0, &old_roots,
+                       false);
+       if (ret) {
+-              ulist_free(old_roots);
+               test_err("couldn't find old roots: %d", ret);
+               return ret;
+       }
+@@ -284,7 +283,6 @@ static int test_no_shared_qgroup(struct btrfs_root *root,
+                       false);
+       if (ret) {
+               ulist_free(old_roots);
+-              ulist_free(new_roots);
+               test_err("couldn't find old roots: %d", ret);
+               return ret;
+       }
+@@ -335,7 +333,6 @@ static int test_multiple_refs(struct btrfs_root *root,
+       ret = btrfs_find_all_roots(&trans, fs_info, nodesize, 0, &old_roots,
+                       false);
+       if (ret) {
+-              ulist_free(old_roots);
+               test_err("couldn't find old roots: %d", ret);
+               return ret;
+       }
+@@ -351,7 +348,6 @@ static int test_multiple_refs(struct btrfs_root *root,
+                       false);
+       if (ret) {
+               ulist_free(old_roots);
+-              ulist_free(new_roots);
+               test_err("couldn't find old roots: %d", ret);
+               return ret;
+       }
+@@ -372,7 +368,6 @@ static int test_multiple_refs(struct btrfs_root *root,
+       ret = btrfs_find_all_roots(&trans, fs_info, nodesize, 0, &old_roots,
+                       false);
+       if (ret) {
+-              ulist_free(old_roots);
+               test_err("couldn't find old roots: %d", ret);
+               return ret;
+       }
+@@ -388,7 +383,6 @@ static int test_multiple_refs(struct btrfs_root *root,
+                       false);
+       if (ret) {
+               ulist_free(old_roots);
+-              ulist_free(new_roots);
+               test_err("couldn't find old roots: %d", ret);
+               return ret;
+       }
+@@ -415,7 +409,6 @@ static int test_multiple_refs(struct btrfs_root *root,
+       ret = btrfs_find_all_roots(&trans, fs_info, nodesize, 0, &old_roots,
+                       false);
+       if (ret) {
+-              ulist_free(old_roots);
+               test_err("couldn't find old roots: %d", ret);
+               return ret;
+       }
+@@ -431,7 +424,6 @@ static int test_multiple_refs(struct btrfs_root *root,
+                       false);
+       if (ret) {
+               ulist_free(old_roots);
+-              ulist_free(new_roots);
+               test_err("couldn't find old roots: %d", ret);
+               return ret;
+       }
+-- 
+2.35.1
+
diff --git a/queue-5.10/drm-amd-display-remove-wrong-pipe-control-lock.patch b/queue-5.10/drm-amd-display-remove-wrong-pipe-control-lock.patch
new file mode 100644 (file)
index 0000000..15696ee
--- /dev/null
@@ -0,0 +1,94 @@
+From db73f60742bf87b966eaa1fe91729cfb70b83cd4 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 6 Oct 2022 17:26:48 -0400
+Subject: drm/amd/display: Remove wrong pipe control lock
+
+From: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
+
+[ Upstream commit ca08a1725d0d78efca8d2dbdbce5ea70355da0f2 ]
+
+When using a device based on DCN32/321,
+we have an issue where a second
+4k@60Hz display does not light up,
+and the system becomes unresponsive
+for a few minutes. In the debug process,
+it was possible to see a hang
+in the function dcn20_post_unlock_program_front_end
+in this part:
+
+for (j = 0; j < TIMEOUT_FOR_PIPE_ENABLE_MS*1000
+       && hubp->funcs->hubp_is_flip_pending(hubp); j++)
+       mdelay(1);
+}
+
+The hubp_is_flip_pending always returns positive
+for waiting pending flips which is a symptom of
+pipe hang. Additionally, the dmesg log shows
+this message after a few minutes:
+
+  BUG: soft lockup - CPU#4 stuck for 26s!
+  ...
+  [  +0.000003]  dcn20_post_unlock_program_front_end+0x112/0x340 [amdgpu]
+  [  +0.000171]  dc_commit_state_no_check+0x63d/0xbf0 [amdgpu]
+  [  +0.000155]  ? dc_validate_global_state+0x358/0x3d0 [amdgpu]
+  [  +0.000154]  dc_commit_state+0xe2/0xf0 [amdgpu]
+
+This confirmed the hypothesis that we had a pipe
+hanging somewhere. Next, after checking the
+ftrace entries, we have the below weird
+sequence:
+
+ [..]
+  2)               |        dcn10_lock_all_pipes [amdgpu]() {
+  2)   0.120 us    |          optc1_is_tg_enabled [amdgpu]();
+  2)               |          dcn20_pipe_control_lock [amdgpu]() {
+  2)               |            dc_dmub_srv_clear_inbox0_ack [amdgpu]() {
+  2)   0.121 us    |              amdgpu_dm_dmub_reg_write [amdgpu]();
+  2)   0.551 us    |            }
+  2)               |            dc_dmub_srv_send_inbox0_cmd [amdgpu]() {
+  2)   0.110 us    |              amdgpu_dm_dmub_reg_write [amdgpu]();
+  2)   0.511 us    |            }
+  2)               |            dc_dmub_srv_wait_for_inbox0_ack [amdgpu]() {
+  2)   0.110 us    |              amdgpu_dm_dmub_reg_read [amdgpu]();
+  2)   0.110 us    |              amdgpu_dm_dmub_reg_read [amdgpu]();
+  2)   0.110 us    |              amdgpu_dm_dmub_reg_read [amdgpu]();
+  2)   0.110 us    |              amdgpu_dm_dmub_reg_read [amdgpu]();
+  2)   0.110 us    |              amdgpu_dm_dmub_reg_read [amdgpu]();
+  2)   0.110 us    |              amdgpu_dm_dmub_reg_read [amdgpu]();
+  2)   0.110 us    |              amdgpu_dm_dmub_reg_read [amdgpu]();
+ [..]
+
+We are not expected to read from dmub register
+so many times and for so long. From the trace log,
+it was possible to identify that the function
+dcn20_pipe_control_lock was triggering the dmub
+operation when it was unnecessary and causing
+the hang issue. This commit drops the unnecessary
+dmub code and, consequently, fixes the second display not
+lighting up the issue.
+
+Tested-by: Daniel Wheeler <daniel.wheeler@amd.com>
+Acked-by: Qingqing Zhuo <qingqing.zhuo@amd.com>
+Signed-off-by: Rodrigo Siqueira <Rodrigo.Siqueira@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c
+index 8f66eef0c683..c6c4888c6665 100644
+--- a/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn20/dcn20_hwseq.c
+@@ -1746,7 +1746,7 @@ void dcn20_post_unlock_program_front_end(
+                       for (j = 0; j < TIMEOUT_FOR_PIPE_ENABLE_MS*1000
+                                       && hubp->funcs->hubp_is_flip_pending(hubp); j++)
+-                              mdelay(1);
++                              udelay(1);
+               }
+       }
+-- 
+2.35.1
+
diff --git a/queue-5.10/drm-imx-imx-tve-fix-return-type-of-imx_tve_connector.patch b/queue-5.10/drm-imx-imx-tve-fix-return-type-of-imx_tve_connector.patch
new file mode 100644 (file)
index 0000000..054365e
--- /dev/null
@@ -0,0 +1,53 @@
+From b83ff30e0ca96f291cae7be398d159ffd73e854e Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 13 Sep 2022 13:55:44 -0700
+Subject: drm/imx: imx-tve: Fix return type of imx_tve_connector_mode_valid
+
+From: Nathan Huckleberry <nhuck@google.com>
+
+[ Upstream commit fc007fb815ab5395c3962c09b79a1630b0fbed9c ]
+
+The mode_valid field in drm_connector_helper_funcs is expected to be of
+type:
+enum drm_mode_status (* mode_valid) (struct drm_connector *connector,
+                                     struct drm_display_mode *mode);
+
+The mismatched return type breaks forward edge kCFI since the underlying
+function definition does not match the function hook definition.
+
+The return type of imx_tve_connector_mode_valid should be changed from
+int to enum drm_mode_status.
+
+Reported-by: Dan Carpenter <error27@gmail.com>
+Link: https://github.com/ClangBuiltLinux/linux/issues/1703
+Cc: llvm@lists.linux.dev
+Signed-off-by: Nathan Huckleberry <nhuck@google.com>
+Reviewed-by: Nathan Chancellor <nathan@kernel.org>
+Reviewed-by: Fabio Estevam <festevam@gmail.com>
+Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
+Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
+Link: https://patchwork.freedesktop.org/patch/msgid/20220913205544.155106-1-nhuck@google.com
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/gpu/drm/imx/imx-tve.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/imx/imx-tve.c b/drivers/gpu/drm/imx/imx-tve.c
+index 2a8d2e32e7b4..9fe6a4733106 100644
+--- a/drivers/gpu/drm/imx/imx-tve.c
++++ b/drivers/gpu/drm/imx/imx-tve.c
+@@ -212,8 +212,9 @@ static int imx_tve_connector_get_modes(struct drm_connector *connector)
+       return ret;
+ }
+-static int imx_tve_connector_mode_valid(struct drm_connector *connector,
+-                                      struct drm_display_mode *mode)
++static enum drm_mode_status
++imx_tve_connector_mode_valid(struct drm_connector *connector,
++                           struct drm_display_mode *mode)
+ {
+       struct imx_tve *tve = con_to_tve(connector);
+       unsigned long rate;
+-- 
+2.35.1
+
diff --git a/queue-5.10/i2c-i801-add-lis3lv02d-s-i2c-address-for-vostro-5568.patch b/queue-5.10/i2c-i801-add-lis3lv02d-s-i2c-address-for-vostro-5568.patch
new file mode 100644 (file)
index 0000000..a76b050
--- /dev/null
@@ -0,0 +1,46 @@
+From 78745d10ed95fef7db162974407c8c9b4a996d03 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 6 Oct 2022 16:54:40 +0200
+Subject: i2c: i801: add lis3lv02d's I2C address for Vostro 5568
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Nam Cao <namcaov@gmail.com>
+
+[ Upstream commit d6643d7207c572c1b0305ed505101f15502c6c87 ]
+
+Dell Vostro 5568 laptop has lis3lv02d, but its i2c address is not known
+to the kernel. Add this address.
+
+Output of "cat /sys/devices/platform/lis3lv02d/position" on Dell Vostro
+5568 laptop:
+    - Horizontal: (-18,0,1044)
+    - Front elevated: (522,-18,1080)
+    - Left elevated: (-18,-360,1080)
+    - Upside down: (36,108,-1134)
+
+Signed-off-by: Nam Cao <namcaov@gmail.com>
+Reviewed-by: Jean Delvare <jdelvare@suse.de>
+Reviewed-by: Pali Rohár <pali@kernel.org>
+Signed-off-by: Wolfram Sang <wsa@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/i2c/busses/i2c-i801.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c
+index 5618c1ff34dc..45682d30d705 100644
+--- a/drivers/i2c/busses/i2c-i801.c
++++ b/drivers/i2c/busses/i2c-i801.c
+@@ -1275,6 +1275,7 @@ static const struct {
+        */
+       { "Latitude 5480",      0x29 },
+       { "Vostro V131",        0x1d },
++      { "Vostro 5568",        0x29 },
+ };
+ static void register_dell_lis3lv02d_i2c_device(struct i801_priv *priv)
+-- 
+2.35.1
+
diff --git a/queue-5.10/i2c-tegra-allocate-dma-memory-for-dma-engine.patch b/queue-5.10/i2c-tegra-allocate-dma-memory-for-dma-engine.patch
new file mode 100644 (file)
index 0000000..356f53b
--- /dev/null
@@ -0,0 +1,100 @@
+From 47c07f3238d3643ef60c4c277b67d48414df912e Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Thu, 20 Oct 2022 16:39:33 +0200
+Subject: i2c: tegra: Allocate DMA memory for DMA engine
+
+From: Thierry Reding <treding@nvidia.com>
+
+[ Upstream commit cdbf26251d3b35c4ccaea0c3a6de4318f727d3d2 ]
+
+When the I2C controllers are running in DMA mode, it is the DMA engine
+that performs the memory accesses rather than the I2C controller. Pass
+the DMA engine's struct device pointer to the DMA API to make sure the
+correct DMA operations are used.
+
+This fixes an issue where the DMA engine's SMMU stream ID needs to be
+misleadingly set for the I2C controllers in device tree.
+
+Suggested-by: Robin Murphy <robin.murphy@arm.com>
+Signed-off-by: Thierry Reding <treding@nvidia.com>
+Signed-off-by: Wolfram Sang <wsa@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/i2c/busses/i2c-tegra.c | 16 ++++++++++------
+ 1 file changed, 10 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
+index 8b113ae32dc7..42f1db60ad6f 100644
+--- a/drivers/i2c/busses/i2c-tegra.c
++++ b/drivers/i2c/busses/i2c-tegra.c
+@@ -283,6 +283,7 @@ struct tegra_i2c_dev {
+       struct dma_chan *tx_dma_chan;
+       struct dma_chan *rx_dma_chan;
+       unsigned int dma_buf_size;
++      struct device *dma_dev;
+       dma_addr_t dma_phys;
+       void *dma_buf;
+@@ -419,7 +420,7 @@ static int tegra_i2c_dma_submit(struct tegra_i2c_dev *i2c_dev, size_t len)
+ static void tegra_i2c_release_dma(struct tegra_i2c_dev *i2c_dev)
+ {
+       if (i2c_dev->dma_buf) {
+-              dma_free_coherent(i2c_dev->dev, i2c_dev->dma_buf_size,
++              dma_free_coherent(i2c_dev->dma_dev, i2c_dev->dma_buf_size,
+                                 i2c_dev->dma_buf, i2c_dev->dma_phys);
+               i2c_dev->dma_buf = NULL;
+       }
+@@ -466,10 +467,13 @@ static int tegra_i2c_init_dma(struct tegra_i2c_dev *i2c_dev)
+       i2c_dev->tx_dma_chan = chan;
++      WARN_ON(i2c_dev->tx_dma_chan->device != i2c_dev->rx_dma_chan->device);
++      i2c_dev->dma_dev = chan->device->dev;
++
+       i2c_dev->dma_buf_size = i2c_dev->hw->quirks->max_write_len +
+                               I2C_PACKET_HEADER_SIZE;
+-      dma_buf = dma_alloc_coherent(i2c_dev->dev, i2c_dev->dma_buf_size,
++      dma_buf = dma_alloc_coherent(i2c_dev->dma_dev, i2c_dev->dma_buf_size,
+                                    &dma_phys, GFP_KERNEL | __GFP_NOWARN);
+       if (!dma_buf) {
+               dev_err(i2c_dev->dev, "failed to allocate DMA buffer\n");
+@@ -1255,7 +1259,7 @@ static int tegra_i2c_xfer_msg(struct tegra_i2c_dev *i2c_dev,
+       if (i2c_dev->dma_mode) {
+               if (i2c_dev->msg_read) {
+-                      dma_sync_single_for_device(i2c_dev->dev,
++                      dma_sync_single_for_device(i2c_dev->dma_dev,
+                                                  i2c_dev->dma_phys,
+                                                  xfer_size, DMA_FROM_DEVICE);
+@@ -1263,7 +1267,7 @@ static int tegra_i2c_xfer_msg(struct tegra_i2c_dev *i2c_dev,
+                       if (err)
+                               return err;
+               } else {
+-                      dma_sync_single_for_cpu(i2c_dev->dev,
++                      dma_sync_single_for_cpu(i2c_dev->dma_dev,
+                                               i2c_dev->dma_phys,
+                                               xfer_size, DMA_TO_DEVICE);
+               }
+@@ -1276,7 +1280,7 @@ static int tegra_i2c_xfer_msg(struct tegra_i2c_dev *i2c_dev,
+                       memcpy(i2c_dev->dma_buf + I2C_PACKET_HEADER_SIZE,
+                              msg->buf, msg->len);
+-                      dma_sync_single_for_device(i2c_dev->dev,
++                      dma_sync_single_for_device(i2c_dev->dma_dev,
+                                                  i2c_dev->dma_phys,
+                                                  xfer_size, DMA_TO_DEVICE);
+@@ -1327,7 +1331,7 @@ static int tegra_i2c_xfer_msg(struct tegra_i2c_dev *i2c_dev,
+               }
+               if (i2c_dev->msg_read && i2c_dev->msg_err == I2C_ERR_NONE) {
+-                      dma_sync_single_for_cpu(i2c_dev->dev,
++                      dma_sync_single_for_cpu(i2c_dev->dma_dev,
+                                               i2c_dev->dma_phys,
+                                               xfer_size, DMA_FROM_DEVICE);
+-- 
+2.35.1
+
diff --git a/queue-5.10/nfsv4-retry-lock-on-old_stateid-during-delegation-re.patch b/queue-5.10/nfsv4-retry-lock-on-old_stateid-during-delegation-re.patch
new file mode 100644 (file)
index 0000000..4861672
--- /dev/null
@@ -0,0 +1,62 @@
+From 148f6d9f2908e2ea8aedd1e83d3a70852e7a9a1c Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 19 Oct 2022 12:09:18 -0400
+Subject: NFSv4: Retry LOCK on OLD_STATEID during delegation return
+
+From: Benjamin Coddington <bcodding@redhat.com>
+
+[ Upstream commit f5ea16137a3fa2858620dc9084466491c128535f ]
+
+There's a small window where a LOCK sent during a delegation return can
+race with another OPEN on client, but the open stateid has not yet been
+updated.  In this case, the client doesn't handle the OLD_STATEID error
+from the server and will lose this lock, emitting:
+"NFS: nfs4_handle_delegation_recall_error: unhandled error -10024".
+
+Fix this by sending the task through the nfs4 error handling in
+nfs4_lock_done() when we may have to reconcile our stateid with what the
+server believes it to be.  For this case, the result is a retry of the
+LOCK operation with the updated stateid.
+
+Reported-by: Gonzalo Siero Humet <gsierohu@redhat.com>
+Signed-off-by: Benjamin Coddington <bcodding@redhat.com>
+Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ fs/nfs/nfs4proc.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
+index 03f09399abf4..36af3734ac87 100644
+--- a/fs/nfs/nfs4proc.c
++++ b/fs/nfs/nfs4proc.c
+@@ -7014,6 +7014,7 @@ static void nfs4_lock_done(struct rpc_task *task, void *calldata)
+ {
+       struct nfs4_lockdata *data = calldata;
+       struct nfs4_lock_state *lsp = data->lsp;
++      struct nfs_server *server = NFS_SERVER(d_inode(data->ctx->dentry));
+       dprintk("%s: begin!\n", __func__);
+@@ -7023,8 +7024,7 @@ static void nfs4_lock_done(struct rpc_task *task, void *calldata)
+       data->rpc_status = task->tk_status;
+       switch (task->tk_status) {
+       case 0:
+-              renew_lease(NFS_SERVER(d_inode(data->ctx->dentry)),
+-                              data->timestamp);
++              renew_lease(server, data->timestamp);
+               if (data->arg.new_lock && !data->cancelled) {
+                       data->fl.fl_flags &= ~(FL_SLEEP | FL_ACCESS);
+                       if (locks_lock_inode_wait(lsp->ls_state->inode, &data->fl) < 0)
+@@ -7045,6 +7045,8 @@ static void nfs4_lock_done(struct rpc_task *task, void *calldata)
+                       if (!nfs4_stateid_match(&data->arg.open_stateid,
+                                               &lsp->ls_state->open_stateid))
+                               goto out_restart;
++                      else if (nfs4_async_handle_error(task, server, lsp->ls_state, NULL) == -EAGAIN)
++                              goto out_restart;
+               } else if (!nfs4_stateid_match(&data->arg.lock_stateid,
+                                               &lsp->ls_stateid))
+                               goto out_restart;
+-- 
+2.35.1
+
diff --git a/queue-5.10/rtc-cmos-fix-build-on-non-acpi-platforms.patch b/queue-5.10/rtc-cmos-fix-build-on-non-acpi-platforms.patch
new file mode 100644 (file)
index 0000000..9452c35
--- /dev/null
@@ -0,0 +1,37 @@
+From 6976726888aa360d038a9f4f1f1a5d63be84cfac Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 18 Oct 2022 22:35:11 +0200
+Subject: rtc: cmos: fix build on non-ACPI platforms
+
+From: Alexandre Belloni <alexandre.belloni@bootlin.com>
+
+[ Upstream commit db4e955ae333567dea02822624106c0b96a2f84f ]
+
+Now that rtc_wake_setup is called outside of cmos_wake_setup, it also need
+to be defined on non-ACPI platforms.
+
+Reported-by: kernel test robot <lkp@intel.com>
+Link: https://lore.kernel.org/r/20221018203512.2532407-1-alexandre.belloni@bootlin.com
+Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/rtc/rtc-cmos.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
+index 58c6382a2807..0383f49ee0d8 100644
+--- a/drivers/rtc/rtc-cmos.c
++++ b/drivers/rtc/rtc-cmos.c
+@@ -1293,6 +1293,9 @@ static void cmos_check_acpi_rtc_status(struct device *dev,
+ {
+ }
++static void rtc_wake_setup(struct device *dev)
++{
++}
+ #endif
+ #ifdef        CONFIG_PNP
+-- 
+2.35.1
+
diff --git a/queue-5.10/selftests-futex-fix-build-for-clang.patch b/queue-5.10/selftests-futex-fix-build-for-clang.patch
new file mode 100644 (file)
index 0000000..ad315b0
--- /dev/null
@@ -0,0 +1,54 @@
+From f34cf3c948f369b544a2e266c4b65da5051c96da Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 10 Oct 2022 08:37:02 +0200
+Subject: selftests/futex: fix build for clang
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Ricardo Cañuelo <ricardo.canuelo@collabora.com>
+
+[ Upstream commit 03cab65a07e083b6c1010fbc8f9b817e9aca75d9 ]
+
+Don't use the test-specific header files as source files to force a
+target dependency, as clang will complain if more than one source file
+is used for a compile command with a single '-o' flag.
+
+Use the proper Makefile variables instead as defined in
+tools/testing/selftests/lib.mk.
+
+Signed-off-by: Ricardo Cañuelo <ricardo.canuelo@collabora.com>
+Reviewed-by: André Almeida <andrealmeid@igalia.com>
+Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ tools/testing/selftests/futex/functional/Makefile | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/tools/testing/selftests/futex/functional/Makefile b/tools/testing/selftests/futex/functional/Makefile
+index 23207829ec75..6a0ed2e7881e 100644
+--- a/tools/testing/selftests/futex/functional/Makefile
++++ b/tools/testing/selftests/futex/functional/Makefile
+@@ -3,11 +3,11 @@ INCLUDES := -I../include -I../../
+ CFLAGS := $(CFLAGS) -g -O2 -Wall -D_GNU_SOURCE -pthread $(INCLUDES)
+ LDLIBS := -lpthread -lrt
+-HEADERS := \
++LOCAL_HDRS := \
+       ../include/futextest.h \
+       ../include/atomic.h \
+       ../include/logging.h
+-TEST_GEN_FILES := \
++TEST_GEN_PROGS := \
+       futex_wait_timeout \
+       futex_wait_wouldblock \
+       futex_requeue_pi \
+@@ -21,5 +21,3 @@ TEST_PROGS := run.sh
+ top_srcdir = ../../../../..
+ KSFT_KHDR_INSTALL := 1
+ include ../../lib.mk
+-
+-$(TEST_GEN_FILES): $(HEADERS)
+-- 
+2.35.1
+
diff --git a/queue-5.10/selftests-intel_pstate-fix-build-for-arch-x86_64.patch b/queue-5.10/selftests-intel_pstate-fix-build-for-arch-x86_64.patch
new file mode 100644 (file)
index 0000000..3fa087a
--- /dev/null
@@ -0,0 +1,43 @@
+From 68f5e4b1171c26dec541c1c7008ee9397b3979f6 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 10 Oct 2022 08:38:11 +0200
+Subject: selftests/intel_pstate: fix build for ARCH=x86_64
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Ricardo Cañuelo <ricardo.canuelo@collabora.com>
+
+[ Upstream commit beb7d862ed4ac6aa14625418970f22a7d55b8615 ]
+
+Handle the scenario where the build is launched with the ARCH envvar
+defined as x86_64.
+
+Signed-off-by: Ricardo Cañuelo <ricardo.canuelo@collabora.com>
+Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ tools/testing/selftests/intel_pstate/Makefile | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/tools/testing/selftests/intel_pstate/Makefile b/tools/testing/selftests/intel_pstate/Makefile
+index 39f0fa2a8fd6..05d66ef50c97 100644
+--- a/tools/testing/selftests/intel_pstate/Makefile
++++ b/tools/testing/selftests/intel_pstate/Makefile
+@@ -2,10 +2,10 @@
+ CFLAGS := $(CFLAGS) -Wall -D_GNU_SOURCE
+ LDLIBS += -lm
+-uname_M := $(shell uname -m 2>/dev/null || echo not)
+-ARCH ?= $(shell echo $(uname_M) | sed -e s/i.86/x86/ -e s/x86_64/x86/)
++ARCH ?= $(shell uname -m 2>/dev/null || echo not)
++ARCH_PROCESSED := $(shell echo $(ARCH) | sed -e s/i.86/x86/ -e s/x86_64/x86/)
+-ifeq (x86,$(ARCH))
++ifeq (x86,$(ARCH_PROCESSED))
+ TEST_GEN_FILES := msr aperf
+ endif
+-- 
+2.35.1
+
diff --git a/queue-5.10/series b/queue-5.10/series
new file mode 100644 (file)
index 0000000..b557971
--- /dev/null
@@ -0,0 +1,23 @@
+asoc-wm5102-revert-asoc-wm5102-fix-pm-disable-depth-.patch
+asoc-wm5110-revert-asoc-wm5110-fix-pm-disable-depth-.patch
+asoc-wm8997-revert-asoc-wm8997-fix-pm-disable-depth-.patch
+asoc-mt6660-keep-the-pm_runtime-enables-before-compo.patch
+asoc-wm8962-add-an-event-handler-for-temp_hp-and-tem.patch
+spi-intel-fix-the-offset-to-get-the-64k-erase-opcode.patch
+asoc-codecs-jz4725b-add-missed-line-in-power-control.patch
+asoc-codecs-jz4725b-fix-reported-volume-for-master-c.patch
+asoc-codecs-jz4725b-use-right-control-for-capture-vo.patch
+asoc-codecs-jz4725b-fix-capture-selector-naming.patch
+asoc-intel-sof_sdw-add-quirk-variant-for-lapbc710-nu.patch
+selftests-futex-fix-build-for-clang.patch
+selftests-intel_pstate-fix-build-for-arch-x86_64.patch
+rtc-cmos-fix-build-on-non-acpi-platforms.patch
+asoc-rt1308-sdw-add-the-default-value-of-some-regist.patch
+drm-amd-display-remove-wrong-pipe-control-lock.patch
+nfsv4-retry-lock-on-old_stateid-during-delegation-re.patch
+i2c-tegra-allocate-dma-memory-for-dma-engine.patch
+i2c-i801-add-lis3lv02d-s-i2c-address-for-vostro-5568.patch
+drm-imx-imx-tve-fix-return-type-of-imx_tve_connector.patch
+btrfs-remove-pointless-and-double-ulist-frees-in-err.patch
+bluetooth-l2cap-fix-l2cap_global_chan_by_psm.patch
+asoc-codecs-jz4725b-fix-spelling-mistake-sourc-sourc.patch
diff --git a/queue-5.10/spi-intel-fix-the-offset-to-get-the-64k-erase-opcode.patch b/queue-5.10/spi-intel-fix-the-offset-to-get-the-64k-erase-opcode.patch
new file mode 100644 (file)
index 0000000..2fcb3f0
--- /dev/null
@@ -0,0 +1,38 @@
+From 71ef02331a233522d7bf79173a54e16b9db6a28a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Wed, 12 Oct 2022 12:21:35 -0300
+Subject: spi: intel: Fix the offset to get the 64K erase opcode
+
+From: Mauro Lima <mauro.lima@eclypsium.com>
+
+[ Upstream commit 6a43cd02ddbc597dc9a1f82c1e433f871a2f6f06 ]
+
+According to documentation, the 64K erase opcode is located in VSCC
+range [16:23] instead of [8:15].
+Use the proper value to shift the mask over the correct range.
+
+Signed-off-by: Mauro Lima <mauro.lima@eclypsium.com>
+Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
+Link: https://lore.kernel.org/r/20221012152135.28353-1-mauro.lima@eclypsium.com
+Signed-off-by: Mark Brown <broonie@kernel.org>
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ drivers/mtd/spi-nor/controllers/intel-spi.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/mtd/spi-nor/controllers/intel-spi.c b/drivers/mtd/spi-nor/controllers/intel-spi.c
+index b54a56a68100..b4b0affd16c8 100644
+--- a/drivers/mtd/spi-nor/controllers/intel-spi.c
++++ b/drivers/mtd/spi-nor/controllers/intel-spi.c
+@@ -117,7 +117,7 @@
+ #define ERASE_OPCODE_SHIFT            8
+ #define ERASE_OPCODE_MASK             (0xff << ERASE_OPCODE_SHIFT)
+ #define ERASE_64K_OPCODE_SHIFT                16
+-#define ERASE_64K_OPCODE_MASK         (0xff << ERASE_OPCODE_SHIFT)
++#define ERASE_64K_OPCODE_MASK         (0xff << ERASE_64K_OPCODE_SHIFT)
+ #define INTEL_SPI_TIMEOUT             5000 /* ms */
+ #define INTEL_SPI_FIFO_SZ             64
+-- 
+2.35.1
+