[Bug 75401] New: vgaswtitcheroo 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
Sat May 3 10:26:49 PDT 2014


            Bug ID: 75401
           Summary: vgaswtitcheroo doesn't work for AMD Radeon 8870m
                    (possibly due to "wrong" PCI class)
           Product: Drivers
           Version: 2.5
    Kernel Version: 3.11.10
          Hardware: All
                OS: Linux
              Tree: Mainline
            Status: NEW
          Severity: low
          Priority: P1
         Component: Video(DRI - non Intel)
          Assignee: drivers_video-dri at kernel-bugs.osdl.org
          Reporter: drill87 at gmail.com
        Regression: No

I've got Samsung 870Z5E notebook equipped with AMD Radeon 8870m video card (and
Intel HD 4000 graphics). I always failed to use vgaswitcheroo to disable the
discrete card -- there wasn't even its entry in debugfs. 

After a little investigetion of radeon module's source code I found, that the
problem happens, possibly, due to "unusual" PCI class of my Radeon 8870m.
According to command "lspci -nn" Radeon 8870m has PCI class id 0380, which is
corresponds to PCI_CLASS_DISPLAY_OTHER (in pci_ids.h). On the other hand, when
radeon module check number of videocards, it excepts them to have class
PCI_CLASS_DISPLAY_VGA (0300). Thus module concludes that I have only 1
videocard (Intel HD, which has 0300 class id) and decides, that there's no need
for vgaswitcheroo to be initialized.

I tried to edit radeon kernel module by adding additional checks for
PCI_CLASS_DISPLAY_OTHER class id (in 2 places). After that vgaswitcheroo
started to work -- the entry appeared in debugfs and I could disable the
discrete graphics card. Though I'm not sure if everything went right because I
failed to use radeon card for actual rendering through DRI PRIME even in the
newest kernel stable version (3.14.2) -- X server crashes even if I try to
issues glxinfo command.

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

More information about the dri-devel mailing list