Re: [PATCH 12/12] DO_NOT_MERGE: drm/i915: Hack to enable lspcon initialization

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Regards
Shashank

Expecting this patch to enable lspcon bits in VBT:
https://lists.freedesktop.org/archives/intel-gfx/2016-March/089541.html

FYI, an updated version of that patch has been pushed now.

BR,
Jani.
Thanks Jani, will have a look.


Signed-off-by: Shashank Sharma <shashank.sharma@xxxxxxxxx>
---
  drivers/gpu/drm/i915/intel_ddi.c    | 15 +++++++++++++++
  drivers/gpu/drm/i915/intel_drv.h    |  4 ++++
  drivers/gpu/drm/i915/intel_lspcon.c | 10 ++++++++++
  3 files changed, 29 insertions(+)

diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 91654ff..f6c2869 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -2169,6 +2169,21 @@ void intel_ddi_init(struct drm_device *dev, enum port port)
  	intel_encoder->crtc_mask = (1 << 0) | (1 << 1) | (1 << 2);
  	intel_encoder->cloneable = 0;

+
+	/* Check if LSPCON is configured on this port */
+	if (is_lspcon_present_on_port(dev_priv, intel_dig_port->port)) {
+		if (!intel_lspcon_init_connector(intel_dig_port)) {
+			DRM_DEBUG_KMS("LSPCON configured for port %c\n",
+				port_name(intel_dig_port->port));
+			return;
+		} else {
+			DRM_ERROR("Can't set LSPCON(port %c), falling to DP/HDMI\n",
+				port_name(intel_dig_port->port));
+			init_dp = true;
+			init_hdmi = true;
+		}
+	}
+
  	if (init_dp) {
  		if (!intel_ddi_init_dp_connector(intel_dig_port))
  			goto err;
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index a6ec946..922852c 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -1345,6 +1345,10 @@ void intel_dsi_init(struct drm_device *dev);
  /* intel_dvo.c */
  void intel_dvo_init(struct drm_device *dev);

+/* intel_lspcon.c */
+int intel_lspcon_init_connector(struct intel_digital_port *intel_dig_port);
+bool is_lspcon_present_on_port(struct drm_i915_private * dev_priv,
+		enum port port);

  /* legacy fbdev emulation in intel_fbdev.c */
  #ifdef CONFIG_DRM_FBDEV_EMULATION
diff --git a/drivers/gpu/drm/i915/intel_lspcon.c b/drivers/gpu/drm/i915/intel_lspcon.c
index 20f90e0..96e4c71 100644
--- a/drivers/gpu/drm/i915/intel_lspcon.c
+++ b/drivers/gpu/drm/i915/intel_lspcon.c
@@ -397,6 +397,16 @@ static const struct drm_connector_helper_funcs lspcon_connector_helper_funcs = {
  	.best_encoder = intel_best_encoder,
  };

+bool is_lspcon_present_on_port(struct drm_i915_private *dev_priv, enum port port)
+{
+	/*
+	* TODO: HACK
+	* Replace this with proper VBT child dev config check
+	* logic once that patch is available in tree
+	*/
+	return IS_GEN9(dev_priv->dev) && (port == PORT_B);
+}
+
  int intel_lspcon_init_connector(struct intel_digital_port *intel_dig_port)
  {
  	int ret;

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux