Subversion Repositories Kolibri OS

Rev

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

Rev 1313 Rev 1321
Line 38... Line 38...
38
extern void
38
extern void
39
radeon_atombios_connected_scratch_regs(struct drm_connector *connector,
39
radeon_atombios_connected_scratch_regs(struct drm_connector *connector,
40
				       struct drm_encoder *encoder,
40
				       struct drm_encoder *encoder,
41
				       bool connected);
41
				       bool connected);
Line -... Line 42...
-
 
42
 
-
 
43
void radeon_connector_hotplug(struct drm_connector *connector)
-
 
44
{
-
 
45
	struct drm_device *dev = connector->dev;
-
 
46
	struct radeon_device *rdev = dev->dev_private;
-
 
47
	struct radeon_connector *radeon_connector = to_radeon_connector(connector);
-
 
48
 
-
 
49
	if (radeon_connector->hpd.hpd != RADEON_HPD_NONE)
-
 
50
		radeon_hpd_set_polarity(rdev, radeon_connector->hpd.hpd);
-
 
51
 
-
 
52
	if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) {
-
 
53
		if (radeon_dp_getsinktype(radeon_connector) == CONNECTOR_OBJECT_ID_DISPLAYPORT) {
-
 
54
			if (radeon_dp_needs_link_train(radeon_connector)) {
-
 
55
				if (connector->encoder)
-
 
56
					dp_link_train(connector->encoder, connector);
-
 
57
			}
-
 
58
		}
-
 
59
	}
-
 
60
 
-
 
61
}
42
 
62
 
43
static void radeon_property_change_mode(struct drm_encoder *encoder)
63
static void radeon_property_change_mode(struct drm_encoder *encoder)
44
{
64
{
Line 45... Line 65...
45
	struct drm_crtc *crtc = encoder->crtc;
65
	struct drm_crtc *crtc = encoder->crtc;
Line 443... Line 463...
443
	/* check for edid as well */
463
	/* check for edid as well */
444
	if (radeon_connector->edid)
464
	if (radeon_connector->edid)
445
		ret = connector_status_connected;
465
		ret = connector_status_connected;
446
	else {
466
	else {
447
		if (radeon_connector->ddc_bus) {
467
		if (radeon_connector->ddc_bus) {
448
			radeon_i2c_do_lock(radeon_connector, 1);
468
			radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
449
			radeon_connector->edid = drm_get_edid(&radeon_connector->base,
469
			radeon_connector->edid = drm_get_edid(&radeon_connector->base,
450
							      &radeon_connector->ddc_bus->adapter);
470
							      &radeon_connector->ddc_bus->adapter);
451
			radeon_i2c_do_lock(radeon_connector, 0);
471
			radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
452
			if (radeon_connector->edid)
472
			if (radeon_connector->edid)
453
				ret = connector_status_connected;
473
				ret = connector_status_connected;
454
		}
474
		}
455
	}
475
	}
456
	/* check acpi lid status ??? */
476
	/* check acpi lid status ??? */
Line 551... Line 571...
551
 
571
 
552
	encoder = radeon_best_single_encoder(connector);
572
	encoder = radeon_best_single_encoder(connector);
553
	if (!encoder)
573
	if (!encoder)
Line 554... Line 574...
554
		ret = connector_status_disconnected;
574
		ret = connector_status_disconnected;
555
 
575
 
556
	radeon_i2c_do_lock(radeon_connector, 1);
576
	radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
557
	dret = radeon_ddc_probe(radeon_connector);
577
	dret = radeon_ddc_probe(radeon_connector);
558
	radeon_i2c_do_lock(radeon_connector, 0);
578
	radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
559
	if (dret) {
579
	if (dret) {
560
		if (radeon_connector->edid) {
580
		if (radeon_connector->edid) {
561
			kfree(radeon_connector->edid);
581
			kfree(radeon_connector->edid);
562
			radeon_connector->edid = NULL;
582
			radeon_connector->edid = NULL;
563
		}
583
		}
564
		radeon_i2c_do_lock(radeon_connector, 1);
584
		radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
Line 565... Line 585...
565
		radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter);
585
		radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter);
566
		radeon_i2c_do_lock(radeon_connector, 0);
586
		radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
567
 
587
 
568
		if (!radeon_connector->edid) {
588
		if (!radeon_connector->edid) {
Line 706... Line 726...
706
	struct drm_mode_object *obj;
726
	struct drm_mode_object *obj;
707
	int i;
727
	int i;
708
	enum drm_connector_status ret = connector_status_disconnected;
728
	enum drm_connector_status ret = connector_status_disconnected;
709
	bool dret;
729
	bool dret;
Line 710... Line 730...
710
 
730
 
711
	radeon_i2c_do_lock(radeon_connector, 1);
731
	radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
712
	dret = radeon_ddc_probe(radeon_connector);
732
	dret = radeon_ddc_probe(radeon_connector);
713
	radeon_i2c_do_lock(radeon_connector, 0);
733
	radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
714
	if (dret) {
734
	if (dret) {
715
		if (radeon_connector->edid) {
735
		if (radeon_connector->edid) {
716
			kfree(radeon_connector->edid);
736
			kfree(radeon_connector->edid);
717
			radeon_connector->edid = NULL;
737
			radeon_connector->edid = NULL;
718
		}
738
		}
719
		radeon_i2c_do_lock(radeon_connector, 1);
739
		radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
720
		radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter);
740
		radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter);
Line 721... Line 741...
721
		radeon_i2c_do_lock(radeon_connector, 0);
741
		radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
722
 
742
 
723
		if (!radeon_connector->edid) {
743
		if (!radeon_connector->edid) {
724
			DRM_ERROR("%s: probed a monitor but no|invalid EDID\n",
744
			DRM_ERROR("%s: probed a monitor but no|invalid EDID\n",
Line 733... Line 753...
733
				kfree(radeon_connector->edid);
753
				kfree(radeon_connector->edid);
734
				radeon_connector->edid = NULL;
754
				radeon_connector->edid = NULL;
735
				ret = connector_status_disconnected;
755
				ret = connector_status_disconnected;
736
			} else
756
			} else
737
		ret = connector_status_connected;
757
		ret = connector_status_connected;
-
 
758
 
-
 
759
			/* multiple connectors on the same encoder with the same ddc line
-
 
760
			 * This tends to be HDMI and DVI on the same encoder with the
-
 
761
			 * same ddc line.  If the edid says HDMI, consider the HDMI port
-
 
762
			 * connected and the DVI port disconnected.  If the edid doesn't
-
 
763
			 * say HDMI, vice versa.
-
 
764
			 */
-
 
765
			if (radeon_connector->shared_ddc && connector_status_connected) {
-
 
766
				struct drm_device *dev = connector->dev;
-
 
767
				struct drm_connector *list_connector;
-
 
768
				struct radeon_connector *list_radeon_connector;
-
 
769
				list_for_each_entry(list_connector, &dev->mode_config.connector_list, head) {
-
 
770
					if (connector == list_connector)
-
 
771
						continue;
-
 
772
					list_radeon_connector = to_radeon_connector(list_connector);
-
 
773
					if (radeon_connector->devices == list_radeon_connector->devices) {
-
 
774
						if (drm_detect_hdmi_monitor(radeon_connector->edid)) {
-
 
775
							if (connector->connector_type == DRM_MODE_CONNECTOR_DVID) {
-
 
776
								kfree(radeon_connector->edid);
-
 
777
								radeon_connector->edid = NULL;
-
 
778
								ret = connector_status_disconnected;
-
 
779
							}
-
 
780
						} else {
-
 
781
							if ((connector->connector_type == DRM_MODE_CONNECTOR_HDMIA) ||
-
 
782
							    (connector->connector_type == DRM_MODE_CONNECTOR_HDMIB)) {
-
 
783
								kfree(radeon_connector->edid);
-
 
784
								radeon_connector->edid = NULL;
-
 
785
								ret = connector_status_disconnected;
-
 
786
							}
-
 
787
						}
-
 
788
					}
-
 
789
				}
-
 
790
			}
738
		}
791
		}
739
	}
792
	}
Line 740... Line 793...
740
 
793
 
741
	if ((ret == connector_status_connected) && (radeon_connector->use_digital == true))
794
	if ((ret == connector_status_connected) && (radeon_connector->use_digital == true))
Line 861... Line 914...
861
	.set_property = radeon_connector_set_property,
914
	.set_property = radeon_connector_set_property,
862
	.destroy = radeon_connector_destroy,
915
	.destroy = radeon_connector_destroy,
863
	.force = radeon_dvi_force,
916
	.force = radeon_dvi_force,
864
};
917
};
Line -... Line 918...
-
 
918
 
-
 
919
static void radeon_dp_connector_destroy(struct drm_connector *connector)
-
 
920
{
-
 
921
	struct radeon_connector *radeon_connector = to_radeon_connector(connector);
-
 
922
	struct radeon_connector_atom_dig *radeon_dig_connector = radeon_connector->con_priv;
-
 
923
 
-
 
924
	if (radeon_connector->ddc_bus)
-
 
925
		radeon_i2c_destroy(radeon_connector->ddc_bus);
-
 
926
	if (radeon_connector->edid)
-
 
927
		kfree(radeon_connector->edid);
-
 
928
	if (radeon_dig_connector->dp_i2c_bus)
-
 
929
		radeon_i2c_destroy(radeon_dig_connector->dp_i2c_bus);
-
 
930
	kfree(radeon_connector->con_priv);
-
 
931
	drm_sysfs_connector_remove(connector);
-
 
932
	drm_connector_cleanup(connector);
-
 
933
	kfree(connector);
-
 
934
}
-
 
935
 
-
 
936
static int radeon_dp_get_modes(struct drm_connector *connector)
-
 
937
{
-
 
938
	struct radeon_connector *radeon_connector = to_radeon_connector(connector);
-
 
939
	int ret;
-
 
940
 
-
 
941
	ret = radeon_ddc_get_modes(radeon_connector);
-
 
942
	return ret;
-
 
943
}
-
 
944
 
-
 
945
static enum drm_connector_status radeon_dp_detect(struct drm_connector *connector)
-
 
946
{
-
 
947
	struct radeon_connector *radeon_connector = to_radeon_connector(connector);
-
 
948
	enum drm_connector_status ret = connector_status_disconnected;
-
 
949
	struct radeon_connector_atom_dig *radeon_dig_connector = radeon_connector->con_priv;
-
 
950
	u8 sink_type;
-
 
951
 
-
 
952
	if (radeon_connector->edid) {
-
 
953
		kfree(radeon_connector->edid);
-
 
954
		radeon_connector->edid = NULL;
-
 
955
	}
-
 
956
 
-
 
957
	sink_type = radeon_dp_getsinktype(radeon_connector);
-
 
958
	if (sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) {
-
 
959
		if (radeon_dp_getdpcd(radeon_connector)) {
-
 
960
			radeon_dig_connector->dp_sink_type = sink_type;
-
 
961
			ret = connector_status_connected;
-
 
962
		}
-
 
963
	} else {
-
 
964
		radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
-
 
965
		if (radeon_ddc_probe(radeon_connector)) {
-
 
966
			radeon_dig_connector->dp_sink_type = sink_type;
-
 
967
			ret = connector_status_connected;
-
 
968
		}
-
 
969
		radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
-
 
970
	}
-
 
971
 
-
 
972
	return ret;
-
 
973
}
-
 
974
 
-
 
975
static int radeon_dp_mode_valid(struct drm_connector *connector,
-
 
976
				  struct drm_display_mode *mode)
-
 
977
{
-
 
978
	struct radeon_connector *radeon_connector = to_radeon_connector(connector);
-
 
979
	struct radeon_connector_atom_dig *radeon_dig_connector = radeon_connector->con_priv;
-
 
980
 
-
 
981
	/* XXX check mode bandwidth */
-
 
982
 
-
 
983
	if (radeon_dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT)
-
 
984
		return radeon_dp_mode_valid_helper(radeon_connector, mode);
-
 
985
	else
-
 
986
		return MODE_OK;
-
 
987
}
-
 
988
 
-
 
989
struct drm_connector_helper_funcs radeon_dp_connector_helper_funcs = {
-
 
990
	.get_modes = radeon_dp_get_modes,
-
 
991
	.mode_valid = radeon_dp_mode_valid,
-
 
992
	.best_encoder = radeon_dvi_encoder,
-
 
993
};
-
 
994
 
-
 
995
struct drm_connector_funcs radeon_dp_connector_funcs = {
-
 
996
	.dpms = drm_helper_connector_dpms,
-
 
997
	.detect = radeon_dp_detect,
-
 
998
	.fill_modes = drm_helper_probe_single_connector_modes,
-
 
999
	.set_property = radeon_connector_set_property,
-
 
1000
	.destroy = radeon_dp_connector_destroy,
-
 
1001
	.force = radeon_dvi_force,
-
 
1002
};
865
 
1003
 
866
void
1004
void
867
radeon_add_atom_connector(struct drm_device *dev,
1005
radeon_add_atom_connector(struct drm_device *dev,
868
			  uint32_t connector_id,
1006
			  uint32_t connector_id,
869
			  uint32_t supported_device,
1007
			  uint32_t supported_device,
870
			  int connector_type,
1008
			  int connector_type,
871
			  struct radeon_i2c_bus_rec *i2c_bus,
1009
			  struct radeon_i2c_bus_rec *i2c_bus,
872
			  bool linkb,
1010
			  bool linkb,
873
			  uint32_t igp_lane_info,
1011
			  uint32_t igp_lane_info,
-
 
1012
			  uint16_t connector_object_id,
874
			  uint16_t connector_object_id)
1013
			  struct radeon_hpd *hpd)
875
{
1014
{
876
	struct radeon_device *rdev = dev->dev_private;
1015
	struct radeon_device *rdev = dev->dev_private;
877
	struct drm_connector *connector;
1016
	struct drm_connector *connector;
878
	struct radeon_connector *radeon_connector;
1017
	struct radeon_connector *radeon_connector;
Line 909... Line 1048...
909
 
1048
 
910
	radeon_connector->connector_id = connector_id;
1049
	radeon_connector->connector_id = connector_id;
911
	radeon_connector->devices = supported_device;
1050
	radeon_connector->devices = supported_device;
912
	radeon_connector->shared_ddc = shared_ddc;
1051
	radeon_connector->shared_ddc = shared_ddc;
-
 
1052
	radeon_connector->connector_object_id = connector_object_id;
913
	radeon_connector->connector_object_id = connector_object_id;
1053
	radeon_connector->hpd = *hpd;
914
	switch (connector_type) {
1054
	switch (connector_type) {
915
	case DRM_MODE_CONNECTOR_VGA:
1055
	case DRM_MODE_CONNECTOR_VGA:
916
		drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type);
1056
		drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type);
917
		ret = drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs);
1057
		ret = drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs);
Line 961... Line 1101...
961
		}
1101
		}
962
		subpixel_order = SubPixelHorizontalRGB;
1102
		subpixel_order = SubPixelHorizontalRGB;
963
		drm_connector_attach_property(&radeon_connector->base,
1103
		drm_connector_attach_property(&radeon_connector->base,
964
					      rdev->mode_info.coherent_mode_property,
1104
					      rdev->mode_info.coherent_mode_property,
965
					      1);
1105
					      1);
-
 
1106
		if (connector_type == DRM_MODE_CONNECTOR_DVII) {
966
		radeon_connector->dac_load_detect = true;
1107
		radeon_connector->dac_load_detect = true;
967
		drm_connector_attach_property(&radeon_connector->base,
1108
		drm_connector_attach_property(&radeon_connector->base,
968
					      rdev->mode_info.load_detect_property,
1109
					      rdev->mode_info.load_detect_property,
969
					      1);
1110
					      1);
-
 
1111
		}
970
		break;
1112
		break;
971
	case DRM_MODE_CONNECTOR_HDMIA:
1113
	case DRM_MODE_CONNECTOR_HDMIA:
972
	case DRM_MODE_CONNECTOR_HDMIB:
1114
	case DRM_MODE_CONNECTOR_HDMIB:
973
		radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
1115
		radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
974
		if (!radeon_dig_connector)
1116
		if (!radeon_dig_connector)
Line 995... Line 1137...
995
		if (!radeon_dig_connector)
1137
		if (!radeon_dig_connector)
996
			goto failed;
1138
			goto failed;
997
		radeon_dig_connector->linkb = linkb;
1139
		radeon_dig_connector->linkb = linkb;
998
		radeon_dig_connector->igp_lane_info = igp_lane_info;
1140
		radeon_dig_connector->igp_lane_info = igp_lane_info;
999
		radeon_connector->con_priv = radeon_dig_connector;
1141
		radeon_connector->con_priv = radeon_dig_connector;
1000
		drm_connector_init(dev, &radeon_connector->base, &radeon_dvi_connector_funcs, connector_type);
1142
		drm_connector_init(dev, &radeon_connector->base, &radeon_dp_connector_funcs, connector_type);
1001
		ret = drm_connector_helper_add(&radeon_connector->base, &radeon_dvi_connector_helper_funcs);
1143
		ret = drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs);
1002
		if (ret)
1144
		if (ret)
1003
			goto failed;
1145
			goto failed;
1004
		if (i2c_bus->valid) {
1146
		if (i2c_bus->valid) {
-
 
1147
			/* add DP i2c bus */
-
 
1148
			radeon_dig_connector->dp_i2c_bus = radeon_i2c_create_dp(dev, i2c_bus, "DP-auxch");
-
 
1149
			if (!radeon_dig_connector->dp_i2c_bus)
-
 
1150
				goto failed;
1005
			radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DP");
1151
			radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "DP");
1006
			if (!radeon_connector->ddc_bus)
1152
			if (!radeon_connector->ddc_bus)
1007
				goto failed;
1153
				goto failed;
1008
		}
1154
		}
1009
		subpixel_order = SubPixelHorizontalRGB;
1155
		subpixel_order = SubPixelHorizontalRGB;
-
 
1156
		drm_connector_attach_property(&radeon_connector->base,
-
 
1157
					      rdev->mode_info.coherent_mode_property,
-
 
1158
					      1);
1010
		break;
1159
		break;
1011
	case DRM_MODE_CONNECTOR_SVIDEO:
1160
	case DRM_MODE_CONNECTOR_SVIDEO:
1012
	case DRM_MODE_CONNECTOR_Composite:
1161
	case DRM_MODE_CONNECTOR_Composite:
1013
	case DRM_MODE_CONNECTOR_9PinDIN:
1162
	case DRM_MODE_CONNECTOR_9PinDIN:
1014
		if (radeon_tv == 1) {
1163
		if (radeon_tv == 1) {
Line 1018... Line 1167...
1018
				goto failed;
1167
				goto failed;
1019
			radeon_connector->dac_load_detect = true;
1168
			radeon_connector->dac_load_detect = true;
1020
		drm_connector_attach_property(&radeon_connector->base,
1169
		drm_connector_attach_property(&radeon_connector->base,
1021
					      rdev->mode_info.load_detect_property,
1170
					      rdev->mode_info.load_detect_property,
1022
					      1);
1171
					      1);
-
 
1172
			drm_connector_attach_property(&radeon_connector->base,
-
 
1173
						      rdev->mode_info.tv_std_property,
-
 
1174
						      1);
1023
		}
1175
		}
1024
		break;
1176
		break;
1025
	case DRM_MODE_CONNECTOR_LVDS:
1177
	case DRM_MODE_CONNECTOR_LVDS:
1026
		radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
1178
		radeon_dig_connector = kzalloc(sizeof(struct radeon_connector_atom_dig), GFP_KERNEL);
1027
		if (!radeon_dig_connector)
1179
		if (!radeon_dig_connector)
Line 1036... Line 1188...
1036
		if (i2c_bus->valid) {
1188
		if (i2c_bus->valid) {
1037
			radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "LVDS");
1189
			radeon_connector->ddc_bus = radeon_i2c_create(dev, i2c_bus, "LVDS");
1038
			if (!radeon_connector->ddc_bus)
1190
			if (!radeon_connector->ddc_bus)
1039
				goto failed;
1191
				goto failed;
1040
		}
1192
		}
1041
		drm_mode_create_scaling_mode_property(dev);
-
 
1042
		drm_connector_attach_property(&radeon_connector->base,
1193
		drm_connector_attach_property(&radeon_connector->base,
1043
					      dev->mode_config.scaling_mode_property,
1194
					      dev->mode_config.scaling_mode_property,
1044
					      DRM_MODE_SCALE_FULLSCREEN);
1195
					      DRM_MODE_SCALE_FULLSCREEN);
1045
		subpixel_order = SubPixelHorizontalRGB;
1196
		subpixel_order = SubPixelHorizontalRGB;
1046
		break;
1197
		break;
Line 1061... Line 1212...
1061
radeon_add_legacy_connector(struct drm_device *dev,
1212
radeon_add_legacy_connector(struct drm_device *dev,
1062
			    uint32_t connector_id,
1213
			    uint32_t connector_id,
1063
			    uint32_t supported_device,
1214
			    uint32_t supported_device,
1064
			    int connector_type,
1215
			    int connector_type,
1065
			    struct radeon_i2c_bus_rec *i2c_bus,
1216
			    struct radeon_i2c_bus_rec *i2c_bus,
1066
			    uint16_t connector_object_id)
1217
			    uint16_t connector_object_id,
-
 
1218
			    struct radeon_hpd *hpd)
1067
{
1219
{
1068
	struct radeon_device *rdev = dev->dev_private;
1220
	struct radeon_device *rdev = dev->dev_private;
1069
	struct drm_connector *connector;
1221
	struct drm_connector *connector;
1070
	struct radeon_connector *radeon_connector;
1222
	struct radeon_connector *radeon_connector;
1071
	uint32_t subpixel_order = SubPixelNone;
1223
	uint32_t subpixel_order = SubPixelNone;
Line 1091... Line 1243...
1091
	connector = &radeon_connector->base;
1243
	connector = &radeon_connector->base;
Line 1092... Line 1244...
1092
 
1244
 
1093
	radeon_connector->connector_id = connector_id;
1245
	radeon_connector->connector_id = connector_id;
1094
	radeon_connector->devices = supported_device;
1246
	radeon_connector->devices = supported_device;
-
 
1247
	radeon_connector->connector_object_id = connector_object_id;
1095
	radeon_connector->connector_object_id = connector_object_id;
1248
	radeon_connector->hpd = *hpd;
1096
	switch (connector_type) {
1249
	switch (connector_type) {
1097
	case DRM_MODE_CONNECTOR_VGA:
1250
	case DRM_MODE_CONNECTOR_VGA:
1098
		drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type);
1251
		drm_connector_init(dev, &radeon_connector->base, &radeon_vga_connector_funcs, connector_type);
1099
		ret = drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs);
1252
		ret = drm_connector_helper_add(&radeon_connector->base, &radeon_vga_connector_helper_funcs);
Line 1158... Line 1311...
1158
			if (rdev->family == CHIP_RS400 || rdev->family == CHIP_RS480)
1311
			if (rdev->family == CHIP_RS400 || rdev->family == CHIP_RS480)
1159
				radeon_connector->dac_load_detect = false;
1312
				radeon_connector->dac_load_detect = false;
1160
			drm_connector_attach_property(&radeon_connector->base,
1313
			drm_connector_attach_property(&radeon_connector->base,
1161
						      rdev->mode_info.load_detect_property,
1314
						      rdev->mode_info.load_detect_property,
1162
						      1);
1315
						      1);
-
 
1316
			drm_connector_attach_property(&radeon_connector->base,
-
 
1317
						      rdev->mode_info.tv_std_property,
-
 
1318
						      1);
1163
		}
1319
		}
1164
		break;
1320
		break;
1165
	case DRM_MODE_CONNECTOR_LVDS:
1321
	case DRM_MODE_CONNECTOR_LVDS:
1166
		drm_connector_init(dev, &radeon_connector->base, &radeon_lvds_connector_funcs, connector_type);
1322
		drm_connector_init(dev, &radeon_connector->base, &radeon_lvds_connector_funcs, connector_type);
1167
		ret = drm_connector_helper_add(&radeon_connector->base, &radeon_lvds_connector_helper_funcs);
1323
		ret = drm_connector_helper_add(&radeon_connector->base, &radeon_lvds_connector_helper_funcs);