aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZhang Rui <rui.zhang@intel.com>2007-09-13 23:46:22 -0400
committerLen Brown <len.brown@intel.com>2007-09-18 13:37:49 -0400
commita21101c46ca5b4320e31408853cdcbf7cb1ce4ed (patch)
tree1a0015c8a8eea64d976c627471067079cf8db4bd
parentc2f828977ba5d17c13debba374ea252d18e5ccfb (diff)
ACPI: video: _DOS=0 by default to prevent hotkey hang
In the past, the Linux/ACPI video driver invoked _DOS (Display Output Switch) with the parameter 1 to tell the BIOS to switch the video output display for us. But this conflicts with Linux native graphics drivers, and can cause all sorts of issues, including hanging the system. http://bugzilla.kernel.org/show_bug.cgi?id=6001 Here we change the Linux default to evaluate _DOS=0, which tells the BIOS to simply send us a hotkey event and not touch the graphics hardware. The acpi video driver sends the display switch hotkey event up through the intput layer, and X can interpret that and use its native graphics driver to switch the display. For the case where Linux has no native graphics driver running, or the graphics driver doesn't know how to switch video and the BIOS (safely) does, the previous behaviour can be restored with: # echo 1 > /proc/acpi/video/*/DOS Signed-off-by: Zhang Rui <rui.zhang@intel.com> Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r--drivers/acpi/video.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 3c9bb85a6a93..6cb3e7b12145 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -1754,7 +1754,7 @@ static int acpi_video_bus_put_devices(struct acpi_video_bus *video)
1754 1754
1755static int acpi_video_bus_start_devices(struct acpi_video_bus *video) 1755static int acpi_video_bus_start_devices(struct acpi_video_bus *video)
1756{ 1756{
1757 return acpi_video_bus_DOS(video, 1, 0); 1757 return acpi_video_bus_DOS(video, 0, 0);
1758} 1758}
1759 1759
1760static int acpi_video_bus_stop_devices(struct acpi_video_bus *video) 1760static int acpi_video_bus_stop_devices(struct acpi_video_bus *video)