diff options
author | Dave Airlie <airlied@redhat.com> | 2010-02-24 22:44:04 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2010-02-26 01:23:23 -0500 |
commit | eb6b6d7cdd5548fa03a919d14615195600013be2 (patch) | |
tree | c499472ef28a903f94b09da9a24f66b021412813 /drivers/gpu/drm/radeon/radeon_connectors.c | |
parent | 30d6c72c4a760cfc9069ee100786e4d6cf6de59d (diff) | |
parent | 383be5d1789d9a7a2e77dca1cb0aca89507d069e (diff) |
Merge remote branch 'korg/drm-radeon-testing' into drm-next-stage
* korg/drm-radeon-testing: (62 commits)
drm/radeon/kms: update new pll algo
drm/radeon/kms: add support for square microtiles on r3xx-r5xx
drm/radeon/kms: force pinning buffer into visible VRAM
drm/radeon/kms/evergreen: fix typo in cursor code
drm/radeon/kms: implement reading active PCIE lanes on R600+
drm/radeon/kms: for downclocking non-mobility check PERFORMANCE state
drm/radeon/kms: simplify storing current and requested PM mode
drm/radeon: fixes for r6xx/r7xx gfx init
drm/radeon/rv740: fix backend setup
drm/radeon/kms: fix R3XX/R4XX memory controller initialization
[rfc] drm/radeon/kms: pm debugging check for vbl.
drm/radeon: Fix memory allocation failures in the preKMS command stream checking.
drm: Add generic multipart buffer.
drm/radeon/kms: simplify memory controller setup V2
drm/radeon: Add asic hook for dma copy to r200 cards.
drm/radeon/kms: Create asic structure for r300 pcie cards.
drm/radeon/kms: remove unused r600_gart_clear_page
drm/radeon/kms: remove HDP flushes from fence emit (v2)
drm/radeon/kms: add LVDS pll quirk for Dell Studio 15
drm/radeon/kms: simplify picking power state
...
Conflicts:
drivers/gpu/drm/radeon/atom.c
drivers/gpu/drm/radeon/atombios.h
drivers/gpu/drm/radeon/atombios_dp.c
drivers/gpu/drm/radeon/r600.c
drivers/gpu/drm/radeon/r600_audio.c
drivers/gpu/drm/radeon/r600_cp.c
drivers/gpu/drm/radeon/radeon.h
drivers/gpu/drm/radeon/radeon_connectors.c
drivers/gpu/drm/radeon/radeon_ring.c
drivers/gpu/drm/radeon/rv770.c
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_connectors.c')
-rw-r--r-- | drivers/gpu/drm/radeon/radeon_connectors.c | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index 65f81942f399..ee0083f982d8 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c | |||
@@ -479,10 +479,8 @@ static enum drm_connector_status radeon_lvds_detect(struct drm_connector *connec | |||
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 | } |
@@ -587,19 +585,14 @@ static enum drm_connector_status radeon_vga_detect(struct drm_connector *connect | |||
587 | if (!encoder) | 585 | if (!encoder) |
588 | ret = connector_status_disconnected; | 586 | ret = connector_status_disconnected; |
589 | 587 | ||
590 | if (radeon_connector->ddc_bus) { | 588 | if (radeon_connector->ddc_bus) |
591 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 1); | ||
592 | dret = radeon_ddc_probe(radeon_connector); | 589 | dret = radeon_ddc_probe(radeon_connector); |
593 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 0); | ||
594 | } | ||
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; | 593 | radeon_connector->edid = NULL; |
599 | } | 594 | } |
600 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 1); | ||
601 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter); | 595 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter); |
602 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 0); | ||
603 | 596 | ||
604 | if (!radeon_connector->edid) { | 597 | if (!radeon_connector->edid) { |
605 | DRM_ERROR("%s: probed a monitor but no|invalid EDID\n", | 598 | DRM_ERROR("%s: probed a monitor but no|invalid EDID\n", |
@@ -744,19 +737,14 @@ static enum drm_connector_status radeon_dvi_detect(struct drm_connector *connect | |||
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; |
746 | 739 | ||
747 | if (radeon_connector->ddc_bus) { | 740 | if (radeon_connector->ddc_bus) |
748 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 1); | ||
749 | dret = radeon_ddc_probe(radeon_connector); | 741 | dret = radeon_ddc_probe(radeon_connector); |
750 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 0); | ||
751 | } | ||
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 | } | 746 | } |
757 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 1); | ||
758 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter); | 747 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, &radeon_connector->ddc_bus->adapter); |
759 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 0); | ||
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", |
@@ -952,7 +940,7 @@ static void radeon_dp_connector_destroy(struct drm_connector *connector) | |||
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); |
@@ -988,12 +976,10 @@ static enum drm_connector_status radeon_dp_detect(struct drm_connector *connecto | |||
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 | } |
998 | 984 | ||
999 | return ret; | 985 | return ret; |