If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

Vga switcheroo got borked lately (regression)

06-01-2010, 01:52 PM

Hi,

I've got a Lenovo U330 with Intel 4500MHD and Radeon 3450. I've been using kernels from the drm-radeon-testing branch for the extra radeon goodness of them. I used vga switcheroo to alter between the energy efficient Intel and HDMI-enabled Ati cards. It worked ok until kernel from 20100521.

My previous kernel was from 20100511. When I switch to the Intel card (I must do DDIS, to turn on the radeon card and later DINT to turn the Intel card on) I get a 100% CPu usage from kslowd000. If I try to switch cards once more I get a kernel freeze.

Comment

1. Get kernel 2.6.34
2. Compile it with CONFIG_VGA_SWITCHEROO=y
3. Load both i915 and radeon drivers
4. You should get /sys/kernel/debug/vgaswitcheroo/switch which shows the state of each card, which one is used and which one is powered on.
5. Delete your xorg.conf, you don't need it anymore
6. Use echo to set values of: OFF (turn off unused), DDIS (delated switch to discrete card), DINT (delayed switch to integrated card) to switch between cards.
7. Kill your xorg session to switch between cards.

I still get some glitches, though:
1. When I suspend using radeon, the internal LVDS screen comes back attached to the intel graphics card and is unusable. The HDMI connection (radeon only) works though. Suspending works great under intel card.https://bugzilla.kernel.org/show_bug.cgi?id=15850
2. A minor problem: I can't turn xorg when using intel after doing "OFF" to turn off the radeon card. I need to do "DDIS" followed "DINT" to turn on the radeon card. https://bugzilla.kernel.org/show_bug.cgi?id=15851

Comment

1. Get kernel 2.6.34
2. Compile it with CONFIG_VGA_SWITCHEROO=y
3. Load both i915 and radeon drivers
4. You should get /sys/kernel/debug/vgaswitcheroo/switch which shows the state of each card, which one is used and which one is powered on.
5. Delete your xorg.conf, you don't need it anymore
6. Use echo to set values of: OFF (turn off unused), DDIS (delated switch to discrete card), DINT (delayed switch to integrated card) to switch between cards.
7. Kill your xorg session to switch between cards.