Commit cc998589 authored by Jani Nikula's avatar Jani Nikula

drm/i915/bios: throw away high level child device union

All the child device config fields, including legacy, are now available
in the same struct, so use it for everything.

As this change touches plenty of code with "p_child", rename them to
"child" while at it. Also do some simple unification and constification
where not intrusive. This in the name of avoiding extra cleanup churn
for the same lines as here.

No functional changes.

Cc: Animesh Manna <animesh.manna@intel.com>
Cc: Paulo Zanoni <paulo.r.zanoni@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/103300a9ae8629624619fc8df2c533e745cc5a78.1503600621.git.jani.nikula@intel.com
parent 56f304e9
...@@ -1723,7 +1723,7 @@ struct intel_vbt_data { ...@@ -1723,7 +1723,7 @@ struct intel_vbt_data {
int crt_ddc_pin; int crt_ddc_pin;
int child_dev_num; int child_dev_num;
union child_device_config *child_dev; struct child_device_config *child_dev;
struct ddi_vbt_port_info ddi_port_info[I915_MAX_PORTS]; struct ddi_vbt_port_info ddi_port_info[I915_MAX_PORTS];
struct sdvo_device_mapping sdvo_mappings[2]; struct sdvo_device_mapping sdvo_mappings[2];
......
...@@ -452,7 +452,7 @@ parse_general_definitions(struct drm_i915_private *dev_priv, ...@@ -452,7 +452,7 @@ parse_general_definitions(struct drm_i915_private *dev_priv,
} }
} }
static const union child_device_config * static const struct child_device_config *
child_device_ptr(const struct bdb_general_definitions *p_defs, int i) child_device_ptr(const struct bdb_general_definitions *p_defs, int i)
{ {
return (const void *) &p_defs->devices[i * p_defs->child_dev_size]; return (const void *) &p_defs->devices[i * p_defs->child_dev_size];
...@@ -464,7 +464,7 @@ parse_sdvo_device_mapping(struct drm_i915_private *dev_priv, ...@@ -464,7 +464,7 @@ parse_sdvo_device_mapping(struct drm_i915_private *dev_priv,
{ {
struct sdvo_device_mapping *p_mapping; struct sdvo_device_mapping *p_mapping;
const struct bdb_general_definitions *p_defs; const struct bdb_general_definitions *p_defs;
const struct old_child_dev_config *child; /* legacy */ const struct child_device_config *child;
int i, child_device_num, count; int i, child_device_num, count;
u16 block_size; u16 block_size;
...@@ -479,7 +479,7 @@ parse_sdvo_device_mapping(struct drm_i915_private *dev_priv, ...@@ -479,7 +479,7 @@ parse_sdvo_device_mapping(struct drm_i915_private *dev_priv,
* device size matches that of the *legacy* child device config * device size matches that of the *legacy* child device config
* struct. Thus, SDVO mapping will be skipped for newer VBT. * struct. Thus, SDVO mapping will be skipped for newer VBT.
*/ */
if (p_defs->child_dev_size != sizeof(*child)) { if (p_defs->child_dev_size != sizeof(struct old_child_dev_config)) {
DRM_DEBUG_KMS("Unsupported child device size for SDVO mapping.\n"); DRM_DEBUG_KMS("Unsupported child device size for SDVO mapping.\n");
return; return;
} }
...@@ -490,7 +490,7 @@ parse_sdvo_device_mapping(struct drm_i915_private *dev_priv, ...@@ -490,7 +490,7 @@ parse_sdvo_device_mapping(struct drm_i915_private *dev_priv,
p_defs->child_dev_size; p_defs->child_dev_size;
count = 0; count = 0;
for (i = 0; i < child_device_num; i++) { for (i = 0; i < child_device_num; i++) {
child = &child_device_ptr(p_defs, i)->old; child = child_device_ptr(p_defs, i);
if (!child->device_type) { if (!child->device_type) {
/* skip the device block if device type is invalid */ /* skip the device block if device type is invalid */
continue; continue;
...@@ -1113,7 +1113,7 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv, ...@@ -1113,7 +1113,7 @@ static void sanitize_aux_ch(struct drm_i915_private *dev_priv,
static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port, static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
const struct bdb_header *bdb) const struct bdb_header *bdb)
{ {
union child_device_config *it, *child = NULL; struct child_device_config *it, *child = NULL;
struct ddi_vbt_port_info *info = &dev_priv->vbt.ddi_port_info[port]; struct ddi_vbt_port_info *info = &dev_priv->vbt.ddi_port_info[port];
uint8_t hdmi_level_shift; uint8_t hdmi_level_shift;
int i, j; int i, j;
...@@ -1141,7 +1141,7 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port, ...@@ -1141,7 +1141,7 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
if (dvo_ports[port][j] == -1) if (dvo_ports[port][j] == -1)
break; break;
if (it->common.dvo_port == dvo_ports[port][j]) { if (it->dvo_port == dvo_ports[port][j]) {
if (child) { if (child) {
DRM_DEBUG_KMS("More than one child device for port %c in VBT, using the first.\n", DRM_DEBUG_KMS("More than one child device for port %c in VBT, using the first.\n",
port_name(port)); port_name(port));
...@@ -1154,14 +1154,14 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port, ...@@ -1154,14 +1154,14 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
if (!child) if (!child)
return; return;
aux_channel = child->common.aux_channel; aux_channel = child->aux_channel;
ddc_pin = child->common.ddc_pin; ddc_pin = child->ddc_pin;
is_dvi = child->common.device_type & DEVICE_TYPE_TMDS_DVI_SIGNALING; is_dvi = child->device_type & DEVICE_TYPE_TMDS_DVI_SIGNALING;
is_dp = child->common.device_type & DEVICE_TYPE_DISPLAYPORT_OUTPUT; is_dp = child->device_type & DEVICE_TYPE_DISPLAYPORT_OUTPUT;
is_crt = child->common.device_type & DEVICE_TYPE_ANALOG_OUTPUT; is_crt = child->device_type & DEVICE_TYPE_ANALOG_OUTPUT;
is_hdmi = is_dvi && (child->common.device_type & DEVICE_TYPE_NOT_HDMI_OUTPUT) == 0; is_hdmi = is_dvi && (child->device_type & DEVICE_TYPE_NOT_HDMI_OUTPUT) == 0;
is_edp = is_dp && (child->common.device_type & DEVICE_TYPE_INTERNAL_CONNECTOR); is_edp = is_dp && (child->device_type & DEVICE_TYPE_INTERNAL_CONNECTOR);
info->supports_dvi = is_dvi; info->supports_dvi = is_dvi;
info->supports_hdmi = is_hdmi; info->supports_hdmi = is_hdmi;
...@@ -1210,7 +1210,7 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port, ...@@ -1210,7 +1210,7 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
if (bdb->version >= 158) { if (bdb->version >= 158) {
/* The VBT HDMI level shift values match the table we have. */ /* The VBT HDMI level shift values match the table we have. */
hdmi_level_shift = child->common.hdmi_level_shifter_value; hdmi_level_shift = child->hdmi_level_shifter_value;
DRM_DEBUG_KMS("VBT HDMI level shift for port %c: %d\n", DRM_DEBUG_KMS("VBT HDMI level shift for port %c: %d\n",
port_name(port), port_name(port),
hdmi_level_shift); hdmi_level_shift);
...@@ -1218,11 +1218,11 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port, ...@@ -1218,11 +1218,11 @@ static void parse_ddi_port(struct drm_i915_private *dev_priv, enum port port,
} }
/* Parse the I_boost config for SKL and above */ /* Parse the I_boost config for SKL and above */
if (bdb->version >= 196 && child->common.iboost) { if (bdb->version >= 196 && child->iboost) {
info->dp_boost_level = translate_iboost(child->common.iboost_level & 0xF); info->dp_boost_level = translate_iboost(child->iboost_level & 0xF);
DRM_DEBUG_KMS("VBT (e)DP boost level for port %c: %d\n", DRM_DEBUG_KMS("VBT (e)DP boost level for port %c: %d\n",
port_name(port), info->dp_boost_level); port_name(port), info->dp_boost_level);
info->hdmi_boost_level = translate_iboost(child->common.iboost_level >> 4); info->hdmi_boost_level = translate_iboost(child->iboost_level >> 4);
DRM_DEBUG_KMS("VBT HDMI boost level for port %c: %d\n", DRM_DEBUG_KMS("VBT HDMI boost level for port %c: %d\n",
port_name(port), info->hdmi_boost_level); port_name(port), info->hdmi_boost_level);
} }
...@@ -1251,8 +1251,8 @@ parse_device_mapping(struct drm_i915_private *dev_priv, ...@@ -1251,8 +1251,8 @@ parse_device_mapping(struct drm_i915_private *dev_priv,
const struct bdb_header *bdb) const struct bdb_header *bdb)
{ {
const struct bdb_general_definitions *p_defs; const struct bdb_general_definitions *p_defs;
const union child_device_config *p_child; const struct child_device_config *p_child;
union child_device_config *child_dev_ptr; struct child_device_config *child_dev_ptr;
int i, child_device_num, count; int i, child_device_num, count;
u8 expected_size; u8 expected_size;
u16 block_size; u16 block_size;
...@@ -1301,7 +1301,7 @@ parse_device_mapping(struct drm_i915_private *dev_priv, ...@@ -1301,7 +1301,7 @@ parse_device_mapping(struct drm_i915_private *dev_priv,
/* get the number of child device that is present */ /* get the number of child device that is present */
for (i = 0; i < child_device_num; i++) { for (i = 0; i < child_device_num; i++) {
p_child = child_device_ptr(p_defs, i); p_child = child_device_ptr(p_defs, i);
if (!p_child->common.device_type) { if (!p_child->device_type) {
/* skip the device block if device type is invalid */ /* skip the device block if device type is invalid */
continue; continue;
} }
...@@ -1321,7 +1321,7 @@ parse_device_mapping(struct drm_i915_private *dev_priv, ...@@ -1321,7 +1321,7 @@ parse_device_mapping(struct drm_i915_private *dev_priv,
count = 0; count = 0;
for (i = 0; i < child_device_num; i++) { for (i = 0; i < child_device_num; i++) {
p_child = child_device_ptr(p_defs, i); p_child = child_device_ptr(p_defs, i);
if (!p_child->common.device_type) { if (!p_child->device_type) {
/* skip the device block if device type is invalid */ /* skip the device block if device type is invalid */
continue; continue;
} }
...@@ -1343,12 +1343,12 @@ parse_device_mapping(struct drm_i915_private *dev_priv, ...@@ -1343,12 +1343,12 @@ parse_device_mapping(struct drm_i915_private *dev_priv,
*/ */
if (bdb->version < 196) { if (bdb->version < 196) {
/* Set default values for bits added from v196 */ /* Set default values for bits added from v196 */
child_dev_ptr->common.iboost = 0; child_dev_ptr->iboost = 0;
child_dev_ptr->common.hpd_invert = 0; child_dev_ptr->hpd_invert = 0;
} }
if (bdb->version < 192) if (bdb->version < 192)
child_dev_ptr->common.lspcon = 0; child_dev_ptr->lspcon = 0;
} }
return; return;
} }
...@@ -1559,7 +1559,7 @@ void intel_bios_init(struct drm_i915_private *dev_priv) ...@@ -1559,7 +1559,7 @@ void intel_bios_init(struct drm_i915_private *dev_priv)
*/ */
bool intel_bios_is_tv_present(struct drm_i915_private *dev_priv) bool intel_bios_is_tv_present(struct drm_i915_private *dev_priv)
{ {
union child_device_config *p_child; const struct child_device_config *child;
int i; int i;
if (!dev_priv->vbt.int_tv_support) if (!dev_priv->vbt.int_tv_support)
...@@ -1569,11 +1569,11 @@ bool intel_bios_is_tv_present(struct drm_i915_private *dev_priv) ...@@ -1569,11 +1569,11 @@ bool intel_bios_is_tv_present(struct drm_i915_private *dev_priv)
return true; return true;
for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { for (i = 0; i < dev_priv->vbt.child_dev_num; i++) {
p_child = dev_priv->vbt.child_dev + i; child = dev_priv->vbt.child_dev + i;
/* /*
* If the device type is not TV, continue. * If the device type is not TV, continue.
*/ */
switch (p_child->old.device_type) { switch (child->device_type) {
case DEVICE_TYPE_INT_TV: case DEVICE_TYPE_INT_TV:
case DEVICE_TYPE_TV: case DEVICE_TYPE_TV:
case DEVICE_TYPE_TV_SVIDEO_COMPOSITE: case DEVICE_TYPE_TV_SVIDEO_COMPOSITE:
...@@ -1584,7 +1584,7 @@ bool intel_bios_is_tv_present(struct drm_i915_private *dev_priv) ...@@ -1584,7 +1584,7 @@ bool intel_bios_is_tv_present(struct drm_i915_private *dev_priv)
/* Only when the addin_offset is non-zero, it is regarded /* Only when the addin_offset is non-zero, it is regarded
* as present. * as present.
*/ */
if (p_child->old.addin_offset) if (child->addin_offset)
return true; return true;
} }
...@@ -1601,14 +1601,14 @@ bool intel_bios_is_tv_present(struct drm_i915_private *dev_priv) ...@@ -1601,14 +1601,14 @@ bool intel_bios_is_tv_present(struct drm_i915_private *dev_priv)
*/ */
bool intel_bios_is_lvds_present(struct drm_i915_private *dev_priv, u8 *i2c_pin) bool intel_bios_is_lvds_present(struct drm_i915_private *dev_priv, u8 *i2c_pin)
{ {
const struct child_device_config *child;
int i; int i;
if (!dev_priv->vbt.child_dev_num) if (!dev_priv->vbt.child_dev_num)
return true; return true;
for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { for (i = 0; i < dev_priv->vbt.child_dev_num; i++) {
union child_device_config *uchild = dev_priv->vbt.child_dev + i; child = dev_priv->vbt.child_dev + i;
struct old_child_dev_config *child = &uchild->old;
/* If the device type is not LFP, continue. /* If the device type is not LFP, continue.
* We have to check both the new identifiers as well as the * We have to check both the new identifiers as well as the
...@@ -1650,6 +1650,7 @@ bool intel_bios_is_lvds_present(struct drm_i915_private *dev_priv, u8 *i2c_pin) ...@@ -1650,6 +1650,7 @@ bool intel_bios_is_lvds_present(struct drm_i915_private *dev_priv, u8 *i2c_pin)
*/ */
bool intel_bios_is_port_present(struct drm_i915_private *dev_priv, enum port port) bool intel_bios_is_port_present(struct drm_i915_private *dev_priv, enum port port)
{ {
const struct child_device_config *child;
static const struct { static const struct {
u16 dp, hdmi; u16 dp, hdmi;
} port_mapping[] = { } port_mapping[] = {
...@@ -1668,11 +1669,11 @@ bool intel_bios_is_port_present(struct drm_i915_private *dev_priv, enum port por ...@@ -1668,11 +1669,11 @@ bool intel_bios_is_port_present(struct drm_i915_private *dev_priv, enum port por
return false; return false;
for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { for (i = 0; i < dev_priv->vbt.child_dev_num; i++) {
const union child_device_config *p_child = child = dev_priv->vbt.child_dev + i;
&dev_priv->vbt.child_dev[i];
if ((p_child->common.dvo_port == port_mapping[port].dp || if ((child->dvo_port == port_mapping[port].dp ||
p_child->common.dvo_port == port_mapping[port].hdmi) && child->dvo_port == port_mapping[port].hdmi) &&
(p_child->common.device_type & (DEVICE_TYPE_TMDS_DVI_SIGNALING | (child->device_type & (DEVICE_TYPE_TMDS_DVI_SIGNALING |
DEVICE_TYPE_DISPLAYPORT_OUTPUT))) DEVICE_TYPE_DISPLAYPORT_OUTPUT)))
return true; return true;
} }
...@@ -1689,7 +1690,7 @@ bool intel_bios_is_port_present(struct drm_i915_private *dev_priv, enum port por ...@@ -1689,7 +1690,7 @@ bool intel_bios_is_port_present(struct drm_i915_private *dev_priv, enum port por
*/ */
bool intel_bios_is_port_edp(struct drm_i915_private *dev_priv, enum port port) bool intel_bios_is_port_edp(struct drm_i915_private *dev_priv, enum port port)
{ {
union child_device_config *p_child; const struct child_device_config *child;
static const short port_mapping[] = { static const short port_mapping[] = {
[PORT_B] = DVO_PORT_DPB, [PORT_B] = DVO_PORT_DPB,
[PORT_C] = DVO_PORT_DPC, [PORT_C] = DVO_PORT_DPC,
...@@ -1705,10 +1706,10 @@ bool intel_bios_is_port_edp(struct drm_i915_private *dev_priv, enum port port) ...@@ -1705,10 +1706,10 @@ bool intel_bios_is_port_edp(struct drm_i915_private *dev_priv, enum port port)
return false; return false;
for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { for (i = 0; i < dev_priv->vbt.child_dev_num; i++) {
p_child = dev_priv->vbt.child_dev + i; child = dev_priv->vbt.child_dev + i;
if (p_child->common.dvo_port == port_mapping[port] && if (child->dvo_port == port_mapping[port] &&
(p_child->common.device_type & DEVICE_TYPE_eDP_BITS) == (child->device_type & DEVICE_TYPE_eDP_BITS) ==
(DEVICE_TYPE_eDP & DEVICE_TYPE_eDP_BITS)) (DEVICE_TYPE_eDP & DEVICE_TYPE_eDP_BITS))
return true; return true;
} }
...@@ -1716,7 +1717,7 @@ bool intel_bios_is_port_edp(struct drm_i915_private *dev_priv, enum port port) ...@@ -1716,7 +1717,7 @@ bool intel_bios_is_port_edp(struct drm_i915_private *dev_priv, enum port port)
return false; return false;
} }
static bool child_dev_is_dp_dual_mode(const union child_device_config *p_child, static bool child_dev_is_dp_dual_mode(const struct child_device_config *child,
enum port port) enum port port)
{ {
static const struct { static const struct {
...@@ -1735,16 +1736,16 @@ static bool child_dev_is_dp_dual_mode(const union child_device_config *p_child, ...@@ -1735,16 +1736,16 @@ static bool child_dev_is_dp_dual_mode(const union child_device_config *p_child,
if (port == PORT_A || port >= ARRAY_SIZE(port_mapping)) if (port == PORT_A || port >= ARRAY_SIZE(port_mapping))
return false; return false;
if ((p_child->common.device_type & DEVICE_TYPE_DP_DUAL_MODE_BITS) != if ((child->device_type & DEVICE_TYPE_DP_DUAL_MODE_BITS) !=
(DEVICE_TYPE_DP_DUAL_MODE & DEVICE_TYPE_DP_DUAL_MODE_BITS)) (DEVICE_TYPE_DP_DUAL_MODE & DEVICE_TYPE_DP_DUAL_MODE_BITS))
return false; return false;
if (p_child->common.dvo_port == port_mapping[port].dp) if (child->dvo_port == port_mapping[port].dp)
return true; return true;
/* Only accept a HDMI dvo_port as DP++ if it has an AUX channel */ /* Only accept a HDMI dvo_port as DP++ if it has an AUX channel */
if (p_child->common.dvo_port == port_mapping[port].hdmi && if (child->dvo_port == port_mapping[port].hdmi &&
p_child->common.aux_channel != 0) child->aux_channel != 0)
return true; return true;
return false; return false;
...@@ -1753,13 +1754,13 @@ static bool child_dev_is_dp_dual_mode(const union child_device_config *p_child, ...@@ -1753,13 +1754,13 @@ static bool child_dev_is_dp_dual_mode(const union child_device_config *p_child,
bool intel_bios_is_port_dp_dual_mode(struct drm_i915_private *dev_priv, bool intel_bios_is_port_dp_dual_mode(struct drm_i915_private *dev_priv,
enum port port) enum port port)
{ {
const struct child_device_config *child;
int i; int i;
for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { for (i = 0; i < dev_priv->vbt.child_dev_num; i++) {
const union child_device_config *p_child = child = dev_priv->vbt.child_dev + i;
&dev_priv->vbt.child_dev[i];
if (child_dev_is_dp_dual_mode(p_child, port)) if (child_dev_is_dp_dual_mode(child, port))
return true; return true;
} }
...@@ -1776,17 +1777,17 @@ bool intel_bios_is_port_dp_dual_mode(struct drm_i915_private *dev_priv, ...@@ -1776,17 +1777,17 @@ bool intel_bios_is_port_dp_dual_mode(struct drm_i915_private *dev_priv,
bool intel_bios_is_dsi_present(struct drm_i915_private *dev_priv, bool intel_bios_is_dsi_present(struct drm_i915_private *dev_priv,
enum port *port) enum port *port)
{ {
union child_device_config *p_child; const struct child_device_config *child;
u8 dvo_port; u8 dvo_port;
int i; int i;
for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { for (i = 0; i < dev_priv->vbt.child_dev_num; i++) {
p_child = dev_priv->vbt.child_dev + i; child = dev_priv->vbt.child_dev + i;
if (!(p_child->common.device_type & DEVICE_TYPE_MIPI_OUTPUT)) if (!(child->device_type & DEVICE_TYPE_MIPI_OUTPUT))
continue; continue;
dvo_port = p_child->common.dvo_port; dvo_port = child->dvo_port;
switch (dvo_port) { switch (dvo_port) {
case DVO_PORT_MIPIA: case DVO_PORT_MIPIA:
...@@ -1816,16 +1817,19 @@ bool ...@@ -1816,16 +1817,19 @@ bool
intel_bios_is_port_hpd_inverted(struct drm_i915_private *dev_priv, intel_bios_is_port_hpd_inverted(struct drm_i915_private *dev_priv,
enum port port) enum port port)
{ {
const struct child_device_config *child;
int i; int i;
if (WARN_ON_ONCE(!IS_GEN9_LP(dev_priv))) if (WARN_ON_ONCE(!IS_GEN9_LP(dev_priv)))
return false; return false;
for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { for (i = 0; i < dev_priv->vbt.child_dev_num; i++) {
if (!dev_priv->vbt.child_dev[i].common.hpd_invert) child = dev_priv->vbt.child_dev + i;
if (!child->hpd_invert)
continue; continue;
switch (dev_priv->vbt.child_dev[i].common.dvo_port) { switch (child->dvo_port) {
case DVO_PORT_DPA: case DVO_PORT_DPA:
case DVO_PORT_HDMIA: case DVO_PORT_HDMIA:
if (port == PORT_A) if (port == PORT_A)
...@@ -1860,16 +1864,19 @@ bool ...@@ -1860,16 +1864,19 @@ bool
intel_bios_is_lspcon_present(struct drm_i915_private *dev_priv, intel_bios_is_lspcon_present(struct drm_i915_private *dev_priv,
enum port port) enum port port)
{ {
const struct child_device_config *child;
int i; int i;
if (!HAS_LSPCON(dev_priv)) if (!HAS_LSPCON(dev_priv))
return false; return false;
for (i = 0; i < dev_priv->vbt.child_dev_num; i++) { for (i = 0; i < dev_priv->vbt.child_dev_num; i++) {
if (!dev_priv->vbt.child_dev[i].common.lspcon) child = dev_priv->vbt.child_dev + i;
if (!child->lspcon)
continue; continue;
switch (dev_priv->vbt.child_dev[i].common.dvo_port) { switch (child->dvo_port) {
case DVO_PORT_DPA: case DVO_PORT_DPA:
case DVO_PORT_HDMIA: case DVO_PORT_HDMIA:
if (port == PORT_A) if (port == PORT_A)
......
...@@ -275,7 +275,7 @@ struct old_child_dev_config { ...@@ -275,7 +275,7 @@ struct old_child_dev_config {
* a baseline for some of the VBT documentation. When adding new fields, please * a baseline for some of the VBT documentation. When adding new fields, please
* include the BDB version when the field was added, if it's above that. * include the BDB version when the field was added, if it's above that.
*/ */
struct common_child_dev_config { struct child_device_config {
u16 handle; u16 handle;
u16 device_type; u16 device_type;
...@@ -347,17 +347,6 @@ struct common_child_dev_config { ...@@ -347,17 +347,6 @@ struct common_child_dev_config {
u8 iboost_level; u8 iboost_level;
} __packed; } __packed;
/* This field changes depending on the BDB version, so the most reliable way to
* read it is by checking the BDB version and reading the raw pointer. */
union child_device_config {
/* This one should only be kept for legacy code. */
struct old_child_dev_config old;
/* This one should also be safe to use anywhere, even without version
* checks. */
struct common_child_dev_config common;
} __packed;
struct bdb_general_definitions { struct bdb_general_definitions {
/* DDC GPIO */ /* DDC GPIO */
u8 crt_ddc_gmbus_pin; u8 crt_ddc_gmbus_pin;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment