Commit bf4d57ff authored by Madhav Chauhan's avatar Madhav Chauhan Committed by Jani Nikula

drm/i915/icl: Find DSI presence for ICL

This patch detects DSI presence for ICL platform
by reading VBT. DSI detection is done while initializing
DSI using newly added function intel_gen11_dsi_init.

v2 by Jani:
 - Preserve old behavour of intel_bios_is_dsi_present()
 - s/intel_gen11_dsi_init/icl_dsi_init/g
Signed-off-by: default avatarMadhav Chauhan <madhav.chauhan@intel.com>
Signed-off-by: default avatarJani Nikula <jani.nikula@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/2324cdfc8918bda3165354e5e0d15053b1074f14.1540900289.git.jani.nikula@intel.com
parent 808517e2
...@@ -971,3 +971,11 @@ static void __attribute__((unused)) gen11_dsi_disable( ...@@ -971,3 +971,11 @@ static void __attribute__((unused)) gen11_dsi_disable(
/* step4: disable IO power */ /* step4: disable IO power */
gen11_dsi_disable_io_power(encoder); gen11_dsi_disable_io_power(encoder);
} }
void icl_dsi_init(struct drm_i915_private *dev_priv)
{
enum port port;
if (!intel_bios_is_dsi_present(dev_priv, &port))
return;
}
...@@ -2039,17 +2039,17 @@ bool intel_bios_is_dsi_present(struct drm_i915_private *dev_priv, ...@@ -2039,17 +2039,17 @@ bool intel_bios_is_dsi_present(struct drm_i915_private *dev_priv,
dvo_port = child->dvo_port; dvo_port = child->dvo_port;
switch (dvo_port) { if (dvo_port == DVO_PORT_MIPIA ||
case DVO_PORT_MIPIA: (dvo_port == DVO_PORT_MIPIB && IS_ICELAKE(dev_priv)) ||
case DVO_PORT_MIPIC: (dvo_port == DVO_PORT_MIPIC && !IS_ICELAKE(dev_priv))) {
if (port) if (port)
*port = dvo_port - DVO_PORT_MIPIA; *port = dvo_port - DVO_PORT_MIPIA;
return true; return true;
case DVO_PORT_MIPIB: } else if (dvo_port == DVO_PORT_MIPIB ||
case DVO_PORT_MIPID: dvo_port == DVO_PORT_MIPIC ||
dvo_port == DVO_PORT_MIPID) {
DRM_DEBUG_KMS("VBT has unsupported DSI port %c\n", DRM_DEBUG_KMS("VBT has unsupported DSI port %c\n",
port_name(dvo_port - DVO_PORT_MIPIA)); port_name(dvo_port - DVO_PORT_MIPIA));
break;
} }
} }
......
...@@ -14128,6 +14128,7 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv) ...@@ -14128,6 +14128,7 @@ static void intel_setup_outputs(struct drm_i915_private *dev_priv)
intel_ddi_init(dev_priv, PORT_D); intel_ddi_init(dev_priv, PORT_D);
intel_ddi_init(dev_priv, PORT_E); intel_ddi_init(dev_priv, PORT_E);
intel_ddi_init(dev_priv, PORT_F); intel_ddi_init(dev_priv, PORT_F);
icl_dsi_init(dev_priv);
} else if (IS_GEN9_LP(dev_priv)) { } else if (IS_GEN9_LP(dev_priv)) {
/* /*
* FIXME: Broxton doesn't support port detection via the * FIXME: Broxton doesn't support port detection via the
......
...@@ -1860,6 +1860,9 @@ void intel_dp_mst_encoder_cleanup(struct intel_digital_port *intel_dig_port); ...@@ -1860,6 +1860,9 @@ void intel_dp_mst_encoder_cleanup(struct intel_digital_port *intel_dig_port);
/* vlv_dsi.c */ /* vlv_dsi.c */
void vlv_dsi_init(struct drm_i915_private *dev_priv); void vlv_dsi_init(struct drm_i915_private *dev_priv);
/* icl_dsi.c */
void icl_dsi_init(struct drm_i915_private *dev_priv);
/* intel_dsi_dcs_backlight.c */ /* intel_dsi_dcs_backlight.c */
int intel_dsi_dcs_init_backlight_funcs(struct intel_connector *intel_connector); int intel_dsi_dcs_init_backlight_funcs(struct intel_connector *intel_connector);
......
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