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
AnalogPort::IsConnected()
{
TRACE("%s: %s PortRegister: 0x%" B_PRIxADDR "\n", __func__, PortName(),
_PortRegister());
return HasEDID();
}
@@ -355,6 +357,9 @@ LVDSPort::LVDSPort()
bool
LVDSPort::IsConnected()
{
TRACE("%s: %s PortRegister: 0x%" B_PRIxADDR "\n", __func__, PortName(),
_PortRegister());
// 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.IsMobile()) {
@@ -686,6 +691,9 @@ DigitalPort::DigitalPort(port_index index, const char* baseName)
bool
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
// after having ruled out all other port types.
return HasEDID();
@@ -843,11 +851,17 @@ bool
DisplayPort::IsConnected()
{
addr_t portRegister = _PortRegister();
TRACE("%s: %s PortRegister: 0x%" B_PRIxADDR "\n", __func__, PortName(),
portRegister);
if (portRegister == 0)
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 HasEDID();
}
@@ -295,7 +295,7 @@ probe_ports()
TRACE("lvds: %08" B_PRIx32 "\n", read32(INTEL_DIGITAL_LVDS_PORT));
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);
if (displayPort == NULL)
return B_NO_MEMORY;