| From e9a4099a59cc598a44006059dd775c25e422b772 Mon Sep 17 00:00:00 2001 |
| From: Alex Deucher <alexdeucher@gmail.com> |
| Date: Tue, 15 Apr 2014 12:44:34 -0400 |
| Subject: drm/radeon: fix ATPX detection on non-VGA GPUs |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| From: Alex Deucher <alexdeucher@gmail.com> |
| |
| commit e9a4099a59cc598a44006059dd775c25e422b772 upstream. |
| |
| Some newer PX laptops have the pci device class |
| set to DISPLAY_OTHER rather than DISPLAY_VGA. This |
| properly detects ATPX on those laptops. |
| |
| Based on a patch from: Pali Rohรกr <pali.rohar@gmail.com> |
| |
| Signed-off-by: Alex Deucher <alexander.deucher@amd.com> |
| Cc: airlied@gmail.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/gpu/drm/radeon/radeon_atpx_handler.c | 7 +++++++ |
| 1 file changed, 7 insertions(+) |
| |
| --- a/drivers/gpu/drm/radeon/radeon_atpx_handler.c |
| +++ b/drivers/gpu/drm/radeon/radeon_atpx_handler.c |
| @@ -523,6 +523,13 @@ static bool radeon_atpx_detect(void) |
| has_atpx |= (radeon_atpx_pci_probe_handle(pdev) == true); |
| } |
| |
| + /* some newer PX laptops mark the dGPU as a non-VGA display device */ |
| + while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_OTHER << 8, pdev)) != NULL) { |
| + vga_count++; |
| + |
| + has_atpx |= (radeon_atpx_pci_probe_handle(pdev) == true); |
| + } |
| + |
| if (has_atpx && vga_count == 2) { |
| acpi_get_name(radeon_atpx_priv.atpx.handle, ACPI_FULL_PATHNAME, &buffer); |
| printk(KERN_INFO "VGA switcheroo: detected switching method %s handle\n", |