Subversion Repositories Kolibri OS

Rev

Rev 1221 | Rev 1313 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1221 Rev 1246
Line 624... Line 624...
624
	if (!(pt->misc & DRM_EDID_PT_SEPARATE_SYNC)) {
624
	if (!(pt->misc & DRM_EDID_PT_SEPARATE_SYNC)) {
625
		printk(KERN_WARNING "integrated sync not supported\n");
625
		printk(KERN_WARNING "integrated sync not supported\n");
626
		return NULL;
626
		return NULL;
627
	}
627
	}
Line -... Line 628...
-
 
628
 
-
 
629
	/* it is incorrect if hsync/vsync width is zero */
-
 
630
	if (!hsync_pulse_width || !vsync_pulse_width) {
-
 
631
		DRM_DEBUG_KMS("Incorrect Detailed timing. "
-
 
632
				"Wrong Hsync/Vsync pulse width\n");
-
 
633
		return NULL;
628
 
634
	}
629
	mode = drm_mode_create(dev);
635
	mode = drm_mode_create(dev);
630
	if (!mode)
636
	if (!mode)
Line 631... Line 637...
631
		return NULL;
637
		return NULL;
Line 645... Line 651...
645
	mode->vdisplay = vactive;
651
	mode->vdisplay = vactive;
646
	mode->vsync_start = mode->vdisplay + vsync_offset;
652
	mode->vsync_start = mode->vdisplay + vsync_offset;
647
	mode->vsync_end = mode->vsync_start + vsync_pulse_width;
653
	mode->vsync_end = mode->vsync_start + vsync_pulse_width;
648
	mode->vtotal = mode->vdisplay + vblank;
654
	mode->vtotal = mode->vdisplay + vblank;
Line -... Line 655...
-
 
655
 
-
 
656
	/* perform the basic check for the detailed timing */
-
 
657
	if (mode->hsync_end > mode->htotal ||
-
 
658
		mode->vsync_end > mode->vtotal) {
-
 
659
		drm_mode_destroy(dev, mode);
-
 
660
		DRM_DEBUG_KMS("Incorrect detailed timing. "
-
 
661
				"Sync is beyond the blank.\n");
-
 
662
		return NULL;
-
 
663
	}
649
 
664
 
Line 650... Line 665...
650
	drm_mode_set_name(mode);
665
	drm_mode_set_name(mode);
651
 
666
 
Line 1050... Line 1065...
1050
	ret = drm_do_probe_ddc_edid(adapter, buf, len);
1065
	ret = drm_do_probe_ddc_edid(adapter, buf, len);
1051
	if (ret != 0) {
1066
	if (ret != 0) {
1052
		goto end;
1067
		goto end;
1053
	}
1068
	}
1054
	if (!edid_is_valid((struct edid *)buf)) {
1069
	if (!edid_is_valid((struct edid *)buf)) {
1055
//       dev_warn(&connector->dev->pdev->dev, "%s: EDID invalid.\n",
1070
		dev_warn(&connector->dev->pdev->dev, "%s: EDID invalid.\n",
1056
//            drm_get_connector_name(connector));
1071
			 drm_get_connector_name(connector));
1057
		ret = -1;
1072
		ret = -1;
1058
	}
1073
	}
1059
end:
1074
end:
1060
	return ret;
1075
	return ret;
1061
}
1076
}
Line 1076... Line 1091...
1076
	struct edid *edid;
1091
	struct edid *edid;
Line 1077... Line 1092...
1077
 
1092
 
1078
	edid = kmalloc(EDID_LENGTH * (MAX_EDID_EXT_NUM + 1),
1093
	edid = kmalloc(EDID_LENGTH * (MAX_EDID_EXT_NUM + 1),
1079
		       GFP_KERNEL);
1094
		       GFP_KERNEL);
1080
	if (edid == NULL) {
1095
	if (edid == NULL) {
1081
//       dev_warn(&connector->dev->pdev->dev,
1096
		dev_warn(&connector->dev->pdev->dev,
1082
//            "Failed to allocate EDID\n");
1097
			 "Failed to allocate EDID\n");
1083
		goto end;
1098
		goto end;
Line 1084... Line 1099...
1084
	}
1099
	}
1085
 
1100
 
Line 1092... Line 1107...
1092
	/* There are EDID extensions to be read */
1107
	/* There are EDID extensions to be read */
1093
	if (edid->extensions != 0) {
1108
	if (edid->extensions != 0) {
1094
		int edid_ext_num = edid->extensions;
1109
		int edid_ext_num = edid->extensions;
Line 1095... Line 1110...
1095
 
1110
 
1096
		if (edid_ext_num > MAX_EDID_EXT_NUM) {
1111
		if (edid_ext_num > MAX_EDID_EXT_NUM) {
1097
 //          dev_warn(&connector->dev->pdev->dev,
1112
			dev_warn(&connector->dev->pdev->dev,
1098
//                "The number of extension(%d) is "
1113
				 "The number of extension(%d) is "
1099
//                "over max (%d), actually read number (%d)\n",
1114
				 "over max (%d), actually read number (%d)\n",
1100
//                edid_ext_num, MAX_EDID_EXT_NUM,
1115
				 edid_ext_num, MAX_EDID_EXT_NUM,
1101
//                MAX_EDID_EXT_NUM);
1116
				 MAX_EDID_EXT_NUM);
1102
			/* Reset EDID extension number to be read */
1117
			/* Reset EDID extension number to be read */
1103
			edid_ext_num = MAX_EDID_EXT_NUM;
1118
			edid_ext_num = MAX_EDID_EXT_NUM;
1104
		}
1119
		}
1105
		/* Read EDID including extensions too */
1120
		/* Read EDID including extensions too */
Line 1200... Line 1215...
1200
 
1215
 
1201
	if (edid == NULL) {
1216
	if (edid == NULL) {
1202
		return 0;
1217
		return 0;
1203
	}
1218
	}
1204
	if (!edid_is_valid(edid)) {
1219
	if (!edid_is_valid(edid)) {
1205
//       dev_warn(&connector->dev->pdev->dev, "%s: EDID invalid.\n",
1220
		dev_warn(&connector->dev->pdev->dev, "%s: EDID invalid.\n",
1206
//            drm_get_connector_name(connector));
1221
			 drm_get_connector_name(connector));
1207
		return 0;
1222
		return 0;
Line 1208... Line 1223...
1208
	}
1223
	}