When I plug in my external TFT monitor while my X120e is in use, the laptop's internal LCD immediately goes dark - yet I don't have a picture on the TFT.
I first noticed this with kernel 3.0.0, this is fully reproducible also on 3.0.1. Since I did not remember this happening before, I tested with an older kernel (Ubuntu's 2.6.38, but should not make a difference), and indeed: with 2.6.38 the internal LCD stays on (which is the expected behavior).
The TFT is connected via a HDMI-to-DVI cable. Userspace is Xubuntu 11.04 with xorg-edgers PPA.
At a first glance, I do not see anything interesting in either dmesg or Xorg.log when this happens. Note: the machine does not hang, since I can still (blindly) launch a terminal and make the machine restart - for which I briefly get a picture on the LCD again after XOrg shutdown.
I am attaching lspci and a dmesg/Xorg.log below - please let me know if I can help with anything else (I can easily test kernel patches).
Created attachment 49992 [details]
lspci of Lenovo X120e
Created attachment 49993 [details]
dmesg (nothing interesting after HDMI insertion)
Created attachment 49994 [details]
Xorg.log (HDMI insertion happened just before 906.688)
Can you bisect? If I had to guess, it's probably one of the display rework patches added in 3.0. Does a VT switch help?
Sorry, I tried bisecting, but defconfig does not boot here.. and my normal config takes ages for a full rebuild.
Regarding VT switching: When I press Ctrl+Alt+F1 after plugging in I do get a picture again on the internal LCD.. when I then press Ctrl+Alt+F7 I am even properly back in X.
It's a bad interaction between modesetting and hotplug. I'm working on a patch.
Created attachment 50185 [details] [review]
This patch fixes the issue.
The patch works for me. If you still have issues, please reopen.
Sorry that it took a bit long, but I confirm this as being fixed. (Thanks!)
A patch referencing this bug report has been merged in Linux v3.1-rc3:
Author: Alex Deucher <email@example.com>
Date: Sat Aug 13 13:36:13 2011 -0400
drm/radeon/kms: don't try to be smart in the hpd handler