From: Greg Kroah-Hartman Date: Thu, 4 Nov 2021 09:20:31 +0000 (+0100) Subject: 5.15-stable patches X-Git-Tag: v4.19.216~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=09950004cef650a7fac9cb09f3948b76ec46a9a3;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: arm-9120-1-revert-amba-make-use-of-1-irqs-warn.patch drm-amd-display-revert-directly-retrain-link-from-debugfs.patch drm-amdgpu-revert-add-autodump-debugfs-node-for-gpu-reset-v8.patch revert-drm-i915-gt-propagate-change-in-error-status-to-children-on-unhold.patch revert-soc-imx-gpcv2-move-reset-assert-after-requesting-domain-power-up.patch revert-wcn36xx-disable-bmps-when-encryption-is-disabled.patch --- diff --git a/queue-5.15/arm-9120-1-revert-amba-make-use-of-1-irqs-warn.patch b/queue-5.15/arm-9120-1-revert-amba-make-use-of-1-irqs-warn.patch new file mode 100644 index 00000000000..85c54e6ff55 --- /dev/null +++ b/queue-5.15/arm-9120-1-revert-amba-make-use-of-1-irqs-warn.patch @@ -0,0 +1,42 @@ +From eb4f756915875b0ea0757751cd29841f0504d547 Mon Sep 17 00:00:00 2001 +From: Wang Kefeng +Date: Mon, 23 Aug 2021 10:41:42 +0100 +Subject: ARM: 9120/1: Revert "amba: make use of -1 IRQs warn" + +From: Wang Kefeng + +commit eb4f756915875b0ea0757751cd29841f0504d547 upstream. + +After commit 77a7300abad7 ("of/irq: Get rid of NO_IRQ usage"), +no irq case has been removed, irq_of_parse_and_map() will return +0 in all cases when get error from parse and map an interrupt into +linux virq space. + +amba_device_register() is only used on no-DT initialization, see + s3c64xx_pl080_init() arch/arm/mach-s3c/pl080.c + ep93xx_init_devices() arch/arm/mach-ep93xx/core.c + +They won't set -1 to irq[0], so no need the warn. + +This reverts commit 2eac58d5026e4ec8b17ff8b62877fea9e1d2f1b3. + +Reviewed-by: Rob Herring +Signed-off-by: Kefeng Wang +Signed-off-by: Russell King (Oracle) +Signed-off-by: Greg Kroah-Hartman +--- + drivers/amba/bus.c | 3 --- + 1 file changed, 3 deletions(-) + +--- a/drivers/amba/bus.c ++++ b/drivers/amba/bus.c +@@ -377,9 +377,6 @@ static int amba_device_try_add(struct am + void __iomem *tmp; + int i, ret; + +- WARN_ON(dev->irq[0] == (unsigned int)-1); +- WARN_ON(dev->irq[1] == (unsigned int)-1); +- + ret = request_resource(parent, &dev->res); + if (ret) + goto err_out; diff --git a/queue-5.15/drm-amd-display-revert-directly-retrain-link-from-debugfs.patch b/queue-5.15/drm-amd-display-revert-directly-retrain-link-from-debugfs.patch new file mode 100644 index 00000000000..8ecf543a1d5 --- /dev/null +++ b/queue-5.15/drm-amd-display-revert-directly-retrain-link-from-debugfs.patch @@ -0,0 +1,43 @@ +From 1131cadfd7563975f3a4efcc6f7c1fdc872db38b Mon Sep 17 00:00:00 2001 +From: Anson Jacob +Date: Tue, 24 Aug 2021 09:32:53 -0400 +Subject: drm/amd/display: Revert "Directly retrain link from debugfs" + +From: Anson Jacob + +commit 1131cadfd7563975f3a4efcc6f7c1fdc872db38b upstream. + +This reverts commit f5b6a20c7ef40599095c796b0500d842ffdbc639. + +This patch broke new settings from taking effect. Hotplug is +required for new settings to take effect. + +Reviewed-by: Mikita Lipski +Acked-by: Mikita Lipski +Signed-off-by: Anson Jacob +Tested-by: Daniel Wheeler +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman +--- + drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c ++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_debugfs.c +@@ -247,6 +247,7 @@ static ssize_t dp_link_settings_write(st + { + struct amdgpu_dm_connector *connector = file_inode(f)->i_private; + struct dc_link *link = connector->dc_link; ++ struct dc *dc = (struct dc *)link->dc; + struct dc_link_settings prefer_link_settings; + char *wr_buf = NULL; + const uint32_t wr_buf_size = 40; +@@ -313,7 +314,7 @@ static ssize_t dp_link_settings_write(st + prefer_link_settings.lane_count = param[0]; + prefer_link_settings.link_rate = param[1]; + +- dp_retrain_link_dp_test(link, &prefer_link_settings, false); ++ dc_link_set_preferred_training_settings(dc, &prefer_link_settings, NULL, link, true); + + kfree(wr_buf); + return size; diff --git a/queue-5.15/drm-amdgpu-revert-add-autodump-debugfs-node-for-gpu-reset-v8.patch b/queue-5.15/drm-amdgpu-revert-add-autodump-debugfs-node-for-gpu-reset-v8.patch new file mode 100644 index 00000000000..162217c0197 --- /dev/null +++ b/queue-5.15/drm-amdgpu-revert-add-autodump-debugfs-node-for-gpu-reset-v8.patch @@ -0,0 +1,179 @@ +From c8365dbda056578eebe164bf110816b1a39b4b7f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= +Date: Thu, 30 Sep 2021 11:22:51 +0200 +Subject: drm/amdgpu: revert "Add autodump debugfs node for gpu reset v8" +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +From: Christian König + +commit c8365dbda056578eebe164bf110816b1a39b4b7f upstream. + +This reverts commit 728e7e0cd61899208e924472b9e641dbeb0775c4. + +Further discussion reveals that this feature is severely broken +and needs to be reverted ASAP. + +GPU reset can never be delayed by userspace even for debugging or +otherwise we can run into in kernel deadlocks. + +Signed-off-by: Christian König +Acked-by: Alex Deucher +Acked-by: Nirmoy Das +Signed-off-by: Alex Deucher +Signed-off-by: Greg Kroah-Hartman +--- + drivers/gpu/drm/amd/amdgpu/amdgpu.h | 2 + drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c | 80 ---------------------------- + drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.h | 5 - + drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 4 - + 4 files changed, 91 deletions(-) + +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h +@@ -1078,8 +1078,6 @@ struct amdgpu_device { + char product_name[32]; + char serial[20]; + +- struct amdgpu_autodump autodump; +- + atomic_t throttling_logging_enabled; + struct ratelimit_state throttling_logging_rs; + uint32_t ras_hw_enabled; +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.c +@@ -27,7 +27,6 @@ + #include + #include + #include +-#include + + #include "amdgpu.h" + #include "amdgpu_pm.h" +@@ -37,86 +36,8 @@ + #include "amdgpu_securedisplay.h" + #include "amdgpu_fw_attestation.h" + +-int amdgpu_debugfs_wait_dump(struct amdgpu_device *adev) +-{ +-#if defined(CONFIG_DEBUG_FS) +- unsigned long timeout = 600 * HZ; +- int ret; +- +- wake_up_interruptible(&adev->autodump.gpu_hang); +- +- ret = wait_for_completion_interruptible_timeout(&adev->autodump.dumping, timeout); +- if (ret == 0) { +- pr_err("autodump: timeout, move on to gpu recovery\n"); +- return -ETIMEDOUT; +- } +-#endif +- return 0; +-} +- + #if defined(CONFIG_DEBUG_FS) + +-static int amdgpu_debugfs_autodump_open(struct inode *inode, struct file *file) +-{ +- struct amdgpu_device *adev = inode->i_private; +- int ret; +- +- file->private_data = adev; +- +- ret = down_read_killable(&adev->reset_sem); +- if (ret) +- return ret; +- +- if (adev->autodump.dumping.done) { +- reinit_completion(&adev->autodump.dumping); +- ret = 0; +- } else { +- ret = -EBUSY; +- } +- +- up_read(&adev->reset_sem); +- +- return ret; +-} +- +-static int amdgpu_debugfs_autodump_release(struct inode *inode, struct file *file) +-{ +- struct amdgpu_device *adev = file->private_data; +- +- complete_all(&adev->autodump.dumping); +- return 0; +-} +- +-static unsigned int amdgpu_debugfs_autodump_poll(struct file *file, struct poll_table_struct *poll_table) +-{ +- struct amdgpu_device *adev = file->private_data; +- +- poll_wait(file, &adev->autodump.gpu_hang, poll_table); +- +- if (amdgpu_in_reset(adev)) +- return POLLIN | POLLRDNORM | POLLWRNORM; +- +- return 0; +-} +- +-static const struct file_operations autodump_debug_fops = { +- .owner = THIS_MODULE, +- .open = amdgpu_debugfs_autodump_open, +- .poll = amdgpu_debugfs_autodump_poll, +- .release = amdgpu_debugfs_autodump_release, +-}; +- +-static void amdgpu_debugfs_autodump_init(struct amdgpu_device *adev) +-{ +- init_completion(&adev->autodump.dumping); +- complete_all(&adev->autodump.dumping); +- init_waitqueue_head(&adev->autodump.gpu_hang); +- +- debugfs_create_file("amdgpu_autodump", 0600, +- adev_to_drm(adev)->primary->debugfs_root, +- adev, &autodump_debug_fops); +-} +- + /** + * amdgpu_debugfs_process_reg_op - Handle MMIO register reads/writes + * +@@ -1588,7 +1509,6 @@ int amdgpu_debugfs_init(struct amdgpu_de + } + + amdgpu_ras_debugfs_create_all(adev); +- amdgpu_debugfs_autodump_init(adev); + amdgpu_rap_debugfs_init(adev); + amdgpu_securedisplay_debugfs_init(adev); + amdgpu_fw_attestation_debugfs_init(adev); +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.h ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_debugfs.h +@@ -26,10 +26,6 @@ + /* + * Debugfs + */ +-struct amdgpu_autodump { +- struct completion dumping; +- struct wait_queue_head gpu_hang; +-}; + + int amdgpu_debugfs_regs_init(struct amdgpu_device *adev); + int amdgpu_debugfs_init(struct amdgpu_device *adev); +@@ -37,4 +33,3 @@ void amdgpu_debugfs_fini(struct amdgpu_d + void amdgpu_debugfs_fence_init(struct amdgpu_device *adev); + void amdgpu_debugfs_firmware_init(struct amdgpu_device *adev); + void amdgpu_debugfs_gem_init(struct amdgpu_device *adev); +-int amdgpu_debugfs_wait_dump(struct amdgpu_device *adev); +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +@@ -4462,10 +4462,6 @@ int amdgpu_device_pre_asic_reset(struct + if (reset_context->reset_req_dev == adev) + job = reset_context->job; + +- /* no need to dump if device is not in good state during probe period */ +- if (!adev->gmc.xgmi.pending_reset) +- amdgpu_debugfs_wait_dump(adev); +- + if (amdgpu_sriov_vf(adev)) { + /* stop the data exchange thread */ + amdgpu_virt_fini_data_exchange(adev); diff --git a/queue-5.15/revert-drm-i915-gt-propagate-change-in-error-status-to-children-on-unhold.patch b/queue-5.15/revert-drm-i915-gt-propagate-change-in-error-status-to-children-on-unhold.patch new file mode 100644 index 00000000000..5068d4a6c02 --- /dev/null +++ b/queue-5.15/revert-drm-i915-gt-propagate-change-in-error-status-to-children-on-unhold.patch @@ -0,0 +1,53 @@ +From ac653dd7996edf1770959e11a078312928bd7315 Mon Sep 17 00:00:00 2001 +From: Matthew Brost +Date: Thu, 9 Sep 2021 09:47:28 -0700 +Subject: Revert "drm/i915/gt: Propagate change in error status to children on unhold" + +From: Matthew Brost + +commit ac653dd7996edf1770959e11a078312928bd7315 upstream. + +Propagating errors to dependent fences is broken and can lead to errors +from one client ending up in another. In commit 3761baae908a ("Revert +"drm/i915: Propagate errors on awaiting already signaled fences""), we +attempted to get rid of fence error propagation but missed the case +added in commit 8e9f84cf5cac ("drm/i915/gt: Propagate change in error +status to children on unhold"). Revert that one too. This error was +found by an up-and-coming selftest which triggers a reset during +request cancellation and verifies that subsequent requests complete +successfully. + +v2: + (Daniel Vetter) + - Use revert +v3: + (Jason) + - Update commit message + +v4 (Daniele): + - fix checkpatch error in commit message. + +References: '3761baae908a ("Revert "drm/i915: Propagate errors on awaiting already signaled fences"")' +Signed-off-by: Matthew Brost +Signed-off-by: Daniele Ceraolo Spurio +Reviewed-by: Daniel Vetter +Signed-off-by: John Harrison +Link: https://patchwork.freedesktop.org/patch/msgid/20210909164744.31249-8-matthew.brost@intel.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/gpu/drm/i915/gt/intel_execlists_submission.c | 4 ---- + 1 file changed, 4 deletions(-) + +--- a/drivers/gpu/drm/i915/gt/intel_execlists_submission.c ++++ b/drivers/gpu/drm/i915/gt/intel_execlists_submission.c +@@ -2140,10 +2140,6 @@ static void __execlists_unhold(struct i9 + if (p->flags & I915_DEPENDENCY_WEAK) + continue; + +- /* Propagate any change in error status */ +- if (rq->fence.error) +- i915_request_set_error_once(w, rq->fence.error); +- + if (w->engine != rq->engine) + continue; + diff --git a/queue-5.15/revert-soc-imx-gpcv2-move-reset-assert-after-requesting-domain-power-up.patch b/queue-5.15/revert-soc-imx-gpcv2-move-reset-assert-after-requesting-domain-power-up.patch new file mode 100644 index 00000000000..baaea0b56b6 --- /dev/null +++ b/queue-5.15/revert-soc-imx-gpcv2-move-reset-assert-after-requesting-domain-power-up.patch @@ -0,0 +1,45 @@ +From 2b2f106eb55276a60a89ac27a52d0d738b57a546 Mon Sep 17 00:00:00 2001 +From: Lucas Stach +Date: Sat, 2 Oct 2021 02:59:37 +0200 +Subject: Revert "soc: imx: gpcv2: move reset assert after requesting domain power up" + +From: Lucas Stach + +commit 2b2f106eb55276a60a89ac27a52d0d738b57a546 upstream. + +This reverts commit a77ebdd9f553. It turns out that the VPU domain has no +different requirements, even though the downstream ATF implementation seems +to suggest otherwise. Powering on the domain with the reset asserted works +fine. As the changed sequence has caused sporadic issues with the GPU +domains, just revert the change to go back to the working sequence. + +Cc: # 5.14 +Signed-off-by: Lucas Stach +Acked-by: Peng Fan +Tested-by: Adam Ford #imx8mm-beacon +Signed-off-by: Shawn Guo +Signed-off-by: Greg Kroah-Hartman +--- + drivers/soc/imx/gpcv2.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/drivers/soc/imx/gpcv2.c ++++ b/drivers/soc/imx/gpcv2.c +@@ -244,6 +244,8 @@ static int imx_pgc_power_up(struct gener + goto out_regulator_disable; + } + ++ reset_control_assert(domain->reset); ++ + if (domain->bits.pxx) { + /* request the domain to power up */ + regmap_update_bits(domain->regmap, GPC_PU_PGC_SW_PUP_REQ, +@@ -266,8 +268,6 @@ static int imx_pgc_power_up(struct gener + GPC_PGC_CTRL_PCR); + } + +- reset_control_assert(domain->reset); +- + /* delay for reset to propagate */ + udelay(5); + diff --git a/queue-5.15/revert-wcn36xx-disable-bmps-when-encryption-is-disabled.patch b/queue-5.15/revert-wcn36xx-disable-bmps-when-encryption-is-disabled.patch new file mode 100644 index 00000000000..86aa4bba1dc --- /dev/null +++ b/queue-5.15/revert-wcn36xx-disable-bmps-when-encryption-is-disabled.patch @@ -0,0 +1,74 @@ +From 285bb1738e196507bf985574d0bc1e9dd72d46b1 Mon Sep 17 00:00:00 2001 +From: Bryan O'Donoghue +Date: Fri, 22 Oct 2021 15:04:47 +0100 +Subject: Revert "wcn36xx: Disable bmps when encryption is disabled" + +From: Bryan O'Donoghue + +commit 285bb1738e196507bf985574d0bc1e9dd72d46b1 upstream. + +This reverts commit c6522a5076e1a65877c51cfee313a74ef61cabf8. + +Testing on tip-of-tree shows that this is working now. Revert this and +re-enable BMPS for Open APs. + +Signed-off-by: Bryan O'Donoghue +Signed-off-by: Kalle Valo +Link: https://lore.kernel.org/r/20211022140447.2846248-3-bryan.odonoghue@linaro.org +Signed-off-by: Greg Kroah-Hartman +--- + drivers/net/wireless/ath/wcn36xx/main.c | 10 ---------- + drivers/net/wireless/ath/wcn36xx/pmc.c | 5 +---- + drivers/net/wireless/ath/wcn36xx/wcn36xx.h | 1 - + 3 files changed, 1 insertion(+), 15 deletions(-) + +--- a/drivers/net/wireless/ath/wcn36xx/main.c ++++ b/drivers/net/wireless/ath/wcn36xx/main.c +@@ -604,15 +604,6 @@ static int wcn36xx_set_key(struct ieee80 + } + } + } +- /* FIXME: Only enable bmps support when encryption is enabled. +- * For any reasons, when connected to open/no-security BSS, +- * the wcn36xx controller in bmps mode does not forward +- * 'wake-up' beacons despite AP sends DTIM with station AID. +- * It could be due to a firmware issue or to the way driver +- * configure the station. +- */ +- if (vif->type == NL80211_IFTYPE_STATION) +- vif_priv->allow_bmps = true; + break; + case DISABLE_KEY: + if (!(IEEE80211_KEY_FLAG_PAIRWISE & key_conf->flags)) { +@@ -913,7 +904,6 @@ static void wcn36xx_bss_info_changed(str + vif->addr, + bss_conf->aid); + vif_priv->sta_assoc = false; +- vif_priv->allow_bmps = false; + wcn36xx_smd_set_link_st(wcn, + bss_conf->bssid, + vif->addr, +--- a/drivers/net/wireless/ath/wcn36xx/pmc.c ++++ b/drivers/net/wireless/ath/wcn36xx/pmc.c +@@ -23,10 +23,7 @@ int wcn36xx_pmc_enter_bmps_state(struct + { + int ret = 0; + struct wcn36xx_vif *vif_priv = wcn36xx_vif_to_priv(vif); +- +- if (!vif_priv->allow_bmps) +- return -ENOTSUPP; +- ++ /* TODO: Make sure the TX chain clean */ + ret = wcn36xx_smd_enter_bmps(wcn, vif); + if (!ret) { + wcn36xx_dbg(WCN36XX_DBG_PMC, "Entered BMPS\n"); +--- a/drivers/net/wireless/ath/wcn36xx/wcn36xx.h ++++ b/drivers/net/wireless/ath/wcn36xx/wcn36xx.h +@@ -128,7 +128,6 @@ struct wcn36xx_vif { + enum wcn36xx_hal_bss_type bss_type; + + /* Power management */ +- bool allow_bmps; + enum wcn36xx_power_state pw_state; + + u8 bss_index; diff --git a/queue-5.15/series b/queue-5.15/series index b7e31698fc0..59eddc5c2e4 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -3,3 +3,9 @@ media-firewire-firedtv-avc-fix-a-buffer-overflow-in-avc_ca_pmt.patch revert-xhci-set-hcd-flag-to-defer-primary-roothub-registration.patch revert-usb-core-hcd-add-support-for-deferring-roothub.patch drm-amdkfd-fix-boot-failure-when-iommu-is-disabled-in-picasso.patch +revert-soc-imx-gpcv2-move-reset-assert-after-requesting-domain-power-up.patch +arm-9120-1-revert-amba-make-use-of-1-irqs-warn.patch +revert-wcn36xx-disable-bmps-when-encryption-is-disabled.patch +drm-amdgpu-revert-add-autodump-debugfs-node-for-gpu-reset-v8.patch +drm-amd-display-revert-directly-retrain-link-from-debugfs.patch +revert-drm-i915-gt-propagate-change-in-error-status-to-children-on-unhold.patch