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; |