[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


--- 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)

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

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

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

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

More information about the dri-devel mailing list