public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
* [PATCH] vlv eDP BIOS Compatiblity to EMGD generated BIOS
@ 2015-06-23  6:36 Andreas Lampersperger
  2015-06-29 12:38 ` Ville Syrjälä
  2015-10-13 12:15 ` Jani Nikula
  0 siblings, 2 replies; 6+ messages in thread
From: Andreas Lampersperger @ 2015-06-23  6:36 UTC (permalink / raw)
  To: Intel-gfx, daniel.vetter, a_lampersperger

When the i915.ko identify an eDP output on a valleyview
board, it should be more slackly. The reason for that is,
that BIOS DATA TABLES generated with intel BMP (Binary
Modification Program) do not set bits for NOT_HDMI or
DIGITAL_OUTPUT on the device type. Due to Adolfo
Sanchez from Intel EMGD, this is not possible.
To solve this problem and enable i915.ko on embedded
vlv boards with eDP, we ignore this two bits.

Signed-off-by: Andreas Lampersperger <lampersperger.andreas@heidenhain.de>
---
 drivers/gpu/drm/i915/intel_bios.h | 10 ++++++++++
 drivers/gpu/drm/i915/intel_dp.c   | 10 ++++++++--
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h
index af0b476..c42161f 100644
--- a/drivers/gpu/drm/i915/intel_bios.h
+++ b/drivers/gpu/drm/i915/intel_bios.h
@@ -742,6 +742,16 @@ int intel_parse_bios(struct drm_device *dev);
 	 DEVICE_TYPE_DIGITAL_OUTPUT | \
 	 DEVICE_TYPE_ANALOG_OUTPUT)
 
+/*
+ * We dont look on DEVICE_TYPE_NOT_HDMI_OUTPUT an DEVICE_TYPE_DIGITAL_OUTPUT
+ * on valleyview, because intels BMP-generated BIOS don't sets these 
+ * BITS for eDP ports
+ */ 
+#define DEVICE_TYPE_eDP_BITS_VLV \
+	(DEVICE_TYPE_eDP_BITS &\
+	 (~ DEVICE_TYPE_NOT_HDMI_OUTPUT ) &\
+	 (~ DEVICE_TYPE_DIGITAL_OUTPUT ) )
+	   
 /* define the DVO port for HDMI output type */
 #define		DVO_B		1
 #define		DVO_C		2
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index f52eef1..51c753f 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5036,6 +5036,7 @@ bool intel_dp_is_edp(struct drm_device *dev, enum port port)
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	union child_device_config *p_child;
 	int i;
+	u16 eDP_bits;
 	static const short port_mapping[] = {
 		[PORT_B] = PORT_IDPB,
 		[PORT_C] = PORT_IDPC,
@@ -5047,13 +5048,18 @@ bool intel_dp_is_edp(struct drm_device *dev, enum port port)
 
 	if (!dev_priv->vbt.child_dev_num)
 		return false;
+	
+	if (IS_VALLEYVIEW(dev))
+	  eDP_bits = DEVICE_TYPE_eDP_BITS_VLV;
+	else
+	  eDP_bits = DEVICE_TYPE_eDP_BITS;
 
 	for (i = 0; i < dev_priv->vbt.child_dev_num; i++) {
 		p_child = dev_priv->vbt.child_dev + i;
 
 		if (p_child->common.dvo_port == port_mapping[port] &&
-		    (p_child->common.device_type & DEVICE_TYPE_eDP_BITS) ==
-		    (DEVICE_TYPE_eDP & DEVICE_TYPE_eDP_BITS))
+		    (p_child->common.device_type & eDP_bits) ==
+		    (DEVICE_TYPE_eDP & eDP_bits))
 			return true;
 	}
 	return false;
-- 
2.1.4

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

^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [PATCH] vlv eDP BIOS Compatiblity to EMGD generated BIOS
@ 2015-06-18 10:17 Andreas Lampersperger
  2015-06-22 13:43 ` Daniel Vetter
  0 siblings, 1 reply; 6+ messages in thread
From: Andreas Lampersperger @ 2015-06-18 10:17 UTC (permalink / raw)
  To: Intel-gfx

When the i915.ko identify an eDP output on a valleyview
board, it should be more slackly. The reason for that is,
that BIOS DATA TABLES generated with intel BMP (Binary
Modification Program) do not set bits for NOT_HDMI or
DIGITAL_OUTPUT on the device type. Due to Adolfo
Sanchez from Intel EMGD, this is not possible.
To solve this problem and enable i915.ko on embedded
vlv boards with eDP, we ignore this two bits.
---
 drivers/gpu/drm/i915/intel_bios.h | 10 ++++++++++
 drivers/gpu/drm/i915/intel_dp.c   | 10 ++++++++--
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h
index af0b476..c42161f 100644
--- a/drivers/gpu/drm/i915/intel_bios.h
+++ b/drivers/gpu/drm/i915/intel_bios.h
@@ -742,6 +742,16 @@ int intel_parse_bios(struct drm_device *dev);
 	 DEVICE_TYPE_DIGITAL_OUTPUT | \
 	 DEVICE_TYPE_ANALOG_OUTPUT)
 
+/*
+ * We dont look on DEVICE_TYPE_NOT_HDMI_OUTPUT an DEVICE_TYPE_DIGITAL_OUTPUT
+ * on valleyview, because intels BMP-generated BIOS don't sets these 
+ * BITS for eDP ports
+ */ 
+#define DEVICE_TYPE_eDP_BITS_VLV \
+	(DEVICE_TYPE_eDP_BITS &\
+	 (~ DEVICE_TYPE_NOT_HDMI_OUTPUT ) &\
+	 (~ DEVICE_TYPE_DIGITAL_OUTPUT ) )
+	   
 /* define the DVO port for HDMI output type */
 #define		DVO_B		1
 #define		DVO_C		2
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index f52eef1..51c753f 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5036,6 +5036,7 @@ bool intel_dp_is_edp(struct drm_device *dev, enum port port)
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	union child_device_config *p_child;
 	int i;
+	u16 eDP_bits;
 	static const short port_mapping[] = {
 		[PORT_B] = PORT_IDPB,
 		[PORT_C] = PORT_IDPC,
@@ -5047,13 +5048,18 @@ bool intel_dp_is_edp(struct drm_device *dev, enum port port)
 
 	if (!dev_priv->vbt.child_dev_num)
 		return false;
+	
+	if (IS_VALLEYVIEW(dev))
+	  eDP_bits = DEVICE_TYPE_eDP_BITS_VLV;
+	else
+	  eDP_bits = DEVICE_TYPE_eDP_BITS;
 
 	for (i = 0; i < dev_priv->vbt.child_dev_num; i++) {
 		p_child = dev_priv->vbt.child_dev + i;
 
 		if (p_child->common.dvo_port == port_mapping[port] &&
-		    (p_child->common.device_type & DEVICE_TYPE_eDP_BITS) ==
-		    (DEVICE_TYPE_eDP & DEVICE_TYPE_eDP_BITS))
+		    (p_child->common.device_type & eDP_bits) ==
+		    (DEVICE_TYPE_eDP & eDP_bits))
 			return true;
 	}
 	return false;
-- 
2.1.4

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

^ permalink raw reply related	[flat|nested] 6+ messages in thread
* [PATCH] vlv eDP BIOS Compatiblity to EMGD generated BIOS
@ 2015-06-18 10:08 Andreas Lampersperger
  0 siblings, 0 replies; 6+ messages in thread
From: Andreas Lampersperger @ 2015-06-18 10:08 UTC (permalink / raw)
  To: intel-gfx

When the i915.ko identify an eDP output on a valleyview
board, it should be more slackly. The reason for that is,
that BIOS DATA TABLES generated with intel BMP (Binary
Modification Program) do not set bits for NOT_HDMI or
DIGITAL_OUTPUT on the device type. Due to Adolfo
Sanchez from Intel EMGD, this is not possible.
To solve this problem and enable i915.ko on embedded
vlv boards with eDP, we ignore this two bits.
---
 drivers/gpu/drm/i915/intel_bios.h | 10 ++++++++++
 drivers/gpu/drm/i915/intel_dp.c   | 10 ++++++++--
 2 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/intel_bios.h b/drivers/gpu/drm/i915/intel_bios.h
index af0b476..c42161f 100644
--- a/drivers/gpu/drm/i915/intel_bios.h
+++ b/drivers/gpu/drm/i915/intel_bios.h
@@ -742,6 +742,16 @@ int intel_parse_bios(struct drm_device *dev);
 	 DEVICE_TYPE_DIGITAL_OUTPUT | \
 	 DEVICE_TYPE_ANALOG_OUTPUT)
 
+/*
+ * We dont look on DEVICE_TYPE_NOT_HDMI_OUTPUT an DEVICE_TYPE_DIGITAL_OUTPUT
+ * on valleyview, because intels BMP-generated BIOS don't sets these 
+ * BITS for eDP ports
+ */ 
+#define DEVICE_TYPE_eDP_BITS_VLV \
+	(DEVICE_TYPE_eDP_BITS &\
+	 (~ DEVICE_TYPE_NOT_HDMI_OUTPUT ) &\
+	 (~ DEVICE_TYPE_DIGITAL_OUTPUT ) )
+	   
 /* define the DVO port for HDMI output type */
 #define		DVO_B		1
 #define		DVO_C		2
diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
index f52eef1..51c753f 100644
--- a/drivers/gpu/drm/i915/intel_dp.c
+++ b/drivers/gpu/drm/i915/intel_dp.c
@@ -5036,6 +5036,7 @@ bool intel_dp_is_edp(struct drm_device *dev, enum port port)
 	struct drm_i915_private *dev_priv = dev->dev_private;
 	union child_device_config *p_child;
 	int i;
+	u16 eDP_bits;
 	static const short port_mapping[] = {
 		[PORT_B] = PORT_IDPB,
 		[PORT_C] = PORT_IDPC,
@@ -5047,13 +5048,18 @@ bool intel_dp_is_edp(struct drm_device *dev, enum port port)
 
 	if (!dev_priv->vbt.child_dev_num)
 		return false;
+	
+	if (IS_VALLEYVIEW(dev))
+	  eDP_bits = DEVICE_TYPE_eDP_BITS_VLV;
+	else
+	  eDP_bits = DEVICE_TYPE_eDP_BITS;
 
 	for (i = 0; i < dev_priv->vbt.child_dev_num; i++) {
 		p_child = dev_priv->vbt.child_dev + i;
 
 		if (p_child->common.dvo_port == port_mapping[port] &&
-		    (p_child->common.device_type & DEVICE_TYPE_eDP_BITS) ==
-		    (DEVICE_TYPE_eDP & DEVICE_TYPE_eDP_BITS))
+		    (p_child->common.device_type & eDP_bits) ==
+		    (DEVICE_TYPE_eDP & eDP_bits))
 			return true;
 	}
 	return false;
-- 
2.1.4

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

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2015-10-13 12:12 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-23  6:36 [PATCH] vlv eDP BIOS Compatiblity to EMGD generated BIOS Andreas Lampersperger
2015-06-29 12:38 ` Ville Syrjälä
2015-10-13 12:15 ` Jani Nikula
  -- strict thread matches above, loose matches on Subject: below --
2015-06-18 10:17 Andreas Lampersperger
2015-06-22 13:43 ` Daniel Vetter
2015-06-18 10:08 Andreas Lampersperger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox