[Intel-gfx] [Resend2] [PATCH 1/3] Add the private data for the LVDS connector

yakui_zhao yakui.zhao at intel.com
Mon Jun 8 04:05:18 CEST 2009


Add the private data when the connector type is LVDS. 
We can use the private_data to store the LVDS panel limit.
For example: Hdisplay, Vdisplay  

Signed-off-by: Zhao Yakui <yakui.zhao at intel.com>
---
 src/drmmode_display.c |   24 +++++++++++++++++++++++-
 1 file changed, 23 insertions(+), 1 deletion(-)

Index: xf86_video_intel/src/drmmode_display.c
===================================================================
--- xf86_video_intel.orig/src/drmmode_display.c	2009-05-26 11:12:39.000000000 +0800
+++ xf86_video_intel/src/drmmode_display.c	2009-06-08 10:00:55.000000000 +0800
@@ -58,6 +58,10 @@
     Atom *atoms;
 } drmmode_prop_rec, *drmmode_prop_ptr;
 
+struct fixed_panel_lvds {
+	int hdisplay;
+	int vdisplay;
+};
 typedef struct {
     drmmode_ptr drmmode;
     int output_id;
@@ -66,6 +70,8 @@
     drmModePropertyBlobPtr edid_blob;
     int num_props;
     drmmode_prop_ptr props;
+	void *private_data;
+	/* this is used to store private data */
 } drmmode_output_private_rec, *drmmode_output_private_ptr;
 
 static void
@@ -529,6 +535,10 @@
 	}
 	xfree(drmmode_output->props);
 	drmModeFreeConnector(drmmode_output->mode_output);
+	if (drmmode_output->private_data) {
+		xfree(drmmode_output->private_data);
+		drmmode_output->private_data = NULL;
+	}
 	xfree(drmmode_output);
 	output->driver_private = NULL;
 }
@@ -792,7 +802,19 @@
 		drmModeFreeEncoder(kencoder);
 		return;
 	}
-
+	/*
+	 * If the connector type of the output device is LVDS, we will
+	 * allocate the private_data to store the panel limit.
+	 * For example: hdisplay, vdisplay
+	 */
+	drmmode_output->private_data = NULL;
+	if (koutput->connector_type ==  DRM_MODE_CONNECTOR_LVDS) {
+		drmmode_output->private_data = xcalloc(
+				sizeof(struct fixed_panel_lvds), 1);
+		if (!drmmode_output->private_data)
+			xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+				"Can't allocate private memory for LVDS.\n");
+	}
 	drmmode_output->output_id = drmmode->mode_res->connectors[num];
 	drmmode_output->mode_output = koutput;
 	drmmode_output->mode_encoder = kencoder;





More information about the Intel-gfx mailing list