Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1537558
| From | Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 4.8 24/35] drm/amdgpu: fix check for port PM availability |
| Date | 2016-12-07 08:20 +0100 |
| Message-ID | <sLEGe-5pa-31@gated-at.bofh.it> (permalink) |
| References | <sLEwx-5hv-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
4.8-stable review patch. If anyone has any objections, please let me know.
------------------
From: Peter Wu <peter@lekensteyn.nl>
commit 7ac33e47d5769632010e537964c7e45498f8dc26 upstream.
The ATPX method does not always exist on the dGPU, it may be located at
the iGPU. The parent device of the iGPU is the root port for which
bridge_d3 is false. This accidentally enables the legacy PM method which
conflicts with port PM and prevented the dGPU from powering on.
Fixes: 1db4496f167b ("drm/amdgpu: fix power state when port pm is unavailable")
Reported-and-tested-by: Mike Lothian <mike@fireburn.co.uk>
Signed-off-by: Peter Wu <peter@lekensteyn.nl>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_atpx_handler.c
@@ -476,7 +476,6 @@ static int amdgpu_atpx_power_state(enum
*/
static bool amdgpu_atpx_pci_probe_handle(struct pci_dev *pdev)
{
- struct pci_dev *parent_pdev = pci_upstream_bridge(pdev);
acpi_handle dhandle, atpx_handle;
acpi_status status;
@@ -491,7 +490,6 @@ static bool amdgpu_atpx_pci_probe_handle
}
amdgpu_atpx_priv.dhandle = dhandle;
amdgpu_atpx_priv.atpx.handle = atpx_handle;
- amdgpu_atpx_priv.bridge_pm_usable = parent_pdev && parent_pdev->bridge_d3;
return true;
}
@@ -553,17 +551,25 @@ static bool amdgpu_atpx_detect(void)
struct pci_dev *pdev = NULL;
bool has_atpx = false;
int vga_count = 0;
+ bool d3_supported = false;
+ struct pci_dev *parent_pdev;
while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, pdev)) != NULL) {
vga_count++;
has_atpx |= (amdgpu_atpx_pci_probe_handle(pdev) == true);
+
+ parent_pdev = pci_upstream_bridge(pdev);
+ d3_supported |= parent_pdev && parent_pdev->bridge_d3;
}
while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_OTHER << 8, pdev)) != NULL) {
vga_count++;
has_atpx |= (amdgpu_atpx_pci_probe_handle(pdev) == true);
+
+ parent_pdev = pci_upstream_bridge(pdev);
+ d3_supported |= parent_pdev && parent_pdev->bridge_d3;
}
if (has_atpx && vga_count == 2) {
@@ -571,6 +577,7 @@ static bool amdgpu_atpx_detect(void)
printk(KERN_INFO "vga_switcheroo: detected switching method %s handle\n",
acpi_method_name);
amdgpu_atpx_priv.atpx_detected = true;
+ amdgpu_atpx_priv.bridge_pm_usable = d3_supported;
amdgpu_atpx_init();
return true;
}
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 4.8 00/35] 4.8.13-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:10 +0100
[PATCH 4.8 16/35] PCI: Export pcie_find_root_port Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:10 +0100
[PATCH 4.8 11/35] ovl: fix d_real() for stacked fs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:10 +0100
[PATCH 4.8 01/35] libata-scsi: Fixup ata_gen_passthru_sense() Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:10 +0100
[PATCH 4.8 25/35] drm/radeon: fix check for port PM availability Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:10 +0100
[PATCH 4.8 14/35] rcu: Fix soft lockup for rcu_nocb_kthread Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:10 +0100
[PATCH 4.8 21/35] drm/i915: drop the struct_mutex when wedged or trying to reset Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:10 +0100
[PATCH 4.8 02/35] scsi: hpsa: use bus 3 for legacy HBA devices Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:10 +0100
[PATCH 4.8 23/35] drm/radeon: fix power state when port pm is unavailable (v2) Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:10 +0100
[PATCH 4.8 26/35] arm64: dts: juno: fix cluster sleep state entry latency on all SoC versions Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:10 +0100
[PATCH 4.8 07/35] thp: fix corner case of munlock() of PTE-mapped THPs Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 10/35] mm: fix false-positive WARN_ON() in truncate/invalidate for hugetlb Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 29/35] drm/mediatek: fix null pointer dereference Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 08/35] zram: fix unbalanced idr management at hot removal Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 35/35] arm64: suspend: Reconfigure PSTATE after resume from idle Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 34/35] arm64: mm: Set PSTATE.PAN from the cpu_enable_pan() call Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 04/35] ARC: mm: PAE40: Fix crash at munmap Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 24/35] drm/amdgpu: fix check for port PM availability Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 20/35] drm/i915: Dont touch NULL sg on i915_gem_object_get_pages_gtt() error Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 05/35] ARC: Dont use "+l" inline asm constraint Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 12/35] Input: change KEY_DATA from 0x275 to 0x277 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 30/35] perf/x86: Restore TASK_SIZE check on frame pointer Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 28/35] pwm: Fix device reference leak Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 03/35] scsi: libfc: fix seconds_since_last_reset miscalculation Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 32/35] batman-adv: Detect missing primaryif during tp_send as error Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 33/35] arm64: cpufeature: Schedule enable() calls instead of calling them via IPI Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
[PATCH 4.8 09/35] kasan: update kasan_global for gcc 7 Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-07 08:20 +0100
Re: [PATCH 4.8 00/35] 4.8.13-stable review Guenter Roeck <linux@roeck-us.net> - 2016-12-07 17:10 +0100
Re: [PATCH 4.8 00/35] 4.8.13-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-08 17:30 +0100
Re: [PATCH 4.8 00/35] 4.8.13-stable review Shuah Khan <shuah.kh@samsung.com> - 2016-12-07 19:20 +0100
Re: [PATCH 4.8 00/35] 4.8.13-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-08 17:30 +0100
Re: [PATCH 4.8 00/35] 4.8.13-stable review Greg Kroah-Hartman <gregkh@linuxfoundation.org> - 2016-12-08 17:30 +0100
csiph-web