* The DPMS code tried to enable the LVDS panel already if a digital display

was detected; however, it should only do so when there is an actual LVDS panel
  detected.
* This should fix one part of ticket #3149 - looks like there are two different
  issues. Thanks to Robert J. Gebis for providing me remote access to his
  system.
* Minor debug output improvements.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36941 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler
2010-05-26 13:48:46 +00:00
parent 22b608696f
commit d7e91d9253
3 changed files with 8 additions and 7 deletions
@@ -1,5 +1,5 @@
/* /*
* Copyright 2006-2009, Haiku, Inc. All Rights Reserved. * Copyright 2006-2010, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Authors: * Authors:
@@ -214,7 +214,7 @@ intel_init_accelerant(int device)
gInfo->head_mode |= HEAD_MODE_LVDS_PANEL; gInfo->head_mode |= HEAD_MODE_LVDS_PANEL;
} }
TRACE(("head detected: %d\n", gInfo->head_mode)); TRACE(("head detected: %#x\n", gInfo->head_mode));
TRACE(("adpa: %08lx, dova: %08lx, dovb: %08lx, lvds: %08lx\n", TRACE(("adpa: %08lx, dova: %08lx, dovb: %08lx, lvds: %08lx\n",
read32(INTEL_DISPLAY_A_ANALOG_PORT), read32(INTEL_DISPLAY_A_ANALOG_PORT),
read32(INTEL_DISPLAY_A_DIGITAL_PORT), read32(INTEL_DISPLAY_A_DIGITAL_PORT),
@@ -1,5 +1,5 @@
/* /*
* Copyright 2006-2008, Haiku, Inc. All Rights Reserved. * Copyright 2006-2010, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Authors: * Authors:
@@ -76,7 +76,7 @@ enable_lvds_panel(bool enable)
{ {
uint32 control = read32(INTEL_PANEL_CONTROL); uint32 control = read32(INTEL_PANEL_CONTROL);
uint32 panelStatus; uint32 panelStatus;
if (enable) { if (enable) {
if ((control & PANEL_CONTROL_POWER_TARGET_ON) == 0) { if ((control & PANEL_CONTROL_POWER_TARGET_ON) == 0) {
write32(INTEL_PANEL_CONTROL, control write32(INTEL_PANEL_CONTROL, control
@@ -184,7 +184,7 @@ set_display_power_mode(uint32 mode)
spin(150); spin(150);
} }
if ((gInfo->head_mode & HEAD_MODE_B_DIGITAL) != 0) if ((gInfo->head_mode & HEAD_MODE_LVDS_PANEL) != 0)
enable_lvds_panel(mode == B_DPMS_ON); enable_lvds_panel(mode == B_DPMS_ON);
read32(INTEL_DISPLAY_A_BASE); read32(INTEL_DISPLAY_A_BASE);
@@ -1,5 +1,5 @@
/* /*
* Copyright 2006-2009, Haiku, Inc. All Rights Reserved. * Copyright 2006-2010, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License. * Distributed under the terms of the MIT License.
* *
* Support for i915 chipset and up based on the X driver, * Support for i915 chipset and up based on the X driver,
@@ -585,7 +585,8 @@ intel_propose_display_mode(display_mode *target, const display_mode *low,
status_t status_t
intel_set_display_mode(display_mode *mode) intel_set_display_mode(display_mode *mode)
{ {
TRACE(("intel_set_display_mode()\n")); TRACE(("intel_set_display_mode(%ldx%ld)\n", mode->virtual_width,
mode->virtual_height));
if (mode == NULL) if (mode == NULL)
return B_BAD_VALUE; return B_BAD_VALUE;