aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/radeon/radeon_atombios.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2009-09-09 03:40:54 -0400
committerDave Airlie <airlied@redhat.com>2009-09-18 02:02:00 -0400
commit445282db9e815e7f5e82761c3c971dc9ea988d85 (patch)
treee40e85ded303f2688b8adc1f5695b0062669a93a /drivers/gpu/drm/radeon/radeon_atombios.c
parentc88f9f0c91de55efaece6d9bd9ec920b90244776 (diff)
drm/radeon/kms: add initial connector properties
This adds: coherent mode: TMDS coherent mode for atom cards. scaling mode: LVDS scaler mode load detect: DAC load detection, DVI-I, VGA, TV tmds pll: legacy TMDS pll selection tv standard: TV standard selection. for later: other TV ones? dvi subconnector selection using std prop [contains fixes pointed out on dri-devel for atom bios mixups by Michel] Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'drivers/gpu/drm/radeon/radeon_atombios.c')
-rw-r--r--drivers/gpu/drm/radeon/radeon_atombios.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
index cb5efcaf2bab..743742128307 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -719,9 +719,8 @@ bool radeon_atom_get_clock_info(struct drm_device *dev)
719 return false; 719 return false;
720} 720}
721 721
722struct radeon_encoder_int_tmds *radeon_atombios_get_tmds_info(struct 722bool radeon_atombios_get_tmds_info(struct radeon_encoder *encoder,
723 radeon_encoder 723 struct radeon_encoder_int_tmds *tmds)
724 *encoder)
725{ 724{
726 struct drm_device *dev = encoder->base.dev; 725 struct drm_device *dev = encoder->base.dev;
727 struct radeon_device *rdev = dev->dev_private; 726 struct radeon_device *rdev = dev->dev_private;
@@ -732,7 +731,6 @@ struct radeon_encoder_int_tmds *radeon_atombios_get_tmds_info(struct
732 uint8_t frev, crev; 731 uint8_t frev, crev;
733 uint16_t maxfreq; 732 uint16_t maxfreq;
734 int i; 733 int i;
735 struct radeon_encoder_int_tmds *tmds = NULL;
736 734
737 atom_parse_data_header(mode_info->atom_context, index, NULL, &frev, 735 atom_parse_data_header(mode_info->atom_context, index, NULL, &frev,
738 &crev, &data_offset); 736 &crev, &data_offset);
@@ -742,12 +740,6 @@ struct radeon_encoder_int_tmds *radeon_atombios_get_tmds_info(struct
742 data_offset); 740 data_offset);
743 741
744 if (tmds_info) { 742 if (tmds_info) {
745 tmds =
746 kzalloc(sizeof(struct radeon_encoder_int_tmds), GFP_KERNEL);
747
748 if (!tmds)
749 return NULL;
750
751 maxfreq = le16_to_cpu(tmds_info->usMaxFrequency); 743 maxfreq = le16_to_cpu(tmds_info->usMaxFrequency);
752 for (i = 0; i < 4; i++) { 744 for (i = 0; i < 4; i++) {
753 tmds->tmds_pll[i].freq = 745 tmds->tmds_pll[i].freq =
@@ -773,8 +765,9 @@ struct radeon_encoder_int_tmds *radeon_atombios_get_tmds_info(struct
773 break; 765 break;
774 } 766 }
775 } 767 }
768 return true;
776 } 769 }
777 return tmds; 770 return false;
778} 771}
779 772
780union lvds_info { 773union lvds_info {