Subversion Repositories Kolibri OS

Rev

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

Rev 1428 Rev 1430
Line 477... Line 477...
477
	/* check for edid as well */
477
	/* check for edid as well */
478
	if (radeon_connector->edid)
478
	if (radeon_connector->edid)
479
		ret = connector_status_connected;
479
		ret = connector_status_connected;
480
	else {
480
	else {
481
		if (radeon_connector->ddc_bus) {
481
		if (radeon_connector->ddc_bus) {
482
			radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
-
 
483
			radeon_connector->edid = drm_get_edid(&radeon_connector->base,
482
			radeon_connector->edid = drm_get_edid(&radeon_connector->base,
484
							      &radeon_connector->ddc_bus->adapter);
483
							      &radeon_connector->ddc_bus->adapter);
485
			radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
-
 
486
			if (radeon_connector->edid)
484
			if (radeon_connector->edid)
487
				ret = connector_status_connected;
485
				ret = connector_status_connected;
488
		}
486
		}
489
	}
487
	}
490
	/* check acpi lid status ??? */
488
	/* check acpi lid status ??? */
Line 585... Line 583...
585
 
583
 
586
	encoder = radeon_best_single_encoder(connector);
584
	encoder = radeon_best_single_encoder(connector);
587
	if (!encoder)
585
	if (!encoder)
Line 588... Line 586...
588
		ret = connector_status_disconnected;
586
		ret = connector_status_disconnected;
589
 
-
 
590
	if (radeon_connector->ddc_bus) {
587
 
591
	    radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
-
 
592
	    dret = radeon_ddc_probe(radeon_connector);
-
 
593
	    radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
588
	if (radeon_connector->ddc_bus)
594
	}
589
	    dret = radeon_ddc_probe(radeon_connector);
595
	if (dret) {
590
	if (dret) {
596
		if (radeon_connector->edid) {
591
		if (radeon_connector->edid) {
597
			kfree(radeon_connector->edid);
592
			kfree(radeon_connector->edid);
598
			radeon_connector->edid = NULL;
-
 
599
		}
593
			radeon_connector->edid = NULL;
600
		radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
-
 
Line 601... Line 594...
601
		radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter);
594
		}
602
		radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
595
		radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter);
603
 
596
 
604
		if (!radeon_connector->edid) {
597
		if (!radeon_connector->edid) {
Line 742... Line 735...
742
	struct drm_mode_object *obj;
735
	struct drm_mode_object *obj;
743
	int i;
736
	int i;
744
	enum drm_connector_status ret = connector_status_disconnected;
737
	enum drm_connector_status ret = connector_status_disconnected;
745
	bool dret = false;
738
	bool dret = false;
Line 746... Line 739...
746
 
739
 
747
	if (radeon_connector->ddc_bus) {
-
 
748
	radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
740
	if (radeon_connector->ddc_bus)
749
	dret = radeon_ddc_probe(radeon_connector);
-
 
750
	radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
-
 
751
	}
741
	dret = radeon_ddc_probe(radeon_connector);
752
	if (dret) {
742
	if (dret) {
753
		if (radeon_connector->edid) {
743
		if (radeon_connector->edid) {
754
			kfree(radeon_connector->edid);
744
			kfree(radeon_connector->edid);
755
			radeon_connector->edid = NULL;
745
			radeon_connector->edid = NULL;
756
		}
-
 
757
		radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
746
		}
758
		radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter);
-
 
Line 759... Line 747...
759
		radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
747
		radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter);
760
 
748
 
761
		if (!radeon_connector->edid) {
749
		if (!radeon_connector->edid) {
762
			DRM_ERROR("%s: probed a monitor but no|invalid EDID\n",
750
			DRM_ERROR("%s: probed a monitor but no|invalid EDID\n",
Line 950... Line 938...
950
	if (radeon_connector->ddc_bus)
938
	if (radeon_connector->ddc_bus)
951
		radeon_i2c_destroy(radeon_connector->ddc_bus);
939
		radeon_i2c_destroy(radeon_connector->ddc_bus);
952
	if (radeon_connector->edid)
940
	if (radeon_connector->edid)
953
		kfree(radeon_connector->edid);
941
		kfree(radeon_connector->edid);
954
	if (radeon_dig_connector->dp_i2c_bus)
942
	if (radeon_dig_connector->dp_i2c_bus)
955
		radeon_i2c_destroy(radeon_dig_connector->dp_i2c_bus);
943
		radeon_i2c_destroy_dp(radeon_dig_connector->dp_i2c_bus);
956
	kfree(radeon_connector->con_priv);
944
	kfree(radeon_connector->con_priv);
957
	drm_sysfs_connector_remove(connector);
945
	drm_sysfs_connector_remove(connector);
958
	drm_connector_cleanup(connector);
946
	drm_connector_cleanup(connector);
959
	kfree(connector);
947
	kfree(connector);
960
}
948
}
Line 986... Line 974...
986
		if (radeon_dp_getdpcd(radeon_connector)) {
974
		if (radeon_dp_getdpcd(radeon_connector)) {
987
			radeon_dig_connector->dp_sink_type = sink_type;
975
			radeon_dig_connector->dp_sink_type = sink_type;
988
			ret = connector_status_connected;
976
			ret = connector_status_connected;
989
		}
977
		}
990
	} else {
978
	} else {
991
		radeon_i2c_do_lock(radeon_connector->ddc_bus, 1);
-
 
992
		if (radeon_ddc_probe(radeon_connector)) {
979
		if (radeon_ddc_probe(radeon_connector)) {
993
			radeon_dig_connector->dp_sink_type = sink_type;
980
			radeon_dig_connector->dp_sink_type = sink_type;
994
			ret = connector_status_connected;
981
			ret = connector_status_connected;
995
		}
982
		}
996
		radeon_i2c_do_lock(radeon_connector->ddc_bus, 0);
-
 
997
	}
983
	}
Line 998... Line 984...
998
 
984
 
999
	return ret;
985
	return ret;