← Back to team overview

hybrid-graphics-linux team mailing list archive

Reenabling discrete ATI card for fglrx

 

Hello.

Sorry for english and PCI\ACPI knowledge :)

I have Acer TimelineX 3820TG with switchable graphics: Core i5 + ATI
HD5650 with Gentoo Linux installed on it. Everything works fine,
including powering off discreete card by vga_switcheroo or acpi_call.
I want to use intel+fglrx, not intel+radeon. But can't reenable
discrete ATI card without reboot. I tried: with acpi_call 'echo
"\_SB.PCI0.P0P2.PEGP._OFF" > /proc/acpi/call' then 'echo
"\_SB.PCI0.P0P2.PEGP._ON" > /proc/acpi/call' takes me to blank screen.
With vgaswitcheroo I can reenable discreete card, but can't rmmod
radeon, cause it's in use, obviously radeon and fglrx conflicts.

Then I modified vgaswitcheroo routines not to powering off previous active card:

--- /usr/src/linux/drivers/gpu/vga/vga_switcheroo.c     2011-05-31
05:38:05.809999874 +0700
+++ /usr/src/linux/drivers/gpu/vga/vga_switcheroo.c.new 2011-05-31
14:00:21.103139923 +0700
@@ -273,8 +273,8 @@
        if (new_client->reprobe)
                new_client->reprobe(new_client->pdev);

-       if (active->pwr_state == VGA_SWITCHEROO_ON)
-               vga_switchoff(active);
+/*     if (active->pwr_state == VGA_SWITCHEROO_ON)
+               vga_switchoff(active); */

        new_client->active = true;
        return 0;

now I can reenable ATI card once, switch to integrated and remove
radeon module :) but only once, then i have oops:

### bash ###
echo "\_SB.PCI0.P0P2.PEGP._OFF" > /proc/acpi/call
# on integrated

modprobe radeon
echo DDIS > /sys/kernel/debug/vgaswitcheroo/switch
echo DIGD > /sys/kernel/debug/vgaswitcheroo/switch
rmmod radeon                       # HERE on second iteration kernel make oops
modprobe fglrx

# Yay, discreete again

### end bash ###

Thank you!


Follow ups