xf86-video-intel: 3 commits - src/intel_display.c

Jesse Barnes jbarnes at kemper.freedesktop.org
Tue Sep 7 14:48:18 PDT 2010


 src/intel_display.c |   42 ++++++++++++++++++++++--------------------
 1 file changed, 22 insertions(+), 20 deletions(-)

New commits:
commit 0fa4321a765126228170ecb9536f32c134886d51
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Tue Sep 7 13:56:16 2010 -0700

    KMS: initialize backlight support for eDP panels too
    
    Since being able to control the backlight is handy.
    
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/src/intel_display.c b/src/intel_display.c
index e189831..ed3fdd0 100644
--- a/src/intel_display.c
+++ b/src/intel_display.c
@@ -1290,7 +1290,8 @@ intel_output_init(ScrnInfoPtr scrn, struct intel_mode *mode, int num)
 	output->subpixel_order = subpixel_conv_table[koutput->subpixel];
 	output->driver_private = intel_output;
 
-	if (koutput->connector_type == DRM_MODE_CONNECTOR_LVDS)
+	if (koutput->connector_type == DRM_MODE_CONNECTOR_LVDS ||
+	    koutput->connector_type == DRM_MODE_CONNECTOR_eDP)
 		intel_output_backlight_init(output);
 
 	output->possible_crtcs = kencoder->possible_crtcs;
commit f56c839f30ec39ea22bbf6a7fda4cefd7cbfbfc2
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Tue Sep 7 13:53:47 2010 -0700

    KMS: rename LVDS fields to reflect actual usage
    
    These are used for panels, not just LVDS connections, so name them as such.
    
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/src/intel_display.c b/src/intel_display.c
index 20c5164..e189831 100644
--- a/src/intel_display.c
+++ b/src/intel_display.c
@@ -86,9 +86,9 @@ struct intel_output {
 	struct intel_property *props;
 	void *private_data;
 
-	Bool has_lvds_limits;
-	int lvds_hdisplay;
-	int lvds_vdisplay;
+	Bool has_panel_limits;
+	int panel_hdisplay;
+	int panel_vdisplay;
 
 	int dpms_mode;
 	const char *backlight_iface;
@@ -689,12 +689,12 @@ intel_output_mode_valid(xf86OutputPtr output, DisplayModePtr pModes)
 	struct intel_output *intel_output = output->driver_private;
 
 	/*
-	 * If the connector type is LVDS, we will use the panel limit to
+	 * If the connector type is a panel, we will use the panel limit to
 	 * verfiy whether the mode is valid.
 	 */
-	if (intel_output->has_lvds_limits) {
-		if (pModes->HDisplay > intel_output->lvds_hdisplay ||
-		    pModes->VDisplay > intel_output->lvds_vdisplay)
+	if (intel_output->has_panel_limits) {
+		if (pModes->HDisplay > intel_output->panel_hdisplay ||
+		    pModes->VDisplay > intel_output->panel_vdisplay)
 			return MODE_PANEL;
 	}
 
@@ -747,7 +747,7 @@ intel_output_attach_edid(xf86OutputPtr output)
 }
 
 static DisplayModePtr
-intel_output_lvds_edid(xf86OutputPtr output, DisplayModePtr modes)
+intel_output_panel_edid(xf86OutputPtr output, DisplayModePtr modes)
 {
 	xf86MonPtr mon = output->MonInfo;
 
@@ -814,29 +814,29 @@ intel_output_get_modes(xf86OutputPtr output)
 	}
 
 	/*
-	 * If the connector type is LVDS, we will traverse the kernel mode to
+	 * If the connector type is a panel, we will traverse the kernel mode to
 	 * get the panel limit. And then add all the standard modes to fake
 	 * the fullscreen experience.
 	 * If it is incorrect, please fix me.
 	 */
-	intel_output->has_lvds_limits = FALSE;
+	intel_output->has_panel_limits = FALSE;
 	if (koutput->connector_type == DRM_MODE_CONNECTOR_LVDS ||
 	    koutput->connector_type == DRM_MODE_CONNECTOR_eDP) {
 		for (i = 0; i < koutput->count_modes; i++) {
 			drmModeModeInfo *mode_ptr;
 
 			mode_ptr = &koutput->modes[i];
-			if (mode_ptr->hdisplay > intel_output->lvds_hdisplay)
-				intel_output->lvds_hdisplay = mode_ptr->hdisplay;
-			if (mode_ptr->vdisplay > intel_output->lvds_vdisplay)
-				intel_output->lvds_vdisplay = mode_ptr->vdisplay;
+			if (mode_ptr->hdisplay > intel_output->panel_hdisplay)
+				intel_output->panel_hdisplay = mode_ptr->hdisplay;
+			if (mode_ptr->vdisplay > intel_output->panel_vdisplay)
+				intel_output->panel_vdisplay = mode_ptr->vdisplay;
 		}
 
-		intel_output->has_lvds_limits =
-			intel_output->lvds_hdisplay &&
-			intel_output->lvds_vdisplay;
+		intel_output->has_panel_limits =
+			intel_output->panel_hdisplay &&
+			intel_output->panel_vdisplay;
 
-		Modes = intel_output_lvds_edid(output, Modes);
+		Modes = intel_output_panel_edid(output, Modes);
 	}
 
 	return Modes;
commit 0d26d950fdada1f59dc6cb31fe2f03004825f773
Author: Jesse Barnes <jbarnes at virtuousgeek.org>
Date:   Tue Sep 7 13:46:58 2010 -0700

    KMS: add fake EDID on eDP too
    
    This gives us a few more standard modes on eDP panels with just a simple
    fixed timing in the VBT, just like on older, LVDS attached panels.
    
    Fixes FDO bug https://bugs.freedesktop.org/show_bug.cgi?id=30069.
    
    Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
    Tested-by: Manoj Iyer <manoj.iyer at canonical.com>
    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>

diff --git a/src/intel_display.c b/src/intel_display.c
index e65df6e..20c5164 100644
--- a/src/intel_display.c
+++ b/src/intel_display.c
@@ -820,7 +820,8 @@ intel_output_get_modes(xf86OutputPtr output)
 	 * If it is incorrect, please fix me.
 	 */
 	intel_output->has_lvds_limits = FALSE;
-	if (koutput->connector_type == DRM_MODE_CONNECTOR_LVDS) {
+	if (koutput->connector_type == DRM_MODE_CONNECTOR_LVDS ||
+	    koutput->connector_type == DRM_MODE_CONNECTOR_eDP) {
 		for (i = 0; i < koutput->count_modes; i++) {
 			drmModeModeInfo *mode_ptr;
 


More information about the xorg-commit mailing list