diff options
author | Dave Airlie <airlied@redhat.com> | 2009-09-09 03:40:54 -0400 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2009-09-18 02:02:00 -0400 |
commit | 445282db9e815e7f5e82761c3c971dc9ea988d85 (patch) | |
tree | e40e85ded303f2688b8adc1f5695b0062669a93a /drivers/gpu/drm/radeon/radeon_atombios.c | |
parent | c88f9f0c91de55efaece6d9bd9ec920b90244776 (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.c | 15 |
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 | ||
722 | struct radeon_encoder_int_tmds *radeon_atombios_get_tmds_info(struct | 722 | bool 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 | ||
780 | union lvds_info { | 773 | union lvds_info { |