1351,3 → 1351,42 |
|
return 0; |
} |
|
/** |
* intel_bios_is_port_present - is the specified digital port present |
* @dev_priv: i915 device instance |
* @port: port to check |
* |
* Return true if the device in %port is present. |
*/ |
bool intel_bios_is_port_present(struct drm_i915_private *dev_priv, enum port port) |
{ |
static const struct { |
u16 dp, hdmi; |
} port_mapping[] = { |
[PORT_B] = { DVO_PORT_DPB, DVO_PORT_HDMIB, }, |
[PORT_C] = { DVO_PORT_DPC, DVO_PORT_HDMIC, }, |
[PORT_D] = { DVO_PORT_DPD, DVO_PORT_HDMID, }, |
[PORT_E] = { DVO_PORT_DPE, DVO_PORT_HDMIE, }, |
}; |
int i; |
|
/* FIXME maybe deal with port A as well? */ |
if (WARN_ON(port == PORT_A) || port >= ARRAY_SIZE(port_mapping)) |
return false; |
|
if (!dev_priv->vbt.child_dev_num) |
return false; |
|
for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { |
const union child_device_config *p_child = |
&dev_priv->vbt.child_dev[i]; |
if ((p_child->common.dvo_port == port_mapping[port].dp || |
p_child->common.dvo_port == port_mapping[port].hdmi) && |
(p_child->common.device_type & (DEVICE_TYPE_TMDS_DVI_SIGNALING | |
DEVICE_TYPE_DISPLAYPORT_OUTPUT))) |
return true; |
} |
|
return false; |
} |