for_each_port(port) {
info = &i915->vbt.ddi_port_info[port];
for_each_port(port) {
info = &i915->vbt.ddi_port_info[port];
- if (info->child && ddc_pin == info->alternate_ddc_pin)
+ if (info->devdata && ddc_pin == info->alternate_ddc_pin)
for_each_port(port) {
info = &i915->vbt.ddi_port_info[port];
for_each_port(port) {
info = &i915->vbt.ddi_port_info[port];
- if (info->child && aux_ch == info->alternate_aux_channel)
+ if (info->devdata && aux_ch == info->alternate_aux_channel)
info = &i915->vbt.ddi_port_info[port];
info = &i915->vbt.ddi_port_info[port];
drm_dbg_kms(&i915->drm,
"More than one child device for port %c in VBT, using the first.\n",
port_name(port));
drm_dbg_kms(&i915->drm,
"More than one child device for port %c in VBT, using the first.\n",
port_name(port));
port_name(port), info->dp_max_link_rate);
}
port_name(port), info->dp_max_link_rate);
}
+ info->devdata = devdata;
}
static void parse_ddi_ports(struct drm_i915_private *i915)
}
static void parse_ddi_ports(struct drm_i915_private *i915)
const struct ddi_vbt_port_info *port_info =
&i915->vbt.ddi_port_info[port];
const struct ddi_vbt_port_info *port_info =
&i915->vbt.ddi_port_info[port];
- return port_info->child;
+ return port_info->devdata;
}
/* FIXME maybe deal with port A as well? */
}
/* FIXME maybe deal with port A as well? */
intel_bios_is_port_hpd_inverted(const struct drm_i915_private *i915,
enum port port)
{
intel_bios_is_port_hpd_inverted(const struct drm_i915_private *i915,
enum port port)
{
- const struct child_device_config *child =
- i915->vbt.ddi_port_info[port].child;
+ const struct intel_bios_encoder_data *devdata =
+ i915->vbt.ddi_port_info[port].devdata;
if (drm_WARN_ON_ONCE(&i915->drm, !IS_GEN9_LP(i915)))
return false;
if (drm_WARN_ON_ONCE(&i915->drm, !IS_GEN9_LP(i915)))
return false;
- return child && child->hpd_invert;
+ return devdata && devdata->child.hpd_invert;
intel_bios_is_lspcon_present(const struct drm_i915_private *i915,
enum port port)
{
intel_bios_is_lspcon_present(const struct drm_i915_private *i915,
enum port port)
{
- const struct child_device_config *child =
- i915->vbt.ddi_port_info[port].child;
+ const struct intel_bios_encoder_data *devdata =
+ i915->vbt.ddi_port_info[port].devdata;
- return HAS_LSPCON(i915) && child && child->lspcon;
+ return HAS_LSPCON(i915) && devdata && devdata->child.lspcon;
intel_bios_is_lane_reversal_needed(const struct drm_i915_private *i915,
enum port port)
{
intel_bios_is_lane_reversal_needed(const struct drm_i915_private *i915,
enum port port)
{
- const struct child_device_config *child =
- i915->vbt.ddi_port_info[port].child;
+ const struct intel_bios_encoder_data *devdata =
+ i915->vbt.ddi_port_info[port].devdata;
- return child && child->lane_reversal;
+ return devdata && devdata->child.lane_reversal;
}
enum aux_ch intel_bios_port_aux_ch(struct drm_i915_private *i915,
}
enum aux_ch intel_bios_port_aux_ch(struct drm_i915_private *i915,
#include <linux/types.h>
struct drm_i915_private;
#include <linux/types.h>
struct drm_i915_private;
+struct intel_bios_encoder_data;
struct intel_crtc_state;
struct intel_encoder;
enum port;
struct intel_crtc_state;
struct intel_encoder;
enum port;
struct ddi_vbt_port_info {
/* Non-NULL if port present. */
struct ddi_vbt_port_info {
/* Non-NULL if port present. */
- const struct child_device_config *child;
+ const struct intel_bios_encoder_data *devdata;