]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.15-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 11 Apr 2022 09:25:13 +0000 (11:25 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 11 Apr 2022 09:25:13 +0000 (11:25 +0200)
added patches:
drm-amdgpu-display-change-pipe-policy-for-dcn-2.1.patch
drm-amdgpu-don-t-use-baco-for-reset-in-s3.patch
drm-amdgpu-smu10-fix-soc-fclk-units-in-auto-mode.patch
drm-amdgpu-vcn-fix-the-register-setting-for-vcn1.patch
drm-amdkfd-create-file-descriptor-after-client-is-added-to-smi_clients-list.patch
drm-nouveau-pmu-add-missing-callbacks-for-tegra-devices.patch
drm-panel-ili9341-fix-optional-regulator-handling.patch

queue-5.15/drm-amdgpu-display-change-pipe-policy-for-dcn-2.1.patch [new file with mode: 0644]
queue-5.15/drm-amdgpu-don-t-use-baco-for-reset-in-s3.patch [new file with mode: 0644]
queue-5.15/drm-amdgpu-smu10-fix-soc-fclk-units-in-auto-mode.patch [new file with mode: 0644]
queue-5.15/drm-amdgpu-vcn-fix-the-register-setting-for-vcn1.patch [new file with mode: 0644]
queue-5.15/drm-amdkfd-create-file-descriptor-after-client-is-added-to-smi_clients-list.patch [new file with mode: 0644]
queue-5.15/drm-nouveau-pmu-add-missing-callbacks-for-tegra-devices.patch [new file with mode: 0644]
queue-5.15/drm-panel-ili9341-fix-optional-regulator-handling.patch [new file with mode: 0644]
queue-5.15/series

diff --git a/queue-5.15/drm-amdgpu-display-change-pipe-policy-for-dcn-2.1.patch b/queue-5.15/drm-amdgpu-display-change-pipe-policy-for-dcn-2.1.patch
new file mode 100644 (file)
index 0000000..78eed0f
--- /dev/null
@@ -0,0 +1,32 @@
+From 879791ad8bf3dc5453061cad74776a617b6e3319 Mon Sep 17 00:00:00 2001
+From: Benjamin Marty <info@benjaminmarty.ch>
+Date: Wed, 23 Mar 2022 22:08:26 +0100
+Subject: drm/amdgpu/display: change pipe policy for DCN 2.1
+
+From: Benjamin Marty <info@benjaminmarty.ch>
+
+commit 879791ad8bf3dc5453061cad74776a617b6e3319 upstream.
+
+Fixes crash on MST Hub disconnect.
+
+Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1849
+Fixes: ee2698cf79cc ("drm/amd/display: Changed pipe split policy to allow for multi-display pipe split")
+Signed-off-by: Benjamin Marty <info@benjaminmarty.ch>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
++++ b/drivers/gpu/drm/amd/display/dc/dcn21/dcn21_resource.c
+@@ -874,7 +874,7 @@ static const struct dc_debug_options deb
+               .clock_trace = true,
+               .disable_pplib_clock_request = true,
+               .min_disp_clk_khz = 100000,
+-              .pipe_split_policy = MPC_SPLIT_DYNAMIC,
++              .pipe_split_policy = MPC_SPLIT_AVOID_MULT_DISP,
+               .force_single_disp_pipe_split = false,
+               .disable_dcc = DCC_ENABLE,
+               .vsr_support = true,
diff --git a/queue-5.15/drm-amdgpu-don-t-use-baco-for-reset-in-s3.patch b/queue-5.15/drm-amdgpu-don-t-use-baco-for-reset-in-s3.patch
new file mode 100644 (file)
index 0000000..85ebc97
--- /dev/null
@@ -0,0 +1,42 @@
+From ebc002e3ee78409c42156e62e4e27ad1d09c5a75 Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Fri, 25 Mar 2022 11:53:39 -0400
+Subject: drm/amdgpu: don't use BACO for reset in S3
+
+From: Alex Deucher <alexander.deucher@amd.com>
+
+commit ebc002e3ee78409c42156e62e4e27ad1d09c5a75 upstream.
+
+Seems to cause a reboots or hangs on some systems.
+
+Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1924
+Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1953
+Fixes: daf8de0874ab5b ("drm/amdgpu: always reset the asic in suspend (v2)")
+Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/amd/pm/amdgpu_dpm.c |   11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+--- a/drivers/gpu/drm/amd/pm/amdgpu_dpm.c
++++ b/drivers/gpu/drm/amd/pm/amdgpu_dpm.c
+@@ -1045,6 +1045,17 @@ bool amdgpu_dpm_is_baco_supported(struct
+       if (!pp_funcs || !pp_funcs->get_asic_baco_capability)
+               return false;
++      /* Don't use baco for reset in S3.
++       * This is a workaround for some platforms
++       * where entering BACO during suspend
++       * seems to cause reboots or hangs.
++       * This might be related to the fact that BACO controls
++       * power to the whole GPU including devices like audio and USB.
++       * Powering down/up everything may adversely affect these other
++       * devices.  Needs more investigation.
++       */
++      if (adev->in_s3)
++              return false;
+       if (pp_funcs->get_asic_baco_capability(pp_handle, &baco_cap))
+               return false;
diff --git a/queue-5.15/drm-amdgpu-smu10-fix-soc-fclk-units-in-auto-mode.patch b/queue-5.15/drm-amdgpu-smu10-fix-soc-fclk-units-in-auto-mode.patch
new file mode 100644 (file)
index 0000000..c46fb4e
--- /dev/null
@@ -0,0 +1,54 @@
+From 2f25d8ce09b7ba5d769c132ba3d4eb84a941d2cb Mon Sep 17 00:00:00 2001
+From: Alex Deucher <alexander.deucher@amd.com>
+Date: Fri, 1 Apr 2022 11:08:48 -0400
+Subject: drm/amdgpu/smu10: fix SoC/fclk units in auto mode
+
+From: Alex Deucher <alexander.deucher@amd.com>
+
+commit 2f25d8ce09b7ba5d769c132ba3d4eb84a941d2cb upstream.
+
+SMU takes clock limits in Mhz units.  socclk and fclk were
+using 10 khz units in some cases.  Switch to Mhz units.
+Fixes higher than required SoC clocks.
+
+Fixes: 97cf32996c46d9 ("drm/amd/pm: Removed fixed clock in auto mode DPM")
+Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu10_hwmgr.c |    8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu10_hwmgr.c
++++ b/drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu10_hwmgr.c
+@@ -773,13 +773,13 @@ static int smu10_dpm_force_dpm_level(str
+               smum_send_msg_to_smc_with_parameter(hwmgr,
+                                               PPSMC_MSG_SetHardMinFclkByFreq,
+                                               hwmgr->display_config->num_display > 3 ?
+-                                              data->clock_vol_info.vdd_dep_on_fclk->entries[0].clk :
++                                              (data->clock_vol_info.vdd_dep_on_fclk->entries[0].clk / 100) :
+                                               min_mclk,
+                                               NULL);
+               smum_send_msg_to_smc_with_parameter(hwmgr,
+                                               PPSMC_MSG_SetHardMinSocclkByFreq,
+-                                              data->clock_vol_info.vdd_dep_on_socclk->entries[0].clk,
++                                              data->clock_vol_info.vdd_dep_on_socclk->entries[0].clk / 100,
+                                               NULL);
+               smum_send_msg_to_smc_with_parameter(hwmgr,
+                                               PPSMC_MSG_SetHardMinVcn,
+@@ -792,11 +792,11 @@ static int smu10_dpm_force_dpm_level(str
+                                               NULL);
+               smum_send_msg_to_smc_with_parameter(hwmgr,
+                                               PPSMC_MSG_SetSoftMaxFclkByFreq,
+-                                              data->clock_vol_info.vdd_dep_on_fclk->entries[index_fclk].clk,
++                                              data->clock_vol_info.vdd_dep_on_fclk->entries[index_fclk].clk / 100,
+                                               NULL);
+               smum_send_msg_to_smc_with_parameter(hwmgr,
+                                               PPSMC_MSG_SetSoftMaxSocclkByFreq,
+-                                              data->clock_vol_info.vdd_dep_on_socclk->entries[index_socclk].clk,
++                                              data->clock_vol_info.vdd_dep_on_socclk->entries[index_socclk].clk / 100,
+                                               NULL);
+               smum_send_msg_to_smc_with_parameter(hwmgr,
+                                               PPSMC_MSG_SetSoftMaxVcn,
diff --git a/queue-5.15/drm-amdgpu-vcn-fix-the-register-setting-for-vcn1.patch b/queue-5.15/drm-amdgpu-vcn-fix-the-register-setting-for-vcn1.patch
new file mode 100644 (file)
index 0000000..7821659
--- /dev/null
@@ -0,0 +1,34 @@
+From 02fc996d5098f4c3f65bdf6cdb6b28e3f29ba789 Mon Sep 17 00:00:00 2001
+From: Emily Deng <Emily.Deng@amd.com>
+Date: Mon, 21 Mar 2022 16:25:24 +0800
+Subject: drm/amdgpu/vcn: Fix the register setting for vcn1
+
+From: Emily Deng <Emily.Deng@amd.com>
+
+commit 02fc996d5098f4c3f65bdf6cdb6b28e3f29ba789 upstream.
+
+Correct the code error for setting register UVD_GFX10_ADDR_CONFIG.
+Need to use inst_idx, or it only will set VCN0.
+
+Signed-off-by: Emily Deng <Emily.Deng@amd.com>
+Reviewed-by: James Zhu <James.Zhu@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c
++++ b/drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c
+@@ -601,8 +601,8 @@ static void vcn_v3_0_mc_resume_dpg_mode(
+                       AMDGPU_GPU_PAGE_ALIGN(sizeof(struct amdgpu_fw_shared)), 0, indirect);
+       /* VCN global tiling registers */
+-      WREG32_SOC15_DPG_MODE(0, SOC15_DPG_MODE_OFFSET(
+-              UVD, 0, mmUVD_GFX10_ADDR_CONFIG), adev->gfx.config.gb_addr_config, 0, indirect);
++      WREG32_SOC15_DPG_MODE(inst_idx, SOC15_DPG_MODE_OFFSET(
++              UVD, inst_idx, mmUVD_GFX10_ADDR_CONFIG), adev->gfx.config.gb_addr_config, 0, indirect);
+ }
+ static void vcn_v3_0_disable_static_power_gating(struct amdgpu_device *adev, int inst)
diff --git a/queue-5.15/drm-amdkfd-create-file-descriptor-after-client-is-added-to-smi_clients-list.patch b/queue-5.15/drm-amdkfd-create-file-descriptor-after-client-is-added-to-smi_clients-list.patch
new file mode 100644 (file)
index 0000000..886bffa
--- /dev/null
@@ -0,0 +1,73 @@
+From e79a2398e1b2d47060474dca291542368183bc0f Mon Sep 17 00:00:00 2001
+From: Lee Jones <lee.jones@linaro.org>
+Date: Thu, 31 Mar 2022 13:21:17 +0100
+Subject: drm/amdkfd: Create file descriptor after client is added to smi_clients list
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Lee Jones <lee.jones@linaro.org>
+
+commit e79a2398e1b2d47060474dca291542368183bc0f upstream.
+
+This ensures userspace cannot prematurely clean-up the client before
+it is fully initialised which has been proven to cause issues in the
+past.
+
+Cc: Felix Kuehling <Felix.Kuehling@amd.com>
+Cc: Alex Deucher <alexander.deucher@amd.com>
+Cc: "Christian König" <christian.koenig@amd.com>
+Cc: "Pan, Xinhui" <Xinhui.Pan@amd.com>
+Cc: David Airlie <airlied@linux.ie>
+Cc: Daniel Vetter <daniel@ffwll.ch>
+Cc: amd-gfx@lists.freedesktop.org
+Cc: dri-devel@lists.freedesktop.org
+Signed-off-by: Lee Jones <lee.jones@linaro.org>
+Reviewed-by: Felix Kuehling <Felix.Kuehling@amd.com>
+Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+Cc: stable@vger.kernel.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c |   24 +++++++++++++++---------
+ 1 file changed, 15 insertions(+), 9 deletions(-)
+
+--- a/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
++++ b/drivers/gpu/drm/amd/amdkfd/kfd_smi_events.c
+@@ -270,15 +270,6 @@ int kfd_smi_event_open(struct kfd_dev *d
+               return ret;
+       }
+-      ret = anon_inode_getfd(kfd_smi_name, &kfd_smi_ev_fops, (void *)client,
+-                             O_RDWR);
+-      if (ret < 0) {
+-              kfifo_free(&client->fifo);
+-              kfree(client);
+-              return ret;
+-      }
+-      *fd = ret;
+-
+       init_waitqueue_head(&client->wait_queue);
+       spin_lock_init(&client->lock);
+       client->events = 0;
+@@ -288,5 +279,20 @@ int kfd_smi_event_open(struct kfd_dev *d
+       list_add_rcu(&client->list, &dev->smi_clients);
+       spin_unlock(&dev->smi_lock);
++      ret = anon_inode_getfd(kfd_smi_name, &kfd_smi_ev_fops, (void *)client,
++                             O_RDWR);
++      if (ret < 0) {
++              spin_lock(&dev->smi_lock);
++              list_del_rcu(&client->list);
++              spin_unlock(&dev->smi_lock);
++
++              synchronize_rcu();
++
++              kfifo_free(&client->fifo);
++              kfree(client);
++              return ret;
++      }
++      *fd = ret;
++
+       return 0;
+ }
diff --git a/queue-5.15/drm-nouveau-pmu-add-missing-callbacks-for-tegra-devices.patch b/queue-5.15/drm-nouveau-pmu-add-missing-callbacks-for-tegra-devices.patch
new file mode 100644 (file)
index 0000000..505ad6b
--- /dev/null
@@ -0,0 +1,69 @@
+From 38d4e5cf5b08798f093374e53c2f4609d5382dd5 Mon Sep 17 00:00:00 2001
+From: Karol Herbst <kherbst@redhat.com>
+Date: Tue, 22 Mar 2022 13:48:00 +0100
+Subject: drm/nouveau/pmu: Add missing callbacks for Tegra devices
+
+From: Karol Herbst <kherbst@redhat.com>
+
+commit 38d4e5cf5b08798f093374e53c2f4609d5382dd5 upstream.
+
+Fixes a crash booting on those platforms with nouveau.
+
+Fixes: 4cdd2450bf73 ("drm/nouveau/pmu/gm200-: use alternate falcon reset sequence")
+Cc: Ben Skeggs <bskeggs@redhat.com>
+Cc: Karol Herbst <kherbst@redhat.com>
+Cc: dri-devel@lists.freedesktop.org
+Cc: nouveau@lists.freedesktop.org
+Cc: <stable@vger.kernel.org> # v5.17+
+Signed-off-by: Karol Herbst <kherbst@redhat.com>
+Reviewed-by: Lyude Paul <lyude@redhat.com>
+Link: https://patchwork.freedesktop.org/patch/msgid/20220322124800.2605463-1-kherbst@redhat.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm20b.c |    1 +
+ drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gp102.c |    2 +-
+ drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gp10b.c |    1 +
+ drivers/gpu/drm/nouveau/nvkm/subdev/pmu/priv.h  |    1 +
+ 4 files changed, 4 insertions(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm20b.c
++++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gm20b.c
+@@ -216,6 +216,7 @@ gm20b_pmu = {
+       .intr = gt215_pmu_intr,
+       .recv = gm20b_pmu_recv,
+       .initmsg = gm20b_pmu_initmsg,
++      .reset = gf100_pmu_reset,
+ };
+ #if IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC)
+--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gp102.c
++++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gp102.c
+@@ -23,7 +23,7 @@
+  */
+ #include "priv.h"
+-static void
++void
+ gp102_pmu_reset(struct nvkm_pmu *pmu)
+ {
+       struct nvkm_device *device = pmu->subdev.device;
+--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gp10b.c
++++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/gp10b.c
+@@ -83,6 +83,7 @@ gp10b_pmu = {
+       .intr = gt215_pmu_intr,
+       .recv = gm20b_pmu_recv,
+       .initmsg = gm20b_pmu_initmsg,
++      .reset = gp102_pmu_reset,
+ };
+ #if IS_ENABLED(CONFIG_ARCH_TEGRA_210_SOC)
+--- a/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/priv.h
++++ b/drivers/gpu/drm/nouveau/nvkm/subdev/pmu/priv.h
+@@ -41,6 +41,7 @@ int gt215_pmu_send(struct nvkm_pmu *, u3
+ bool gf100_pmu_enabled(struct nvkm_pmu *);
+ void gf100_pmu_reset(struct nvkm_pmu *);
++void gp102_pmu_reset(struct nvkm_pmu *pmu);
+ void gk110_pmu_pgob(struct nvkm_pmu *, bool);
diff --git a/queue-5.15/drm-panel-ili9341-fix-optional-regulator-handling.patch b/queue-5.15/drm-panel-ili9341-fix-optional-regulator-handling.patch
new file mode 100644 (file)
index 0000000..052a23f
--- /dev/null
@@ -0,0 +1,37 @@
+From d14eb80e27795b7b20060f7b151cdfe39722a813 Mon Sep 17 00:00:00 2001
+From: Daniel Mack <daniel@zonque.org>
+Date: Thu, 17 Mar 2022 23:55:37 +0100
+Subject: drm/panel: ili9341: fix optional regulator handling
+
+From: Daniel Mack <daniel@zonque.org>
+
+commit d14eb80e27795b7b20060f7b151cdfe39722a813 upstream.
+
+If the optional regulator lookup fails, reset the pointer to NULL.
+Other functions such as mipi_dbi_poweron_reset_conditional() only do
+a NULL pointer check and will otherwise dereference the error pointer.
+
+Fixes: 5a04227326b04c15 ("drm/panel: Add ilitek ili9341 panel driver")
+Signed-off-by: Daniel Mack <daniel@zonque.org>
+Cc: stable@vger.kernel.org
+Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
+Link: https://patchwork.freedesktop.org/patch/msgid/20220317225537.826302-1-daniel@zonque.org
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/gpu/drm/panel/panel-ilitek-ili9341.c |    4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
++++ b/drivers/gpu/drm/panel/panel-ilitek-ili9341.c
+@@ -612,8 +612,10 @@ static int ili9341_dbi_probe(struct spi_
+       int ret;
+       vcc = devm_regulator_get_optional(dev, "vcc");
+-      if (IS_ERR(vcc))
++      if (IS_ERR(vcc)) {
+               dev_err(dev, "get optional vcc failed\n");
++              vcc = NULL;
++      }
+       dbidev = devm_drm_dev_alloc(dev, &ili9341_dbi_driver,
+                                   struct mipi_dbi_dev, drm);
index 28b61483c3cb5592faf99aa124dbbdabdc0682ab..04edb811b92446b8de4a5e9cfdca7f297cdb2b8b 100644 (file)
@@ -238,3 +238,10 @@ irqchip-gic-v3-fix-gicr_ctlr.rwp-polling.patch
 fbdev-fix-unregistering-of-framebuffers-without-device.patch
 amd-display-set-backlight-only-if-required.patch
 sunrpc-prevent-immediate-close-reconnect.patch
+drm-panel-ili9341-fix-optional-regulator-handling.patch
+drm-amdgpu-display-change-pipe-policy-for-dcn-2.1.patch
+drm-amdgpu-smu10-fix-soc-fclk-units-in-auto-mode.patch
+drm-amdgpu-vcn-fix-the-register-setting-for-vcn1.patch
+drm-nouveau-pmu-add-missing-callbacks-for-tegra-devices.patch
+drm-amdkfd-create-file-descriptor-after-client-is-added-to-smi_clients-list.patch
+drm-amdgpu-don-t-use-baco-for-reset-in-s3.patch