[Bug 75401] vgaswitcheroo doesn't work for AMD Radeon 8870m (possibly due to "wrong" PCI class)

bugzilla-daemon at bugzilla.kernel.org bugzilla-daemon at bugzilla.kernel.org
Sun May 18 13:02:45 PDT 2014


https://bugzilla.kernel.org/show_bug.cgi?id=75401

--- Comment #12 from Pali Rohár <pali.rohar at gmail.com> ---
@Alex Deucher: Why is this bug while loop needed?

static bool radeon_atrm_get_bios(struct radeon_device *rdev)
{
...
    while ((pdev = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8, pdev)) != NULL) {
        dhandle = ACPI_HANDLE(&pdev->dev);
        if (!dhandle)
            continue;

        status = acpi_get_handle(dhandle, "ATRM", &atrm_handle);
        if (!ACPI_FAILURE(status)) {
            found = true;
            break;
        }
    }
...

Is not correct to use ACPI_HANDLE directly, something like this (without while
loop)?

static bool radeon_atrm_get_bios(struct radeon_device *rdev)
{
...
    if (rdev->pdev)
        dhandle = ACPI_HANDLE(&rdev->pdev->dev);
...

This could also eliminate using PCI_CLASS_DISPLAY_VGA.

If I understood correctly, ATRM method is specific for AMD cards so searching
for ATRM method in all avalilable pci devices (which match class) is not
necessary.

-- 
You are receiving this mail because:
You are watching the assignee of the bug.


More information about the dri-devel mailing list