FAILED: patch "[PATCH] drm/amdgpu: disable runpm if we are the primary adapter" failed to apply to 5.15-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From b95dc06af3e683d6b7ddbbae178b2b2a21ee8b2b Mon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Wed, 22 Dec 2021 22:57:16 -0500
Subject: [PATCH] drm/amdgpu: disable runpm if we are the primary adapter
If we are the primary adapter (i.e., the one used by the firwmare framebuffer), disable runtime pm. This fixes a regression caused by commit 55285e21f045 which results in the displays waking up shortly after they go to sleep due to the device coming out of runtime suspend and sending a hotplug uevent.
v2: squash in reworked fix from Evan
drivers/gpu/drm/amd/amdgpu/amdgpu.h +1 -0
@@ -1077,6 +1077,7 @@ struct amdgpu_device {bool runpm;bool in_runpm;bool has_pr3; +bool is_fw_fb;bool pm_sysfs_en;bool ucode_sysfs_en;
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c +28 -0
@@ -39,6 +39,7 @@#include <linux/mmu_notifier.h> #include <linux/suspend.h> #include <linux/cc_platform.h> +#include <linux/fb.h> #include "amdgpu.h" #include "amdgpu_irq.h"
@@ -1890,6 +1891,26 @@ MODULE_DEVICE_TABLE(pci, pciidlist);static const struct drm_driver amdgpu_kms_driver; +static bool amdgpu_is_fw_framebuffer (resource_size_t base, +resource_size_t size) +{ +bool found = false; +#if IS_REACHABLE (CONFIG_FB ) +struct apertures_struct *a; + + a =alloc_apertures (1 ); +if (!a) +return false; + + a->ranges[0 ].base = base; + a->ranges[0 ].size = size; + + found =is_firmware_framebuffer (a); +kfree (a); +#endif +return found; +} +static int amdgpu_pci_probe (struct pci_dev *pdev,const struct pci_device_id *ent) {
@@ -1898,6 +1919,8 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,unsigned long flags = ent->driver_data;int ret, retry =0 , i;bool supports_atomic = false; +bool is_fw_fb; +resource_size_t base, size;/* skip devices which are owned by radeon */ for (i =0 ; i <ARRAY_SIZE (amdgpu_unsupported_pciidlist); i++) {
@@ -1966,6 +1989,10 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, }#endif + base =pci_resource_start (pdev,0 ); + size =pci_resource_len (pdev,0 ); + is_fw_fb =amdgpu_is_fw_framebuffer (base, size); +/* Get rid of things like offb */ ret =drm_aperture_remove_conflicting_pci_framebuffers (pdev, &amdgpu_kms_driver);if (ret)
@@ -1978,6 +2005,7 @@ static int amdgpu_pci_probe(struct pci_dev *pdev, adev->dev = &pdev->dev; adev->pdev = pdev; ddev =adev_to_drm (adev); + adev->is_fw_fb = is_fw_fb;if (!supports_atomic) ddev->driver_features &= ~DRIVER_ATOMIC ;
drivers/gpu/drm/amd/amdgpu/amdgpu_kms.c +6 -0
@@ -206,6 +206,12 @@ int amdgpu_driver_load_kms(struct amdgpu_device *adev, unsigned long flags) adev->runpm = true;break ; } +/* XXX: disable runtime pm if we are the primary adapter +* to avoid displays being re-enabled after DPMS. +* This needs to be sorted out and fixed properly. +*/ +if (adev->is_fw_fb) + adev->runpm = false;if (adev->runpm)dev_info (adev->dev,"Using BACO for runtime pm\n" ); }
Greg KH
maintainerQuoted 5 lines · On Sat, Jan 08, 2022 at 03:47:36PM +0100, [email protected] wrote:
The patch below does not apply to the 5.15-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Nevermind, there was a pre-requisite patch in the series that this one relied on. Next time please mark it as such so that it gives us a hint as to what is needed to do here.
thanks,
greg k-h