intel_extrme: Better tracing, note when dp no-link

This commit is contained in:
Alexander von Gluck IV
2016-02-23 17:50:39 -06:00
parent 721ba9af43
commit 236a3e937a
2 changed files with 16 additions and 2 deletions
@@ -271,6 +271,8 @@ AnalogPort::AnalogPort()
bool bool
AnalogPort::IsConnected() AnalogPort::IsConnected()
{ {
TRACE("%s: %s PortRegister: 0x%" B_PRIxADDR "\n", __func__, PortName(),
_PortRegister());
return HasEDID(); return HasEDID();
} }
@@ -355,6 +357,9 @@ LVDSPort::LVDSPort()
bool bool
LVDSPort::IsConnected() LVDSPort::IsConnected()
{ {
TRACE("%s: %s PortRegister: 0x%" B_PRIxADDR "\n", __func__, PortName(),
_PortRegister());
// Older generations don't have LVDS detection. If not mobile skip. // Older generations don't have LVDS detection. If not mobile skip.
if (gInfo->shared_info->device_type.Generation() <= 4) { if (gInfo->shared_info->device_type.Generation() <= 4) {
if (!gInfo->shared_info->device_type.IsMobile()) { if (!gInfo->shared_info->device_type.IsMobile()) {
@@ -686,6 +691,9 @@ DigitalPort::DigitalPort(port_index index, const char* baseName)
bool bool
DigitalPort::IsConnected() DigitalPort::IsConnected()
{ {
TRACE("%s: %s PortRegister: 0x%" B_PRIxADDR "\n", __func__, PortName(),
_PortRegister());
// As this port overlaps with pretty much everything, this must be called // As this port overlaps with pretty much everything, this must be called
// after having ruled out all other port types. // after having ruled out all other port types.
return HasEDID(); return HasEDID();
@@ -843,11 +851,17 @@ bool
DisplayPort::IsConnected() DisplayPort::IsConnected()
{ {
addr_t portRegister = _PortRegister(); addr_t portRegister = _PortRegister();
TRACE("%s: %s PortRegister: 0x%" B_PRIxADDR "\n", __func__, PortName(),
portRegister);
if (portRegister == 0) if (portRegister == 0)
return false; return false;
if ((read32(portRegister) & DISPLAY_MONITOR_PORT_DETECTED) == 0) if ((read32(portRegister) & DISPLAY_MONITOR_PORT_DETECTED) == 0) {
TRACE("%s: %s link not detected\n", __func__, PortName());
return false; return false;
}
return HasEDID(); return HasEDID();
} }
@@ -295,7 +295,7 @@ probe_ports()
TRACE("lvds: %08" B_PRIx32 "\n", read32(INTEL_DIGITAL_LVDS_PORT)); TRACE("lvds: %08" B_PRIx32 "\n", read32(INTEL_DIGITAL_LVDS_PORT));
gInfo->port_count = 0; gInfo->port_count = 0;
for (int i = INTEL_PORT_B; i <= INTEL_PORT_D; i++) { for (int i = INTEL_PORT_A; i <= INTEL_PORT_D; i++) {
Port* displayPort = new(std::nothrow) DisplayPort((port_index)i); Port* displayPort = new(std::nothrow) DisplayPort((port_index)i);
if (displayPort == NULL) if (displayPort == NULL)
return B_NO_MEMORY; return B_NO_MEMORY;